Conferência HACKTIVITY 2012. A teoria do Big Bang: a evolução do pentesting na segurança aprimorada. Parte 1Agora tentaremos outra maneira de implementar o SQL. Vamos ver se o banco de dados continua a lançar mensagens de erro. Esse método é chamado de “aguardando um atraso” e o próprio atraso é escrito desta forma: waitfor delay 00:00:01 '. Copio isso do nosso arquivo e colo na barra de endereços do navegador.

Tudo isso é chamado de "injeção SQL temporária e cega". Tudo o que fazemos aqui é dizer: "aguarde 10 segundos". Se você notar, no canto superior esquerdo, temos a inscrição "conectando ...", ou seja, o que nossa página faz? Ela está aguardando uma conexão e, após 10 segundos, a página correta aparece no seu monitor. Com essa técnica, recorremos ao banco de dados para que possamos fazer mais algumas perguntas, por exemplo, se o usuário é Joe, é necessário aguardar 10 segundos. Isso está claro? Se o usuário for dbo, aguarde 10 segundos também. Este é o método de injeção SQL cego.
Eu acho que os desenvolvedores ao criar patches não eliminam essa vulnerabilidade. Esta é uma injeção de SQL, mas nosso programa IDS também não a vê, assim como os métodos anteriores de injeção de SQL.
Vamos tentar algo mais interessante. Copie esta linha com o endereço IP e cole-o no navegador. Funcionou! A faixa TCP em nosso programa ficou vermelha e o programa observou duas ameaças à segurança.

Bem, veja mais o que aconteceu. Temos uma ameaça ao shell do XP e outra ameaça é uma tentativa de injetar SQL. No total, duas tentativas de atacar o aplicativo da web foram observadas.

Ok, agora me ajude com a lógica. Temos um pacote de dados de intervenção no qual o IDS diz que respondeu a várias intervenções no shell de comando do XP.

Se descermos, veremos uma tabela de códigos HEX, à direita da qual há um sinalizador com a mensagem xp_cmdshell + & 27ping, e obviamente isso é ruim.

Vamos ver aqui o que aconteceu. O que o servidor SQL fez?

O servidor SQL disse: "você pode ter uma senha do meu banco de dados, pode obter todos os registros no meu banco de dados, mas, cara, não quero que você execute meus comandos, não é nada legal!"
O que precisamos fazer é garantir que, mesmo que o IDS relate uma ameaça ao shell do XP, essa ameaça seja ignorada. Se você estiver usando o SQL Server 2005 ou o SQL Server 2008, após a detecção de uma tentativa de injeção de SQL, o shell de comando do sistema operacional será bloqueado, o que não permitirá que você continue seus negócios. Isso é muito chato. Então o que fazemos? Você precisa perguntar ao servidor com muito carinho. Devo dizer o seguinte: "por favor, papai, bem, posso comer esses biscoitos?" É isso que eu faço, sério, peço ao servidor muito educadamente! Peço que você mostre opções adicionais, solicite reconfiguração e solicite que você altere as configurações do shell do XP para disponibilizar o shell, porque eu preciso!

Vemos que o IDS detectou isso - veja, 3 ameaças já foram observadas aqui.

Basta olhar aqui - explodimos os logs de segurança! Parece uma árvore de Natal, tantas coisas estão penduradas aqui! Até 27 ameaças à segurança! Hooray pessoal, pegamos esse hacker, pegamos ele!

Não estamos preocupados que ele roube nossos dados, mas se ele puder executar comandos do sistema em nossa “caixa” - isso é sério! Você pode desenhar uma rota Telnet, FTP, pode se apossar dos meus dados, isso é legal, mas não me preocupo com isso, só não quero que você assuma o controle da minha "caixa".
Eu quero dizer sobre as coisas que realmente "me pegaram". Trabalho para organizações, trabalho para elas por muitos anos e conto porque minha namorada acredita que estou desempregada. Ela acredita que eu só faço o que estou no palco e conversando, isso não pode ser considerado trabalho. Mas eu digo: "Não, minha alegria, sou consultor!" Essa é a diferença - eu expresso minha opinião e eles me pagam por isso.
Vou dizer isso - nós, como hackers, adoramos quebrar a concha e, para nós, não há mais prazer no mundo do que "engolir a pia". Quando os analistas da IDS escrevem suas regras, você vê que elas as escrevem de maneira a se protegerem de quebrar o shell. Mas se você conversar com o CIO sobre o problema da extração de dados, ele oferecerá que você pense em duas opções. Suponha que eu tenha um aplicativo que faça 100 "peças" por hora. O que é mais importante para mim - garantir a segurança de todos os dados neste aplicativo ou a segurança do shell "box"? Esta é uma pergunta séria! Com o que você deve se preocupar mais?

