LINUX

Procura na FAPESP

No Brasil, o órgão regulador para o cadastro de domínios é a FAPESP (http:// registro.fapesp.br). Lá encontram-se todas as informações disponíveis dos domínios cadastrados no país. O hacker poderia ali levantar as informações sobre os servidores de DNS da vítima e a partir daí seguir para a segunda fase do ataque. Na FAPESP é possível descobrir se o domino está num provedor ou em uma estaçao na própria empresa.



Consulta no DNS

O DNS é hoje na Internet um dos principais serviços de consulta a nomes de domínios. Basicamente cada site possui um servidor que guarda um banco de dados dos domínios ali cadastrados. Se neste banco de dados nâo se tomar cuidado, certas informações podem ser passadas e utilizadas pelo hacker para seus futuros ataques. Isto pode ser feito através do comando nslookup do TCP/ IP do Linux, um utilitário que pesquisa o DNS e permite a visualizaçâo de informações sobre o mesmo. Vejamos a seguir um exemplo:

[oldmanbox /] #nslookup

Default Server: olom.hack.net

Address: 10.0.0.1



>set q =any

>vitima com. br

Non-authoritative answer:

vitima.com.br nameserver = 11s1.vitima.com.br

vitima.com.br nameserver = NS2 .nitima.com.br

Authoritative answers can be found from:

vitima.com.br nameserver = ns1.vitima.com.br

vitima.com.br nameserver = NS2 .nitima.com.br ns1.vitima.çom.br NS1.nitima.com.br internet address = 192.168.0.1

NS2.nitima.com.br internet address = 192.168.0.2

Com posse dos IPS dos servidores de DNS faça o seguinte no nslookup:

>server 192.168.0.1

Default Server: 192.168.0.1

Address: 192.168.0.1



>set tvpe=any

> is -d vitima.com.br > /dns.out

>quit



Ao voltar ao prompt do linux digite o seguinte:

(oldmanbox /]#more dns.out

> ls -d vitima.com.br

[m2wo.vitima.com.br]

$ORIGIN vitima. com. br.

@ 1D IN SOAnsi root (
#


#


#


#


#


#

2000021501 ; serial

8H ; refresh

4H ; retry

5w6dl6h ;expiry

1D ) ; minimum

1D IN NS ns1

1D IN NS ns2 .vitima.com.br

1D IN MX o ns2.vitima.com.br

1D IN A 192.168.0.1

serverbd 1D IN A 192.168.0.51
#


#

1D IN HINFO "Alpha NT"

1D IN TXT "Oracle Sede RJ"

diretorial 1D IN A 192.168.0.52

1D IN HINFO "Win 98"

1D IN TXT "Diretoria Financeira"







Este arquivo exemplo gerado por esta pesquisa mostra como o DNS pode

revelar muitas informações se nâo bem oculto. Nesta listagem, o hacker já

sabe que o servidor de correio é o ns2.vitima.com.br (parâmetro MXdo DNS)

e descobriu um servidor NT (parâmetro HINFOdo DNS) e uma estação Windows

98. da diretoria financeira!

Outro recurso de procura com o DNS éo comando host do Unix/Linux. Exemplo:

[oldmanbox /]#host -1 vitima.com.br

vitima.com.br name server ns1.vitima.com.br

vitima.com.br name server ns2 .vitima.com.br

vitima.com.br has address 192.168.0.1

acessoll.vitima.com.br has address 192.168.0.60

ns1.vitima.com.br has address 192.168.0.1

ns2.vitima.com.br has address 192.168.0.2

router.vitima.com.br has address 192.168.0.254

fir.vitima.com.br has address 192.168.0.10

.

.

.





Desta maneira é possível visualizar vários IPSdas máquinas que compõem esta rede como um todo. Para o /7acker estas informações são por demais valiosas, já que com elas é possível estabelecer quais serão as vitimas de seu ataque.

Rotas

O acompanhamento de rotas de pacotes IP entre redes é uma das formas de saber que máquinas estão funcionando como servidores e descobrir quais são os roteadores que as interligam. Para isto basta utilizar o programa traceroute desenvolvido originalmente por Van Jacobson e que normalmente vem acompanhado em sistemas Linux e Unix (no Windows NT se chama tracert).

Com o traceroute é possível descobrir a topologia de uma rede, identificar os dispositivos de controle de acesso (roteadores, firewalls, etc.). O exemplo a seguir ilustra seu funcionamento:

[oldmanbox /)# traceroute vitima.com.br

1 oldmbox (10.0.0.1> 147.526 ms 139.575 ms 139.909 ms

2 router.net.com.br (10.0.0.250) 139.921 ms 149.821 ms 139.936 ms

3 router.vitima.com.br (192.168.0.254> 229.939 ms 309.867

ms 299.925 ms

4 fir.vitima.com.nr (192.168.0.10) 289.899 ms * *

5 nsl.vitima.com.br (192.168.0.1> 259.909 ms * 310.084 ms



Neste exemplo podemos ver que, depois de sair do roteador, no site da vítima os pacotes passam por uma máquina chamada fir.vitima.com.br; antes de chegar ao servidor principal. Provavelmente pode tratar-se de um firewall ou um gateway qualquer. Este exemplo anterior é por demais simplista, não existe um bloqueio efetivo implementado.

O traceroute ainda pode ser utilizado para análise de uma determinada porta. Vamos verificar o exemplo a seguir:

[oldmanbox /]# traceroute -p25 192.168.0.2



Onde -p é O número da porta, no caso 25, de SMTP. Neste caso poderíamos verificar se há uma respotsa da porta 25 na máquina destino. Com isto, podemos testar várias repostas de portas, mas vamos discutir agora uma maneira mais fácil de saber se um serviço está ativo ou não. Utilizaremos para isso a técnica de scanning.

Scanning ou Varredura

Levantadas as informações com as técnicas de footprinting, o hacker passaria para a segunda fase do ataque que seria a varredura ou scanning da rede. Os scanners são programas que percorrem as principais portas e serviços do sistema em busca de respostas. Basicamente existem dois tipos de scanners: os de porta e os de vulnerabilidade. Discutiremos melhor sobre os scanners no Capitulo 2.

Neste passo, o hackervarre a rede em busca de portas abertas ou serviços que apresentem possíveis vulnerabilidades para utilizá-las para a invasão. Este levantamento pode ser muito demorado, dependendo do tamanho da rede. Obtidas as informações, o próximo passo é a invasão propriamente dita.

Normalmente o hacker (o profissional) nunca executa a varredura de sua máquina e sim de uma outra máquina na lnternet.

O Ataque

Basicamente esta é a fase principal do hacker, o ataque, ou melhor, a penetração no sistema. Existem ataques que já não estão em voga, mas ainda são utilizados em sistemas bastante desprotegidos.

Estes ataques são os chamados ataques brute force (força bruta). Os serviços mais comuns atacados por esta técnica são: FTP, Te/net POP, HTTP, Secure Shell (55K), os comandos Remote (rsh, r/ogin, etc.) Existem ainda sistemas vulneráveis a este tipo de ataque. De acordo com um hacker americano, cerca de 20% dos sistemas na Internet ainda são vulneráveis!

O mais utilizado atualmente é o chamado bufferoverflow, que consiste em pôr mais dados num buifer do que ele pode suportar Frequentemente devido a erros na programação, pode-se tomar vantagem deste problema, permitindo a execução de códigos arbitrários, como por exemplo um shell de root! Existem buifer overflows do tipo local e remoto, sendo que este último é a principal forma de acesso não autorizado a um sistema. Muitos, mas muitos sistemas são vulneráveis a este tipo de ataque devido ao desconhecimento de seus administradores.





Outro tipo de ataque são os ataques baseados em CGI, conhecidos como I»put valldation attacks. O mais famoso é o PHF descoberto em 1996 por Jennifer Nyers. Com este ataque se poderia conseguir o passwd de um sistema!

Dica de segurança de Oldm@n

Durante o período de 1 996 e 1 997 o PHF foi a coqueluche entre os hackers para roubar as senhas de um site. A sintaxe do comando era a seguinte:

http://www.vitima.com.br/cgi-bin/phf?Qalias=x%Oa/bin/cat%20/etc/passwd

Em muitos casos o passwd não tinha a proteção do shadow, então...



Nos dias de hoje já existem novos tipos de ataque explorando este tipo de vulnerabilidade. Vamos analisá-los nos próximos capítulos.

Após a Invasão



Quando o hackerestá dentro do sistema, ele prepara seu ambiente de trabalho executando quatro operações básicas:

Utilização de rootkits

Um rootkit com põe-se de um conjunto de programas do sistema devidamente 5 para efetuar operações não autorizadas. Por exemplo, o programa

'poderia ser substituído por um inetddo rootki4 que além de executar as ~raçoes normais, poderia abrir uma entrada para um hacker sem maiores

s! Os rootkits contém o que nós chamamos de cavalos de Tróia ou ~jans e são a praga dos administradores de sistema.





é uma ferramenta que captura, armazena e analisa pacotes que trafepela rede. Mas para que um hackerexecutaria um sniffer? Simplesmente

- capturar senhas! Isto mesmo: com um sniffer sendo executado em um todas as pessoas que estivessem executando um logon a este servidor; suas senhas capturadas.

Um exemplo de arquivo resultante de um sniffer, teria o seguinte resultado:

l0.0~0.l => ns2.vitima.com.br (ll0~

USER oldman

PASS hacking

STAT

QUIT

- - - - - [FIN]



O logon do usuário é oldman e sua senha hacking.

Dica de segurança de Oldm@n

Imaginem um sniffer sendo executado em um provedor: o hacker conseguirá dezenas de contas para utilizar como meio de invasão incógnito. Um hacker nunca utiliza sua prórpia conta de acesso àlnternet, normalmente utiliza a conta roubada de alguém de um provedor.



Mas os sniffers podem ser facilmente detectados por colocarem os dispositivos de rede em modo promíscuo (promiscuous mode). Contudo, com a utilização de um rrotkit, o hacker pode evitar esta detecção. Nos próximos capítulos estes detalhes serão explicados.

Colocação de Backdoors



Um backdooré um programa que permite o acesso de um hackerao sistema através de uma porta TCP ou UDR O backdoor pode vir junto com um rootkít, ou ser implementado pelo hacker. Na prática, o backdoor permite abrir uma conexão do tipo cliente/servidor; gerando um acesso a um shell com perfil de root.

O exemplo a seguir pode melhor ilustrar esta situação:

(oldmaribox /]# telnet 192.168.0.2 42000

Connected..

password: *******

[/]#





O backdoor está respondendo na porta 42000, bastou o hacker fazer um te/net

a esta porta, digitar uma senha definida por ele e adquirir o shell de root.

Existem vários tipos de backdoor, inclusive baseados em ICMP. Analisaremos

melhor no capítulo sobre backdoors estas ferramentas.

Limpeza de Logs

Feita a invasão, colocada as ferramentas (trojans e backdoors), vem a última fase da invasão, ou seja, apagar os rastros da presença no sistema. Normalmente os /7ackersse valem dos Iogcleaners, ou seja, programas que limpam os logs do sistema apagando sua presença propriamente dita. Estes programas alteram as informações em vários arquivos de segurança, causando assim a não detecção da invasão.

Dica de segurança de Oldm@n

Alguns programas de limpeza de logs são realmente eficientes, inclusive limpam o arquivo bash history do root e do sistema. Apesar disto muitos hackers foram pegos por terem esquecido de limpar

estes dois arquivos importantes.



A partir daí a máquina está sob a posse do hacker; ou como dizem no jargão ownada, um anglicismo vindo da palavra inglesa owning, que significa tomada, conquistada.

Outros ataques Explorados por Hackers

existe apenas o ataque com o sentido de invadir máquinas. Existem também alguns voltados para o dano e paralisação de sites, bem como propagação virus. Citaremos adiante os mais utilizados pelos hackers.

Denial of Service (DoS)

Trata - se de colocar serviços em máquinas locais ou remotas fora de operação, sem

ter a devida permissão. Esses tipos de ataques são facilmente colocados

em pratica e por vezes de difícil prevenção.
#


#

Os ataques de Denial of Service (DoS) são muito usados porque eles podem temporariamente deixar uma máquina desligada ou travada, e dependendo de qual máquina, até sua rede inteira. O objetivo de quem quer fazer um DoS ésimples e direto: tirar host(s) da rede. Exceto quando são usados em testes em suas próprias máquinas, os DoS's são sempre nocivos.

O primeiro DoS de alguma significância foi o Morris Worm. Foi estimado que algumas das 5000 máquinas afetadas por este worm ficaram fora por várias horas. Na época (novembro de 1988), isto foi um grande desastre para várias instituições, como centros de pesquisas e universidades, mas não teve tanto impacto para o resto do mundo. Hoje em dia, um DoS pode resultar em milhões perdidos.

Distributed Denial of Service (DDos)

Os ataques a grandes sites na Web (Yahoo!, Amazon,etc.) são fruto de uma técnica explorada pelos hackers. o ataque distribuído. Baseado nas técnicas de Denial of Service, é feito através do envio de pacotes de dados em larga escala, para serviços baseados em RPC, que já foram devidamente invadidos.

Em vez de um host, o hacker utiliza uma rede de máquinas espalhadas pela Internet para realizar este tipo de ataque. No Capitulo 3 falaremos mais a respeito.

E-mail Bomba

A técnica de e-mail bomba é nada mais nada menos do que o estouro do espaço reservado para a caixa postal de um usuário. Cada usuário possui, normalmente, um espaço no disco rígido de um sistema para o armazenamento de suas mensagens em sua caixa postal. O objetivo principal do e-mail bomba é o envio contínuos de mensagens até o preenchimento total deste espaço e conseqúentemente o impedimento da chegada de novas mensagens, até que o administrador ou usuário limpem este espaço. Normalmente, o usuário recebe centenas e, às vezes, milhares de mensagens repetidas até que o administrado

consiga bloquear o sistema.

Syn Flooding

Uma requisição de conexão TCP(SYN) é enviada para um computador alvo. A origem do endereço IP no pacote é substituida com um endereço que não está em uso na internet, ou que pertence a outro computador É a técnica conhecida como spoofing, da qual falaremos mais à frente.

O ataque vai então enviar muitos TCP SYN's, sobrecarregando o alvo que tenta responder a todas as requisições com um SYN-ACK. No caso, então, de um IP não existente nenhuma resposta será recebida ao SYN-ACK. A configuração padrão do Windows NT 3.5x ou 4.0 irá retransmitir o SYN-ACK 5 vezes. Agora imagine quantas vezes ele tentará responder às múltiplas requisições de conexão.

Existe um comando simples que vocé poderá executar para verificar se está sob este tipo de ataque no windows, é o netstat Vamos a um exemplo:

c:\) netstat -n -p tcp

Se sua máquina estiver sob ataque, verá algo parecido com isso:

Active Connections

Proto Local Address Foreign Address State

TCP 127.0.0.1:1030 127.0.0.1:1032 ESTABLISHED

TCP 127.0.0.1:1032 127.0.0.1:1030 ESTABLISHED

TCP 10.57.8.190:21 10.57.14.154:1256 SYN_RECEIVED

TCP 10.57.8.190:21 10.57.14.154:1257 SYN_RECEIVED

TcP 10.57.8.190:21 10.57.14.154:1258 SYN_RECEIVED

TcP 10.57.8.190:21 10.57.14.154:1259 SYN_RECEIVED

TcP 10.57.8.190:21 10.57.14.154:1260 SYN_RECEIVED

TCP 10.57.8.190:21 10.57.14.154:1261 SYN_RECEIVED

TCP 10.57.8.190:21 10.57.14.154:1262 SYN_RECEIVED

TCP 10.57.8.190:21 10.57.14.154:1263 SYN_RECEIVED

TCP 10.57.8.190:21 10.57.14.154:1264 SYN_RECEIVED

TCP 10.57.8.190:21 10.57.14.154:1265 SYN_RECEIVED

TCP 10.57.8.190:21 10.57.14.154:1266 SYN_RECEIVED

TCP 10.57.8.190:4801 10.57.14.221:139 TIME_WAIT

Ping Flooding

como Ping of Death (ping da morte), pode congelar ou reiniciar Windows95 e Windows 98. Consiste em enviar pacotes ICMP com tamanhos os de 65000 bytes. O Windows não tem capacidade de gerenciar este ~ho de pacote. Eis um exemplo passo a passo de um ataque:



Antes do Ataque

linux:~# ping 192.168.0.4

PING 192.168.0.4 (192.168.0.4>: 56 data bytes

64 bytes from 192.168.0.4: icmp_seq=0 ttl=128 time=0.5 ms

64 bytes from 192.168.0.4: icmp_seq=1 ttl=128 time=0.5 ms

- 192.168.1.4 ping statistics -

2 packets transmitted, 2 packets received, 0% packet loss

round-trip min/avg/max = 0.5/0.5/0.5 ms

O Ataque

linux:~# ping -f -s 65000 192.168.0.4

PING 192.168.0.3 (192.168.0.4): 65000 data bytes

.......................................................................................................................

- 192.168.0.4 ping statistics --

11440 packets transmitted, 228 packets received, 98% packet loss

round-trip min/avg/max = 0.6/32.0/64.2 ms

Após o Ataque

linux:~# ping 192.168.0.4

PING 192.168.0.4 (192.168.0.4): 56 data bytes

- 192.168.0.4 ping statistics --

4 packets transmitted,0 packets received, 100% packet loss

A máquina foi reiniciada devido ao excesso de pacótes IMCP.

Smurf Attack

Ataques smurf exploram erros de configuração em roteadores que permitem a passagem de pacotes IMCP ou UDP direcionados a endereços de broadcast, transformando redes em amplificadores destes.

Um atque smurf, utilizado um dado número de redes amplificadoras consegue consumir grandes quantidades de banda, tanto destas redes quanto da rede da vítima, tornando inviável o tráfego nas mesmas. A configuração correta de host e roteador para bloquear este tipo de ataque é extremamente dependente de fabricante.

Process-table Attack

O Process-table Attack é um tipo de ataque de Denial of Service relativamente novo que pode ser lançado contra numerosos serviços de rede que usam sistemas Unix.

Este ataque funciona em uma variedade enorme de sistemas Unix, incluindo os sistemas Solaris, Irix e Linux que atuam como Provedores Internet. Para que um servidor fique inoperante, o agressor apenas precisa enviar a ele muitas solicitações de conexao, que por sua vez causam uma sobrecarga no sistema.

Os sistemas Unix comuns trabalham normalmente com um limite que varia entre 600 a 1500 conexões (processos) simultâneos. Entao, quando esse "limite" é atingido, o servidor trava. Todavia, muitos destes servidores Unix podem ser configurados para aceitar até um certo limite de processos simultâneos, o que evitaria este problema, mas nao deixa de ser um "bug" e como tal deve ser corrigido.

Como foi dito antes, um sistema Unix "Standard" possui limites do número de processos que os usuá rios podem executar, mas nâo existem limites no número de processos que um super usuário (root) pode criar, mesmo que estejam acima do limite imposto pelo hardware. Considerando que os pedidos de conexao TCP/IP sâo controlados pelos servidores que estâo executando como root, é possível abarrotar a tabela de processos (process-table) do sistema com múltiplos pedidos de conexâo a esta máquina.

este ataque é bem sucedido, ele impede a máquina de executar qual-quer outro comando, ocorrendo entâo o travamento. Para executar o ataque à

de processos (process-tab/e-attack) o cliente precisa somente fazer uma ~xao ao servidor e nao enviar qualquer informaçao. Assim que o cliente

a conexao, esta conexao se tornará um processo a ocupar uma na tabela de processos do sistema.

nao? Em muitos computadores, o finger é lançado pelo inetd. Os autores do inetd, colocaram várias proteções no código fonte do programa que precisam ser bypassadas para que um ataque possa ter sucesso. Se o inetd receber mais de 40 conexões para um serviço em particular em menos de um minuto, este serviço é desabilitado por 10 minutos. A razão disto não é proteger o servidor contra ataques à tabela de processos, mas proteger o servidor contra alguns softwares que possam gerar muitas conexões rapidamente.

Resumo

Neste capítulo vimos os perfis dos atacantes e como podemos distinguir cada um deles. Vimos ainda o passo-a-passo de um ataque, desde os modos de operaçao na aquisiçâo das informações de um sistema, sua invasao e a eventual tomada do sistema pelo hacker. Analisamos também outros ataques, estes de cunho destrutivo, e que têm o principal objetivo de paralisar um site ou prejudicar um usuário.

Estes ataques podem partir desde e-mails bomba até a sobrecarga de serviços que causem a interrupçâo da operaçào de um servidor.



Atacar vindo das sombras

No Capítulo 1 conhecemos o perfil e a técnica básica de invasao utilizadas por hackes. Neste capítulo analisaremos algumas das principais ferramentas disponlveis na Internet, bem como exploits e várias outras que podem ser utilizadas para estes fins. O hacker sabe onde encontrar e utilizar estas ferramentas, e depois de um determinado tempo, poderá tornar-se habilidoso em programaçao e começar a criar as suas próprias, ou aprimorar as existentes.

Scanners

Como dito anteriormente, scanners são ferramentas que analisam redes procurando por vulnerabilidades que possam comprometer a segurança do local.

Existem inúmeros tipos de scanners, e eles são de grande ajuda tanto para como para administradores de sistemas. Os mais populares são de dominio público (GPL), porém também existem scanners comerciais disponíveis para a plataforma Microsoft).

Conhecer as fraquezas do seu sistema é algo fundamental, pois tenha certeza de que cedo ou tarde alguém de fora vai bater à sua porta, e, quando isso acontecer, é bom que esteja preparado.

Periodicamente são lançados scanners que detectam as vulnerabilidades mais recentes, cabendo ao administrador providenciar o patch de correção, antes que explorem qualquer vulnerabilidade do sistema. Observe que um scanners só detecta o problema, raros são aqueles que automaticamente se aproveitam 1 da falha para obter algum nível de acesso.

Vale lembrar que não basta fazer uma sondagem no seu sistema, é preciso ficar atento às listas de discussão relacionadas à segurança. Assim você poderá rapidamente saber de possíveis bugs e correr atrás do patch. Lembre-se de sempre haverá exploits private os quais circulam num círculo fechado de hackers. Existem dois tipos de scanners: port scanning e scanners de vulnerabilidade.

Port Scanning

Basicamente, verifica as portas abertas de um sistema. Existem stealth port scanners, que podem não ser detectados, sendo necessárias ferramentas especializadas para sua detecção. O objetivo de um port scan é detectar as porta de serviços de um sistema, fazendo-as responder cada vez que forem consultadas. Isto permite que o hackerpossa determinar se certas portas estâo ou não abertas no sistema.

Existem alguns tipos de port scanning muito utilizados, são eles:

TCP CONNECT SCAN - Este tipo de scanner conecta em uma porta e executa os três handshakes básicos ( SYN, SYN/ACK e ACK). Este tipo de scanner é facilmente detectável.

TCP SYN SCAN - Conhecido como ha/f-open scannig, devido à conexão TCP durante a operação. Com isto, evita que o log da operação fique no sistc ma. Normalmente o programa envia um pacote SYN para a porta alvo, se recebido um SYN/ACK do alvo, o programa deduz que a porta está no modo escuta, caso seja um RST/ACK, significa que a porta não está ativa naquele momento.

UDP SCAN - Trata-se de um dos processos mais lentos de scannin~ pois depende de fatores de utilização da rede e de recursos de sistema. O scanner envia um pacote UDP para a porta alvo, se a resposta for ICMP port unreachable, a porta encontra-se fechada, caso contrário, o scanner deduz que a porta está aberta.

TCP NULL SCAN - Neste caso, o scannerdesativa todos os flags e aguarda do alvo um RST para identificar todas as portas fechadas. Baseado na RFC 793.

TCP FIN SCAN - Neste caso, o scanner envia pacotes FIN para a porta alvo e espera o retorno de um RST para as portas fechadas. Baseado na RFC 793.

TCP XMAS TREE SCAN - Neste caso, o scanner envia pacotes FIN, URG e PUSH para a porta alvo e espera o retorno de um RST para as portas fechadas. Baseado também na RFC 793.

FERRAMENTAS

Vamos agora descrever cada uma das ferramentas de port scan mais populares.

NMAP - Network Mapper

Autor: Fyodor

Plataforma: Linux

URL: http://www.insecure.org/nmap

Licença: GPL

O nmapé um dos scanners de porta mais populares entre hackers e especialistas

de segurança. Escrito por Fyodor é de simples operação e capaz de realizar até

Stealth Portscans. A seguir temos um exemplo de um simples port scan com o

nmap em uma máquina local.

[root@EBOLA nmap-2.12]# ./nmap -sS 127.0.0.1

Starting nrnap V. 2.12 by Fyodor (fyodor8dhp.com, www.insecure.org/nmap)

WARNING! The following files exist and are readable:

/usr/local/lib/nmap/nmap-serviçes and ./nmap-services. I am choosing

/usr/local/lib/nmap/nmap-services for security reasons. set NMAPDIR=. to

give priority to files in your local directory

Interesting ports on localhost (127.0.0.1):

Port State Protocol Service

22 open tcp ssh

23 open tcp telnet

25 open tcp smtp

79 open tcp finger

111 open tcp sunrpc

113 open tcp auth

421 open tcp ariel2

513 open tcp login

514 open tcp shell

515 open tcp printer

Nmap run completed - 1 Ip address (1 host up) scanned in 1 second



Trata-se de um excelente portscan. Nós o recomendamos para uso na detecção de portas em sua rede. Depois de aberto no sistema vá ao diretório /doc e veja o arquivo nmap_doc.html para toda as opções do sistema.

Netcat

Autor: Hobbit

Plataforma: Linux/NT

URL: http ://packetstorm . securify.com/archives/scanners

Licença: GPL

O Netcat ou NC, como muitos falam é uma espécie de utilitário PPTO (pau toda a obra). E um scanner simples, rápido e eficiente, além de ser capaz de executar comandos remotos em uma espécie de shell. A seguir temos um exer de um simples portscan com o NC em uma máquina local.

[root@EBOLA /nc]# ./nc -u -v -z -w2 127.0.0.1 1-140

[127.0.0.1] 139 (?) open

[127.0.0.1] 135 (?) open

[127.0.0.1] 110 (pop-3) open

[127.0.0.1] 80 (http) open

[127.0.0.1] 79 (finger) open

[127.0.0.1] 21 (ftp) open

Durante o livro veremos outras funções interessantes do NC. A documenta está contida no arquivo readme no diretório de instalação do NC.

SuperScan

Autor: TLsecurity

Plataforma: NT/WIN 95/98 e WIN 2000

URL: http ://packetstorm . secu rifv. com/a rchives/ntscanners

Licença: GPL

O SuperScan é um scanner baseado em GUI voltado exclusivamente para o ambiente Windows. E capaz de realizar a varredura de várias portas em uma rede, baseado em ambiente Microsoft e gerar reports em arquivos. A seguir; temos um exemplo de sua tela principal com uma operação de scanning sendo realizada.

Este scanner é o ideal para quem tem redes baseadas em ambiente Microsoft.

Scanners de Vulnerabilidade

Utilizado para a detecção de vulnerabilidades em softwares que estão sendo executados em um sistema. Este tipo de scanneré muito útil para o hacker, já que através disto ele pode escolher qual o exploita ser utilizado para a invasão. Existem diversos scanners de vulnerabilidade, mas muitos codersdesenvolvem scanners private (scanner de uso pessoal não divulgados) e que utilizam para fins não muito éticos.

Ferramentas

Vamos agora descrever os scanners de vulnerabilidade mais populares.

NESSUS

Renaud Deraison ma: Linux /NT

http://www.nessus.org a: GPL

Para compilá-lo no Linux, será necessario a libgtk, glib, lib-gmp, e algumas outras libs gráficas, pois ele foi desenvido para o ambiente X-windows.

Desenvolvido pelo francês Renaud Deraison, esse scanner possui características bastante interessantes. O Nessus roda em cima do seu próprio daemon, permia você colocar o nessus daemon em um determinado host e a partir do cliente scanner toda uma subnet co como se estivesse partindo tudo do host onde está o seu daemon. Ele pode checar por até 208 vulnerabilidades. Possui uma interface bastante amigável e já esta na versão 0.99.

Na versão NT, ele se encontra em um versão menos avançada, mas assim mo possui uma excelente recursividade.

WHISKER

Autor: rain.forest.puppy

Plataforma: Linux

URL: http ://packetstorm .securify.com/archives/ntscanners

Licença: GPL

Notas: Para executá-lo no Linux, será necessário o interpretador PERL instala

Excelente CGI scanner, se diferencia dos outros pelos modos de ação, com você pode usar um proxy e outras táticas anti-IDS. Verifica um grande número de vulnerabilidades. Veja, a seguir, um exemplo do whisker em uma m local.

- whisker / vl.0.0 / rain.forest.puppy / ADM / wiretrip -

Usage: whisker -s script.file ((-n input.file) | (-hhost) | (-H list)) (-1 log.file)

-s specifies the script database file **

-n nmap output (machine format, v2.06+) *

-h scan single host (IP or domain) *

-H host list to scan (file) *

-v use virtual hosts when possible

-v verbose. Print more information

-d debug. Print extra crud++ (to STDERR)

-p proxy off x.x.x.x port y (HTTP proxy)

-l log to file instead of stdout

-u user input; pass XXUser to script

-I IDS-spoof mode-encode URLs to bypass scanners

-E IDS-evasive mode-more IDS obfuscation

-i more info (exploit information and such)

-N query Netcraft for server OS guess

-S force server version (e.g. -S "Apache/l.3.6">

** required * optional; one must exist



Vete Scan

Autor: Vete Girl

Plataforma: Linux

URL: http ://www.self-evident.com/vete-scan

Licença: GPL

Trata-se de um scanner de vulnerabilidade para ambiente Linux e que é uma excelente ferramenta de detecção de problemas. Desenvolvido por Vete Girl é altamente recomendado.

Outros Scanners Interessantes

SATAN (Security Administrator's Tool for Analyzing Networks)

Autor: Dan Farmer

Plataforma: Linux

URL://www.fish.com/satan

Licença: GPL

Nenhum livro de segurança pode deixar de falar deste software,o SATAN é o avô dos scanners de vulnerabilidade. Escrito em PERL, foi feito para ser executado e gerar relatórios em um browser e foi a primeira grande ferramenta utilizada por hackers para detecção de vulnerabilidades em sistemas. E muito interessante executar o SATAN para fins de aprendizado das técnicas de scannig. Atualmente muitos administradores utilizam este software para detectar vulnerabilidades em suas redes.

SAINT (Security Administrator's Integrated Network Tool)

Autor: World Wide Digital Security, Inc.

Plataforma: Linux

URL: http://www.wwdsi.com/saint

Licença: GPL

O SAINT é considerado por muitos uma evolução do SATAN. Com suporte detecção a vários tipos de vulnerabilidades como DoS, ataques de CGI, ataque a POP, buffer overflows, etc. o SAINT tornou-se uma ferramenta interessal no que diz respeito à evolução de um conceito. Como o SATAN, o SAINT escrito em PERL e gera os seus relatórios em browser. Existe no site da uma versão web do SAINT o WebSaint, com relatórios gráficos baseados java e SSL para envio das informações criptografadas.

MBCPOPER

Autor: Felipe Cerqueira - MBC LABS

Plataforma: Linux

URL: http://www.mbc-corp.com.br/produtos

Licença: GPL

Desenvolvido pe,la equipe da MBC para detecção de vulnerabilidade no ser'~ POP QPOPER. E um típico scannervoltado para uma aplicação específica.

Material de Referência

Existem outros scanners que vale a pena serem visualizados. Estes são pequenos scanners que servem para orientar o administrador, a fim de entender o funcionamento destas ferramentas.

No site www.packetstorm.securify.com existem várias delas, vamos citar mas interessantes:

Nome Descrição Plataforma

propecla.c Um scanner de porta para redes Linux

classe C. Muito básico para quem

deseja conhecer o funcionamento

destas ferramentas. Escrito em C.

Contido no site http://packetstorm/securify.com/archives/scanners.

CGI_scanner_v1 .51.11. c Scanner que checa uma série de Linux

vulnerabilidades em CGI's.

Escrito em C.

Contido no site http ://packetstom.com/archives/scanners

portscan.c Scanner simples, rápido e eficiente. Linux

Pode ser encontrado em

http://www.giga.or.at/pub/hacker/unix/portscan.c







Ocultando-se nas Sombras

O Spoofinge outras Técnicas

Vamos imaginar o seguinte cenário:

"Sexta feira, Joãozinho, o Hacker; resolveu invadir um servidor localizado no endereço 192.168.0.1. Como ele não conhece ainda muito desta máquina, precisa scannear para levantar as vulnerabilidades e as portas abertas deste sistema. Como ele poderá fazer isto sem ser detectado????"

Um hacker como Joãozinho terá que se pre~paor em não deixar rastros de seu endereço IP no momento em que executar a operação de scanning. Primeiro, ele não sabe o que está instalado naquele sistema (podem existir ferramentas de detecção!), e arriscar-se por pouco não vale a pena. Como nosso hacker agirá?

Existem várias técnicas utlizadas pelos hackers profissionais, e uma delas envolve a seguinte rotina:

a) Conectar-se ao provedor com uma senha roubada - O hacker se conectará a um provedor qualquer com uma senha conseguida com um do seus muitos sniffers espalhados pela Internet. Uma vez logado e autenticada com esta senha, ele começará o ataque.

b) Acessar shells - Uma vez conectado, ele acessará via backdoors várias máquinas que invadiu até chegar a uma que contenha suas ferramentas de trabalho.

Técnicas Básicas

Trusted Host

A primeira técnica é do trusted host, ou seja uma máquina a que é permitido o login sem fornecimento de senha, ou melhor; sem uma validação. Este host está definido no arquivos /etc/hosts.equiv do sistema. Assim o host passa a ser uma máquina confiável a este sistema.

Outro método é utilizando os serviços do tipo remote (rlogin, rsh, etc.) potencialmente muito perigosos e explorados para invasão.

Wingates

Trata-se de hosts espalhados pela web, que permitem conexão e a partir deles conexões a outros servidores. O atacante conecta-se em um servidor deste tipo e executa um telnet a um host alva. Com isto, o IP que aparece no log do atacado é do wingate e nunca do atacante real.

Anonymizer

Trata-se de um serviço que permite um usuário navegar anonimamente pela Web. Este serviço é comum hoje em dia para aqueles que querem estar livres de cookies e scripts de rastreamento. Trata-se de um proxie do qual o usário se conecta e a partir daí pode ocultar-se atrás do mesmo.

Escondimento de Proxies

Trata-se de navegar utilizando proxies públicos espalhados pela Web. O atacante configura seu navegador para acessar um proxie. Em seguida deste proxie, conecta-se a outro proxie e assim sucessivamente. A desvantagem principal éque a partir de um determinado número de proxies encadeados, a navegação torna-se extremamente lenta.

Shells Invadidas

Quando um hacker possui uma ou várias shells espalhadas pela Internet, as utiliza como trampolins de ataque. Inicialmente se conecta a uma das shells e desta se conecta em outra e assim sucessivamente, até de chegar a última delas e iniciar o ataque. E muito comum este tipo de ataque.

ARP Spoofing

Basicamente explora o serviço de ARP (Address Resolution Protocol), que tem como principal função resolver endereços físicos de hardware com o IR No ato de uma sessão o ARP carrega o endereço IP da origem para o destino. Neste tipo de ataque é forjado o IP da origem, mas o endereço de hardware permanece o original do atacante.

Ferramentas

Existem algumas ferramentas conhecidas para Spoofing, apesar de que as técnicas atuais dispensam as mesmas e o hacker, utiliza suas shells para realizar os ataques. Vamos falar de algumas principais:

Zodiac - DNS Spoofer

Autor: Smiler e Teso Team

Plataforma: Linux

URL: http ://packetstorm.securify.com/spoof

Licença: GPL

O zodiac é um spoof de DNS, que explora vulnerabilidades encontradas neste protocolo. Pode ainda executar tarefas de snifflng e spoof local de DNS. Desenvolvido com Smiler; juntamente com a equipe da Teso, é uma ferramenta bastante eficaz.

Jizz - DNS Spoofer

Autor: Desconhecido

Plataforma: Linux

U RL: http ://bobo.urs2.net/computer_security/152cscripts/jizz.c

Licença: GPL

O jizz é um dos primeiros DNS spoofers criados para a web. Apesar de estar ultrapassado (o próprio zodiac é considerado seu sucessor). E intereessan como elemento de estudo para o profissional de segurança.

Teispoofer

Autor: Vector X

Plataforma: Linux

Arquivo no CD: linux/spoof/sources/telspoof.c

Licença: GPL

Um simples spoofer baseado no protocolo telnet.

Resumo

Neste capítulo estudamos profundamente os port scanners, analisando os mc comuns utilizados pelos hackers. Vimos também os scanneis de vulneiabilldac como funcionam e como podem ser utilizados. Mostramos ainda alguns scann~ simples que podem se tornar objetos de estudo do usuário em seu dia a di Vimos também as técnicas de spoofing que consistem em usar endereços faís ou shells invadidas para atacar outras máquinas.

Os Ataques

Como é feito o Show

Depois de levantadas as informações com os scanners, o hacker deverá agora explorar as possibilidades levantadas por este tipo de ferramenta. Normalmente, o conjunto de ferramentas utilizadas podem ser encontradas na Internet em diversos sites, desenvolvidas por ele ou então conseguidas no underground da web.

Como comentamos no primeiro capítulo, existem várias formas de ataques possíveis, as mais populares são:

- Buifer Overflows (locais e remotos);

- DoS/DDoS

Cada uma destas técnicas citadas, são utilizadas pelos hackers de acordo com seu modo de operação e de ataque. Iremos analisar neste capítulo como estas ferramentas são utilizadas e quais são as mais importantes no meio dos hackers.

Buffer Overflows

Os programas que manipulam variáveis necessitam de buffers, que são área da memória onde são armazenados dados que estas mesmas variáveis recebem. Esta área normalmente é limitada e, quando em um determinado momento, há um estouro desta área por um excesso de informações, ocorre o Buffer Overfiow, ou estouro do buffer.

O Stack

A principal função da CPU é o processamento e movimentação de dados. Ei quanto processa esses dados, a mesma precisa de um lugar para rapidamen salvar informações importantes devido ao espaço limitado dos registradon ("células de memória"). Essa informação é salva no stack, uma parte muito especial da memória que pode ser acessada com algumas instruções e assembler. O stack é variável em tamanho e posição.

A primeira informação guardada no stack será a última a ser lida, e a última ser guardada será a primeira a ser lida, esse sistema é chamado de LIFO, ou last in, first out (ultimo dentro, primeiro a sair). Vamos a um exemplo. Vamos executar um programa (em certos casos, para conseguir o perfil de root... Como o stack pareceria quando o processo chamasse as suas variáveis dinâmica.

.

. .

. ... .

|----------------------- .

-2048 bytes | local arrayl [1024] | ...

|-----------------------|

-1024 bytes | local array2 [1024] | size 1024 bytes

|-----------------------|

posiçao atual do stack | base pointer | size 4 bytes

|-----------------------|

+4 bytes | return address | size 4 bytes

|-----------------------|

+4 bytes : parametros ... | ...



As variáveis são diferentes, e a informação é guardada no stack. Todo CPU usa um stack pointer, para marcar a posição atual (é chamada de SP). As partes serem analisadas serão o local array2 e o return address.



O Return Address

Quando um código é executado, a CPU salva um retum address no stack, se o processo é finalizado, a CPU pula e acha o retum address. Se o processo salva mais bytes em uma variável local do que seu tamanho normal, irá acontecer o overwrite, sobrescrevendo o return address antigo, e assim será nomeado overflow.

Se (1024+8)1032 vezes o caractere "x" for escrito no array2 local,o processo irá escrever novamente o retum address. E o stack ficará na seguinte situação:





-2048 bytes local arrayl[1024] 1024 times "X"



4 times "X"

+4 bytes 4 times "X"

-1024 bytes posiçao atual do stack







+4 bytes : parametros ...

size 1024 bytes size 4 bytes size 4 bytes



Com isto, é possível executar qualquer código arbitrário neste momento. Basta descobrir o return address e manipulá-lo!

-2048 bytes local arrayl [1024].

-1024 bytes código arbitrário

posiçao atual do stack

4 bytes de lixo

+4 bytes jmp para o çódigo



+4 bytes : parametros ...

Shellcode

O shellcode é basicamente uma série de comandos em assembler que o hack escreve no stacke modifica o retum address para voltar ao stack Assim, poc inserir sua instrução dentro de um processo vulnerável e então executá-lo, extamente no stack O principal objetivo é escrever um código em assembler; qu execute um shellcom perfil de root. É assim que a operação é feita.

HellKit

Utilitário criado com o objetivo de facilitar a vida de shellcode-writers, com ele possível obter um shellcode em C. É gerado um output file, conhecido com hellcode.c que contém o shellcode sem null bytes. O HellKit pode criar shellcode de ate' 65535 (elevado a 16 - 1) bytes. O HellKit foi criado para operar en máquinas Linux/x86.

O HeIlKit atua nas seguintes Syscalls:

- open

- dose

- execve

- chroot

- chdir

- dup

Um simples exemplo pode ser visto no arquivo sample.c que contém instruçoe<>

{

char *sh - "/tmp/sh",

*owner = "root";



chown(sh, 0, 0>; chmod;

}



E com o HelIKit atuando:

./driver sample.c

compiling sample3.c

turning data to .text ...

recompiling ...

objdumping ...

analyzing...

Stealth's supa-dupa helícode-generator. Double head-kick edition.

warning: defaulting hell-function to 'mam'

found <_start> - skipping.

found - skipping.

found <_do_global_dtors_aux> -Skipping.

found - skipping.

found - 0K. Do it.

found <_do_global_ctors_aux> -Skipping.

found - skipping.

using 'O1' for encryption.

cleaning.

Current helícode can be found in heilcode . c

neuro-attack:~ /cod3 /hellkit/ src$

neuro-attack:~/cod3/hellkit/src$ cat hellcode.c

/*** Generated by Stealth's hellkit v1.1

*** Don't edit!

***/

char hell[) =

"\xea\xoc\x2e\x75\x6c\x71\x2e\x72 \x69\xOl\x73 \x6e\x6e\x75\xOl\x80" "\xed\xs6\x2a\XOl\XOl\x8c\x75\x27\xOl\x8c\xbd\x26\xOl\xOl\XOl\XOl\x54\X88\~"

~

~

"\xol\~\xec\XOc\x0l\XOl\)(52 \x88\xf2\xcc\x8l\x8c\x64\xf9\x5a\~f\XB8\xed\x5C" "\xc2\x91\x91\x91";

int main<) int (*f) () f = hell; printf("%d\n", strlen(hell>



}



neuro-attack: /cod3 /hellkit/src$



O 'driver' acompanha o HellKit; ele toma os cuidados necessários para compil~ çáo do código com syscalls PIC (Position Independent Code), ou seja1 as fu, ções que permitem ao hackeracessar o sistema.

É um excelente programa para aqueles que fazem exploits, em casos de shellcock muito complexos como o do exploit do wu-ftp ou do bind, tornando-se um ferramenta muito útil para os coders.

Ferramentas Exemplos

Como nosso intuito não é ficar ensinando como utilizar buifer overflows e sirr esclarecer o que eles fazem, damos exemplo de dois clássicos e que até hoje são explorados pelos hackers. Vamos a eles:

iishack

Autor: Eletronic Eye

Plataforma: NT

URL: http://www.eeye.com

Licença: GPL

O overflow existe na ISM.DLL no NT que manipula os arquivos .htr, utilizados para troca de senhas remotamente. Esses arquivos são instalados por defaul no lIS 4.0, sendo portanto uma das maiores vulnerabilidades existentes no NT

Existia somente uma versão em assembler para ambiente Windows, mas ft portada para Linux uma versão deste buffer overflow em C para ataques em NT

O exemplo de um ataque é o seguinte:

Oldmbox# . /iishack www.vitima.com 80 /tmp/ncx99.exe



Onde o ncx99.exe é um trojan, baseado no netcat, onde abre a porta 99 par um shell DOS dentro do NT; Em seguida o hacker digita a seguinte linha de comando:

oldmbox$ telnet www.vitima.com 99

Connecting

C:\)

O hacker tem acesso total ao drive C da máquina.

Lpr_exploit.c

Autor: Aleph One

Plataforma: Unix/linux

URL: http://www.hack.co.za

Ucença: GPL

Este buifer overflow é considerado um clássico pelos hackers, já que explora um ataque ao serviço de LPR do Unix/Linux. Através deste código é possível conseguir um shell com perfil de root em um sistema. Durante muito tempo vários hackers utilizaram este buffer overflow para invasões em máquinas espalhadas pela Internet.

Oldm@n aconselha: Buffer Overflow faz mal a sistemas!

Os buffer overflows são uma praga para qualquer administrador de sistemas. Quando um programa tem uma vulnerabilidade deste tipo, rapidamente é codificado um exploit que o explora.

Se você quiser conseguir mais exemplos desses programas, recomendo a visita a dois sites:

http:llpacketstorm.securify.com

http://www.hack.co.za

http://www.bufferoverflow.org



DoS (Denial of Service)

Como vimos no Capítulo 1, os ataques de Denial of Service (DoS) são muito usados porque podem temporariamente deixar uma máquina desligada ou travada, e dependendo de qual máquina, até a sua rede inteira.

Os ataques de DoS batem diretamente nas implementações do IP. Podem ser feitos para funcionarem em diversas plataformas. Se o DoS utilizado ainda não tiver um patch, uma correção lançada normalmente pelo fabricante, será mu usado e na grande maioria das vezes terá o efeito desejado.

Os programas que causam DoS's normalmente são escritos para uma plataforma (Linux por exemplo) atacar outra plataforma (Windows 95 por exemplo) quando o código é lançado, geralmente é melhorado por algum(ns) programadores, lançando em pouco espaço de tempo uma versão atualizada do mesmo.

Acredita-se que os principais motivos dos ataques de DoS, sejam os seguinte

1. Para obter acesso. Algumas vezes, um denial of service pode fazer parte um ataque para se obter acesso no sistema. Por exemplo: 'syn-flooding' po fazer parte de um método de IP-spoof. Isto seria utilizado para sabotar; roubar informações ou simplesmente desacreditar uma instituição.

2. Vingança. Um 'DoS' ataque pode ser parte de uma vingança contra um usuário ou administrador específico. O hacker pode ter sido prejudicado por algum indivíduo ou instituição e resolve vingar-se dos mesmos.

3. Razões político-econômicas. Cedo ou tarde algumas organizações percel:

rão e entenderão o potencial de se destruir o sistema e como fazê-lo. Isto

pode ser utilizado em atos de ciberterrorismo, guerra eletrônica, etc. Durante

o confronto de Kosovo, hackers americanos sabotaram vários sistemas eletronicos a mando do governo dos EUA.



O DoS mais simptes do mundo: O Ping da Morte

O ping da morte é considerado um dos DoS mais antigos e simples do mundo contra sistemas Windows. Descobriu-se um bug seríssimo no TCPIIP da Microsoft no recebimento de pacotes icmp echo_request com 65000 bytes de tamanho. De uma estação Linux numa rede mista era possível travar estações Windows 95/98. O comando era o seguinte: ping -l 65000 ip_da vítima -f > /dev/null

A Microsoft urgentemente lançou um patch para a correção deste problema, mas muitas pessoas não o instalam, confiando na integridade do sistema.

Hoje em dia o DoS cedeu lugar a uma técnica mais terrível e potencialmente destruidora: o DDOS. Como vimos no Capítulo 1, trata-se basicamente de um ataque distribuído, e é feito em cima da arquitetura cliente servidor. O atacante tem acesso (geralmente através da invasão) a shells (0C48) em bandwidths extremamente altas. Estes hosts são conhecidos como Masters, ou Master Controlers. Estes Masters controlam uma série de nós ou daemons, espalhados pela Internet, dos quais irão gerar o ataque.

Os daemons são máquinas espalhadas pela web com várias falhas de segurança, falta de patches de atualização, etc. que recebem um cavalo de tróia (trojan) em algum de seus arquivos do sistema. Este trojan contém o código do daemon que se anuncia a uma máquina Master na rede, enviando sua localização e em que portas está escutando.

Os masters por sua vez têm total controle destes daemons, enviando quando necessário as instruções para ataque a um alvo. Existem métodos dos quais os masters podem ser desligados ou trocados, causando assim dificuldade na localização de um atacante. Com isto o atacante tem nas suas mãos uma rede para atacar qualquer vítima na Internet.

Normalmente os atacantes utilizam a técnica de flood através do protocolo UDP onde a vítima literalmente recebe milhares de pacotes por segundo e simple mente é derrubada, pelo excesso de pacotes recebidos.

Esta técnica Possui sutis diferenças, mas basicamente a filosofia empregada pelos atacantes é a mesma em muitos casos.

Ferramentas DoS

Teardrop

Autor: Mike Schiffman

Plataforma: Unix/linux

URL: http ://www.ryanspc.com/exploits/teardrop. c

Licença: GPL

Falar do Teardrop é falar de um dos clássicos no que diz a respeito aos ataque DoS. Foi uma das primeiras ferramentas a serem utilizadas em ataques DoS.

Mesmo os primeiros sistemas Linux, eram afetados por este programa.

Basicamente enviava pacotes icmp fragmentados atingindo portas UDP como 7, 13, 19 e 37, causando o travamento da máquina ou até mesmo sua reinicialização. A máquinas Microsoft rodando NT 3.5 e NT 4.0 eram constantes vítimas destes ataques. Hoje em dia já foram publicados vários patches para o Teardrop, mas durante muito tempo foi uma das piores ferramentas criadas em termos de ataque.

nestea.c

Autor: dissidentes da rhino9?

Plataforma: Unix/linux

URL: http ://www. webstore.fr/~tahiti/nestea .txt

Licença: GPL

Outro clássico baseado na mesma filosofia do teardrop.c. Era um dos preferidos pelos hackers para ataques a plataformas Linux. Hoje em dia já existem vários patches para o mesmo. O nestea deu origem a uma versão atualizada, o chamado nestea2.c, que pode ser encontrado em http://www.foxxnet.com/belz0fwar/nestea2.c.

KPK

Autor: misteri0

Plataforma: Unix/linux

U RL: http://packetsorm .securify.com/DoS

Licença: GPL

O KPK é um shell script simples que executa uma série de DoS, já precompilados (o newtear; teardrop, jolt, etc). E interessante para aqueles iniciantes que desejam destruir e não invadir. E considerado por muitos atacantes uma espécie de quebra-galho em termos de DoS, pois consegue realizar ataques contínuos a um alvo específico.

dosnuke.exe

Autor:Calvin Lee - Calvin Labs

Plataforma: Win95/98

URL: http://i.am/devil

Licença: GPL

O dosnuke é um DoS feito para ambiente Windows. Simples de execução realiza ataques de flood em uma porta especifica (por default a porta 139 é a escolhida.). Trata-se de um programa útil para aqueles que elegeram o Windows como plataforma de ataque. Trata-se de um DoS padrão sem muitos aperfeiçoamentos.

Outras Ferramentas Populares

Nome Descriçao Plataforma

targa . c Um DoS clássico e um dos mais utilizados contra Linux

máquinas 95. Atualmente encontra-se na versão 3.

Encontrado em www.packetstorm.securify.com

jolt .c Outro DoS clássico também utilizado contra Linux

máquinas 95. Encontrado em www.packetstorm.

securify.com

n00.c Ataques de DoS baseados em ICMP. Encontrado Linux

em http://www.rat.pp.se/hotel/panik/archive/n00k.c

sunkill DoS específico contra máquinas Solaris 2.5.1. Linux

Encontrado em http://underground.simplenet.com/centrl

/exp-jan/ sunkill.c

hanson. C DoS para máquinas que estão executando MIRC,

Encontrado em http://webm43ac.ntx.net/Kurupt/hanson .c Linux

Ferramentas DoS

Inicialmente, existem ferramentas que podem servir como meio de implemei este tipo de ataque. Vamos analisar cada uma delas a seguir:

TrinOO ou Trinoo

Autor: Mixter

Plataforma: Unix/linux

U RL: http://packetstorm .securify.com/distnbuted

Licença: GPL

O projeto Trinoo (como é chamado) consiste em uma arquitetura Master Daemon. Seus daemons foram inicial mente baseados no protocolo UDP (acredita-se que já existam variantes em seu código fonte que explorem outros protocolos) e utilizam várias formas de exploiting em serviços de buiffer overrun baseados em serviços RPC como: statd, csmd e o ttdbserverd

Os daemons foram originalmente compilados e executados em sistemas Solaris 2.5.1 e Linux Red Hat 6.0, e acredita-se que muitos Masters e Daemons estejam espalhados pela Web em cima destas plataformas.

Um caso famoso de uma rede Trinoo foi um ataque de SYN Flood em cima uma máquina na Universidade de Minnessota, no dia 17 de agosto de 1999 Esta rede Trinoo era baseada em 227 sistemas, entre eles 114 da Internet 2 rede da universidade ficou fora do ar por 2 dias.

Tribe Flood Network I Tribe Flood Network 2K

Autor: Mixter

Plataforma: Unix/linux

URL: http://packetstorm .securify.com/distributed

Licença: GPL

Num projeto TFN como o Tribe Flood, uma ferramenta lança ataques coordenados de Denial of Service de vários atacantes contra um ou mais alvos. Ele possui a capacidade de gerar os seguintes ataques do tipo denial of service: TCP SYN flood atacks, ICMP echo request flood e ICMP direct broadcast (smurf).

O TF/N gera seus daemons de acordo com o tipo de ataque que vai ser perpetrado. A filosofia do ataque é similar ao Trinoo com um Master e seu(s) respectivo(s) daemon(s). Os daemons foram originalmente compilados e executados em sistemas Solaris 2.x.

Normalmente o Master se comunica com os daemons através de ICMP echo reply, com valores de 16 bits binários embutidos dentro do campo de identificação e na porção de dados do pacote. Os valores são definidos durante a compilação dos daemons e os Masters.

O Master necessita de uma lista de endereços IP para seus daemons. O TFN ainda utiliza em seus Masters nas versões mais recentes a encriptaçao do tipo blowfish para ocultar sua lista de daemons!

De acordo com os vários reports de várias organizações de segurança, como a CER, as novas versões dos Masters têm a possibilidade de atualizar a lista de seus daemons remotamente com cópias atualizadas de versões do TFN.

Stacheldraht 1.4

Autor: Barbed Wire

Plataforma: Unix/linux

URL: http://packetstorm .securify.com/distributed

Licença: GPL

O Stacheldraht é mais uma das ferramentas de ataque distribuído que integra as características do Trinoo e do TFN. Consiste em uma arquitetura cliente(s)--> handler(s) -->agente(s)--> vitima(s). Ele possui a capacidade de gerar os seguintes ataques do tipo denial of service TCP SYN flood atacks, ICMP echo request flood e ICMP direct broadcast (smurf).

Os daemons foram originalmente compilados e executados em sistemas Red Hat 6.0 e um dos seus agentes foi encontrado em um sistema Solaris 2.5.

Acredita-se que esta ferramenta tenha sido responsável pelos ataques a grandes site realizados em fevereiro de 2000. Seu autor inclusive chegou a ser preso pela policia alemã e responsabilizado por tais atos.



Dentro da maquina

Quando a máquina é invadida, começa a fase mais importante: o preparo do ambiente. O hacker neste momento se preocupa em plantar ferramentas que permitam o acesso nao autorizado mais tarde (os chamados backdoors), normalmente disfarçadas em Trojans (programas cavalo de tróia). Em seguida colocar uma ferramenta para escutar e se possível capturar senhas: os sniffers.

Por último ele deverá apagar os rastros de sua invasão. Aí entram em cena os chamados log cleanners (limpadores de log), que eliminam qualquer registro de sua presença no sistema.

A maior preocupação do hacker depois de ter invadido uma máquina (ou do

jargão ownado, do inglês owning - apoderar-se) é continuar mais tarde mantendo este acesso. Quando mais hosts ele possuir, poderá manter uma rede

para invasões futuras. Esta estrutura faz com que torne mais difícil sua detecção

e consequentemente sua prisão.

Analisaremos a seguir as principais ferramentas utilizadas neste momento da invasão.





Trojans/RootKits

Os Trojans ou Cavalos de Tróia são programas dis~rçados como programas do sistema operacional e, que executam operações não autorizadas ou de cunho destrutivo. O Trojan é uma das ferramentas preferidas do hacker. Oculto dentro de seus códigos, o trojan contém funções que podem executar funções tais como:

- captura de senhas e logons de usuários;

- modificação dos principais arquivos de log do sistema operacional, ou de utilitários como servidores de correio, web ou proxies;

- abrir backdoors para os hackers;

- roubar arquivos diversos do sistema.

Os Trojans vêm acondicionados em coleções, ou melhor, mascarados como programas inteiros do sistema operacional, nos chamados rootkits. Estes kits contém cópias de programas, como por exemplo o ifconfig, devidamente modifica-dos, com funções de abertura de backdoors, ocultamento de sniffers, envio de arquivos de senhas,' etc. Os trojans são normalmente bem disfarçados e geram dificuldade em sua localização em um sistema. E necessário vários programas de auditoria de arquivos sendo executados em um sistema para sua detecção e exclusão pelo administrador.

Existem classes de trojans que executam funções não autorizadas, comprom~ tendo a integridade do sistema. São eles:

a) Acesso remoto - Trojans que abrem backdoors em portaas TCP, UDP e ICMP em sistemas, permitindo o acesso não autorizado. Podem estar ocultos em programas como o inetd ou até mesmo o Is! Esta é a principal forma de entrada de hackers em sistemas invadidos.

b) Envio de passwords - Trojans que enviam arquivos de senhas, com seus respectivos shadows contidos no sistema operacional via e-mail ou ICQ para um e-mail do atacante. Normalmente, o hacker hospeda este e-mail em sistemas de e-mail gratuito na web de difícil autoria.

c) Keyloggers - Este tipo de trojans é um dos mais interessantes que existem. O programa grava as sequencias de teclas digitadas por um usuário em um arquivo, possibilitando capturar senhas, ou seqüências especiais de operações ou ainda documentos inteiros digitados pelo mesmo.



Windows NT Resource Kit

Autor: Microsoft

Plataforma: Windows NT 4.0

URL: http://www.microsoft.com

Licença: Comercial

O resource kit do Windows NT é considerado por alguns hackers especializa em invadir sistemas Microsoft, um verdadeiro rootkit. Contém várias ferramentas de administração remotas que permitem o shutdown remoto, execução comandos e administração do sistema.

Muitos hackers experientes com o resource kit da Microsoft, desativam servi como a auditoria do sistema, criam usuários e ainda podem limpar os logs sistema. Existem mil maneiras de explorar as ferramentas do kit e com elas derrubar um domínio NT.

Sniffers

Quando um hacker obtém status de root num sistema, além de uma ou vá backdoors, outra coisa freqüentemente observada é a técnica do sniffing. Com o sniffer é possível registrar todo tráfego TCP/IP em um arquivo em texto plano. Pode –se assim, sem esforço algum, obter as senhas de todos que ali se logaram internamente ou externamente.

Existem algumas observações fundamentais que devem ser esclarecidas a peito da possibilidade de se sniffar uma rede.

a) O sniffer irá colocar a interface de rede em modo promíscuo. No pacote TCP existe um cabeçalho que indica o destino do pacote. No modo promiscuo significa que o computador está aceitando pacotes sem se importar se é verdadeiro o destinatário.

Dica de segurança de Oldm@n: Sniffando provedores

Se você está pensando em brincar de hacker com seu provedor, esqueça: não é possível sniffar conexões do seu ISP instalando um sniffer na sua máquina. Isso só seria possível caso você tenha uma máquina que esteja no mesmo barramento da rede do seu ISP! Esqueça, ISTO É CRIME!



b,) Alguns acham que usando switch ao invés de um hub, dificulta-se o sniffing. E verdade, porém não é impossível, existe uma técnica pouco conhecida, mais complexa, que pode ser usada em redes switched: é a arp spoofing/relaying. Algumas situações / configurações de rede podem incapacitar a utilização dessas técnicas, logicamente são pouco difundidas.



Para se verificar se a ethernet de uma máquina Linux está em modo promíscuo, use o comando ifconfig, e veja se a flag PROMISC está presente. Veja o comando:



[oldmanbox 1] #ifconfig

eth0 Link encap:Ethernet Hwaddr 00:80:5F:31:D9:34
#


#

inet addr:10.0.0.1 Bcast:10.0.0.255 Mask:255.0.0.0

UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1

RX packets:1195241 errors:4 dropped:0 overruns:0 frame:4

TX packets:885268 errors:6 dropped:0 overruns:0 carrier:6 collisions:42834 txqueuelen:100

Interrupt:ll Base address:0xl000

lo Link encap:Loca1 Loopback
#


#

inet addr:127.0.0.1 Mask:255.0.0.0

UP LOOPBACK RUNNING MTU:3924 Metric:1

RX packets:14 errors:0 dropped:0 overruns:0 frame:0

TX packets:14 errors:0 dropped:0 overruns:0 carrier:0

coilisions: 0 txqueuelen: 0

Podemos ver que a máquina está sendo sniffada, consequentemente um arquivo de Iog terá bastante semelhança com o seguinte:

- - - - - [Timed Out)

server.redel.net => server.rede2 .net [513]

vitimaterm/l4400ssPlsu troot

senha

cd / diretorio

- - - - - [FIN]

123456.dominio.com.br => servidor.rede.net [21]

- - - - - [Timed Out]

- - - - - [FIN]

server. redel net => server.rede2.net [513)

USER root

PASS senha

- - - - - [Timed Out]

server.rede1.net => server.rede2.net [21]

USER joaozinho

PASS 123456

PORT 204,97,162,115,5,50

LIST

QUIT

Este é um exemplo de log de um sniffer em ação. Até as conexões de FTP feitas na máquina possibilitaram a captura da senha pelo snifler.

Normalmente o hacker guarda o sniffer em diretórios de difícil detecção. No Linux, por exemplo, existem alguns que são preferidos. São eles:

/dev

/tmp

/man/man3

/...

/..

No meio de tantos diretórios, fica difícil perceber os criados pelo hacker. Até mesmo para um administrador experiente é uma tarefa muito complexa. Para isto é necessária a utilização de ferramentas de auditoria de arquivos, o que veremos mais à frente.

Snifflt

Autor: Brecht Claerhout

Plataforma: Linux

URL: http://reptile.rug .ac.br/~coder/sniffit/sniffit.html

Licença: GPL

O Sniffit é um dos sniffers mais conhecidos entre os hackers, devido à sua quantidade de recursos e por permitr até o carregamento de arquivos de configuração para o mesmo. Feito para ser executado em ambiente Linux e desenvolvido em C pode ser executado da seguinte maneira:

oldmbox$ sniffit -d -p 21 -s 10.0.0.1 -t 10.0.0.2 –L1

supported ethernet device found (eth0)

Snifit.0.3,5 is up and running... (10.0.0.2)



Neste ponto estaremos com o software sendo executado. Outra maneira de executar o sniffit é o chamado modo interativo, mas nesse caso é utilizado apenas para monitoramento de tráfego de pacotes em uma rede. O comando é o seguinte:

oldmbox$ sniffit -i



Iinsniffer

Autor: Mike Eduíla

Plataforma: Linux

URL: http://agage.trilidun .org/hack/network-sniffers/linsniffer.c

Licença: GPL

O linsnnifer é um dos mais simples, versáteis e poderosos sniffers existentes. Praticamente a maioria dos hackers utilizam como ferramenta de aquisição de dados. Fácil de ser compilado é em seguida executado com a seguinte linha de comando:

oldmbox$ ./linsniffer&



Coloca-se o mesmo em background para sua execução e aguardam-se os resultados. Imediatamente ele criará um arquivo conhecido como tcp.log, onde escreverá o resultado de sua escuta. O usuário pode escolher o nome que quiser



para tcp.log, alguns hackers colocam nomes similares aos arquivos de configuração do sistema.



O arquivo exemplo de nosso capítulo foi gerado com o Iinsniffer, com os endereços originais alterados.

tcpdump

Autor: Van Jacobson, Steve McCanne e Craig Leres

Plataforma: Linux

URL: http://www-nrg.ee.lbl.gov

Licença: GPL

O tcpdump é um pacote e por muitos considerado um comando do Linux para análise de pacotes em uma rede. Como outros é um sniffer, mas segue funções originais de analisador de redes. Nenhum hacker normalmente utiliza esta ferramenta como ferramenta de ataque, contudo é considerado por você autores um sníffer clássico.

buttsniff

Autor: Dilldog

Plataforma: Windows NT/ 98

U RL: http://www.cultdeadcow.com/~dildog/BUTTsniffer

Licença: GPL

O Cult of Dead Cow já era famoso por seu Back Oriffice; agora, um de membros desenvolveu um sniffer bastante interessante para Windows. mente instalável, o buttsniff é de fácil operação e bastante versátil. É um dos poucos sniffers para ambiente Windows.

Log Cleaners

Depois de ter invadido o sistema, colocado o seu backdoor e seu sniffer recolher dados, o hacker necessita limpar os seus rastros. Em vários sistemas operacionais, existem sistemas de auditoria, que registram as operações do usuário em arquivos do sistema. Isto também pode ocorrer com aplicativos servidores Web, que têm suas operações registradas. Tanto no Linux como no NT, existem arquivos importantes de registro, ou conhecidos como arquivos de



No sistema Linux podemos destacar os seguintes:

messages

localização: /var/log/

função: registrar todas as operações do sistema ou de programas do mesmo.

xferlog

localização: /var/ log

função: registrar todas as operações logon/logoff realizadas pelo daemon de ftp.

secure

localização: /var/log

função: registrar todas as operações realizadas por tcp-wrappers.

wtmp

localização: /var/log

função: registrar os logons de usuários. É um arquivo binário que trabalha em conjunto com a função who para a identificação do usuário.

mail.log

localização: /var/log

função: registrar os envios e recebimentos de e-mails no sistema.

bash_history

localização: /home/user

função: armazena os últimos 1000 comandos digitados pelo usuário. No caso do root este arquivo fica em)seu diretório de trabalho (/root).



Dica de segurança de Oldm@n

O bash_history é um dos arquivos mais importantes do sistema Linux1 pois normalmente é esquecido por invasores inexperientes. Em 70% de casos de invasão, este arquivo é esquecido de ser modificado pelo invasor. Até hackers experientes esquecem do mesmo. Logo, se torna um dos principais meios de identificar um hacker e descobrir suas ferramentas no sistema.



No ambiente NT; o log no sentido como conhecemos no Linux, só entra E ação quando a auditoria do sistema está ativa. Caso a mesma não esteja ligada, os arquivos de log não serão criados. Os principais arquivos de log NT são:

AppEvent. Evt

localização: \systemroot\system32\config

função: Log das principais operações e eventos de aplicativos do sistema.

SecEvent. Evt

localização: \systemroot\system32 \config

função: Log dos principais eventos de segurança.

SysEvent. Evt

localização: \systemroot\system32\config

função: Log das principais operações e eventos do sistema.

O /ogcleanner limpa este arquivos excluindo as entradas feitas pelo hacker rir sistema, ocultando assim sua presença. Para o administrador fica despercebi toda sua rotina de invasão.

Ferramentas

Os logcleanners mais utilizados são os seguintes:

hideme.c

Autor: fusys

Plataforma: Linux/Unix

URL: http://packetstorm.securify.com/archives/logcleaaners

Licença: GPL

De acordo com o seu autor, o hideme limpa os arquivos Utmp, Wtmp, LastLog,

Messages, XferLog, Secure e MailLog. A sua sintaxe de utilização é a seguinte:

hideme

Muitos hackers o utilizam para limpeza de suas invasões, fazendo parte d ferramentas básicas de um atacante.



rhclean.c

Autor: Sultrix

Plataforma: Linux(Red hat especificadamente)

URL: http://www.rootshell.com

Licença: GPL

Trata-se de um simples e específico e nem pouco sutil programa de limpeza de logs exclusivamente feito para o Linux Red Hat. Não é muito recomendado, mas pode ser uma ferramenta interessante de estudo para o administrador. Sua sintaxe é a seguinte:

/rhclean



Limpará todos os arquivos de log do sistema.

zap2.c

Autor: Desconhecido

Plataforma: Linux/Unix (Solaris)

Licença: GPL

Limpa os arquivos Utmp, Wtmp, LastLog. É muito simples, mas utilizado

principalmente em sistemas Solaris para limpeza. Sua sintaxe é a seguinte:

zap2





A maioria dos logcleanners não cuida da limpeza do bahs_history, para isto os hackérs mais experientes desviam os registros do bash_history para 9)d iretório Idevinuíl, através de um hard link. O comando é o seguinte

