{"id":376,"date":"2010-07-31T00:59:49","date_gmt":"2010-07-31T03:59:49","guid":{"rendered":"http:\/\/www.eriberto.pro.br\/blog\/?p=376"},"modified":"2011-10-10T17:58:56","modified_gmt":"2011-10-10T20:58:56","slug":"assistindo-a-uma-invasao-de-rede-de-camarote","status":"publish","type":"post","link":"https:\/\/eriberto.pro.br\/blog\/2010\/07\/31\/assistindo-a-uma-invasao-de-rede-de-camarote\/","title":{"rendered":"Assistindo a uma invas\u00e3o de rede de camarote&#8230;"},"content":{"rendered":"<p>Bem, estou montando alguns casos para aulas de forense computacional. J\u00e1 fiz dois introdut\u00f3rios, dispon\u00edveis em <a href=\"http:\/\/eriberto.pro.br\/forense\">http:\/\/eriberto.pro.br\/forense<\/a>. Mas eu precisava de algo voltado para uma invas\u00e3o em rede. Ent\u00e3o, montei a isca.<\/p>\n<h2>Dia 30 jul. 10<\/h2>\n<h3>16:00 h<\/h3>\n<p>Comecei a montar uma m\u00e1quina com Debian Squeeze para servir de base para uma m\u00e1quina virtual vulner\u00e1vel (usando Xen 4). Depois, criei a m\u00e1quina virtual. A m\u00e1quina base (real) possui uma senha de root forte e s\u00f3 est\u00e1 com o servi\u00e7o ssh rodando. A m\u00e1quina virtual possui ssh com senha f\u00e1cil para root e um usu\u00e1rio test com senha f\u00e1cil tamb\u00e9m. Tem um servidor de p\u00e1ginas Apache, PHP5, tudo com configura\u00e7\u00e3o default e, o mais importante, um monitor <em>samhain<\/em> enviando mails, para a minha conta falsa no GMail, a cada ocorr\u00eancia anormal.<\/p>\n<h3>17:00 h<\/h3>\n<p>A m\u00e1quina virtual est\u00e1 pronta e operando na Internet. Est\u00e1 disfar\u00e7ada em uma m\u00e1quina de uma rede atacadista. \u00c9 importante ressaltar que n\u00e3o houve qualquer tipo de divulga\u00e7\u00e3o a respeito das m\u00e1quinas (real e virtual) e que n\u00e3o houve registro em DNS. Teoricamente, ningu\u00e9m deveria chegar em tais m\u00e1quinas, a n\u00e3o ser por scaneamento. Ou seja: quem chegar \u00e9 bandido! A m\u00e1quina virtual tem IP terminado por 131 e a real 132.<\/p>\n<h3>18:47 h<\/h3>\n<p>O samhain envia um e-mail dizendo, dentre outras coisas, que o arquivo <em>\/etc\/shadow<\/em> foi alterado \u00e0s 18:42 h (21:42 UTC). Veja:<\/p>\n<pre>CRIT \u00a0 : \u00a0[2010-07-30T18:47:18-0300] msg=&lt;POLICY [ReadOnly] C-------T-&gt;, path=&lt;\/etc\/shadow&gt;, ctime_old=&lt;[2010-07-30T19:36:20]&gt;, ctime_new=&lt;[2010-07-30T21:42:17]&gt;, mtime_old=&lt;[2010-07-30T19:36:20]&gt;, mtime_new=&lt;[2010-07-30T21:42:17]&gt;, chksum_old=&lt;B48D594D9879AB0B364DEC764A1322BD08A6F07BB1729B31&gt;, chksum_new=&lt;A394EE8F4C333D45B50D74DCFC78D70AD8F18DE76082D7C3&gt;<\/pre>\n<p>.<\/p>\n<p>Nessa hora eu estava a caminho do shopping.<\/p>\n<h3>22:30 h<\/h3>\n<p>Cheguei do shopping e vi a mensagem do samhain. Batata! N\u00e3o consigo mais logar no servidor como root. A senha foi trocada. S\u00f3 tenho acesso \u00e0 maquina real.<\/p>\n<p>Na verdade, eu poderia tirar a virtual do ar e mont\u00e1-la em um diret\u00f3rio para ver o seu conte\u00fado ou trocar a senha de root novamente. Mas, n\u00e3o \u00e9 o caso. Preciso de um caso forense e vou deixar a m\u00e1quina quieta por mais uns 2 ou 3 dias. Essa \u00e9 a parte mais legal. Como perdi o acesso \u00e0 m\u00e1quina, s\u00f3 conhecerei um pedacinho da hist\u00f3ria. Ent\u00e3o, terei que realmente fazer uma forense para descobrir tudo o que ocorreu. Um ponto chave ser\u00e1 a mem\u00f3ria. At\u00e9 a senha de root (e outras) deve estar l\u00e1 dentro.<\/p>\n<p>A partir da m\u00e1quina real, rodando IPtraf, constatei as seguintes situa\u00e7\u00f5es:<\/p>\n<ul>\n<li>As m\u00e1quinas 200.220.199.8 (Brasil) e 202.140.34.82 (\u00cdndia) conectadas por ssh.<\/li>\n<li>A m\u00e1quina atacada est\u00e1 se conectando \u00e0 porta 6667 da m\u00e1quina 208.83.20.130. Ou seja: instalaram um cliente de IRC na m\u00e1quina e conectaram.<\/li>\n<li>O site original do Apache continua intacto.<\/li>\n<li>H\u00e1 um IP terminado por 182, na m\u00e1quina atacada, conectando na porta 80 de 75.125.252.78. Ou seja: algu\u00e9m levantou um novo IP e o est\u00e1 utilizando. Ao tentar entrar no site da 75.125.252.78, via browser local, recebi: <em>Bad Request (Invalid Hostname)<\/em>.<\/li>\n<p>.<\/ul>\n<p>Bem, coloquei um tcpdump, na m\u00e1quina real, gravando tudo o que for ou vier da porta 6667 externa. O meu objetivo \u00e9 logar alguma conversa de chat para descobrir o canal e o nick dos atacantes. Com isso, talvez eu consiga a senha de root. Vamos esperar. Tamb\u00e9m coloquei outro tcpdump rodando para logar tudo o que trafegar de\/para 75.125.252.78.<\/p>\n<h2>Dia 31 jul. 10<\/h2>\n<h3>00:53 h<\/h3>\n<p>A situa\u00e7\u00e3o se mant\u00e9m inalterada. Os dois atacantes continuam conectados. Mas as coisas est\u00e3o meio paradas. Acho que foram dormir e deixaram as conex\u00f5es estabelecidas para n\u00e3o as perderem. Faz sentido. Vou dormir tamb\u00e9m. Amanh\u00e3 continuo. Boa noite para quem est\u00e1 acompanhado.<\/p>\n<h3>01:02 h<\/h3>\n<p>Opa! Em tempo! Algu\u00e9m criou o IP final 180 e conectou na 80 de 221.232.247.43. Esse IP gera uma tela estranha no browser. O 200.220.199.8 se foi. S\u00f3 resta o 202.140.34.82. Resolvi gravar todo o tr\u00e1fego destinado a qualquer porta 80. Agora sim, vou dormir.<\/p>\n<h3>07:30 h<\/h3>\n<p>Alvorada!!! Fui ver a situa\u00e7\u00e3o. Era a seguinte:<\/p>\n<ul>\n<li>\u00c0s 06:25 h o logrotate da m\u00e1quina tentou atuar e n\u00e3o conseguiu, enviando o seguinte mail (desviado para o GMail):<\/li>\n<\/ul>\n<ul>\n<pre>\/etc\/cron.daily\/logrotate:\r\n error: error accessing \/var\/log\/apache2: No such file or directory\r\n error: apache2:1 glob failed for \/var\/log\/apache2\/*.log\r\n error: found error in \/var\/log\/apache2\/*.log , skipping\r\n error: error accessing \/var\/log\/samhain: No such file or directory\r\n error: samhain:1 glob failed for \/var\/log\/samhain\/*.log\r\n error: found error in \/var\/log\/samhain\/*.log , skipping<\/pre>\n<\/ul>\n<ul>\n<li>Ou seja: o diret\u00f3rio de logs foi apagado. Nisso j\u00e1 ficou \u00f3bvio que o Samhain foi retirado do ar&#8230; Mas o importante aconteceu: ele deu o primeiro alerta.<\/li>\n<li>O site original do Apache continua intacto.<\/li>\n<li>A senha de root permanece alterada e desconhecida para mim.<\/li>\n<li>N\u00e3o houve tr\u00e1fego na porta 80.<\/li>\n<li>No chat, porta 6667, foi capturado tr\u00e1fego relevante e os atacantes falam em espanhol. J\u00e1 sei qual \u00e9 o canal. Neste momento, h\u00e1 28 nicks logados no canal, dos quais, 19 s\u00e3o operadores.<\/li>\n<li>Foi criado um usu\u00e1rio oracle na m\u00e1quina (vi isso pelo tr\u00e1fego no chat).<\/li>\n<li>A m\u00e1quina continua logada como cliente em 208.83.20.130:6667.<\/li>\n<li>Foi criada a porta 25 sobre o IP final 131. Ent\u00e3o, instalaram um servidor de e-mail, provavelmente para fazer spam. Passei a logar tamb\u00e9m o tr\u00e1fego de portas 25 na m\u00e1quina real.<\/li>\n<li>A m\u00e1quina 118.161.245.67 (Taiwan) est\u00e1 conectada na porta 25.<\/li>\n<li>A m\u00e1quina 206.125.46.134 (USA) deu um Syn na 22 do IP final 131, recebeu um Syn-Ack e mandou um Rst. Est\u00e1 scaneando portas. Provavelmente Nmap. Observe que <em>whois<\/em> interessante:<\/li>\n<\/ul>\n<pre style=\"padding-left: 30px;\">AirlineReservations.Com, Inc. AIRLINERES-CALPOP-COM (NET-206-125-40-0-1) 206.125.40.0 - 206.125.47.255<\/pre>\n<pre style=\"padding-left: 30px;\">LA Data Center CP-809973-001 (NET-206-125-46-128-1) 206.125.46.128 - 206.125.46.159<\/pre>\n<ul>\n<li>Foi criada uma porta 3128 na m\u00e1quina, sobre o IP final 180. Provavelmente, temos um proxy para esconder navega\u00e7\u00e3o na Internet.<\/li>\n<li>A m\u00e1quina 118.168.138.210 (Taiwan) est\u00e1 conectada nessa porta.<\/li>\n<li>Hum&#8230; A m\u00e1quina 113.213.248.181 (Jap\u00e3o) enviou um Syn para a porta 445 e recebeu um Rst. Porta fechada. O cara estava procurando portas abertas.<\/li>\n<li>Algu\u00e9m fez uma conex\u00e3o no socket 70.39.70.186 a partir do IP final 182. Um site de rel\u00f3gios?<\/li>\n<li>As m\u00e1quinas 85.105.188.189 (Turquia), 94.28.207.39 (Russia) e 212.87.127.16 (B\u00e9lgica) tentaram um Syn na 23 do IP final 131 e receberam um Rst. Porta fechada.<\/li>\n<\/ul>\n<h3>08:50 h<\/h3>\n<ul><\/ul>\n<ul>\n<li>S\u00f3 agora terminei a an\u00e1lise publicada no hor\u00e1rio anterior.<\/li>\n<li>H\u00e1 um novo canal no IRC. Este tem 42 nicks e 13 operadores. Mas parece ser um canal normal, n\u00e3o de hackers. Est\u00e3o falando coisas banais e abertamente.<\/li>\n<li>Bem, estou satisfeito. Fizeram tudo o que eu queria. At\u00e9 apagaram os logs. Hora de tirar o zumbi do ar. Vou tomar banho e vou retirar a m\u00e1quina do ar. Antes vou fazer todos os procedimentos de coleta de dados de mem\u00f3ria e m\u00e1quina. Vou fazer o que est\u00e1 descrito na palestra de forense, dispon\u00edvel em <a href=\"http:\/\/eriberto.pro.br\/palestras\">http:\/\/eriberto.pro.br\/palestras<\/a>.<\/li>\n<\/ul>\n<h3>10:05 h<\/h3>\n<ul>\n<li>Cheguei na cena do crime. Imediatamente, fiz o dump de mem\u00f3ria. Como usei Xen, foi f\u00e1cil:<\/li>\n<\/ul>\n<pre style=\"padding-left: 30px;\"># xm dump-core vm0-superatacado memoria.dd<\/pre>\n<ul>\n<li>Colhi os dados essenciais na m\u00e1quina ainda viva. Usei <em>netcat<\/em> para copiar os arquivos via rede. Agora posso fazer isso porque j\u00e1 colhi a mem\u00f3ria. Um exemplo:<\/li>\n<\/ul>\n<pre style=\"padding-left: 30px;\">M\u00e1quina de destino: # netcat -l -p 53000 &gt; free<\/pre>\n<pre style=\"padding-left: 30px;\">M\u00e1quina de origem:  # free -m | netcat &lt;ip_de_destino&gt; 53000<\/pre>\n<ul>\n<li>A seguir, tirei a m\u00e1quina virtual do ar usando o comando <em>xm destroy<\/em>, para evitar que ela gravasse algo no disco, superpondo dados.<\/li>\n<li>O \u00faltimo passo foi gerar uma imagem do disco, usando o <em>dcfldd<\/em> (veja <a href=\"http:\/\/www.eriberto.pro.br\/blog\/?p=284\">este post<\/a>).<\/li>\n<\/ul>\n<h2>Matando a sua curiosidade&#8230;<\/h2>\n<p>Apenas para matar a sua curiosidade, numa r\u00e1pida investiga\u00e7\u00e3o de mem\u00f3ria, olha o que encontrei:<\/p>\n<pre style=\"padding-left: 30px;\"># strings memoria.dd |egrep \"Accepted\"|grep root|sort -n\r\nJul 30 18:01:06 superatacado sshd[1160]: Accepted password for root from 190.120.229.185 port 34031 ssh2\r\nJul 30 18:01:06 superatacado sshd[1160]: Accepted password for root from 190.120.229.185 port 34031 ssh2\r\nJul 30 18:05:42 superatacado sshd[1356]: Accepted password for root from 190.120.229.185 port 59465 ssh2\r\nJul 30 18:07:53 superatacado sshd[1579]: Accepted password for root from 189.235.242.88 port 49316 ssh2\r\nJul 30 18:08:55 superatacado sshd[1759]: Accepted password for root from 190.120.229.185 port 48439 ssh2\r\nJul 30 19:51:35 superatacado sshd[16537]: Accepted password for root from 189.235.242.88 port 49576 ssh2<\/pre>\n<ul>\n<li>190.120.229.185 &#8211; Panam\u00e1!<\/li>\n<li>189.235.242.88 &#8211; M\u00e9xico.<\/li>\n<\/ul>\n<p>Outra:<\/p>\n<pre style=\"padding-left: 30px;\"># strings memoria.dd |egrep chauthtok|sort -n\r\nJul 30 18:24:25 superatacado passwd[5629]: pam_unix(passwd:chauthtok): password changed for test\r\nJul 30 18:42:17 superatacado passwd[8377]: pam_unix(passwd:chauthtok): password changed for root\r\n<\/pre>\n<p>Lembre-se: eles apagaram os logs e, depois, constatei que derubaram tamb\u00e9m os servi\u00e7os <em>syslogd<\/em> e <em>klogd<\/em>. \u00c9 por isso que s\u00f3 consegui colher esses dados na mem\u00f3ria. Com certeza, haver\u00e1 muita coisa sobre isso na superf\u00edcie do disco tamb\u00e9m.<\/p>\n<h2>O fim<\/h2>\n<p>Bem, agora \u00e9 trabalhar em cima das evid\u00eancias. Vou fazer uma r\u00e1pida forense para descobrir algumas coisas. Uma delas s\u00e3o as senhas utilizadas para root, sites etc. \u00c9 bem poss\u00edvel que eu encontre isso na mem\u00f3ria. No entanto, j\u00e1 decidi aperfei\u00e7oar o processo. Isso quer dizer que, em breve, farei tudo novamente para ter um material melhor. Quero que seja um caso mais incrementado. Por exemplo: o dump de mem\u00f3ria, mesmo comprimido, ficou muito grande. Tenho que trabalhar com uma mem\u00f3ria menor para as pessoas poderem fazer download.<\/p>\n<p>Mas valeu muito a experi\u00eancia.<\/p>\n<p>[]s!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bem, estou montando alguns casos para aulas de forense computacional. J\u00e1 fiz dois introdut\u00f3rios, dispon\u00edveis em http:\/\/eriberto.pro.br\/forense. Mas eu precisava de algo voltado para uma invas\u00e3o em rede. Ent\u00e3o, montei a isca. Dia 30 jul. 10 16:00 h Comecei a montar uma m\u00e1quina com Debian Squeeze para servir de base para uma m\u00e1quina virtual vulner\u00e1vel&hellip;&nbsp;<a href=\"https:\/\/eriberto.pro.br\/blog\/2010\/07\/31\/assistindo-a-uma-invasao-de-rede-de-camarote\/\" rel=\"bookmark\">Continue a ler &raquo;<span class=\"screen-reader-text\">Assistindo a uma invas\u00e3o de rede de camarote&#8230;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[16,54,24,3,4,5],"tags":[62,624,105,626,61,201,200,621,622,60,623,131,202,190],"class_list":["post-376","post","type-post","status-publish","format-standard","hentry","category-debian","category-forense-computacional","category-internet","category-linux","category-rede","category-seguranca","tag-cracker","tag-debian","tag-forense","tag-forense-computacional","tag-hacker","tag-intrusao-defacement","tag-invasao","tag-linux","tag-rede","tag-redes","tag-seguranca","tag-squeeze","tag-ssh","tag-tcpdump"],"_links":{"self":[{"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/posts\/376","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/comments?post=376"}],"version-history":[{"count":0,"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/posts\/376\/revisions"}],"wp:attachment":[{"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/media?parent=376"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/categories?post=376"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/tags?post=376"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}