diff --git a/Network_and_802.11/scapy/icmp_ping_sweep.py b/Network_and_802.11/scapy/icmp_ping_sweep.py new file mode 100644 index 0000000..706e28f --- /dev/null +++ b/Network_and_802.11/scapy/icmp_ping_sweep.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python + +__author__ = "bt3" + +from scapy.all import * +import netaddr + + +RANGE = "192.168.1.0/24" + + +def sweep(): + addresses = netaddr.IPNetwork(RANGE) + liveCounter = 0 + + for host in addresses: + if (host == addresses.network or host == addresses.broadcast): + continue + + resp = sr1(IP(dst=str(host))/ICMP(),timeout=2,verbose=0) + if (str(type(resp)) == ""): + print str(host) + " is down or not responding." + + elif (int(resp.getlayer(ICMP).type)==3 and int(resp.getlayer(ICMP).code) in [1,2,3,9,10,13]): + print str(host) + " is blocking ICMP." + else: + print str(host) + " is responding." + liveCounter += 1 + + print "Out of " + str(addresses.size) + " hosts, " + str(liveCounter) + " are online." + +if __name__ == '__main__': + sweep() \ No newline at end of file diff --git a/Network_and_802.11/scapy/nmap.py b/Network_and_802.11/scapy/nmap.py new file mode 100644 index 0000000..366dcf0 --- /dev/null +++ b/Network_and_802.11/scapy/nmap.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python + +__author__ = "bt3" + +from scapy.all import * +import random + +HOST = "192.168.1.25" +PORTS = [22, 23, 25, 80, 443, 8000] + +def nmap(): + for dport in PORTS: + + sport = random.randint(1025, 65534) + resp = sr1(IP(dst=HOST)/TCP(sport=sport,dport=dport,flags="S"), timeout=1,verbose=0) + + if (str(type(resp)) == ""): + print HOST + ":" + str(dport) + " is filtered (dropped)." + + elif(resp.haslayer(TCP)): + if(resp.getlayer(TCP).flags == 0x12): + send_rst = sr(IP(dst=HOST)/TCP(sport=sport,dport=dport,flags="R"),timeout=1,verbose=0) + print HOST + ":" + str(dport) + " is open." + elif (resp.getlayer(TCP).flags == 0x14): + print HOST + ":" + str(dport) + " is closed." + + elif(resp.haslayer(ICMP)): + if(int(resp.getlayer(ICMP).type)==3 and int(resp.getlayer(ICMP).code) in [1,2,3,9,10,13]): + print HOST + ":" + str(dport) + " is filtered (dropped)." + +if __name__ == '__main__': + nmap() \ No newline at end of file diff --git a/Network_and_802.11/scapy/super_scanner.py b/Network_and_802.11/scapy/super_scanner.py new file mode 100644 index 0000000..8b323b1 --- /dev/null +++ b/Network_and_802.11/scapy/super_scanner.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python + +__author__ = "bt3" + +from scapy.all import * +import netaddr +import random + +RANGE = "192.168.1.0/24" +PORTS = [22,23,80,443,449] + +addresses = netaddr.IPNetwork(RANGE) + +def portScan(host, ports): + for dstPort in ports: + srcPort = random.randint(1025,65534) + resp = sr1(IP(dst=host)/TCP(sport=srcPort,dport=dstPort,flags="S"),timeout=1,verbose=0) + + if (str(type(resp)) == ""): + print host + ":" + str(dstPort) + " is filtered (silently dropped)." + + elif(resp.haslayer(TCP)): + if(resp.getlayer(TCP).flags == 0x12): + send_rst = sr(IP(dst=host)/TCP(sport=srcPort,dport=dstPort,flags="R"),timeout=1,verbose=0) + print host + ":" + str(dstPort) + " is open." + elif (resp.getlayer(TCP).flags == 0x14): + print host + ":" + str(dstPort) + " is closed." + elif(resp.haslayer(ICMP)): + if(int(resp.getlayer(ICMP).type)==3 and int(resp.getlayer(ICMP).code) in [1,2,3,9,10,13]): + print host + ":" + str(dstPort) + " is filtered (silently dropped)." + +def super_scanner(): + liveCounter = 0 + for addr in addresses: + if (addr == addresses.network or addr == addresses.broadcast): + continue + + resp = sr1(IP(dst=str(addr))/ICMP(),timeout=2,verbose=0) + if (str(type(resp)) == ""): + print str(addr) + " is down or not responding." + elif (int(resp.getlayer(ICMP).type)==3 and int(resp.getlayer(ICMP).code) in [1,2,3,9,10,13]): + print str(addr) + " is blocking ICMP." + else: + portScan(str(addr),PORTS) + liveCounter += 1 + + print "Out of " + str(addresses.size) + " hosts, " + str(liveCounter) + " are online." + +if __name__ == '__main__': + super_scanner() \ No newline at end of file