O fato de você ter um shell de "caixa" danificado não significa necessariamente que alguém tenha acesso à operação interna dos aplicativos. Sim, é mais do que provável e, se isso ainda não aconteceu, pode acontecer em breve. Mas observe que muitos produtos de segurança são construídos com a premissa de que um invasor se move pela sua rede. Portanto, eles prestam atenção à execução de comandos, à introdução de comandos e você deve observar que isso é algo sério. Eles prestam atenção a vulnerabilidades triviais, a scripts entre sites muito simples, a injeções SQL muito simples. Eles não se preocupam com ameaças complexas ou mensagens criptografadas; não se preocupam com coisas desse tipo. Podemos dizer que todos os produtos de segurança procuram ruído, procuram um "latido", querem parar o que morde seu tornozelo. Isso é o que eu entendi ao lidar com produtos de segurança. Você não precisa comprar produtos de segurança, não precisa dirigir um caminhão ao contrário. Você precisa de pessoas competentes e qualificadas que entendem de tecnologia. Sim, meu Deus, são pessoas! Não queremos investir milhões de dólares nesses problemas, mas muitos de vocês já trabalharam nessa área e sabem que, assim que seu chefe assiste ao anúncio, ele corre para a loja com um grito: "precisamos entender isso!" Mas, na realidade, não precisamos disso, apenas temos que consertar a bagunça que está por trás de nós. Esse foi o pré-requisito para esta apresentação.
Um ambiente de segurança aprimorado é algo que passei muito tempo entendendo as regras de como os mecanismos de segurança funcionam. Depois de entender os mecanismos de proteção, é fácil contornar a proteção. Por exemplo, eu tenho um aplicativo Web protegido por seu próprio firewall. Copio o endereço do painel de configurações, colo-o na barra de endereços do navegador e vou para as configurações e tento aplicar scripts entre sites.

Como resultado, recebo uma mensagem de firewall sobre a ameaça - eles me bloquearam.

Eu acho que isso é ruim, você concorda? Você encontrou um produto de segurança. Mas e se eu tentar algo assim: eu insiro o parâmetro Joe '+ OR + 1 =' 1 na linha

Como você pode ver, funcionou. Corrija-me se estiver errado, mas testemunhamos como a injeção de SQL derrotou o firewall do aplicativo. Agora, vamos fingir que queremos iniciar uma empresa para implementar medidas de segurança, então vamos experimentar o chapéu de um fabricante de software. Agora incorporamos o mal porque é um chapéu preto. Sou consultor e posso fazer isso com fabricantes de software.
Queremos criar e implantar um novo sistema de detecção de intrusões, por isso iniciaremos uma empresa de detecção de intrusões. Como um produto de código aberto, o Snort contém centenas de milhares de assinaturas de ameaças de intrusão. Devemos agir com ética, para não roubar essas assinaturas de outros aplicativos e inseri-las em nosso sistema. Apenas sentamos e reescrevemos todos - ei, Bob, Tim, Joe, vamos aqui, verifique rapidamente todas essas 100.000 assinaturas!
Também precisamos criar um scanner de vulnerabilidades. Você sabe que o Nessus, um programa para pesquisa automática de vulnerabilidades, possui boas 80.000 assinaturas e scripts que verificam vulnerabilidades. Voltaremos a agir de forma ética e pessoalmente reescrevê-los todos em nosso programa.
As pessoas me perguntam: "Joe, você faz todos esses testes com software de código aberto, como Mod Security, Snort e similares, responde como eles são semelhantes aos produtos de outros fabricantes?" Eu respondo a eles: "Eles não se parecem com eles!" Como os fabricantes não roubam o material dos produtos de segurança de código aberto, eles se sentam e escrevem todas essas regras com as próprias mãos.
Se você pode fazer com que suas próprias assinaturas e linhas de ataque funcionem sem o uso de produtos de código aberto, essa é uma grande chance para você. Se você não conseguir opor nada a produtos comerciais, seguindo a direção certa, deve encontrar um conceito que o ajude a se tornar famoso em seu campo.
Todo mundo sabe o que estou bebendo. Deixe-me mostrar por que eu bebo. Se você já auditou o código fonte em sua vida, definitivamente o beberá, acredite em mim, depois disso começará a beber.

Portanto, nossa linguagem favorita é C ++. Vejamos este programa - Web Knight, este é um aplicativo de firewall para servidores web. Tem exceções por padrão. Isso é interessante - se eu implantar esse firewall, ele não me protegerá do Outlook Web Access.

