O nmap é um “port-scan” extremamente rápido e muito utilizado no mundo opensource, porém existem recursos adicionais, como o NSE (Nmap Scripting Engine), que são pouco conhecidos ou explorados. Na realidade, o nmap é mais que um simples port-scan.

O NSE é um dos recursos mais poderosos e flexíveis do Nmap, que permite aos usuários escrever (e compartilhar) scripts simples para automatizar uma variedade de tarefas de rede. Os scripts são processados em paralelo, preservando a eficiência da ferramenta. Inúmeros scripts são disponibilizados na instalação padrão (permitindo a análise de vulnerabilidades), mas nada impede ao administrador criar um próprio.

Vale lembrar que o objetivo deste artigo se atém em demonstrar alternativas que permitam ao administrador se antecipar, explorando vulnerabilidades e corrigindo falhas, antes que um hacker o faça. As dicas compartilhadas se destinam a administradores que desejam identificar recursos ativos ou certificar a segurança dos servidores contra vulnerabilidades conhecidas – o script ssl-heartbleed, por exemplo, foi disponibilizado assim que a falha foi descoberta. Os testes demonstrados, logo a seguir, dependem de autorização prévia, e sua má utilização pode caracterizar como ação criminosa.

 

– No Ubuntu, através do gerenciador de pacotes dpkg, podemos verificar os scripts disponíveis listando os arquivos do diretório scripts do pacote nmap:

root@linux-server:~# dpkg -L nmap | grep scripts

/usr/share/nmap/scripts
/usr/share/nmap/scripts/ncp-serverinfo.nse
/usr/share/nmap/scripts/samba-vuln-cve-2012-1182.nse
/usr/share/nmap/scripts/ftp-bounce.nse
/usr/share/nmap/scripts/broadcast-eigrp-discovery.nse
/usr/share/nmap/scripts/smb-vuln-regsvc-dos.nse
/usr/share/nmap/scripts/smb-vuln-ms10-054.nse
/usr/share/nmap/scripts/afp-showmount.nse
/usr/share/nmap/scripts/stun-version.nse
/usr/share/nmap/scripts/ldap-rootdse.nse
/usr/share/nmap/scripts/netbus-brute.nse
/usr/share/nmap/scripts/ftp-vuln-cve2010-4221.nse
/usr/share/nmap/scripts/http-vmware-path-vuln.nse
/usr/share/nmap/scripts/s7-info.nse
/usr/share/nmap/scripts/afp-serverinfo.nse
/usr/share/nmap/scripts/allseeingeye-info.nse
/usr/share/nmap/scripts/ftp-proftpd-backdoor.nse
...

 

– Identificando um DNS recursivo:

root@linux-server:~# nmap -sU –script dns-recursion –script-args \
timelimit=2h 8.8.8.8 -p 53

Starting Nmap 7.01 ( http://nmap.org ) at 2017-09-28 15:35 AMT
NSE: Script Scanning completed.
Nmap scan report for google-public-dns-a.google.com (8.8.8.8)
Host is up (0.028s latency).
PORT STATE SERVICE
53/udp open|filtered domain
|_dns-recursion: Recursion appears to be enabled

Nmap done: 1 IP address (1 host up) scanned in 0.68 seconds

Trata-se apenas uma demonstração inicial, pois, neste caso, uma simples avaliação com nslookup ou dig já revelaria o recurso ativo“.

 

– Explorando vulnerabilidades de SQL Injection:

root@linux-server:~# nmap -sV –script http-sql-injection www.seu.site.com.br -p 80

Starting Nmap 7.01 ( https://nmap.org ) at 2017-09-28 15:36 AMT
Nmap scan report for www.seu.site.com.br (10.0.0.100)
Host is up (0.00087s latency).
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd
|_http-server-header: Apache

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 54.00 seconds

Neste caso, a saída exibida demonstra que o script NÃO foi capaz de explorar a vulnerabilidade com sucesso. Porém, comparado com outras ferramentas bem mais intrusivas, como Netsparker ou Acunetix, a variedade de testes é relativamente menor. Portanto, não se conforme apenas com uma varredura do nmap para certificar a segurança dos servidores“.

Confiram como a combinação de algumas ferramentas pode facilitar na evolução de ataques:
http://www.hackingarticles.in/exploiting-sql-injection-nmap-sqlmap/

 

– Levantando usuários do WordPress:

root@linux-server:~# nmap -sV –script http-wordpress-users www.seu.site.com.br \
-p 80

Starting Nmap 7.01 ( https://nmap.org ) at 2017-09-28 15:55 AMT
Nmap scan report for www.seu.site.com.br.br (10.0.0.100)
Host is up (0.00054s latency).
PORT STATE SERVICE VERSION
80/tcp open http nginx
|_http-server-header: nginx
| http-wordpress-users:
| Username found: user1
| Username found: user2

 

– Carregando TODOS scripts para análise HTTP (http-*):

root@linux-server:~# nmap -sV –script http-* www.seu.site.com.br -p 80

Starting Nmap 7.01 ( https://nmap.org ) at 2017-09-28 16:58 AMT
Nmap scan report for www.seu.site.com.br (10.0.0.100)
Host is up (0.000079s latency).
rDNS record for 10.0.0.100: www.seu.site.com.br
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
| http-brute:
|_ Path "/" does not require authentication
|_http-chrono: Request times for /; avg: 165.18ms; min: 159.29ms; max: 175.70ms
|
| Path: http://www.seu.site.com.br/#scope
...
|_ (Request type: HEAD)
|_http-malware-host: Host appears to be clean
| http-methods:
|_ Supported Methods: POST OPTIONS GET HEAD
|_http-mobileversion-checker: No mobile version detected.
|_http-referer-checker: Couldn't find any cross-domain scripts.
|_http-server-header: Apache/2.4.18 (Ubuntu)
| http-sitemap-generator:
| Directory structure:
| /
| Other: 1
| /icons/
| png: 1
| Longest directory structure:
| Depth: 1
| Dir: /icons/
| Total files found (by extension):
|_ Other: 1; png: 1
|_http-slowloris: false
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
|_http-title: Apache2 Ubuntu Default Page: It works
| http-traceroute:
|_ Possible reverse proxy detected.
| http-useragent-tester:
|
| Allowed User Agents:
| Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)
| libwww
| lwp-trivial
| libcurl-agent/1.0
| PHP/
...
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 2134.29 seconds

 

– Desenvolvendo um ataque de força bruta em servidores de FTP:

root@linux-server:~# nmap -sV –script ftp-brute seu.ftp.com.br -p 21

Starting Nmap 7.01 ( https://nmap.org ) at 2017-09-28 15:29 AMT
Nmap scan report for seu.ftp.com.br (10.0.0.21)
Host is up (0.00060s latency).
PORT STATE SERVICE VERSION
21/tcp open ftp Microsoft ftpd
| ftp-brute:
| Accounts:
| user:123456 - Valid credentials
|_ Statistics: Performed 45011 guesses in 205 seconds, average tps: 217
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 205.76 seconds

Para desenvolver ataques de força bruta, o nmap trabalha com dois arquivos separados:
usernames.lst (usuários) e passwords.lst (senhas)

Ambos os arquivos se encontram em: /usr/share/nmap/nselib/data/.

Podemos também utilizar a opção “–script-args” para selecionar outro arquivo de dicionário:

--script-args 'userdb=/tmp/users.txt'

ou

--script-args 'passdb=/tmp/password.txt'

ou

--script-args 'userdb=/tmp/users.txt,passdb=/tmp/password.txt'

Confiram outros exemplos para ataque de força bruta:
http://www.hackingarticles.in/password-cracking-using-nmap/