Definição: Neste processo identificamos e buscamos informações do sistema alvo, no qual desejamos realizar uma invasão. Aqui apenas buscamos coletar mais informações daquilo que já conseguimos na primeira fase (identificação de banner).
Fases e ferramentas:
Identificação do estado do sistema alvo
Descrição: Esta opção é usada apenas para estabelecer o estado da conexão do sistema alvo.
Ferramenta:
ping
Método de uso: ping [host-name]
PoC:
# ping 192.168.0.4
PING 192.168.0.4 (192.168.0.4) 56(84) bytes of data.
64 bytes from 192.168.0.4: icmp_seq=1 ttl=128 time=1.21 ms
[..cortado..]
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
[..cortado..]
Identificação do estado do roteador
Descrição: Proporciona informação que é a combinação dos resultados obtidos com o ping e traceroute.
Ferramenta:
traceroute
Método de uso: traceroute [host-name]
PoC:
# traceroute 192.168.0.4
traceroute até hacklabxp.Planet[192.168.0.4], 30 hops max, 40 byte packets
0 hacklabxp.Planet [192.168.0.4]
1 hacklabxp.Planet [192.168.0.4]
Processamento de estatísticas durante 25 segundos...
Origem até aqui Este nó/Link
Salto RTT Perdido/Enviado = Pct Perdido/Enviado = Pct Direção
0 hacklabxp.Planet [192.168.0.4] 0/ 100 = 0% |
1 0ms 0/ 100 = 0% 0/ 100 = 0% hacklabxp.Planet [192.168.0.4]
Identificação de sessões nulas
Descrição: As sessões nulas são usadas em máquina Windows para a visualização dos recursos compartilhados. A partir daí são realizadas conexões para enumerar a informação do sistema alvo.
Ferramenta:
net use
Método de uso: net use \\[host-name]\IPC$ "" /u:""
PoC:
net use \\192.168.0.4\IPC$ "" /u:""
Identificação de endereço MAC
Descrição: Se conhece também como endereço físico o identificador do dispositivo de rede. É individual, cada dispositivo tem seu próprio endereço MAC determinado e configurado.
Ferramenta:
arp
Método de uso: arp -a [host-name]
PoC:
# arp -a 192.168.0.4
? (192.168.0.4) at 00:0c:29:33:dd:72 [ether] on eth0
Identificação de máquinas e recursos
Descrição: Mostra uma lista de domínio, equipamentos ou recursos de uso compartilhado e disponível em um equipamento específico.
Ferramenta:
smbtree
Método de uso: smbtree
PoC:
# smbtree
GRUPO
\\hacklabxp
\\hacklabxp.Planet\C$ Recurso compartilhado padrão
\\hacklabxp.Planet\ADMIN$ Administração remota
\\hacklabxp.Planet\IPC$ IPC remoto
Identificação de DNS
Descrição: Permite consultar um servidor de nomes e obter informação relacionada com o domínio do host.
Ferramenta:
nslookup
Método de uso: nslookup [host-name]
PoC:
# nslookup 192.168.0.4
Server: 192.168.0.1
Address: 192.168.0.1#53
** server can't find 1.1.168.192.in-addr.arpa.: NXDOMAIN
Identificação de portas com serviços desconhecidos
Descrição: Permite verificar serviços que podem estar rodando em portas que tenham sido detectadas como desconhecidas na fase identificação de banner.
Ferramenta:
netcat
Método de uso: nc [ip] [porta]
PoC:
# nc 192.168.200.1 8100
z303help
ls
punt!
Identificação passiva de SO
Descrição: Permite identificar qual sistema operacional e versão está sendo executado na máquina alvo. Esse método funciona analisando as respostas de seu alvo à "solicitações" inócuas, tal como tráfego web, ping ou operações triviais.
Ferramenta:
p0f ou
xprobe2
Método de Uso: p0f -[opções] ou xprobe2 [-opções] [ip]
PoC:
# p0f -Fl
p0f - passive os fingerprinting utility, version 2.0.8
(C) M. Zalewski <lcamtuf@dione.cc>, W. Stearns <wstearns@pobox.com>
p0f: listening (SYN) on 'eth0', 262 sigs (14 generic, cksum 0F1F5CA2), rule: 'all'.
192.168.0.92:54400 -
Linux 2.6 (newer, 2) (up: 11 hrs) -> 74.125.47.118:80 (distance 0, link: ethernet/modem)
192.168.0.92:46773 - Linux 2.6 (newer, 2) (up: 11 hrs) -> 74.201.81.148:80 (distance 0, link: ethernet/modem)
^C+++ Exiting on signal 2 +++
[+] Average packet ratio: 0.73 per minute.
# xprobe2 -B 192.168.0.92
Xprobe2 v.0.3 Copyright (c) 2002-2005 fyodor@o0o.nu, ofir@sys-security.com, meder@o0o.nu
[+] Target is 192.168.0.92
[+] Loading modules.
[+] Following modules are loaded:
[x] [1] ping:icmp_ping - ICMP echo discovery module
[x] [2] ping:tcp_ping - TCP-based ping discovery module
[x] [3] ping:udp_ping - UDP-based ping discovery module
[x] [4] infogather:ttl_calc - TCP and UDP based TTL distance calculation
[x] [5] infogather:portscan - TCP and UDP PortScanner
[x] [6] fingerprint:icmp_echo - ICMP Echo request fingerprinting module
[x] [7] fingerprint:icmp_tstamp - ICMP Timestamp request fingerprinting module
[x] [8] fingerprint:icmp_amask - ICMP Address mask request fingerprinting module
[x] [9] fingerprint:icmp_port_unreach - ICMP port unreachable fingerprinting module
[x] [10] fingerprint:tcp_hshake - TCP Handshake fingerprinting module
[x] [11] fingerprint:tcp_rst - TCP RST fingerprinting module
[x] [12] fingerprint:smb - SMB fingerprinting module
[x] [13] fingerprint:snmp - SNMPv2c fingerprinting module
[+] 13 modules registered
[+] Initializing scan engine
[+] Running scan engine
[-] ping:tcp_ping module: no closed/open TCP ports known on 192.168.0.92. Module test failed
[-] ping:udp_ping module: no closed/open UDP ports known on 192.168.0.92. Module test failed
[-] No distance calculation. 192.168.0.92 appears to be dead or no ports known
[+] Host: 192.168.0.92 is down (Guess probability: 0%)
[+] Cleaning up scan engine
[+] Modules deinitialized
[+] Execution completed.
Identificação de servidor web
Descrição: Permite descobrir qual o servidor web está sendo executado no alvo. Nesse passo, é interessante utilizar uma ferramenta que não faça muito "barulho" para que, caso haja um IDS no alvo, o mesmo não identifique a ação que estamos realizando.
Ferramenta:
httprint
Método de Uso: httprint [opções] [alvo] -s signature.txt
PoC:
# httprint -h www.vivaolinux.com.br -s signatures.txt
httprint v0.301 (beta) - web server fingerprinting tool
(c) 2003-2005 net-square solutions pvt. ltd. - see readme.txt
http://net-square.com/httprint/
httprint@net-square.com
--------------------------------------------------
Host: www.vivaolinux.com.br
[cortado]
--------------------------------------------------