Ótimo! Isso ocorre porque muitos fornecedores de software extraem as regras dos mesmos aplicativos e as inserem em seus produtos sem depender muito de pesquisas. Portanto, quando implanto o aplicativo de firewall de rede, acredito que tudo relacionado ao webmail é feito errado! Porque praticamente qualquer webmail viola a segurança por padrão. Você possui código da web que executa comandos e consultas do sistema a partir do LDAP ou de qualquer outro repositório de banco de dados do usuário diretamente na Internet.
Diga-me, em que planeta isso pode ser considerado seguro? Pense bem: você abre o Outlook Web Access, pressiona b ctrl + K, procura usuários e tudo mais, gerencia o Active Directory diretamente da Internet, executa comandos do sistema no Linux se usar "protein mail" ou Horde ou o que outra coisa. Você puxa todos esses avaliações e outros tipos de funcionalidade não segura. Portanto, muitos firewalls os excluem da lista de riscos à segurança. Tente perguntar ao fabricante do seu software sobre isso.
Voltar ao aplicativo Web Knight. Ele roubou muitas regras de segurança de um scanner de URL que verifica todos esses intervalos de endereços IP. Então, todos esses intervalos de endereços estão excluídos do meu produto?

Algum de vocês deseja definir esses endereços na sua rede? Deseja que sua rede seja executada nesses endereços? Sim, isso é incrível. Bem, role este programa e veja outras coisas que esse firewall não deseja fazer.
Eles são chamados de 1999 e querem que seu servidor da Web esteja no passado! Algum de vocês se lembra desse lixo: / scripts, / iishelp, msads? Talvez algumas pessoas com saudade se lembrem de como foi divertido quebrar essas coisas. "Lembre-se, cara, há quanto tempo nós" matamos "servidores, foi legal!"

Agora, se você observar essas exceções, verá que pode fazer todas essas coisas - msads, impressoras, iisadmpwd - todas essas coisas que ninguém precisa hoje. E os comandos que você não tem permissão para executar?

Isto é arp, at, cacls, chkdsk, cipher, cmd, com. Ao listá-los, você fica coberto de lembranças de dias passados "cara, lembre-se de como capturamos esse servidor, lembre-se daqueles dias"?
Mas o que é realmente interessante - alguém vê o WMIC aqui ou talvez o PowerShell? Imagine que você tenha um novo aplicativo que funcione executando scripts no sistema local, e esses são scripts modernos, porque você deseja executar o Windows Server 2008 e eu farei um ótimo trabalho, protegendo-o com as regras projetadas para o Windows 2000. Portanto na próxima vez que o provedor chegar até você com seu aplicativo da web, pergunte a ele: “ei, e você forneceu coisas como bits admin ou execução de comandos do PowerShell, você verificou todas as outras coisas, porque vamos atualizar e usar o novo ve UIS DotNET »? Mas todas essas coisas devem estar presentes no produto de segurança por padrão!

A próxima coisa que quero falar com você são erros lógicos. Vamos para o endereço 192.168.2.6. É sobre o mesmo aplicativo que o anterior.

Você pode perceber algo interessante se rolar a página e clicar no link Entre em contato.

Se você olhar para o código-fonte da guia Fale Conosco, este é um dos métodos de pentesting, então o que eu faço constantemente é observar esta linha.

Pense nisso! Ouvi dizer que muitos ao ver isso disseram: "Uau!" Certa vez, realizei testes de penetração para, digamos, um banco bilionário e notei algo semelhante lá. Portanto, não precisamos de injeções SQL ou scripts entre sites - temos o principal, essa barra de endereço.

Portanto, sem exageros - o banco nos disse que tinham os dois - um especialista em rede e um inspetor da web, e eles não fizeram nenhum comentário. Ou seja, eles consideraram normal que, através de um navegador, você possa abrir e ler um arquivo de texto.
Ou seja, você pode simplesmente ler o arquivo diretamente do sistema de arquivos. O chefe do serviço de segurança me disse: "Sim, um dos scanners encontrou essa vulnerabilidade, mas a considerou menor". Ao que eu respondi, bem, me dê um minuto. Digitei na barra de endereços filename = .. / .. / .. / .. / boot.ini e consegui ler o arquivo de inicialização do sistema de arquivos!

