,

DDoS PHP Script!

PHP DDoS ScriptNell’underground dei Black Market vendono pacchetti di attacchi DDoS, TrenMicro in un report del 2012 ci fornisce alcuni dettagli sui prezzi variabili in base alla durata, al numero di server sfruttati per l’attacco e dalla banda complessiva che i server nominalmente riescono a generare. Gli attacchi generalmente vengono lanciati tramite script Pyhton (Hammer ne è un esempio) direttamente da riga di comando, ma nel mio caso volevo dimostrare come un sito internet violato potesse diventare un ottimo vettore per lanciare un attacco DoS! Supponendo quindi di non aver accesso al terminale ma di poter veicolare l’attacco attraverso il WebServer.

Riproducendo questa casistica non potevo affatto pensare di scaricare il codice in Python ed eseguirlo sul mio server (anche se possiedo i permessi di root), non sarebbe il caso che voglio dimostrare. Violato un WebServer solitamente l’attaccante deve apprenderne la configurazione per accertarsi se puoi eseguire codice a sua discrezione o se vi sono limitazioni anche nella sola creazione di nuovi file, solitamente infatti non si può eseguire codice in C o in Python ma è  più probabile che il WebServer ci permetta l’esecuzione di codice in PHP vista l’importanza di questo linguaggio nella creazione di siti web. Certo il Python come il RoR stanno prendendo sempre più piede nel mondo web, ma anche senza statistiche alla mano credo sia più facile eseguire codice PHP che Python su un sito web violato (:D sempre pronto ad essere smentito se qualcuno ha dati diversi).

Ho così deciso di scrivere 20/30 righe di codice PHP con lo scopo di effettuare diverse centinaia di richieste UDP attraverso la funzione fsockopen(), eseguendo così un attacco denominato UDP Flood. Il funzionamento è veramente basilare, attraverso una richiesta GET passavo allo script l’IP Target, la porta e la durata dell’attacco in secondi. Lo script attraverso un ciclo while eseguiva quindi l’attacco per tutto il tempo che gli era stato specificato.

Poi ho iniziato a guardarmi in giro ed effettivamente di codice per lanciare attacchi DoS tramite PHP non ne ho visto molti, anzi quasi nessuno (questo per esempio non è più disponibile mi segnalano che è disponibile il sorgente qui!), ho così deciso di pubblicare su GitHub il mio piccolo script per eventuali usi futuri…un promemoria nulla di più!

Se volete quindi provare il codice, criticarlo, migliorarlo o semplicemente scaricarlo lo trovate su GitHub.

Il successo dell’Open Source, mai mi sarei aspettato di ricevere tanto successo da un codice di 20 righe! Il progetto che inizialmente prevedeva solo una chiamata GET e una risposta “OK” tramite la funzione echo quando l’attacco era completato ora vanta un interfaccia CLI, maggior personalizzazione dei parametri (es. è possibile personalizzare la dimensione e la quantità dei pacchetti da inviare durante l’attacco), protezione dello script tramite una password, esecuzione randomatico dell’attacco sulle diverse porte del server, un output accurato in grado di indicarci il numero di pacchetti inviati e la loro dimensione in Tb, Gb, Mb o Kb e infine una GUI. In meno di una settimana ho ricevuto 14 Pull Request e diversi commenti e suggerimenti.

PHP DDoS Script UDP Flood

Voglio quindi ringraziare @TheZer0, @Smaury, @moty66 per l’ottimo supporto che mi stanno dando nel migliorare questa mia piccola creatura.

Un piccolo Disclaimer finale è doveroso, il PHP DDoS Script come ho già spiegato l’ho scritto a scopo didattico e non mi assumo alcuna responsabilità per l’utilizzo non appropriato.

Ah dimenticavo DDoS o DoS Script?!? Ne ho parlato con i “colleghi” del BackBox Team e alla fine ho deciso di chiamarlo DDoS in quanto non è lo script che diversifica il tipo di attacco, ma dipende tecnicamente da quante macchine lo eseguono contemporaneamente e un vero attaccante dubito lo esegua da una sola macchina 🙂

  • Mapo

    Articolo molto interessante! Complimenti per il blog sempre molto ben curato.

    Mapo