Guida DoS Distributed Reflection Denial of Service (DRDoS)

Exit93

Utente Emerald
8 Luglio 2011
921
20
506
408
Ultima modifica da un moderatore:
Dando per scontato che voi conosciate cos'è un attacco DoS o DDoS, sono qui per parlarvi del DRDoS.

Il DRDoS è una tecnica subdola per effettuare attacchi di tipo DDoS, non richiede una botnet, qualsiasi server in rete è sfruttabile per questo attacco e vi rende praticamente non rintracciabili.
Questo tipo di attacco è in grado di quadruplicare la banda della vostra macchina attaccante verso la vittima.

Vediamo come funziona.

Il DRDoS sfrutta le funzionalità del TCP per scagliare un attacco, quando apriamo una connessione TCP verso una macchina remota viene effettuato un three way handshake
300px-Tcp-handshake.svg.png

Il pc che richiede di aprire la connessione manda un pacchetto con flag SYN attivata, il server risponde con un pacchetto SYN/ACK e si presuppone che il pc richiedente risponda con un pacchetto ACK, ma cosa succederebbe se quest'ultimo pacchetto non arrivasse?

Il TCP è stato progettato per essere completamente affidabile, quindi in caso di pacchetto mancante gli sviluppatori hanno implementato un'operazione di retrasmissione del pacchetto; supponendo quindi che l'ultimo pacchetto non arrivi mai al server, quest'ultimo crederà che il pacchetto da lui inviato al pc richiedente non sia mai arrivato e verrà quindi ritrasmesso. Il pacchetto, oltre l'invio originale, verrà ritrasmesso fino a 3 volte (quindi un totale di 4 pacchetti inviati).

Supponiamo adesso di inviare un pacchetto di richiesta di connessione dal nostro computer, ma in veci della vittima: noi inviamo un pacchetto, la vittima ne riceve 4. Supponiamo di richiedere la connessione a 1000 server, sempre nelle veci della nostra vittima, noi inviamo 1000 pacchetti, la vittima ne riceve 4000. Un effetto potenzialmente devastante. Ma come fare per inviare pacchetti nelle veci della vittima?

Analizziamo la struttura dei pacchetti di rete


networkpacket.jpg


Un pacchetto di rete è composto da più pacchetti nidificati:
1) Il pacchetto più esterno contiene l'indirizzo MAC del dispositivo di origine e del dispositivo di destinazione
2) Il secondo pacchetto più esterno contiene l'indirizzo IP di origine e l'indirizzo IP di destinazione
3) Il terzo e ultimo pacchetto è il pacchetto TCP contentente porta di origine e porta di destinazione.
4) I dati che verranno inviati via rete, contenuti nel pacchetto TCP

Quello che interessa a noi è il pacchetto N. 2, normalmente questo pacchetto viene generato dal sistema operativo, ma utilizzando i Raw Socket è possibile costruirlo a mano: questo significa che è possibile falsificare il mittente del pacchetto e effettuare richieste di apertura di connessione in veci altrui. Questa tecnica si chiama IP Spoofing.
Non vi spiegherò come effettuare questa operazione via codice per evitare lamerate, chi sa programmare e conosce un minimo di TCP sarà in grado di effettuare queste operazioni.

Questo metodo tuttavia ha delle grosse limitazioni:
- Il NAT: se per esempio siete dietro a un router, quest'ultimo ricostruirà automaticamente i pacchetti.
- Alcuni ISP bloccano i pacchetti con IP spoofato, rendendo quindi inefficace questa tecnica di DoS.

Spero di essere stato abbastanza chiaro :)
 
Esiste anche la libreria Winsock,per facilitare la programmazione socket in ambiente Windows. Resta comunque il fatto che per programmare sui socket,l'ambiente migliore è Linux,essendo stati creati lì.
 
@xXShïñëgødXx Dubito che winsock dia l'accesso ai raw socket.

Se non sbaglio i raw socket su win7 sono attivati ma limitati, non so con esattezza, non mi son informato più di tanto. In ogni caso si ovvia a questo con librerie come WinPcap.

