{"id":1297,"date":"2014-08-23T15:52:18","date_gmt":"2014-08-23T18:52:18","guid":{"rendered":"http:\/\/www.viazap.com.br\/?p=1297"},"modified":"2014-08-23T15:52:18","modified_gmt":"2014-08-23T18:52:18","slug":"nikto-tutorial-basico-e-avancado","status":"publish","type":"post","link":"https:\/\/blog.clusterweb.com.br\/?p=1297","title":{"rendered":"Nikto &#8211; Tutorial b\u00e1sico e avan\u00e7ado"},"content":{"rendered":"<table border=\"0\" width=\"100%\" cellspacing=\"3\" cellpadding=\"3\">\n<tbody>\n<tr>\n<td colspan=\"2\"><b>Introdu\u00e7\u00e3o<\/b><\/p>\n<div>\n<p><em>Nikto<\/em>\u00a0\u00e9 uma ferramenta desenvolvida em Perl, cujo objetivo \u00e9 o de assessoria em servidores WEB, enquadrando-se na categoria de scanners de vulnerabilidades.<\/p>\n<p>Foi desenvolvida para encontrar diversos tipos de arquivos, configura\u00e7\u00f5es e programas padr\u00f5es ou inseguros, em servidores WEB. Sendo uma ferramenta ideal para ser utilizada em conjunto com o Nessus.<\/p>\n<p>Lembrando que o Nikto n\u00e3o ir\u00e1 procurar por problemas de SQL Injection ou autoriza\u00e7\u00f5es indevidas, bem como portas abertas ou firewalls ativos. Ele, simplesmente, ir\u00e1 vasculhar o website em busca de arquivos e configura\u00e7\u00f5es interessantes, que podem ser passivos de um ataque.<\/p>\n<p>Um detalhe importante, \u00e9 que o artigo a seguir n\u00e3o ir\u00e1 conter os passos para a instala\u00e7\u00e3o do Nikto, visto que h\u00e1 bastante material relacionado na Internet (inclusive aqui no VoL).<\/p>\n<p>Por\u00e9m, caso algu\u00e9m necessite disso, pode utilizar o tutorial do pr\u00f3prio website da ferramenta:<!--more--><\/p>\n<ul>\n<li><a href=\"https:\/\/cirt.net\/nikto2-docs\/installation.html\">Chapter\u00a02.\u00a0Installation<\/a><\/li>\n<\/ul>\n<div class=\"figura\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/url.png\" alt=\"Linux: Nikto - Tutorial b\u00e1sico e avan\u00e7ado\" width=\"217\" height=\"400\" \/><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><b>Conhecendo e utilizando o Nikto<\/b><\/p>\n<h1>Conhecendo o Nikto<\/h1>\n<p>Uma varredura b\u00e1sica com o Nikto, ou seja, sem nenhum par\u00e2metro definido, realiza uma varredura completa em um host na porta TCP 80 (utilizada pela grande maioria dos websites). O host \u00e9 definido por meio da op\u00e7\u00e3o:\u00a0-h<\/p>\n<p>Ex.:<\/p>\n<p><strong>$ nikto -h www.website.com<\/strong><\/p>\n<p>Por\u00e9m, em certos casos, nos deparamos com websites que n\u00e3o utilizam a porta 80 como padr\u00e3o. Para isso, podemos definir a porta a ser escaneada com a op\u00e7\u00e3o:\u00a0-p<\/p>\n<p>Ex.:<\/p>\n<p><strong>$ nikto -h www.website.com -p 443<\/strong><\/p>\n<p>Assim, como \u00e9 poss\u00edvel definir tamb\u00e9m mais de uma porta para executar a varredura:<\/p>\n<p><strong>$ nikto -h www.website.com -p 80,88,443<\/strong><\/p>\n<p>H\u00e1 tamb\u00e9m a possibilidade de passar a sintaxe de uma URL completa como par\u00e2metro, da seguinte forma:<\/p>\n<p><strong>$ nikto -h https:\/\/www.website.com:8081\/<\/strong><\/p>\n<p>No caso de uma auditoria de seguran\u00e7a ou Pentest, \u00e9 interessante realizarmos uma autentica\u00e7\u00e3o com algum usu\u00e1rio do site, de modo a cobrir maiores resultados e detectar poss\u00edveis falhas do ponto de vista de algu\u00e9m logado no website.<\/p>\n<p>Com isso, cada vez que o Nikto se deparar com algum tipo de autentica\u00e7\u00e3o do website, ele ir\u00e1 inserir as credencias definidas. O par\u00e2metro para isso \u00e9 o\u00a0-id, seguido do login e senha do usu\u00e1rio.<\/p>\n<p>Ex.:<\/p>\n<p><strong>$ nikto -h https:\/\/website.com:8081 -id SUPERVISOR:supervisor123<\/strong><\/p>\n<p>\u00c9 poss\u00edvel tamb\u00e9m definir o formato da sa\u00edda dos resultados do Nikto com a op\u00e7\u00e3o:\u00a0-o<br \/>\nOs formatos suportados s\u00e3o: CSV, HTML, TXT e XML.<\/p>\n<p>Ex.:<\/p>\n<p><strong>$ nikto -h https:\/\/website.com:8081 -o resultados.html<\/strong><\/p>\n<p>J\u00e1 entrando nas configura\u00e7\u00f5es avan\u00e7adas, a op\u00e7\u00e3o\u00a0-mutate\u00a0serve para combinar testes e adivinhar valores durante um scan. Mesmo sendo uma t\u00e9cnica 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.<\/p>\n<p>Abaixo, algumas op\u00e7\u00f5es dispon\u00edveis:<\/p>\n<ul>\n<li>Testa todos os arquivos com todos os diret\u00f3rios root.<\/li>\n<li>Tenta adivinhar nomes de arquivos de senha.<\/li>\n<li>Enumera nomes de usu\u00e1rios via Apache (\/~user type request). Esta op\u00e7\u00e3o explora uma configura\u00e7\u00e3o do UserDir do Apache, que permite que nomes de usu\u00e1rios v\u00e1lidos sejam descobertos por meio de um ataque de brute-force.<\/li>\n<li>Enumera nomes de usu\u00e1rio via cgiwrap (\/cgi-bin\/cgiwrap\/~user type requests). Esta op\u00e7\u00e3o explora uma falha do\u00a0cgiwrap, que permite que nomes de usu\u00e1rios v\u00e1lidos sejam descobertos, tamb\u00e9m por meio do ataque de brute-force.<\/li>\n<li>Tenta brute-force em nomes de subdom\u00ednios, assumindo que o host definido (sem o www) \u00e9 o dom\u00ednio principal (parent domain).<\/li>\n<li>Tenta brute-force em nomes de diret\u00f3rios, sendo a \u00fanica op\u00e7\u00e3o que necessita de um arquivo externo com a lista de diret\u00f3rios.<\/li>\n<\/ul>\n<p>Ex.:<\/p>\n<p><strong>$ nikto -h https:\/\/website.com:8081 -mutate 1,2,3,4,5<\/strong><\/p>\n<p>Em situa\u00e7\u00f5es em que precisa-se obter certo anonimato, pode-se utilizar algumas t\u00e9cnicas de evas\u00e3o para tentar passar despercebido por alguns Firewalls e ISPs antigos. Lembrando que a maioria dos novos ISPs, ir\u00e3o detectar e bloquear o tr\u00e1fego gerado pelo Nikto.<\/p>\n<p>A op\u00e7\u00e3o para essa t\u00e9cnica \u00e9 a\u00a0-evasion, seguida dos par\u00e2metros desejados. Abaixo, as op\u00e7\u00f5es dispon\u00edveis:<\/p>\n<ul>\n<li>URL Encoding\u00a0:: com esta op\u00e7\u00e3o, as URLs s\u00e3o codificadas, dificultando a detec\u00e7\u00e3o do tr\u00e1fego. Por\u00e9m, um IDS sofisticado n\u00e3o teria nenhum problema para detectar esse tipo de evas\u00e3o.<\/li>\n<li>Add \/.\/ in front of each URL\u00a0:: segue quase o mesmo princ\u00edpio da t\u00e9cnica anterior, por\u00e9m, por ser uma t\u00e9cnica bastante conhecida, praticamente qualquer IDS seria capaz de detect\u00e1-la.<\/li>\n<li>Premature URL ending\u00a0:: o Nikto adiciona pastas aleat\u00f3rias seguidas de \/..\/. Por exemplo, ao inv\u00e9s de requisitar &#8220;\/icons&#8221;, o Nikto solicita &#8220;\/foo\/bar\/..\/..\/icons&#8221;, que \u00e9 praticamente a mesma coisa. Como as t\u00e9cnicas anteriores, n\u00e3o somente um IDS poderia detectar isso, mas tamb\u00e9m o servidor web em quest\u00e3o, justamente por se tratar de uma t\u00e9cnica muito conhecida.<\/li>\n<li>Append random long strings\u00a0:: a mesma t\u00e9cnica anterior, mas com mais palavras e os mesmos resultados.<\/li>\n<li>Fake parameters\u00a0:: adiciona par\u00e2metros desnecess\u00e1rios (\/uri\/?foo=bar). Isto n\u00e3o faz nenhuma diferen\u00e7a para um IDS decente.<\/li>\n<li>Tab as request spacer\u00a0:: usa uma guia, ao inv\u00e9s de um espa\u00e7o para separar diferentes elementos da URL. Mais uma vez, isso n\u00e3o \u00e9 problema para um IDS decente.<\/li>\n<li>Case-insensitivity\u00a0:: altera caracteres aleat\u00f3rios para caixa-alta. Sistemas operacionais, como o Windows servers, n\u00e3o se importam com case-insensitivity, logo o teste seria v\u00e1lido. Por\u00e9m, para sistemas que s\u00e3o case-sensitive (UNIX,\u00a0<a href=\"http:\/\/www.vivaolinux.com.br\/linux\/\">Linux<\/a>) a nova URL criada n\u00e3o faz sentido. Mesmo sendo uma t\u00e9cnica interessante, deve ser utilizada com cuidado.<\/li>\n<li>Use \\ as folder separation\u00a0:: \u00e9 o mesmo caso do exemplo acima. Usando \\, ao inv\u00e9s de \/, pode ser \u00fatil para um webserver em Windows, mas n\u00e3o funcionaria em um sistema UNIX-like.<\/li>\n<li>Session splicing\u00a0:: dentre todas as t\u00e9cnicas citadas, esta \u00e9 a mais interessante, mesmo sendo bem velha. \u00c9 basicamente o Nikto + fragroute, que \u00e9 capaz de gerar pacotes de dados de 1 byte. Sem contar que \u00e9 um bom jeito de testar como um IDS gerencia um tr\u00e1fego altamente fragmentado.<\/li>\n<\/ul>\n<p>Ex.:<\/p>\n<p><strong>$ nikto -h https:\/\/website.com:8081 -evasion 1,2,3<\/strong><\/p>\n<p>A \u00faltima op\u00e7\u00e3o de seguran\u00e7a que pode ser utilizada pelo Nikto, \u00e9 o uso de proxies por meio da op\u00e7\u00e3o\u00a0-useproxy\u00a0seguida do IP do servidor e a porta correspondente. De todas as medidas de anonimato, essa \u00e9 talvez a mais recomendada de todas, visto que o proxy \u00e9 capaz de ocultar o seu verdadeiro IP e dificultar a sua identifica\u00e7\u00e3o.<\/p>\n<p>Ex.:<\/p>\n<p><strong>$ nikto -h https:\/\/website.com:80 -useproxy 189.98.78.54:2343<\/strong><\/p>\n<h1>Utilizando o Nikto com o Tor proxy<\/h1>\n<p>Bem como muitas ferramentas destinadas \u00e0 varreduras e scans, o Nikto gera muito tr\u00e1fego na rede ao fazer requisi\u00e7\u00f5es ao alvo, deixando um vasta lista de logs nos Firewalls e servidores. Se voc\u00ea est\u00e1 realizando um hacking\/pentest, a \u00faltima coisa que voc\u00ea deveria querer, \u00e9 que um dispositivo de seguran\u00e7a capture seu verdadeiro IP e possa tomar a\u00e7\u00f5es desagrad\u00e1veis com ele depois.<\/p>\n<p>Pensando nisso, no tutorial a seguir, irei explicar como camuflar o tr\u00e1fego do Nikto utilizando a rede Tor. Para isso, precisaremos de duas ferramentas: o Tor e o Privoxy, cuja instala\u00e7\u00e3o pode ser conferida abaixo.<\/p>\n<p>Obs.: tanto a instala\u00e7\u00e3o quanto as configura\u00e7\u00f5es a seguir, s\u00e3o destinadas a sistemas\u00a0<a href=\"http:\/\/www.vivaolinux.com.br\/linux\/\">GNU\/Linux<\/a>.<\/p>\n<p>Abra um terminal e digite os seguintes comandos:<\/p>\n<p><strong># apt-get install tor<\/strong>\u00a0<span class=\"comentario\"># Para instalar a su\u00edte do Tor<\/span><br \/>\n<strong># apt-get install privoxy<\/strong>\u00a0<span class=\"comentario\"># Para instalar o Privoxy<\/span><\/p>\n<p>Feito isso, ainda com o terminal aberto, digite:<\/p>\n<p><strong># nano \/etc\/privoxy\/config<\/strong><\/p>\n<p>E procure pela linha que contenha:\u00a0listen-address localhost:8118<br \/>\nAssim que encontr\u00e1-la, substitua-a por:\u00a0listen-address 127.0.0.1:8118<\/p>\n<p>Ap\u00f3s isso, localize a linha que contenha:\u00a0#forward-socks5 \/ 127.0.0.1:9050<br \/>\n&#8230;e apenas remova o\u00a0<strong>#<\/strong>\u00a0da frente da mesma, ficando:\u00a0forward-socks5 \/ 127.0.0.1:9050<\/p>\n<p>Agora, digite o seguinte comando para reiniciar o Tor e o Privoxy:<\/p>\n<p><strong>$ \/etc\/init.d\/tor restart &amp;&amp; \/etc\/init.d\/privoxy restart &amp;&amp; update-rc.d tor enable &amp;&amp; update-rc.d privoxy enable<\/strong><\/p>\n<p>As configura\u00e7\u00f5es do Privoxy est\u00e3o prontas, faltando apenas configurarmos o Nikto. Ainda no terminal, digite:<\/p>\n<p><strong># nano \/etc\/nikto.conf<\/strong><\/p>\n<p>E procure pela linha que diz:<\/p>\n<p><sub>\u00a0\u00a0<span class=\"comentario\"># Proxy settings &#8212; still must be enabled by -useproxy<br \/>\n#PROXYHOST=127.0.0.1<br \/>\n#PROXYPORT=8080<\/span><br \/>\n<\/sub><br \/>\nAqui, basta remover os\u00a0<strong>#<\/strong>\u00a0das duas \u00faltimas linhas (visto que a primeira \u00e9 um coment\u00e1rio) e, ao inv\u00e9s de 8080, substitua por 8118 (porta do privoxy), ficando assim:<\/p>\n<div class=\"codigo\"><span class=\"comentario\"># Proxy settings &#8212; still must be enabled by -useproxy<\/span><br \/>\nPROXYHOST=127.0.0.1<br \/>\nPROXYPORT=<strong>8118<\/strong><\/div>\n<p>Conclu\u00eddo essas configura\u00e7\u00f5es, ao realizar um scan com Nikto, basta apenas definir a op\u00e7\u00e3o\u00a0-useproxy, sem nenhum par\u00e2metro para que todo o tr\u00e1fego gerado pelo Nikto passe pela rede Tor, mantendo assim o seu anonimato.<\/p>\n<p>Ex.:<\/p>\n<p><strong>$ nikto -h https:\/\/website.com:8081 -useproxy<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Introdu\u00e7\u00e3o Nikto\u00a0\u00e9 uma ferramenta desenvolvida em Perl, cujo objetivo \u00e9 o de assessoria em servidores WEB, enquadrando-se na categoria de scanners de vulnerabilidades. Foi desenvolvida para encontrar diversos tipos de arquivos, configura\u00e7\u00f5es e programas padr\u00f5es ou inseguros, em servidores WEB. Sendo uma ferramenta ideal para ser utilizada em conjunto com o Nessus. Lembrando que o [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[455,1,51,495,68,271],"tags":[553,716,715,94],"class_list":["post-1297","post","type-post","status-publish","format-standard","hentry","category-apache2","category-viazap","category-linux-linuxrs","category-profissional-de-ti","category-redes-2","category-seguranca-2","tag-basico","tag-e-avancado","tag-nikto","tag-tutorial"],"_links":{"self":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/1297","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1297"}],"version-history":[{"count":1,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/1297\/revisions"}],"predecessor-version":[{"id":1298,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/1297\/revisions\/1298"}],"wp:attachment":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1297"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1297"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1297"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}