Security Hacks: Linux & BSD

Neste artigo abordaremos alguns "Security Hacks" para sistemas Linux e *BSD, ou seja, implementações simples que irão ajudar você a melhorar a segurança de seus servidores. Vamos conhecer algumas dicas matadoras e softwares que farão a diferença nesta empreitada.

[ Hits: 73.939 ]

Por: Anderson L Tamborim em 08/07/2004 | Blog: http://y2h4ck.wordpress.com


Linux & FreeBSD: Chrootkit



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.
Página anterior     Próxima página

Páginas do artigo
   1. Introdução: Security Hacks
   2. FreeBSD: MAC Paranóia
   3. Linux: Criando um firewall com iptables
   4. OpenBSD: OS fingerprint Fuzzy
   5. Linux & FreeBSD: Chrootkit
   6. Testando a senha de seus usuários
   7. Linux & FreeBSD: Criando regras para seu Snort
   8. Considerações finais
   9. Bibliografia
Outros artigos deste autor

Carnivore e Altivore: Os predadores do FBI

Libsafe: Protegendo Linux contra Smashing Overflow

Segurança no SSH via plugins da PAM

Análise Forense - Aspectos de perícia criminal

SECtool - Análise Local para Linux

Leitura recomendada

SSH completo (passo a passo)

Elevação de privilégios locais

Matriz <-> Filial com o OpenVPN

Criptografia com Loop-AES

Sudo 1.8.12 - Parte II - Como sudo funciona

  
Comentários
[1] Comentário enviado por PgDn em 08/07/2004 - 03:22h

ótimo artigo.. no melhor estilo apresentação.. o resto vai de quem tem vontade de buscar...
muito bom... até o proximo

[2] Comentário enviado por slex em 08/07/2004 - 09:32h

o link para o chkroot esta errado.


o certo e' http://www.chkrootkit.org/


[3] Comentário enviado por Ragen em 08/07/2004 - 09:34h

Olá Anderson,

Você falou sobre palestras em seu artigo... Notei em seus artigos anteriores que voce tem muita atencao com os assuntos referentes à seguranca.

Entao... Mal lhe pergunte, por acaso você vai ir na H2HC?

[]'s

Ragen

[4] Comentário enviado por removido em 08/07/2004 - 11:02h

kra muito bom artigo...parabens e valeu!

espero q vc continue com outros artigos sobre segurança!
foi um dos melhores artigos que eu li...

parabens de novo
[]'s
Celso

[5] Comentário enviado por engos em 08/07/2004 - 11:18h

Fiz um artigo praticamente sobre o mesmo assunto, mas diria que seria um pré-requisito para o seu, só estou esperando ser postado... seria legal ter uma crítica sua que com esse artigo ganhou meu respeito.

O interessante é que você colocou bastante coisa importante e explicou algumas, mas outras não.

Tirando as explicações que ficaram faltando, outras estão um pouco fraca, acho que isso foi um erro do artigo, pois deixou algo do tipo: "Aqui estão os comandos, se virem para saber se podem ou não fazer e o que vai/pode acarretar futuramente".

No geral gostei do artigo como um todo, mas achei muito fraca a explicação, pois nem todos vão entender o que você colocou, eu mesmo fiquei com muitas dúvidas no Snort.

Continue com os artigos que esse foi interessante...

[]s

[6] Comentário enviado por y2h4ck em 08/07/2004 - 22:07h

Caro Engos, obrigado pela crítica... alguns termos quero deixar claros.. como disse no início do Artigo, eu não considero ele como um "como fazer" mas sim um " como buscar ". Quero mostrar algumas soluções interessantes para o pessoal, como vc disse algumas eu dei mais atenção devido a não serem tão trivais, como por exemplo fuzzy no OpenBSD ... poucos aqui ja utilizaram. Questão do snort... no próprio site do snort temos muita documentação em PDF mostrando como fazer regras para o mesmo e então decidi não gastar o tempo falando sobre algo ja tão documentendo.

Todo caso agradeço a todos que leramo Texto.

Obrigado

Anderson

[7] Comentário enviado por y2h4ck em 08/07/2004 - 22:21h

ah só pra completar a questão de "Aqui estão os comandos, se virem para saber se podem ou não fazer e o que vai/pode acarretar futuramente", não sei onde o senhor viu isso ... porem apenas disse que PESQUISAS SE FAZEM NECESSÁRIAS... alguem que cre piamente em algo que leh ... realmente não está apto a fazer nada ... devemos ler e pesquisar sobre o assunto que lemos... como disse ... e um "como pesquisar"... portanto, encerro aqui o ensejo :)

regards

[8] Comentário enviado por fr33m4n em 08/07/2004 - 22:46h

