Transcrição do áudio
Cara, por mais idiota que seja, senha ainda é um problema. Cara, nós já temos o que? 40 anos de internet consolidada no Brasil e ainda nós encontramos isso. Bom, vou só dar uma dica pra você, tá? Olha só, você dá um usuário, um e-mail corporativo e uma senha para as pessoas, certo? Da sua empresa. Sabe o que esses caras vão fazer? Eles vão se inscrever no Netflix com esse e-mail e essa senha. Eles vão se inscrever em qualquer sistema na internet com o mesmo e-mail e a mesma senha, sempre. A troca de senha, eu não vejo ela como algo... Como eu posso dizer, assim, que vai fazer com que o cara crie uma senha mais forte. Mas pelo menos a troca de senha faz com que o idiota, naturalmente, coloque outra senha. E aí não seja exatamente a senha que ele se cadastrou no... Como é que é o nome? Gatolnet do tube do ponto com. Lógico que esse negócio vai vazar, rapaz. E aí, adivinha? Você deve... Você deu essa credencial para essa pessoa, esse e-mail para essa pessoa. E ele também é administrador de algum servidor na rede. E adivinha qual é a senha? Qual foi a senha que você deu para esse usuário na rede para ele? A mesma. Complicado. Então, cara... Passou um ótimo. Senha sempre é um problema. Até hoje, isso não vai mudar. Você quer ver outra coisa? Dispositivos de infraestrutura que... Bom, você... Talvez nós não entramos para trocar a senha default. Você já experimentou mapear os dispositivos à volta e tentar descobrir pelo OUI dele? Tentar descobrir qual é o fabricante e qual é a senha padrão daquele equipamento? Já tentou? Você sabia que a senha mais digitada no mundo não é 1, 2, 3, 4, 5, 6 como os livros dizem? Não. A senha mais digitada no mundo é o próprio username. O username... A senha é o próprio textinho lá usado no username. Cara, então senha é um problema. E por mais idiota que seja, ancoragem... Tipo assim, você ancorou num ambiente, mas aquela pessoa não tinha ali uma permissão, um privilégio sobre o ambiente. Mas você minimamente agora tem um ponto de apoio. E nós vamos buscar... Nessa prática, capítulo 3, justamente um ponto de apoio. Por menor que seja o privilégio, você tem que conseguir no mínimo um ponto de apoio. Geralmente nós temos então uma vulnerabilidade de credenciais fracas. O projeto meu Deus então... Que não tenha credencial fraco no meu ambiente, senão eu começo aqui a acreditar em Deus. Seguinte. Seguinte. Nasce então... No exemplo lá do... Kali Linux, com a Xplotable, nasce de um mod base, com umas contas de senhas triviais, tipo MSF Admin, aluno, aluno, serviço, serviço 1, 2, 3, root, root, e também o mod SSH, que ele permite então que, por exemplo, o SSH server tem usuário, com permite, root, login, yes. Bom, você sabe, né? Sempre que você instala um Linux e você vai colocar o SSH, por padrão, o OpenSSH, hoje em dia, no passado não, lá no arquivo SSH config, o SSHD config, você tem o permite, login, root, hoje como antigamente era yes. Ou seja, eu preciso de descobrir, naturalmente, de uma empresa, preste atenção, eu tenho que descobrir da empresa, o usuário e a senha de alguém, certo? Legal. Se eu não conseguir roubar, então, lá no Breachings Forums, algo assim, não tem, bom, então, eu vou tentar descobrir sobre as pessoas e como essa empresa cria os usernames. Geralmente o e-mail das pessoas diz o padrão. Exemplo, a empresa usa o primeiro nome, ponto, último nome, tá? É um exemplo, peraí que o cara saiu aqui, né? Eu entrei aqui na explicação. Então, geralmente, numa empresa, o cara coloca lá o nome, ponto, sobrenome. Ó, nome, underline, sobrenome. E se já tem aquele nome, aí vem um, dois, três, quatro, assim, não é assim? Não é? Ah, é assim que é feito. Então, você pode ir para a internet, tentar descobrir como que é feito o nome, os usernames. E aí, você descobrindo como é feito os usernames, bom, você matou a primeira das duas charadas. A primeira charada é o username, a segunda é o password, certo? É naturalmente que se você permite, permite root login yes no SSH, lá no OpenSSH, é natural que o cara já matou a primeira charada, usuário root. Só falta descobrir a senha. Quem é a pessoa que é mais importante? Naquele ambiente. Ah, é o fulano. Vamos fazer uma busca sobre a vida do fulano, porque a senha é, provavelmente, uma palavra do cotidiano dele. Legal? Tá, então é assim que funciona, tá? Então, nós vamos fazer um recall, descobrir detalhes, criar um arquivo de credenciais, arquivos de usuários, e tentar bater nisso aí, e ver se nós conseguimos, então, localizar ali. Uma conta, a menor que seja, um coragem ali, naquele ambiente. Então, o clássico é o SSH. Na verdade, você executa um comando nmap para descobrir as portas, usa o modo paranoid, paranoid, porque o paranoid, se você colocar o nmap sem o paranoid, ele vai fazer, tipo assim, umas 200 requisições por segundo. Prá! Tá, exagerei um pouquinho. Mas é bastante. Aí, o que vai acontecer? Pô, o seu IP vai cair, então, numa lista de negação. Então, como você faz? Você faz no modo paranoid. Ele manda uma mensagem, aí daqui uns três minutos manda outra. Ah, vai demorar. Vai demorar. Por isso que você numera as principais portas. 23, 22, 80, 21. Beleza? Beleza? Tá bom. Então, digamos que eu descobri, por modo paranoid, que tem uma porta aberta no alvo, 22. Tá sendo defendida. Então, vamos digitar o comando nmap porta 22. Vamos ser com a porta. Pra quê? Pra não ficar deixando rastro e barulho. E aí, agora é que tá. Nós vamos precisar de um script. Isso que eu não gostei. Ele passou a criar scripts. Beleza? Então, o sv, ele detecta, galera, versão de coisas, tá? S minúsculo, v maiúsculo. Versão de coisas. Beleza. Então, vamos lá. Vamos pegar o script, traço, traço. Script ssh2 enum traço algos. E ssh. Algos. Algo. Algo. Algo. Cara, eu acho que eu vou, antes de tudo. Faltou um h ali, galera. E aí, ctrl, o alvo, 10.137.0.24. Lembrando que eu nem testei, né, cara, se essa máquina tá ligada ou não, dentro do meu ambiente Cube, certo? Então, nós vamos tentar aqui buscar uma informação. Cara, ele trouxe muita informação. Isso. Isso. Isso. Isso. Isso. nós aqui é bom porta 22 Ah tá então nós podemos ver que nós temos a cara vamos ver se pegou o SV pegou a versão do Linux ó é um Linux tá ele não foi possível aqui me colocasse a um são Debian tá mas ele me trouxe que é um Linux porque o que o bis protege ele cara o que o bis é fofo cara aquele viria aqui ele viria Opa então nós temos aqui né algo decisivo aqui porque nós temos a possibilidade de ele aceitou cara ele aceitou uma enumeração e ele aceitou é não me trouxe informações de criptografia me trouxe informações aqui que dá para bater nos usuários legal ao deve aqui em cima engraçado cara no passado deve vir aqui embaixo agora deve estar vindo lá em cima a versão ou PSH 10 Opa eu esperaria um 9. Alguma coisa tá esperaria ali o 9.2 que eu teria uma enumeração é mais diferente Ah bom Ah tá passe morde isso aqui é importante tá como ele tem passe würde i public e Kshop como assim você pode logar no SSH gente por um password ou você consegue criar uma chave pública e usar a chave pública para indicar, o uso da chave pública é muito útil para quem tem preguiça de ficar digitando senha e confia na máquina que tem a minha máquina não vai ser invadida então eu crio as chaves públicas para acessar o serviço SSH para não ter que digitar senha que seria uma loucura no meu ponto de vista é utilizado para fazer integração de sistemas e naturalmente você tem ali a possibilidade também por exemplo GitHub de integrar com chaves públicas e protocolo SSH, troca de arquivos até túneis dá para fazer com isso aí e aceita password então já que aceita password nós podemos tentar enumerar algumas coisas aqui vamos lá eu esperaria um um SSH9 que era mais vulnerável que esse 10 aí vamos lá, MC um netcat, W3 10.137.0.24 porta 22 também é uma outra forma de obter informações, olha só aqui ó nós conseguimos também utilizar o netcat e obter um banner nele como assim banner? sempre que você como eu posso dizer sempre que você se conecta a um serviço algum idiota no passado o cara tem que ser muito burro inventou de um banner de um banner para informar que tecnologia tem do outro lado para ajudar eu acho que é a mesma coisa que amarrar ali cachorro com linguiça vamos usar agora um comando vamos usar um comando vamos usar um comando vamos usar um comando então eu poderia muito bem utilizar listas prontas mas qual o problema de listas prontas as listas prontas elas vão vir com as palavras, por exemplo mais usadas nos Estados Unidos e nós estamos no Brasil ou palavras muito genéricas e digamos que eu conheço o Alvo eu sei que o Alvo tem um site deixa eu ver se o site dele aqui é acessível vamos lá para obter informações aqui no site dele, ok? ações ali, criar listas então 10.137.0.24 vamos ver ah, tem uma área ali então vamos dar uma fuçada nisso aí só que seria difícil eu pegar aqui e começar a fuçar e eu como ser humano montar uma lista aqui então nós vamos usar um comando para acelerar essa montagem de lista baseado no site do cara talvez tenha alguma palavra ali um joguinho de letras que nos ajude, então vamos usar o comando eu não sei se está instalado nesse cara em Linux não traço D2 traço M4 então vai ter dígitos vai ter letras descarta palavras com menos de 4 letras também o mínimo legal, vai fazer uma joguinha e vai criar então tipo uma wordlist e eu vou chamar de wordlistalvo.txt e aí eu vou apontar o site provável que essa pessoa tem, ou que essa pessoa vai digamos que seja uma pessoa que gosta muito de anime então eu colocaria sites de anime .0.24 vamos lá aí ele vai colocar tá instalado cara vou dar uma olhada como é que ficou o alvo cartalvo ah lá ele foi lá, buscou lógico que aquele site não tem muita coisa então se o site tivesse mais coisas eu poderia criar listas mais bacaninhas mais bacaninhas pra caramba legal beleza agora galera vamos criar uma lista de possíveis usuários uma lista de possíveis usuários eu tenho aqui uma lista cat usuários txt root sf admin aluno, serviço webapp e aí você vai colocando linha a linha possíveis usuários então nós temos possíveis usuários cat alvo nós temos possíveis palavras que nós podemos então disparar contra o nosso alvo legal vamos para o próximo passo seria interessante então a gente fazer algumas variações disso aí variar isso aí né porque bom vai ser difícil encontrar qualquer tipo de senha assim vamos lá tá então pra fazer essas variações tem um comandinho muito bacana que eu coloquei no livro pra vocês que é o seguinte é o crunch 1010 cara vai fazer uma variação maluca 1010 Meu, de palavras, por exemplo, vamos colocar aqui traço T, servico, e aí nós colocamos aqui, naturalmente, aí ele vai girar, serviço 000 até servico 999. Então, o máximo que ele iria, digamos que você sabe que os caras costumam colocar letras, números, números no final, bom, isso aí, cara, é chute, tá, é chute. Não tem uma ciência exata, porque se existisse uma ciência exata, então, não teria necessidade de usuário e senha, né. Vamos chamar de servico-num.txt. Cara, você pode... Você pode pegar, então, naturalmente, aquela lista alvo, meu, e fazer uma interação ali e fazer uma lista gigantesca. Você pode pegar não só essa lista de alvos que ele raspou lá do site do cara, mas você também pode pegar os usuários também que você acha que tem. E aí ele vai gerar uma lista, cara, vai ficar bem grande isso aí, bicho. Vai ficar bem... Bem grande. Se eu mandar imprimir aqui, vai ter aqui umas mil linhas, cara. É mil linhas, ó, mil linhas. Legal. Então, vamos fazer aqui agora uma junção. E no final você junta os arquivos tudo. Então, você faria pra... Faz um laço de repetição, pega todos, vai gerando essas variações, é isso? Então, cat alvo. Engraçado que o aluno meu uma vez falou assim, pô, eu nunca vi o cat ser usado. Pra juntar arquivos. Olha, cara. Aí, ó. Servico. Aluno. Aluno. MSF Admin. Root. Por exemplo. Sorte. Traço U. E você joga isso aqui num senhas.txt. Então, agora nós vamos pegar arquivos, pegar palavras. Né? E vamos jogar isso num sorte e mandar ele tudinho, tá? Esse símbolo aqui é pra você mandar ele para um arquivo de senhas. Que vai... Ah! Eu não criei esses arquivos, né? Que zica, peraí. Não criei esses arquivos, não tem problema não. Só isso aqui já... Já serve pra nós. Você quer ver? Alvo, aqui. E usuário. Alvo e usuário. Só isso aí já serve pra nós. Beleza? Vai ficar bem grande já a nossa lista. Carte senhas. Aí. Juntou tudo. Ah, isso aí vai. Beleza. Você poderia fazer todas aquelas variações que eu falei pra vocês, certo? Bom. Agora, chegou o momento de bater no alvo e tentar ver se nós encontramos alguma daquelas senhas. Tem pessoas que vão querer fazer um arquivo com 10 teras de senha e bater... Não. Então, o cara, ele é botafoguense, certo? Pega todos os sites do Botafogo e manda pesquisar. Pesquisar. Legal? Beleza. Depois, você faz todas as combinações de ano. Não precisa saber do título do Botafogo não. Tá? Do ano. Ah, Botafogo foi criado em 1904. Legal. Mas foi em 2026, certo? Então, criou todas as variações em Botafogo. Depois, título. Você está entendendo? Cara, você tem que entender o que é que a pessoa gosta. É pra isso que nós vamos, então, fazer ali, o quê? Um osinte. Nós vamos atrás das pessoas, né, não diretamente, lógico, indiretamente, porque se não a gente, né, acaba alertando e o alvo, né, fica esperto e começa a mudar tudo. Vamos jogar o Hydra, né, opa, vamos jogar o Hydra, traço L e aí usuários TXT, tá, e já, opa, se o Word é senhas, opa, ah, senhas.txt veio, tá, traço E, NSR, opa, traço F e aí vamos disparar. Bom, então... Naturalmente o T4 é o número de threads, threads, que nós vamos disparar, beleza? Bom, e aí também, naturalmente, nós temos o F ali, que agora nós vamos colocar um arquivo, não, não, pera, desculpa, F, F, F, F, é, pera aí, ele faz, ah, tá, apenas um, ele só bate uma vez na porta. Tem um método. Tem um método. Tem um método. O negócio assim, o negócio assim, SSH e agora o serviço, barra, barra, 10, 137, 0, 24. Cara, isso aqui já seria suficiente, deixa eu ver, a lista de usuários, as senhas, tá, e ele vai fazer conexão com o serviço, no máximo quatro threads, e esse aqui vai bater o pé só uma vez, o F vai bater o pé só uma vez, e contra ali aquele protocolo, barra, barra, barra, barra. O IP, é isso? E aí, vamos deixar ele lá. Opa, aqui, ó. Olha só, ele achou. Beleza? Lógico, né, esse ambiente era um ambiente controlado, né, é, é, é, parece que é muito, parece que é muito engraçado, né, tipo assim, você achar de primeira, né, você ver um curso hacker e o cara acha de primeira. Não, cara, ele acha de primeira porque toda aula é projetada. Não, cara, ele acha de primeira porque toda aula é projetada para ser assim, a ideia é você entender a dinâmica, você viu, nós pegamos, procuramos sobre a pessoa, depois nós procuramos sobre o servidor, descobrimos os serviços, legal, depois descobrimos a versão dos serviços, versão 9, versão 10, são vulneráveis à enumeração, legal, show de bola, isso é uma falha. Aí, agora, nós vamos na internet buscar quem são os usuários. Quem são os usuários? Nesse caso, a falha ocorre, tá vendo isso aqui? Porque lá no arquivo de configuração do SSH, o grande vacilão do planeta, nem é o grande vacilão do planeta, aquele SSH era de um Debian muito antigo, lembra que eu falei que o Debian antigamente, o root logava no SSH? Lembra que eu falei nessa aula? A configuração padrão permitiu, mas nós não achamos mais nada, se você olhar, nós não achamos mais nada, não achamos mais nada, tá? E aí, naturalmente, então, buscamos palavras de um dicionário de palavras, batemos no site do cara, buscamos as palavras que o cara usa, voltamos, criamos joguinhos de palavras junto, né? Chutamos possíveis usuários. Chutamos possíveis usuários. Eu expliquei pra vocês como localizar usuários, então você vai montar. Não vai montar 10 tera de senhas, você vai montar uma quantidade de senhas mais assertivas possível. O cara é botafoguense, acha todas as variações. Não deu, então, opa, agora você vai, então, fazer um set de senhas, né? E agora vai ser um pouco mais, mais um chute. Você tinha um chute mais preciso quando você tinha ali, falando do Botafogo. E você sabe que o cara é botafoguense fanático. Legal? Agora, não deu certo? Então você parte pra outras palavras. Ah, provavelmente ele, eu vi que ele mora lá, por exemplo, na Urca. O que que tem na Urca de legal? Aí, busca tudo que tem da Urca de sites, utiliza o comando ali, busca todas as palavras, faz a variação com o Cush. Bate. A lista ficou grande. A segunda lista. Ficou grande. Terceira lista. Não deu certo. Tecnologias que o cara gosta, que o cara programa. Aí você vai fazer a terceira lista. Essa vai ser maior que as outras duas anteriores. A primeira e a segunda. E aí começa a esgotar. Aí você começa a esgotar. Provavelmente você tem que colocar ali, né? Como eu posso dizer? Colocar ali um pouco mais de tempo. E tentar localizar outro serviço vulnerável. Beleza? Cara, isso aqui não é tão rápido assim. Mas eu não vou passar uma semana numa aula com vocês, né? A aula tem que durar minutos, não semanas. Legal. Você tem também um comando chamado incrack, tá? Incrack. Incrack. Traço usuário. Usuários. Isso. Traço P. Senhas. Peraí que... Sem... Ah, foi. Eita, nós. SSH dos pontos barra barra 10. Peraí. 137.0.24. Puta merda. 0.24. Legal. Bom. E aí, esse cara também bate. Por que nós temos que conhecer múltiplos programas? Nós temos que conhecer múltiplos programas. Nós conhecemos múltiplos programas por o seguinte princípio. Digamos que eu utilizei um programa numa máquina de uma empresa. Na segunda máquina da empresa, se eu usar o mesmo programa, esse primeiro programa pode ser colocado ali com um comportamento esquisito. E esse comportamento esquisito pode... Como eu posso dizer assim? Se é colocado como uma regra na rede, aí eu não sei se eu consegui ou não. Ou se está sendo defendido, eu não sei. Então, você tem que variar os programas. Você tem o Hydra, você tem o Ncrack, você tem o Medusa. Porque deixam pegadas diferentes. Então, você ora usa um, ora você usa o outro. Não tem esse negócio do tipo... Ah, eu sou hidrista, eu sou Ncrackista. Não tem esse negócio, cara. Não tem time. Time de futebol é Botafogo. Eu vou dar um ctrl-c, cara, que isso aqui vai demorar. Já está demorando, né? Travou ali. Cara, isso aí vai demorar. O Ncrack, ele é bem mais pausado e lento, cara. Mas ele retorna, vai por mim. O Medusa também, tá? O Medusa também. Bom, nós descobrimos, né? Que tem um usuário root lá. SSH root arroba 10137.0.24 E eu acho que a senha dele é Thor. Thor, um negócio assim. Vai ou não vai? Impressão minha ou eu estou com problema? Ah, yes, já foi. Legal. Fez poder. Então, vamos lá. Acho que é isso aqui, né? Espera aí. Vamos ver. Ah lá, entrei na explotable. Entrei na explotable, tá? Que, pô, eu entrei como root, lógico. Tem esse negócio também, né? No caso ali, eu tenho muita sorte. Peguei um SSH mal configurado com uma senha que estava no site do cara em algum lugar lá. Achou a senha em algum lugar lá do cara, porque o cara vacila. Muitas pessoas utilizam o sobrenome, o nome do filho, placa do carro. Então, você vai ter que fazer ali um trabalho muito forte sobre isso aí. Beleza? Bom, vamos lá. Tá bom. Então, vamos lá. Próxima aula, nós vamos falar ali sobre questões de... Por que essas senhas são fracas? Que serviços? E sobre configurações, padrões e como isso é um problema. Até mais. Tchau. E aí