oldmanbox# ln -s /dev/null ~ /.bash_history



celsetupb.exe

Autor: Duke Engineering

Plataforma: Windows NT

Licença: GPL

O Clear Event Log é um utilitário que limpa o log de eventos em segurança, sistema e aplicações. E simples e de fácil operação e permite limpá-los individualmente ou todos. Necessita da DLL Msvbvm50.dll, para ser executado, neste pacote o mesmo vem incluído.

Ataques a Arquivos de Senhas

Falar de senhas sempre foi um problema desde tempos imemoriais.A proteção de segredos por senhas, códigos ou linguagem hermética, foram meios encontrados pelo homem para criar uma barreira para aqueles que não eram desejados.

Na era digital, a senha se tornou a principal proteção a sistemas com métodos cada vez mais complexos de criptografia (do grego krypto - oculto e graphia -escrita). Estas técnicas criaram padrões até então seguros, mas isto mudou e muito com os hackers.

Grupos se uniam para descobrir os métodos de criptografia e descobrir a chave que permitisse quebiar o código e desvendar a mensagem / senha protegia. Hoje em dia se trava uma verdadeira batalha entre os desenvolvedores de chaves criptográficas e os hackers







O Linux possui um arquivo no diretório /etc conhecido como passwd. Este arquivo armazena as senhas do usuário do sistema, inclusive O root. O aspecto do passwd é o seguinte:

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:

daemon:x:2:2:daemon:/sbin:

adm:x:3:4:adm:/var/adm:

lp:x:4:7:lp:/var/spool/lpd:

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6: 0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12mail:/var/spool/mail:

news:x:9:13:news:/var/spool/news:

uucp:x:10:14:uucp:/var/spool/lluc:p:

operator:x:11:0:operator:/root:

games:x:12:100:games:/usr/games:

gopher:x:13:30:gopher:/usr/lib/gopher-data:

ftp:x:14:50:FTP User:/www/buffer:

nobody:x:99:99 :Nobody:/:

xfs:x:TOO:233:X FontServer:/etc/X11/fs:/bin/false

amarcelo:x:525:525: :/dev/null:/dev/null

buffer:x:526:527: :/home/buffer:/bin/bash

Onde o x é a senha do usuário, que no momento está oculta por motivos de segurança através do comando pwconv, que gera o que chamamos de senha shadow.

O arquivo original das senhas é protegido e assim torna-se mais difícil a interpretação e a quebra das mesmas. Normalmente, as novas versões de Linux vêm com a opção de shadow ativada e assim torna-se mais complicada a quebra do arquivo passwd.

Normalmente os ataques feitos a arquivos de senhas são feitos através de programas que utilizam os dicionários de palavras. Estes dicionários contêm palavras chaves comumente utilizadas por usuários em sua senhas. Basicamente o programa testa o passwd original do sistema com o arquivo do dicionário e compara os itens iguais.