Su linux invece i raw socket sono liberi.
 
Per esperienza personale so che WinPcap non da il completo accesso ai raw socket...Infatti su windows SP2 riuscivo bene a mandare i pacchetti, mentre con WinPcap non mi vanno lo stesso..

Perciò è sempre meglio avere una VM con Windows XP SP2 installato, a parer mio.
 
Sono nuovo della materia, vi prego di non ritenere stupida la mia domanda :( , si potrebbe far ricevere dei pacchetti al server con il suo stesso ip? es. ip del server=93.16.13.198, riceve pacchetti dall'ip:93.16.13.198. è possibile?

Tengo a precisare che l'ip è inventato :asd:
 
Sono nuovo della materia, vi prego di non ritenere stupida la mia domanda :( , si potrebbe far ricevere dei pacchetti al server con il suo stesso ip? es. ip del server=93.16.13.198, riceve pacchetti dall'ip:93.16.13.198. è possibile?

Tengo a precisare che l'ip è inventato :asd:
Se non ho capito male,intendi lo Spoofing dei pacchetti. In parole povere,lo spoofing è una tecnica usata per camuffare la propria identità,nel caso da te citato si potrebbero contraffare pacchetti con Indirizzo IP sorgente del destinatario (il server). Gli scopi possono essere molteplici,sia per attacchi del tipo Man In The Middle (caso del protocollo ARP per esempio,più precisamente ARP Poisoning) che per attacchi DoS come quello trattato nella discussione. Come già detto da Exit93,chi ha quel minimo di fondamenti della programmazione socket si sa ingegnare un pacchetto con tanto di Indirizzo IP sorgente falso. Personalmente io stavo studiando qualcosa al riguardo,e presto riprenderò quel poco d'attività :)
 
Per esperienza personale so che WinPcap non da il completo accesso ai raw socket...Infatti su windows SP2 riuscivo bene a mandare i pacchetti, mentre con WinPcap non mi vanno lo stesso..

Perciò è sempre meglio avere una VM con Windows XP SP2 installato, a parer mio.
Hai sbagliato qualcosa tu, guarda qui: http://www.inforge.net/community/i-...[c-][open-source]-tcp-sender-ip-spoofing.html
Quindi, ping del sito seguito da una proxxata del suo stesso ip? hihihi
Non hai capito proprio nulla di questa discussione...
 
lol, ma non è che voglio dossare con il ping :) Con il ping trovo l'ip, poi mi proxxo con l'ip del sito e faccio quello che devo fare, no?
 
lol, ma non è che voglio dossare con il ping :) Con il ping trovo l'ip, poi mi proxxo con l'ip del sito e faccio quello che devo fare, no?

Prima di navigare nel mondo del cracking imparati le basi.
Già che parti che secondo te puoi proxarti con l'IP di chiunque mi fa capire che non sai un ªīºū@.
 
D3v1l magari intendeva spoofare, se devi criticare falle almeno costruttive le critiche non offendere e basta.

Ho offeso? Vedo che sai leggere ed interpretare ciò che la gente scrive molto bene Bloddy.
La mia critica si basa sul fatto che lui non intende spoofare,o meglio,quel che vorrebbe fare tecnicamente è uno spoofing ma lui vuole PROXARSI,ovvero pensa che può usare qualsiasi IP di qualsiasi persona come un proxy.
Questo delimita solo una cosa: non conosce la teoria dei proxies.
Quindi? Quindi non ha studiato ma ha sparato una domanda senza nemmeno sapere cosa esattamente è un proxy.

Quello che mi ha lasciato perplesso è che anche quando gli hanno dato la soluzione (spoof) continua a non capire,quindi non mi sembra una persona che si informi molto.
 
A me pare che sia un'offesa e anche pesantuccia. Se ogni utente di if si mettesse a rivedere/riprendere ogni post del forum non finiremo più.
Concluso L'OT.

Capire un cazz* non è un'offesa inquanto descrive il tuo status di comprensione riguardo un argomento preciso.
Non ti accusa di esser cretino né altro.
Qualcosa da ridire? ;)