Network Flashing light

From

Jump to: navigation, search
Project: Network Flashing Light
360x360px
Name Network Flashing Light
Initiator Retrace
Status {{{Status}}}
Skills Python
Summary Turn on lights when someone sniffs network

Holy Moly Batman, someone is sniffing the network. In een Lan kan je misbruik maken van het ARP protocol, dat misbruiken heet Man-In-The-Middle attack. Met deze attack kan je iedereen laten geloven dat je jij de gateway bent. Vandaar dus de MitM Detectie zwaailicht, want aan informatie stelen ..... Daar doen wij niet aan!


Wat heb je nodig

  • Zwaailicht
  • Ettercap
  • Python 2.7
  • Pyserial

8Computer met een vrije seriële poort

Zwaailamp aanpassen

De lamp is zo aangepast dat hij aan en uit kan. Thx to Bigred zit de lamp in elkaar. Zie tekening voor meer informatie.

  • Serial D9 female
  • R1 = 1K resistor
  • T1 = BC547 Transistor
  • K1 = Relais 12V
  • D1 = Diode 4101
  • Lamp = Zwaailicht

Com-com-compoooooort

Nu dat de lamp af is kunnen we gebruik maken van Ettercap. Dit programma beschikt over een module dat ARP-Cop die het netwerk controleert op MitM. Nu moeten we alleen de informatie die ettercap uitpoep opvangen, verwerken en ons seriële poort aansturen. Hiervoor maken we gebruiken python en pyserial.


Code:

import sys
import subprocess
from serial import Serial
import os
from time import sleep

uid = os.getuid()
err = sys.stderr.write

def main(argv):

        if not 0 == uid:
                sys.exit(err("This script must be run as root for the time beeing!\n"))

        elif len(argv) != 2:
                sys.exit(err("Usage: python %s <Serial Interface>\n" % (argv[0],)))

def arpbuster():

        ettercap = subprocess.Popen("ettercap -i eth0 -TQP arp_cop //" , shell=True, stdout=subprocess.PIPE)

        while 1:
                inPut = ettercap.stdout.readline()
                inPut = inPut.split(' ')
                serial.setDTR(False)

                for msg in inPut:
                        if msg == "(WARNING)":
                                ettercap.stdout.close()
                                return "True"

if __name__ == "__main__":
        main(sys.argv)

        serial = Serial(sys.argv[1], 9600)
        serial.setDTR(False)

        while 1:

                if arpbuster() == "True":
                        serial.setDTR(True)
                        sleep(20)
        sys.exit()


Referenties