Certos programas conseguem extrair as senhas mesmo de sistemas com shadow password. Mais à frente veremos como proteger melhor as senhas do sistema.

Ferramentas

A seguir veremos algumas ferramentas de quebra de senha.

John the Ripper

Autor: Solar Designer

Plataforma: Unux / NT

URL: www.packetstorm.securify.com/crackers

Licença: GPL

Este é um dos mais famosos softwares de quebra de senhas. Com a possibilidade de decodificar senhas tanto de ambiente Linux, como ambiente NT. Trata-se de uma das ferramentas mais utilizadas pelos hackers. Sua versão Unix é capaz de quebrar os arquivos de senha do NT.

Crack 5.0

Autor: Alec Muffet

Plataforma: Unix

URL: www.packetstorm.securify.com/crackers/crack

Licença: GPL

É o mais antigo e popular decodificador de senhas baseado em dicionário. Fal sobre o Crack é falar de um utilitário que, desde 1996, faz parte das ferrame tas de muitos hackers. Com recursos de leitura de dicionários de palavras cc mais de 100 Mbytes, o Crack ainda vem com alguns arquivos exemplo. E alt mente apreciado e recomendado pelos invasores de sistema.

Resumo

Nesta capítulo vimos as principais ferramentas dos hackers para utilização em sistemas invadidos. Vimos como os rootkits são perigosos e como os sniffers podem capturar as senhas de um sistema. Ainda vimos como os passwc crackers podem descobrir as senhas dos usuários do sistema.

0 comentários:

Postar um comentário

 
© 2009 Todos Direitos rezevado para Elite Hacker - Forum .