syst3m_h4x0r

Nikto do básico ao avançado

Sep 2nd, 2018
23,891
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.76 KB | None | 0 0
  1. CONHECENDO O NIKTO
  2. Uma 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
  3.  
  4. Ex.:
  5.  
  6. nikto -h www.website.com
  7.  
  8. 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
  9.  
  10. Ex.:
  11.  
  12. nikto -h www.website.com -p 443
  13.  
  14. Assim, como é possível definir também mais de uma porta para executar a varredura:
  15.  
  16. nikto -h www.website.com -p 80,88,443
  17.  
  18. Há também a possibilidade de passar a sintaxe de uma URL completa como parâmetro, da seguinte forma:
  19.  
  20. nikto -h https://www.website.com:8081/
  21.  
  22. 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.
  23.  
  24. 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.
  25.  
  26. Ex.:
  27.  
  28. nikto -h https://website.com:8081 -id SUPERVISOR:supervisor123
  29.  
  30. É possível também definir o formato da saída dos resultados do Nikto com a opção: -o
  31. Os formatos suportados são: CSV, HTML, TXT e XML.
  32.  
  33. Ex.:
  34.  
  35. nikto -h https://website.com:8081 -o resultados.html
  36.  
  37. 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.
  38.  
  39. Abaixo, algumas opções disponíveis:
  40.  
  41. Testa todos os arquivos com todos os diretórios root.
  42. Tenta adivinhar nomes de arquivos de senha.
  43. Enumera nomes de usuários via Apache (/~user type request). Esta opção explora uma configuração do UserDir do Apache, que permite que nomes de usuários válidos sejam descobertos por meio de um ataque de brute-force.
  44. Enumera nomes de usuário via cgiwrap (/cgi-bin/cgiwrap/~user type requests). Esta opção explora uma falha do cgiwrap, que permite que nomes de usuários válidos sejam descobertos, também por meio do ataque de brute-force.
  45. Tenta brute-force em nomes de subdomínios, assumindo que o host definido (sem o www) é o domínio principal (parent domain).
  46. Tenta brute-force em nomes de diretórios, sendo a única opção que necessita de um arquivo externo com a lista de diretórios.
  47.  
  48. Ex.:
  49.  
  50. nikto -h https://website.com:8081 -mutate 1,2,3,4,5
  51.  
  52. 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.
  53.  
  54. A opção para essa técnica é a -evasion, seguida dos parâmetros desejados. Abaixo, as opções disponíveis:
  55. URL Encoding :: com esta opção, as URLs são codificadas, dificultando a detecção do tráfego. Porém, um IDS sofisticado não teria nenhum problema para detectar esse tipo de evasão.
  56. Add /./ in front of each URL :: segue quase o mesmo princípio da técnica anterior, porém, por ser uma técnica bastante conhecida, praticamente qualquer IDS seria capaz de detectá-la.
  57. Premature URL ending :: o Nikto adiciona pastas aleatórias seguidas de /../. Por exemplo, ao invés de requisitar "/icons", o Nikto solicita "/foo/bar/../../icons", que é praticamente a mesma coisa. Como as técnicas anteriores, não somente um IDS poderia detectar isso, mas também o servidor web em questão, justamente por se tratar de uma técnica muito conhecida.
  58. Append random long strings :: a mesma técnica anterior, mas com mais palavras e os mesmos resultados.
  59. Fake parameters :: adiciona parâmetros desnecessários (/uri/?foo=bar). Isto não faz nenhuma diferença para um IDS decente.
  60. Tab as request spacer :: usa uma guia, ao invés de um espaço para separar diferentes elementos da URL. Mais uma vez, isso não é problema para um IDS decente.
  61. Case-insensitivity :: altera caracteres aleatórios para caixa-alta. Sistemas operacionais, como o Windows servers, não se importam com case-insensitivity, logo o teste seria válido. Porém, para sistemas que são case-sensitive (UNIX, Linux) a nova URL criada não faz sentido. Mesmo sendo uma técnica interessante, deve ser utilizada com cuidado.
  62. Use \ as folder separation :: é o mesmo caso do exemplo acima. Usando \, ao invés de /, pode ser útil para um webserver em Windows, mas não funcionaria em um sistema UNIX-like.
  63. Session splicing :: dentre todas as técnicas citadas, esta é a mais interessante, mesmo sendo bem velha. É basicamente o Nikto + fragroute, que é capaz de gerar pacotes de dados de 1 byte. Sem contar que é um bom jeito de testar como um IDS gerencia um tráfego altamente fragmentado.
  64.  
  65. Ex.:
  66.  
  67. nikto -h https://website.com:8081 -evasion 1,2,3
  68.  
  69. 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.
  70.  
  71. Ex.:
  72.  
  73. nikto -h https://website.com:80 -useproxy 189.98.78.54:2343
  74.  
  75. UTILIZANDO O NIKTO COM O TOR PROXY
  76. Bem 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.
  77.  
  78. 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.
  79.  
  80. Obs.: tanto a instalação quanto as configurações a seguir, são destinadas a sistemas GNU/Linux.
  81.  
  82. Abra um terminal e digite os seguintes comandos:
  83.  
  84. # apt-get install tor # Para instalar a suíte do Tor
  85. # apt-get install privoxy # Para instalar o Privoxy
  86.  
  87. Feito isso, ainda com o terminal aberto, digite:
  88.  
  89. # nano /etc/privoxy/config
  90.  
  91. E procure pela linha que contenha: listen-address localhost:8118
  92. Assim que encontrá-la, substitua-a por: listen-address 127.0.0.1:8118
  93.  
  94. Após isso, localize a linha que contenha: #forward-socks5 / 127.0.0.1:9050
  95. ...e apenas remova o # da frente da mesma, ficando: forward-socks5 / 127.0.0.1:9050
  96.  
  97. Agora, digite o seguinte comando para reiniciar o Tor e o Privoxy:
  98.  
  99. /etc/init.d/tor restart && /etc/init.d/privoxy restart && update-rc.d tor enable && update-rc.d privoxy enable
  100.  
  101. As configurações do Privoxy estão prontas, faltando apenas configurarmos o Nikto. Ainda no terminal, digite:
  102.  
  103. # nano /etc/nikto.conf
  104.  
  105. E procure pela linha que diz:
  106.  
  107. # Proxy settings -- still must be enabled by -useproxy
  108. #PROXYHOST=127.0.0.1
  109. #PROXYPORT=8080
  110.  
  111. Aqui, basta remover os # das duas últimas linhas (visto que a primeira é um comentário) e, ao invés de 8080, substitua por 8118 (porta do privoxy), ficando assim:
  112.  
  113. # Proxy settings -- still must be enabled by -useproxy
  114. PROXYHOST=127.0.0.1
  115. PROXYPORT=8118
  116.  
  117. 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.
  118.  
  119. Ex.:
  120.  
  121. nikto -h https://website.com:8081 -useproxy
Add Comment
Please, Sign In to add comment