Eles me disseram o seguinte: "não, não, não, esses arquivos não são críticos!" Eu respondi - mas este é o Server 2008? Eles disseram que sim, é ele. Eu digo - mas este servidor tem um arquivo de configuração localizado no diretório raiz do servidor, certo? "Certo", eles respondem. “Excelente”, digo, “e se o invasor fizer isso”, e digito filename = web.config na barra de endereços. Eles dizem - e daí, você não vê nada no monitor?

Eu digo - e se eu clicar com o botão direito do mouse no monitor e selecionar a opção "Mostrar código da página"? E o que vou encontrar aqui? Nada crítico? Vou ver a senha de administrador do servidor!

E você diz que não há problema?
Mas minha parte favorita é a seguinte. Você não me permite executar comandos na “caixa”, mas posso roubar a senha e o banco de dados do administrador do servidor da Web, visualizar o banco de dados inteiro, retirar todos os materiais sobre as falhas de banco de dados e sistema e sair com tudo isso. É o caso quando um bandido diz: "ei, hoje é um ótimo dia!"

Não deixe que os produtos de segurança se tornem sua doença! Não deixe que os produtos de segurança o deixem doente! Encontre alguns "nerds", dê a eles todos esses memoráveis tzatskis de Star Trek, interesse-os, incentive-os a ficar com você, porque esses fedores chatos que não tomam banho diariamente são os que fazem suas redes funcionarem como deveria! Essas são as pessoas que ajudarão seus produtos de segurança a funcionarem corretamente.
Diga-me, qual de vocês consegue ficar na mesma sala por um longo tempo com a pessoa que constantemente diz: “Ah, eu preciso imprimir urgentemente esse script!”, E quem está ocupado o tempo todo? Mas você precisa de pessoas que façam seus produtos de segurança funcionarem.
Repito mais uma vez - os produtos de segurança são estúpidos, porque as luzes são constantemente enganadas, constantemente cometem coisas desleixadas, elas simplesmente não fornecem segurança. Nunca vi um bom produto de segurança que não exigiria uma pessoa com uma chave de fenda, capaz de apertar sempre que necessário, para que tudo funcione mais ou menos normalmente. Esta é apenas uma enorme lista de regras dizendo que isso é ruim e é isso!
Portanto, pessoal, quero que prestem atenção à educação, a coisas como segurança, treinamento politécnico, porque existem muitos cursos on-line gratuitos sobre questões de segurança. Aprenda Python, aprenda assemblies, aprenda testes de aplicativos da web.

Aqui está o que realmente ajuda a proteger sua rede. Pessoas inteligentes protegem redes, produtos de rede não protegem! Volte ao trabalho e diga ao seu chefe que você precisa de mais orçamento para pessoas mais inteligentes. Sei que há uma crise, mas ainda diga a ele - precisamos de mais dinheiro para que as pessoas os treinem. Se compramos um produto, mas não compramos um curso de manuseio, porque é caro, por que compramos se não queremos ensinar às pessoas como usá-lo?
Trabalhei para muitos fabricantes de produtos de segurança, passei quase toda a minha vida implementando esses produtos e já estou cansado de todos esses controles de acesso à rede e outras coisas, porque instalei e lancei todos esses produtos ruins. De alguma forma, eu vim para um cliente, eles queriam implementar o padrão 802.1x para o protocolo EAP, então eles tinham endereços MAC e endereços secundários para cada porta. Eu vim, vi que estava ruim, virei e comecei a pressionar os botões na impressora. Você sabe, a impressora pode imprimir uma página de teste do equipamento de rede com todos os endereços MAC e endereços IP. Porém, como a impressora não suporta o padrão 802.1x, deve ser excluída.
Depois, desconectei a impressora da rede e mudei o endereço MAC do meu laptop para o endereço MAC da impressora e conectei o meu laptop, ignorando, assim, esta dispendiosa solução MAC, pense bem! Então, o que essa solução MAC pode fazer por mim se uma pessoa pode simplesmente transmitir qualquer equipamento como impressora ou telefone VoIP?
Então, para mim hoje, a cobertura é que eu gasto tempo tentando entender e entender o produto de segurança que meu cliente comprou. , , HIPS, NIPS, LAUGTHS, MACS , . , . , , , , .
, , MS 1103. , «» HIPS, Host Intrusion Prevention Signature, . HIPS. , , , , , .
, , .
:)
, . ? ? , ,
VPS $4.99 ,
entry-level , : VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps $19 ? ( RAID1 RAID10, 24 40GB DDR4).
Dell R730xd 2 - Equinix Tier IV ? 2 Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 $199 ! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - a partir de US $ 99! Leia sobre Como criar um prédio de infraestrutura. classe usando servidores Dell R730xd E5-2650 v4 custando 9.000 euros por um centavo?