Introdução
Nikto é uma ferramenta desenvolvida em Perl, cujo objetivo é o de assessoria em servidores WEB, enquadrando-se na categoria de scanners de vulnerabilidades. Foi desenvolvida para encontrar diversos tipos de arquivos, configurações e programas padrões ou inseguros, em servidores WEB. Sendo uma ferramenta ideal para ser utilizada em conjunto com o Nessus. Lembrando que o Nikto não irá procurar por problemas de SQL Injection ou autorizações indevidas, bem como portas abertas ou firewalls ativos. Ele, simplesmente, irá vasculhar o website em busca de arquivos e configurações interessantes, que podem ser passivos de um ataque. Um detalhe importante, é que o artigo a seguir não irá conter os passos para a instalação do Nikto, visto que há bastante material relacionado na Internet (inclusive aqui no VoL). Porém, caso alguém necessite disso, pode utilizar o tutorial do próprio website da ferramenta: |
|
Conhecendo e utilizando o Nikto
Conhecendo o NiktoUma varredura básica com o Nikto, ou seja, sem nenhum parâmetro definido, realiza uma varredura completa em um host na porta TCP 80 (utilizada pela grande maioria dos websites). O host é definido por meio da opção: -h Ex.: $ nikto -h www.website.com Porém, em certos casos, nos deparamos com websites que não utilizam a porta 80 como padrão. Para isso, podemos definir a porta a ser escaneada com a opção: -p Ex.: $ nikto -h www.website.com -p 443 Assim, como é possível definir também mais de uma porta para executar a varredura: $ nikto -h www.website.com -p 80,88,443 Há também a possibilidade de passar a sintaxe de uma URL completa como parâmetro, da seguinte forma: $ nikto -h https://www.website.com:8081/ No caso de uma auditoria de segurança ou Pentest, é interessante realizarmos uma autenticação com algum usuário do site, de modo a cobrir maiores resultados e detectar possíveis falhas do ponto de vista de alguém logado no website. Com isso, cada vez que o Nikto se deparar com algum tipo de autenticação do website, ele irá inserir as credencias definidas. O parâmetro para isso é o -id, seguido do login e senha do usuário. Ex.: $ nikto -h https://website.com:8081 -id SUPERVISOR:supervisor123 É possível também definir o formato da saída dos resultados do Nikto com a opção: -o Ex.: $ nikto -h https://website.com:8081 -o resultados.html Já entrando nas configurações avançadas, a opção -mutate serve para combinar testes e adivinhar valores durante um scan. Mesmo sendo uma técnica interessante, isto pode causar uma quantidade tremenda de testes sendo executados contra o alvo, aumentando tanto o tempo do scan, quanto o barulho gerado pelo mesmo. Abaixo, algumas opções disponíveis:
Ex.: $ nikto -h https://website.com:8081 -mutate 1,2,3,4,5 Em situações em que precisa-se obter certo anonimato, pode-se utilizar algumas técnicas de evasão para tentar passar despercebido por alguns Firewalls e ISPs antigos. Lembrando que a maioria dos novos ISPs, irão detectar e bloquear o tráfego gerado pelo Nikto. A opção para essa técnica é a -evasion, seguida dos parâmetros desejados. Abaixo, as opções disponíveis:
Ex.: $ nikto -h https://website.com:8081 -evasion 1,2,3 A última opção de segurança que pode ser utilizada pelo Nikto, é o uso de proxies por meio da opção -useproxy seguida do IP do servidor e a porta correspondente. De todas as medidas de anonimato, essa é talvez a mais recomendada de todas, visto que o proxy é capaz de ocultar o seu verdadeiro IP e dificultar a sua identificação. Ex.: $ nikto -h https://website.com:80 -useproxy 189.98.78.54:2343 Utilizando o Nikto com o Tor proxyBem como muitas ferramentas destinadas à varreduras e scans, o Nikto gera muito tráfego na rede ao fazer requisições ao alvo, deixando um vasta lista de logs nos Firewalls e servidores. Se você está realizando um hacking/pentest, a última coisa que você deveria querer, é que um dispositivo de segurança capture seu verdadeiro IP e possa tomar ações desagradáveis com ele depois. Pensando nisso, no tutorial a seguir, irei explicar como camuflar o tráfego do Nikto utilizando a rede Tor. Para isso, precisaremos de duas ferramentas: o Tor e o Privoxy, cuja instalação pode ser conferida abaixo. Obs.: tanto a instalação quanto as configurações a seguir, são destinadas a sistemas GNU/Linux. Abra um terminal e digite os seguintes comandos: # apt-get install tor # Para instalar a suíte do Tor Feito isso, ainda com o terminal aberto, digite: # nano /etc/privoxy/config E procure pela linha que contenha: listen-address localhost:8118 Após isso, localize a linha que contenha: #forward-socks5 / 127.0.0.1:9050 Agora, digite o seguinte comando para reiniciar o Tor e o Privoxy: $ /etc/init.d/tor restart && /etc/init.d/privoxy restart && update-rc.d tor enable && update-rc.d privoxy enable As configurações do Privoxy estão prontas, faltando apenas configurarmos o Nikto. Ainda no terminal, digite: # nano /etc/nikto.conf E procure pela linha que diz: # Proxy settings — still must be enabled by -useproxy # Proxy settings — still must be enabled by -useproxy
PROXYHOST=127.0.0.1 PROXYPORT=8118 Concluído essas configurações, ao realizar um scan com Nikto, basta apenas definir a opção -useproxy, sem nenhum parâmetro para que todo o tráfego gerado pelo Nikto passe pela rede Tor, mantendo assim o seu anonimato. Ex.: $ nikto -h https://website.com:8081 -useproxy |