O Artigo esta muito bom mesmo....
Na medida.

Parabens y2h4ck.

Abraços

Carlos

[9] Comentário enviado por agk em 08/07/2004 - 22:50h

Ótimo artigo, ajuda a abrir os olhos para alguns pontos importantes para a proteção do sistema, que comumente passam desapercebidos pelos administradores de segurança/redes.

[10] Comentário enviado por ace rush em 08/07/2004 - 23:32h

Muito bom o artigo.

Alem de informar me incentivou a pesquisar mais sobre os assuntos!!

MANDOU BEM y2h4ck!

[11] Comentário enviado por mrfreeze em 09/07/2004 - 00:05h

Otimo artigo.
Achei muito boa a ideia de dar um overview de assuntos variados sobre a seguranca de sistemas *BSD e Linux.
Considero esse metodo muito eficiente para liberar a imaginacao dos leitores. Essas pequenas dicas "liberam a mente dos leitores" deixando eles livres para pesquisarem o assunto que lhes forem uteis.

Continue assim!

[12] Comentário enviado por n1nj4 em 09/07/2004 - 00:51h

Ae, doutor Anderson!

Mandou benzasso no seu artigo!

Parabéns!!!!!! ;-)

[ ]'s n1nj4

[13] Comentário enviado por removido em 30/10/2004 - 20:33h

A minha compilação - mdk 10.0 dá o seguinte erro:

Cracktest.c:6:19: crack.h: No such file or directory
Cracktest.c: In function `main':
Cracktest.c:14: error: parse error before '{' token
Cracktest.c: At top level:
Cracktest.c:18: error: parse error before "else"
Cracktest.c:21: warning: parameter names (without types) in function declaration
Cracktest.c:21: error: conflicting types for `exit'
/usr/include/stdlib.h:612: error: previous declaration of `exit'
Cracktest.c:21: warning: data definition has no type or storage class

Como resolver ???

[14] Comentário enviado por y2h4ck em 25/11/2004 - 10:40h

voce deve instalar o Cracklib em seu linux, ai sim compilará

[15] Comentário enviado por fernandoamador em 25/12/2004 - 02:39h

Ótima. Recomendo.

[16] Comentário enviado por caveira em 17/02/2005 - 03:16h

sua matéria é muito boa para sabermos que alguns pequenos detalhes podem nos ajudar a evitar algumas dores de cabeça.
Parabéns.......

[17] Comentário enviado por marcosmurillo em 08/06/2005 - 17:04h

foi muito bom continua assim.. é Viva linux .


[18] Comentário enviado por d4rkness em 09/06/2005 - 16:53h

Muito bom artigo... Bem didático e auto explicativo.
Parabéns.

[19] Comentário enviado por reimon em 23/03/2006 - 15:16h

Parabéns Pelo artigo, só o firewall linux ficou muito simples, poderia ser mais completo.

[20] Comentário enviado por xALEXANDRE em 16/08/2006 - 18:29h

Muito útil e bom artigo!

[21] Comentário enviado por atheist em 19/08/2006 - 10:05h

Bom.

[22] Comentário enviado por tpramos em 05/09/2006 - 14:51h

Otimo .... principalmente a parte do chkrootkit

[23] Comentário enviado por fabri em 10/10/2006 - 16:15h

Achei este artigo Módulo Security News , que voces acham......
Tô cum mêdo...
fabri

"Softwares de código aberto têm mais brechas de segurança que proprietário, diz pesquisa
Aplicativos proprietários são em média cinco vezes mais seguros se comparados a projetos open source
Da redação
DATA - 09 Out 2006 FONTE - Módulo Security News


O Departamento de Segurança Nacional dos EUA, em parceria com a Universidade de Standford e a desenvolvedora de software Coverity, analisou os 50 maiores projetos de software de código aberto na atualidade e concluiu que eles apresentam mais brechas de segurança do que softwares de código proprietário.

A análise feita pelas três instituições demonstra que o código proprietário é, em média, cinco vezes mais seguro. O estudo utilizou um detector de erros automático e nenhum software de código aberto dos projetos avaliados apresentou um número menor de vulnerabilidades em comparação a aplicativos proprietários. Como exemplo, a pesquisa citou que um código proprietário desenvolvido por uma empresa aeroespacial apresenta um nível de segurança cinco vezes maior que o mais seguro dos códigos open source."






[24] Comentário enviado por slaypher em 26/01/2007 - 19:39h

Olá,

Um bom artigo mesmo, mas gostaria de saber, é possível aplicar FPFuzzy em máquinas GNU/Linux? Eu procurei na Internet e não encontrei nada que me ajudasse a fazer isso. Alguma dica?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts