• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

herakty

Linux Kernel Exploit byPass SELinux protections

8 mensagens neste tópico

estas coisas não existem... ou existem? como san tomas... ver para crer

têm falado mt se segurança e como acho que o ppl anda com noções exageradas de segurança apresento algum material de estudo interessante... a ideia não é "criar medos" mas sim conciencia... como na condução... conhecer os perigos não é ser-se paranoico mas sim prudente :cheesygrin:

achei este exploit (não é zero day e já têm patch mas é mt recente e mt bom para estudo) tão interessante, pois passa a protecção do SELinux...

tb se falou por ai de como se escalava previlégios em windows e fica assim evidente que não é algo nativo do windows, mas qeu todos os SO´s sofrem... com sabem, o kernel opera com conta root, logo os exploits de kernel são de elevação de previlégios.. normalmente usam-se em combinação com exploits remotos de serviços sob contas sem previlégios

I have to tell you right now – this was one of the most fascinating bugs I've read about lately.

Why is it so fascinating? Because a source code audit of the vulnerable code would never find this vulnerability (well, actually, it is possible but I assure you that almost everyone would miss it). However, when you add some other variables into the game, the whole landscape changes.

While technical details about this are a bit complex, generally what's happening can be easily explained. The vulnerable code is located in the net/tun implementation. Basically, what happens here is that the developer initialized a variable (sk in the code snippet below) to a certain value that can be NULL. The developer correctly checked the value of this new variable couple of lines later and, if it is 0 (NULL), he just returns back an error. The code looks like this:

http://isc.sans.org/diary.html?storyid=6820

teckV

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não vejo o que é que tem de fascinante. É um bug no compilador, que optimizou algo que não devia optimizar. É notável que alguém o tenha encontrado, mas não é fascinante, ao contrário de certos exploits que já apareceram por aí.

UPDATE: Aliás, o bug nem está no compilador, está mesmo no código, que faz o check depois de "desreferenciar" tun, em vez de antes. Nothing to see here, move along.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

para mim todos os exploits de kernel (root) são fascinantes :cheesygrin:

já alguma vez "ownaste" algo? que sentiste? e não falo de causar danos, roubar ou algo do genero... só pelo prazer de "owned"

ainda me lembro da primeira vez (como profissional e com todas as autorizações, claro) que vi uma shell surgir na minha frente... executar o "whoami" e... hummm... é como a poesia... só alguns a sentem

teckV

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

para mim todos os exploits de kernel (root) são fascinantes :cheesygrin:

Nem todos. Existem erros simples de lógica como este, que de fascinante não têm nada. Algo como o Stoned Bootkit que estamos a discutir no outro tópico, isso sim é mais fascinante.

E "ownar" algo ou não, não tem nada a ver com ser fascinante ou não. Mas isto já entra em opinião pessoal, cada um é livre de achar algo ser fascinante ou não.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que é ainda mais estúpido neste bug é que provavelmente poderia ter sido detectado por uma ferramenta de análise estática do código como o CppCheck, que ainda por cima já é usada no Kernel do Linux.

Gostava de ver a mensagem do Linus ao gajo que programou isso :cheesygrin:

EDIT: Pelos vistos o código é estaticamente analisado, mas uma boa parte dos avisos (que várias vezes são falsos positivos), não são revistos: http://www.usenix.org/events/usenix09/tech/full_papers/guo/guo_html/index.html

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
CppCheck

isto é não entender o exploitation... isso detecta certos padrões... não qualquer coisa que aos olhos de um humano pode ser explorada... isso nunca vai acontecer, evitar todos os bugs... e um exploit pode não partir de um bug mas de uma funcionalidade usada de outra forma que não a prevista

não desvalorizem os exploits linux... é fugir ao real

Gostava de ver a mensagem do Linus ao gajo que programou isso

fazes ideia de quantos exploits têm saido para o kernel linux? e para os seus componentes? achas que este gajo é um caso isolado? e os bugs criados pelo proprio linus não contam? ou ele é divino e isento de falhas?

há mts mais exploits (kernel e serviços) para linux que para qualquer outros SO...

e o que têm o linus a ver com os ultimos linux´s? vivem num mundo de fantasia e mitológico onde um ser superior isento de qualquer falhas fez um SO tb isento de qualquer falhas... é claro que isso chega como todos os mitos... atravéz de historias e lendas sem qualquer base real

quem anda nisto desde o inicio sabe QUE SEMPRE HOUVE BUGs e o linux nunca foi assim tão seguro... é claro que noutros tempo o windows era mt horrivel e inseguro e dai se criou a ideia que o linux era MAIS seguro... mas nunca totalmente seguro

fartome de dizer mas digo outra vez... hoje até considero o windows mais seguro... no PenTesting prefiro que o servidor alvo seja linux do que windows server 2003/2008... porque é mais facil entrar no linux, e não têm só a ver com o kernel mas tb com outros serviços

o linux é desevolvido por milhares de programadores world-wide e nem todos são do melhor...

mesmo antigamente a maioria dos cracks com sucesso eram em servidores linux, pois eram os que havia mais como servidores web. STMP, POP3, HTTP, etc, etc... os serviços mais comuns e mais volneraveis

viram o matrix? viram a trinity crackar um servidor? viram a trinity usar o NMAP para encontrar um serviço SSH? e viram-na aplicar um exploit a esse serviço SSH? por acaso tb usei esse exploit nessa altura e dava um acesso root a essa shell SSH...

imagem mt interessante onde podem ver um crack "owned" de root à moda antiga (porque hoje usam-se frameworks integradas tipo metasploit)

1º) descobre-se o serviço vulneravel com o nmap... detecta-se o serviçoe sua versão para ver que exploit aplicar

nmap -v -sS -O x.x.x.x

2º) aplica-se o exploit

sshnuke x.x.x.

trinity-nmapscreen-hd-crop-1200x728.jpg

vejam mais aqui

http://nmap.org/movies.html

teckV

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu não estou a desvalorizar nada. Sei que há milhares de bugs no Linux (possívelmente mais que para o Windows, não duvido), e não usaria o Linux (nem o Windows) num sistema em que a segurança fosse a prioridade.

Mas este bug particular é passível de ser detectado mediante ferramentas de análise estática, o problema é que, como eu pus no link, uma boa parte dos avisos destas análises não são sequer investigados.

E quanto ao Linus, claro que ele não é perfeito, não sejas ridículo. Eu disse aquilo por causa da sua "conhecida" forma de lidar com as pessoas quando estas introduzem bugs estúpidos (o que não quer dizer que ele também não os faça). Ver o caso do ext3: http://www.linux-magazine.com/Online/News/Linus-Torvalds-Upset-over-Ext3-and-Ext4

This is why I absolutely detest the idiotic ext3 writeback behavior. It literally does everything the wrong way around -- writing data later than the metadata that points to it. Whoever came up with that solution was a moron. No ifs, buts, or maybes about it."

:P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora