Conferência DEFCON 18. Você gastou todo esse dinheiro, mas eles continuam tendo você. Parte 1

Como sempre, como no ano passado, não acredito que as pessoas realmente venham às minhas apresentações para ouvir o que eu digo. No ano passado, no domingo, às 10 horas, eu estava de ressaca e pensei que ninguém viria me olhar.



Hoje é domingo de novo, quatro horas da tarde, hoje eu queria voar para casa, mas, apesar disso, agradeço e realmente aprecio sua atenção, como no ano passado, e eu amo essas pessoas e a DefCon.

O tópico da apresentação é que você gastou todo esse dinheiro, mas eles continuam com você. Realizei muitos testes de penetração, estive em muitos países em que participei de pentesting e em todos os lugares lutei com várias ferramentas de proteção, como firewalls, AWS e sistemas de detecção de intrusões IDS e MAC. Ainda lhes damos uma surra, e isso é muito ruim. Muitas vezes, quando eu testo, meu relatório se transforma em uma mensagem sobre incidentes, e eu quero dizer: “ei cara, mas você é o proprietário de tudo isso, como pode usar esse sedimento”? Um tópico inteiro foi dedicado a isso, mas deixe-me primeiro dizer quem eu sou.

Eu sou um defensor de aplicativos de rede e ensino as pessoas sobre isso, e sou um cara "negro" em conferências de segurança, sim, sou eu! Então, eu quebro, fico feroz e bebo. Os pedidos estão mudando, mas continuo o mesmo. Então, se você não gosta de caras como eu, pode se levantar e sair.

Então, deixe-me voltar um pouco, cerca de 10 anos, sempre faço isso porque sou especialmente nostálgico por esses tempos. Naqueles dias, pentear era uma tarefa fácil, chegamos ao cliente e dissemos: “olá, cara, somos pessoas seguras”, e o cliente levantou as mãos, pensando: “diabos, as pessoas estão seguras aqui!”

Depois disso, invadimos a rede do cliente com ferramentas de código aberto, como ISS ou Nessus. Quantos de vocês lembram que Nessus estava livre?



Então, chegamos ao cliente com todas essas coisas e invadimos seu site com facilidade usando explorações como o RootShell com PacketStorm - levante as mãos, quem se lembra delas! Examinamos as portas para encontrar o alvo, usamos todo tipo de compilação, barra de pontos, todas essas bibliotecas e abrimos o painel de controle.





Depois, capturamos capturas de tela da vulnerabilidade, nas quais você podia ver suas senhas e outras informações confidenciais, e dissemos: "Bem, é isso aí, cara, sua rede foi invadida!"



Em seguida, redigimos um relatório, escrevemos que rede de slop eles tinham e recebemos dinheiro por isso. "Sua rede é uma merda, então me pague!"



Hoje, porém, pessoal, existe uma sólida certificação CISSP, independente de segurança da informação, e o cara que o contrata acha que ele sabe mais do que você. Quero dizer a ele: “então que diabos você me contratou?”, E ele responde: “você sabe, nós conseguimos, e isso, temos IDS e MAC, temos isso, temos isso ...”. E você está girando lá em toda essa merda.
Deixe-me contar uma pequena história. Todo mundo que me conhece sabe que eu sempre tenho algum tipo de história.

Alguns anos atrás, tive um cliente que pediu penteados. Ele disse: "OK, Joe, quero que você audite essas sub-redes e a lista de controle de acesso da ACL para VLANs". Provavelmente alguns de vocês já fizeram ACLs para VLANs, então vocês são mais espertos do que eu, porque eu nunca fiz.

Eu digo - bem, que tipo de auditoria devo fazer? Ele responde - auditoria de VLAN, tudo bem, acho que vou ver a configuração de rede deles. E aqui estou eu sentado com um administrador de rede e vejo que eles têm 90 VLANs para 300 usuários! Eu estava em choque e disse a ele como isso é possível, mas ele apenas respondeu - bem, aconteceu! Peguei um pequeno pedaço de papel e comecei a percorrer as pessoas, perguntando: “Você precisa dessa rede? Mas você precisa dessa rede? Talvez você precise dessa rede? Então, eu procurei todo mundo, descobri o que alguém precisava, e era uma empresa grande e muito grande. Eu verifiquei todas essas VLANs, certificado algumas redes e cheguei a um dos segmentos da DMZ, dos quais havia quatro na empresa. Eu disse a mim mesmo: "Ei, cara, todas essas caixas precisam ser atualizadas, elas realmente precisam ser remendadas". Fui ao vice-gerente geral e disse que você tem todo esse equipamento que precisa de uma atualização de software, pois você perdeu alguns patches SQL, PHP e muito mais.

Eles tiveram uma reunião porque estão constantemente reunidos, e um dos desenvolvedores se levanta e diz: "Não, não, não podemos atualizar isso, esses são nossos servidores de desenvolvimento!" (risadas e aplausos no corredor). Como posso comentar sobre o fato de o servidor de desenvolvimento estar localizado na DMZ? E eles me respondem: "Está melhor!".

Então, continuo trabalhando para o cliente, inicio meus pequenos penteados e "derrubo" algumas prateleiras, porque é fácil de fazer. O cliente pergunta por que o sistema IDS não foi capaz de capturá-lo e eu respondo, mas o que havia lá? Ele diz que sim, nós o usamos para monitorar a segurança. Eu respondo: “bem, provavelmente porque alguém trabalhou nesse IDS”!

As empresas contratam outras empresas para terceirizar seus IDS, gerenciam, fazem relatórios e fazem um monte de coisas de merda. Então, eu tive que olhar para a “caixa” e pedi ao cara que me desse acesso para examiná-la rapidamente. Porra, demorei mais de 2 minutos para fazer o login via SSH, e vi que essa cadela é lenta para o inferno, então comecei a verificar se havia rootkits. Acabou que já havia 4 rootkits!



Então pentesting é uma coisa legal! Então, o que faço quando me oponho a esses caras de grandes empresas, quando audito toda essa merda de bancos, toda essa merda de empresas - recorro ao Google para obter ajuda. Antes de tudo, procuro mensagens de erro SQL, procuro arquivos para controle remoto, tudo isso me dará acesso rápido ao shell, o local mais vulnerável. Nunca se envolva em bobagens como a verificação de vulnerabilidades, leve o sistema imediatamente "pela garganta". Por isso, estou sempre procurando por injeções de SQL, arquivos RF, scripts cruzados e, depois de encontrá-los, recorro à inteligência passiva e à OSINT - inteligência de código aberto, para isso uso o Maltego. Eu ajo como uma mulher que quer pegar o marido por traição - eu olho para todo lado! Estou tentando descobrir quais sub-redes eles têm, onde todas essas coisas estão localizadas, eu uso essa ferramenta incrível chamada Firefox. Acredite, você ficará surpreso com o que ele pode fazer!

A inteligência passiva é a principal ferramenta que você realmente deve tentar. Tenho certeza de que a maioria de vocês já está usando, essa técnica definitivamente deve ser usada. Então procuro balanceadores de carga, agora passo através dos balanceadores de carga cerca de 30% dos meus testes de penetração, isso é realmente uma coisa conveniente. Eu configuro a carga na "caixa" e descubro se é balanceamento de carga DNS ou HTTP. Por exemplo, quando você envia pacotes e eles se espalham por todos esses caminhos, isso torna o teste um pouco mais difícil.



Então volto ao incrível navegador Firefox e altero o conteúdo do cabeçalho da barra de pesquisa HTTP Headers em tempo real. Isso permite que você envie algumas solicitações gerais para o servidor.



Portanto, se você enviar o primeiro pacote e "5" retornar para você, você enviará outro pacote para a mesma caixa e ele retornará "6", para que você tenha balanceamento de carga. A mesma coisa com a equipe de escavação e a Netcraft.

Netcraft é geralmente uma coisa incrível. Por exemplo, você procura algo como “F5 BigIP” e obtém endereços IP com uma carga já balanceada. Durante os penteados, foi muito importante para mim. O balanceador de carga é detectado por um script de shell ou usando o Halberd; é um script Python que faz o mesmo. Portanto, são coisas realmente boas que ajudam a determinar o IP real do host que você pretende atacar e que está por trás do balanceador de carga.



A próxima coisa que me deparei é determinar se existe um IPS ou sistema de prevenção de intrusões. Todo mundo parece ter IPS, mas a grande maioria dos meus clientes o usa no modo IDS. Assim como não faz sentido usar ferramentas de hackers em um host com balanceamento de carga, não faz sentido usá-las em um host protegido por IPS. Algum de vocês usa essa coisa? Desconecte-o para o inferno, porque ele bloqueia o tráfego! Na verdade, tente desativá-lo e veja o que acontece. Quantos acreditam que esse sistema bloqueia o tráfego ilegal, ela escreveu para você sobre isso? É a mesma merda que todos os sistemas como ela. Você concorda comigo? Eu só quero ter certeza de que não sou o único que pensa assim.

Portanto, preciso descobrir se preciso lutar contra o IPS, ou seja, se o host atacado não estiver sob sua proteção e, por isso, estou fazendo algumas coisas realmente simples.



Eu sou do Linux, mas agora tenho que usar o Windows, então me sinto um pouco suja. Primeiro de tudo, eu uso cURL - essas são ferramentas de linha de comando ou scripts e uma biblioteca que transmite dados por URL. Com cURL, vou derrotar ../../WINNT/system32/cmd.exe?d. Acredite em mim, este ataque não funcionou desde que Jesus andou na terra, então, deixe-me saber se você conseguir executá-lo.

A única razão pela qual isso precisa ser feito é tentar descobrir se algo está bloqueando seu endereço IP ou enviando pacotes de redefinição para sua conexão. Como se isso enviar pacotes de redefinição, você deverá consultar o cmd.exe? D, pois é provável que seu endereço esteja bloqueando o IPS. Pensando da mesma maneira, os caras do purehacking.com criaram a Detecção de filtro ativo ou Detecção de filtro ativo. Essa é uma ferramenta muito boa executada no Python, que permite alterá-lo um pouco e personalizá-lo de acordo com suas necessidades.

Geralmente encontro o IPS, então uso 3-4 endereços IP diferentes dos quais tiro pacotes e verifico se recebo pacotes de despejo em resposta. Se eu receber, significa que meu endereço IP está bloqueado. Observo que a maioria das soluções IDS / IPS não monitora o tráfego codificado SSL e outro tráfego criptografado. Então, a próxima coisa que faço é ver se o IPS pode lidar com SSL. Deixe-me lembrá-lo novamente por que usamos o Linux.



Crio um arquivo xlnetd e faço o que chamo de "Teste SSL". Você vê que eu abro a porta 8888 e, em seguida, qualquer dado que eu passar para o host local 8888 cai nesse pequeno script de shell, você vê server = /home/j0e/security/toolz/ssl_proxy.sh.

No próximo slide, você poderá ver os incríveis recursos do meu script - basta olhar para esse script de uma linha! Portanto, o tráfego vai diretamente para abrir o SSL e, em seguida, é feita uma conexão com o destino e a mesma Detecção de Filtro Ativo ou cmd.exe é iniciada no host local para determinar se meu endereço IP está bloqueado.



A grande maioria dos meus clientes que implantam o IPS e usam o modo de bloqueio não descriptografa o tráfego SSL antes de passar o IPS ou o IDS. Portanto, se você quiser que seus clientes usem o dinheiro de maneira lucrativa, peça para eles comprarem um acelerador SSL. Ele interrompe o protocolo SSL antes do IPS e tenta descriptografar o tráfego.
Agora vamos ver como você pode atacar o host através do Tor e como executar ferramentas de verificação de rede através dele. Faço isso com bastante frequência, iniciando o privoxy e, no modo oculto, uso ferramentas como o Nessus para atacar o host pela porta 8080. Nesse sentido, vale a pena recomendar que seus clientes bloqueiem os nós de saída do Tor.



A maioria das empresas não tem motivos para permitir que seus clientes se conectem à sua rede através de redes privadas, mas nunca bloqueiam essas conexões. Portanto, você deve forçar as empresas a bloquear esses nós; é isso que faço primeiro para meus clientes. Eu não tenho um slide de proxy GLib porque a ressaca realmente afetou minha capacidade de fazer esses slides adequadamente esta manhã.

A última coisa que faço é identificar WAF, firewalls de aplicativos da Web ou firewalls de aplicativos da Web. Como posso determinar se um host usa WAF?



Como faço muitos testes de PCI, sei que alguns chefes engenhosos do escritório da PCI perceberam que, se você tem aplicativos da Web vulneráveis, que não deseja corrigir e corrigir a vulnerabilidade, pode usar o WAF. De fato, é fácil descobrir o uso desses firewalls. Para fazer isso, basta enviar ao host 1 uma solicitação real, uma solicitação maliciosa e ver como suas respostas serão diferentes. Uma solicitação HTTP criada com códigos maliciosos pode conter uma carga útil que inclui todo tipo de bobagem, como apóstrofo, aspas, ponto de interrogação, menos, colchetes, asteriscos e assim por diante.



Portanto, não é difícil descobrir se você está atacando um host protegido pelo WAF.
Portanto, você envia caracteres inválidos, após o qual as ferramentas descritas no próximo slide fornecem todos os tipos de coisas estranhas. Portanto, se você solicitar o cmd.exe e usar o utilitário de linha de comando grep para o método "501", ou seja, em vez do erro 404 "não encontrado", você receberá a mensagem de erro 501 - "o método de solicitação não é suportado pelo servidor", provavelmente encontrou o firewall mod_security que protege o servidor Apache. As versões mais recentes desse firewall mudaram a situação, mas quem realmente se importa em atualizar seu WAF?

Portanto, uso os métodos mostrados no próximo slide bastante amplamente e também passo meus ataques pelo firewall do AQTRONIX Web Knight.



Você vê o código 999 No Hacking no cabeçalho de resposta, que inicio ao testar - "No hacking". Então, basta começar a adicionar itens à barra de endereços para ver o que isso dará e se você recebe uma mensagem de erro 404 para um arquivo que não está no host.



Quero dizer, se você enviar a solicitação correta, que fornece uma mensagem de 200, e enviar a solicitação errada para um arquivo que não existe, e o servidor emitir um erro 404 e, de repente, inserir algo para a criação de scripts entre sites, o servidor enviará você tem um significado completamente diferente do erro. Isso indicará que, neste caso, existe algum tipo de mecanismo de proteção.

Voltar aos nossos jogos de codificação. Se você se opuser ao WAF, veja se essa coisa suporta HEX, se ele trata utf7, utf-8, base16, base64 ou uma mistura dessas codificações. A maioria dos WAFs não funciona bem com codificações, especialmente se você começar a misturá-las.

Meus bons amigos, Sancho Gachi e Windell, criaram no ano passado uma ferramenta Python chamada WAFW00F, um utilitário para detectar WAF.



Essa coisa tira impressões digitais dos cabeçalhos de resposta HTTP e identifica o WAF. Eu realmente gosto dessa coisa, agora já temos uma lista de 10 ou 12 WAF, e ela está crescendo constantemente. A próxima coisa que vale a pena prestar atenção é o WAF Fun, uma ferramenta que funciona com o método de força bruta no conjunto de regras de firewall de aplicativos da web, e também é escrito em Python.

Eu realmente admiro esses caras e gostaria que tivéssemos mais progresso ainda, mas você sabe que bebemos um pouco, depois trabalhamos, depois bebemos novamente e trabalhamos novamente, para que o processo de criação dessas coisas não seja fácil. Mas ainda espero que, na próxima conferência da DefCon, eu possa demonstrar como o WAF Fun funciona usando o método de força bruta.

Outra coisa interessante é o que podemos fazer com o Unicode. É verdade que está escrito em Ruby, e todos sabemos que Ruby é péssimo.

17:00 min

Conferência DEFCON 18. Você gastou todo esse dinheiro, mas eles continuam tendo você. Parte 2



Obrigado por ficar conosco. Você gosta dos nossos artigos? Deseja ver materiais mais interessantes? Ajude-nos fazendo um pedido ou recomendando a seus amigos, um desconto de 30% para os usuários da Habr em um análogo exclusivo de servidores básicos que inventamos para você: Toda a verdade sobre o VPS (KVM) E5-2650 v4 (6 núcleos) 10GB DDR4 240GB SSD 1Gbps de US $ 20 ou como dividir o servidor? (as opções estão disponíveis com RAID1 e RAID10, até 24 núcleos e até 40GB DDR4).

VPS (KVM) E5-2650 v4 (6 núcleos) 10 GB DDR4 240 GB SSD de 1 Gbps até janeiro de graça quando pagar por um período de seis meses, você pode fazer o pedido aqui .

Dell R730xd 2 vezes mais barato? Somente nós temos 2 TVs Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 a partir de US $ 249 na Holanda e nos EUA! Leia sobre Como criar um prédio de infraestrutura. classe usando servidores Dell R730xd E5-2650 v4 custando 9.000 euros por um centavo?

Source: https://habr.com/ru/post/pt432456/


All Articles