Neste capítulo vamos falar um pouco sobre o chrootkit.
Usamos o chrootkit para verificar o tamanho do comprometimento de nosso sistema após detectada uma intrusão. Um rootkit é um conjunto de ferramentas e scripts muito usado por invasores de nível mediano, para modificar determinados binários do sistema, como por exemplo, ls, ps, netstat, su, login, para encobrir determinados rastros deles, não gerar logs, esconder conexões e pastas com seus arquivos.
Os rootkits mais avançados usam técnicas de LKM ( loadable kernel modules ) que os tornam praticamente imbatíveis, pois interagem com o sistema em nível de kernel, modificando assim o comportamento profundamente do sistema, às vezes fazendo com que uma perícia na máquina seja comprometida.
O
chrootkit é uma interface de scripts que visam verificar a integridade dos arquivos binários do sistema, assim descobrindo se os mesmos foram afetados por algum tipo de rootkit.
Podemos conseguir o nosso chrootkit muito facilmente em:
Vamos analisar nosso sistema com o chrootkit:
# ./chrootkit
ROOTDIR is `/'
Checking `amd'... not infected
Checking `basename'... not infected
Checking `biff'... not infected
Checking `chfn'... not infected
Checking `chsh'... not infected
Checking `cron'... not infected
Checking `date'... not infected
Checking `du'... not infected
Checking `dirname'... not infected
Checking `echo'... not infected
Checking `egrep'... not infected
Checking `env'... not infected
Checking `find'... not infected
Checking `fingerd'... not infected
Checking `gpm'... not found
Checking `grep'... not infected
Checking `hdparm'... not found
Checking `su'... not infected
Checking `ifconfig'... not infected
Checking `inetd'... not infected
Checking `inetdconf'... not infected
Checking `identd'... not found
Checking `init'... not infected
Checking `killall'... not infected
Checking `ldsopreload'... not tested
Checking `login'... not infected
Checking `ls'... INFECTED
Checking `lsof'... not found
Checking `mail'... not infected
Checking `mingetty'... not found
Checking `netstat'... not infected
Checking `named'... not infected
Checking `passwd'... not infected
Checking `pidof'... not found
Checking `pop2'... not found
Checking `pop3'... not found
Checking `ps'... INFECTED
Checking `pstree'... not found
Checking `rpcinfo'... not infected
Checking `rlogind'... not infected
Checking `rshd'... not infected
Checking `slogin'... not infected
Checking `sendmail'... not infected
Checking `sshd'... not infected
Checking `syslogd'... not infected
Checking `tar'... not infected
Checking `tcpd'... not infected
Checking `tcpdump'... not infected
Checking `top'... not infected
Checking `telnetd'... not infected
Checking `timed'... not infected
Checking `traceroute'... not infected
Checking `vdir'... not found
Checking `w'... not infected
Checking `write'... not infected
Checking `aliens'... no suspect files
Searching for sniffer's logs, it may take a while... nothing found
Searching for HiDrootkit's default dir... nothing found
Searching for t0rn's default files and dirs... nothing found
Searching for t0rn's v8 defaults... nothing found
Searching for Lion Worm default files and dirs... nothing found
Searching for RSHA's default files and dir... nothing found
Searching for RH-Sharpe's default files... nothing found
Searching for Ambient's rootkit (ark) default files and dirs... nothing found
Searching for suspicious files and dirs, it may take a while... nothing found
Searching for LPD Worm files and dirs... nothing found
Searching for Ramen Worm files and dirs... nothing found
Searching for Maniac files and dirs... nothing found
Searching for RK17 files and dirs... nothing found
Searching for Ducoci rootkit... nothing found
Searching for Adore Worm... nothing found
Searching for ShitC Worm... nothing found
Searching for Omega Worm... nothing found
Searching for Sadmind/IIS Worm... nothing found
Searching for MonKit... nothing found
Searching for Showtee... nothing found
Searching for OpticKit... nothing found
Searching for T.R.K... nothing found
Searching for Mithra... nothing found
Searching for OBSD rk v1... nothing found
Searching for LOC rootkit ... nothing found
Searching for Romanian rootkit ... nothing found
Searching for Suckit rootkit ... nothing found
Searching for Volc rootkit ... nothing found
Searching for Gold2 rootkit ... nothing found
Searching for TC2 Worm default files and dirs... nothing found
Searching for Anonoying rootkit default files and dirs... nothing found
Searching for ZK rootkit default files and dirs... nothing found
Searching for anomalies in shell history files... nothing found
Checking `asp'... not infected
Checking `bindshell'... not infected
Checking `lkm'... nothing detected
Checking `rexedcs'... not found
Checking `sniffer'...
sis0 is not promisc
Checking `wted'... nothing deleted
Checking `w55808'... not infected
Checking `scalper'... not infected
Checking `slapper'... not infected
Checking `z2'...
nothing deleted
Como podemos ver, nossa máquina foi infectada. O chkrootkit retornou esses alertas de resposta como INFECTED pois eu substituí o "ls" e "ps" originais por alguns scripts que eu montei em C para esconder alguns processos do sistema e uma pasta da vista dos usuários. Este tipo de técnica é bem usada por invasores na hora de esconder seus rastros.
Como você viu, o chkrootkit foi bem útil.
Também podemos utilizar o chrootkit em mídias montadas, basta que direcionemos o comando para o dispositivo em questão:
# ./chrootkit -r /mnt/hda2_image
Assim o usamos para analisar imagens de HDs que tiveram seus sistemas comprometidos. Faz-se uma imagem não regravável e monta-se ela para analisar.
Podemos utilizar também em outros diapositivos:
# ./chrootkit -p /mnt/cdrom
:)
A documentação que acompanha o projeto é muito interessante e merece uma boa estudada.