
Strumento HULK DoS portato in Go con alcune funzionalità aggiuntive.
Strumento DoS HULK portato in linguaggio Go da Python. Utilità Python originale di Barry Shteiman http://www.sectorix.com/2012/05/17/hulk-web-server-dos-tool/ Ho semplicemente portato il codice così com'è, in modo rapido e sporco. I nomi delle funzioni originali sono stati mantenuti e la logica originale è stata per lo più mantenuta.
La differenza principale rispetto alla versione Python risiede nell'architettura di Golang per la concorrenza: le goroutine. hulk.py crea un nuovo thread per ogni connessione nel pool di connessioni, quindi usa centinaia e migliaia di thread. hulk.go usa invece leggere goroutine che utilizzano solo decine di thread (di solito il runtime di Golang avvia un thread per core CPU più alcuni thread di servizio). Questa architettura consente alla versione in Golang di consumare meglio le risorse e di ottenere un pool di connessioni molto più ampio sullo stesso hardware rispetto alla versione Python.
Questo strumento è pensato per lo stress test e può davvero mettere in ginocchio un server mal configurato o un'app mal realizzata. Usalo con cautela.
Esempi:
$ hulk -site http://example.com/test/ 2>/dev/null
$ HULKMAXPROCS=4096 hulk -site http://example.com 2>/tmp/errlog
Variabili d'ambiente utili:
Maggiori dettagli: http://old.siberian.laika.name/node/7
Aggiornamento: beh, ho creato questa utilità per un compito occasionale quando stavo solo giocando un po' con Golang. Con sorpresa ho scoperto che questa utilità è usata da altre persone, ha ricevuto qualche stella su GitHub ed è persino inclusa nella distribuzione Linux BlackArch. Così ho ripulito un po' il codice.
Penso che possa essere di pubblico dominio perché è solo un pezzo di codice semplice e breve, ma per una ragione che non ricordo più ho scelto GPL per esso. Okay. Quindi, la versione Go di HULK è licenziata sotto GPLv3. Vedi LICENSE.
Non ho alcun legame con l'utilità HULK originale in Python. L'utilità HULK originale è di proprietà di Barry Shteiman (http://sectorix.com). Non ci sono riferimenti alla licenza nel sorgente originale, quindi non è sotto GPL. Chiedi all'autore dell'utilità originale riguardo alla licenza.