Executando o Proxy Python com FTP e HTTP

Aula 6 · Python Programming for Hackers and Pentesters
Executando o Proxy Python com FTP e HTTP

Transcrição do áudio

Vamos agora testar, bom, o livro ele fala sobre fazer um teste com uma URL que ele colocou, FTP, e aí eu falo pra você cara, não vai não porque nós não sabemos né, então vamos montar aqui um ambiente, um ambiente de teste, você vai vir aqui, você vai instalar o FTP na máquina virtual, o Kali Linux, Pô Kali Linux, anda aí cara, o Kali Linux também tá com um freio de mão puxado cara, tá aqui, opa, opa, aqui negócio é aquele, meu coleguinha, deixa eu jogar esse aqui pra lá, tá, legal, o V SFTP dele, então vamos lá Kali, calma aí colega, olha só vamos instalar o V SFTPD, que é um dimãozinho, FTP, porta 21 cara, legal, então vamos lá, vamos testar, vamos ver aqui no nosso Linux, cadê aqui, no nosso Debian, vou abrir aqui Filezilla como cliente, e vou me conectar, 1, 2, 6, 8, 3, 12, Kali, Kali, hum, então, conexão negada, conexão negada, vamos dar uma olhada se o serviço está ativo lá no Kali Linux cara, Sudosis tem que ser, Sudosis tem que ser TL, Start, V SFTPD serve, tá, e agora o status, tem que estar rodando lá, tá rodando, legal, tá ativo, né, então por que que esse cara não se conectou? Quikconnect, é ok, ó se conectou aqui ó, ah eu instalei mas o Kali estava parado, tá vendo, eu me conectei então utilizando, me conectando lá no, na máquina Kali Linux, certo, só que o correto conforme nós falamos, correto para quem, para o Hacker né, é rodar isso como um proxy, para ouvir o FTP, você vai ver que vai dar, para você ver os ftp passando, ftp é um dos cinco protocolos mais procurados numa rede para vocês enlifar, sudo, já vou explicar o porquê sudo, o proxy, localhost 127.001, aqui seria por exemplo a máquina que você conseguiu infectar dentro de uma empresa, ou uma máquina prox no mundo, no caso eu estou usando localhost, que eu estou testando, porta 21, tem que ser sudo porque se você vai abrir uma porta abaixo da 1024 obrigatoriamente, somente o sudo, e a porta 21 está abaixo de 1024, o 9298312 porta 21, e eu tenho que escutar primeiro, então ele se conecta, escuta primeiro e me traz logo em seguida, eu mando os coandos FTP, porque o FTP é um protocolo que ele manda um banner de abertura, esse banner de abertura é que nós utilizamos para definir que tecnologia tem lá no alvo, beleza? Então eu iniciei o list na porta 21, aqui em vez de eu me conectar, vou até fechar isso aqui, vou abrir de novo, então vamos lá, então em vez de eu me conectar lá direto, eu vou me conectar no proxy, 127.0.0.1, Cali, Cali, vamos lá, e aí está, preio lá, traceback não existe, pô, te avida, errei aí, não tem problema, cagada a linha de código, estava bom demais, não é traceback, não cara, traceback Python, pô cara, o que eu escrevo de errado, essa maldita biblioteca cara, a gente tem que ter ideias bicho, aqui olha, olha só, fia da puta, merda, control F, traceback, já escrevi errado aqui, já escrevi errado aqui, aqui eu já tinha corrigido, legal, aqui, cara, que merda, não sei que eu errei não bicho, vamos lá, save all, foi mal galera, vou iniciar de novo aqui, peraí, vou aqui me conectar, certo, vou vir aqui no file zila, e vou mandar me conectar de novo, unicode não foi definido, ah rapaz, eu vou ter que fazer uma mudança aqui cara, porque o Python 2 tinha unicode, o Python 2 tinha isso aqui, no Python 3 não, então vamos dar uma corrigida nesse negócio aqui, é coleguinha, tive que fazer algumas alterações no código, tá, basicamente o xdump não precisou, por um motivo simples, o Python 2 tinha problema com unicode, já o Python 3 não, então não precisou, aqui você poderia por exemplo, fazer esse dump, eu vou imprimir na tela, mas você poderia salvar isso em um arquivo, eu tive que fazer uma mudança na questão de bytes, de leitura de bytes, tá, de inicializar ele como byte, e fazer, naturalmente aqui, verificar se byte é igual a 9, fazer isso aqui, você acha que nem precisou, depois que eu fiz essa mudança aqui, nem precisou disso, fiz um teste ali, basicamente eu alteria que essa questão de bytes, unicode, Python 3 já trabalha legal com isso, então vamos reiniciar aqui o nosso exemplo, abrir a porta 21, então eu fiz um proxy na porta 21, estou aqui com file-zilla na minha máquina, e ele vai receber o proxy e vai retransmitir para outra máquina, nisso que ele retransmite, bom, eu poderia manipular a mensagem ou guardar a mensagem, fazer um ataque de colheita, então cliquei aqui em servidores, new site 127.0.0.1, a máquina aqui o proxy, porta 21, vou usar sem ftp, ou desculpe, sem criptografia, porque nós não implementamos a criptografia no nosso proxy, para perguntar o password, o password aqui vai ser kali, na verdade ele vai me perguntar o password, vou deixar que ele me pergunte o password, então eu vou vir aqui e vou iniciar aqui, cara como é que iniciar mesmo? Pera aí galera, e isso, ele vai me perguntar kali, kali kali, aqui atrás você está vendo toda a conversa, conversa sempre na porta vinho, está vendo aqui o texto, o banner aqui de chegada, eu vou colocar esse cara aqui como sempre por cima, repare, ele é um vsf tpd, aqui é a versão dele, repare que os dados estão passando por mim, eu estou recebendo do remoto entregando, repare que o user é kali, repare que a senha é kali, porque não tem criptografia, e ele está vindo aqui, ele está listando o diretório do kali, veio aqui, o que ele está vindo, e aí ele está em modo passivo, executando em modo passivo e conseguiu, está aqui, executou em modo passivo, eu vou fazer o seguinte, eu vou lá em kali em downloads, vou tentar trazer algo para minha máquina, lembra que é em binário, é complicado, vamos lá, demorado porque você tem todo um proxy acontecendo, toda a comunicação está passando aqui, deixa eu ver aqui downloads aqui, e repare que ainda nem, olha lá, ele está listando o home kali download, agora cara, modo passivo, lista, listou, legal, só tem um arquivo lá, deixa eu ver se eu tenho algum arquivo que eu posso mandar para lá, que é texto, o que eu não sei se está transmitindo binário, teoricamente esse cara aqui é texto, botão direito upload, olha só, então ele vai receber a comunicação, repare que o ftp sempre faz uma nova conexão, ele abre muitas vezes a conexão, uma nova conexão, e olha só, olha que doido cara, e aí eu estaria capturando isso, imagine que eu chegaria no alvo, colocaria isso no alvo, olha cara, ele está mandando os bytes, segundo ele chegou, agora ele vai mandar listar, sempre que o filezilla faz o upload logo em seguida, não listou não, vou mandar um refresh aqui, aqui, vou mandar dar um refresh, olha só, será que deu paul a cara, aqui parece que foi, aqui parece que foi, lógico né galera, esse aqui é um exemplo de um proxy que tem que ser melhorado, transportar bytes de um lado para o outro, testar com serviços ftp, testar com serviços http, como é, oh, zica hein, parece que não foi não hein, parece que não foi não, vamos dar uma olhada lá no kali linux, kali k, eu também não esperava algo de primeira logo no ftp, tá certo né, principalmente por transferência de binários, olha só, não estou vendo aqui não cara, vamos criar um novo arquivo aqui, tem que terminar um nano, vamos baixar esse cara aí, vamos atualizar, repara que transmissão de texto vai bem, mas a transmissão de binário tá cagando, tá, a gente pode melhorar depois, olha só, tá indo, a transmissão de arquivo é pela puta 20 galera, ele tá no modo passivo né, ou agora que vem na minha cabeça né cara, então vamos lá, vamos abrir uma outra aqui, acho que isso aqui, então, seria basicamente, aqui foi onde eu executou o files, ponto barra, vamos pegar lá no código lá a sequência de parâmetros que ele quer, basicamente porta 20, aqui seria 20 lá, eu acho que não é tru, tá, mas vamos tentar aqui, aqui, sudo, porta 20, porque a transmissão de arquivo ocorre por outra porta né, não é só porta 21 né, 20, 21, depois eu tenho que ver que porta esse cara tá usando, tem que ver que porta esse cara tá usando, olha, ele faz o download, diz que fez o download, tem texto lá, agora tem que mandar dar um refresh aqui, olha o texto aqui cara, veio cara, ele só não foi, tá bom, ver que ele veio, ele só não foi, então vamos lá, pegar um texto idiota aqui, tentar mandar, certo, vou pegar esse cara aqui bicho, colocar o tamanho dele, muito grande, que isso aqui, vamos lá, download ele fez o desgravar, pegou direitinho, vamos ver se ele fala em que porta ele vai usar, que ele vai usar, ele tá no modo passivo né, aqui, sempre no upload ele dá um pausinho, tá bom, vou ter que arrumar isso aí cara, olha, sempre no upload ele dá um pausinho, tem que ver exatamente, qual é o esquema da porta, qual o esquema da porta, beleza, agora vamos fazer o seguinte, que eu acredito que tem um site meu, http eu posso usar porque site meu, pr, certo, legal, vamos lá, vamos vir aqui olha, ping a ied.com.br, legal, peguei aqui o ip, então vamos fazer agora uma outra coisa, vamos fazer aqui, um proxy na porta 80, uma porta 80, a primeira coisa, é local host porta 80, aqui é false, ele me transporta, ele me dá o banner, não, não me dá o banner, não, porta 80, false, legal, vamos lá, então vamos abrir um browser aqui, a ied.com.br, ah não, pera aí, 27.0.0.1 cara, eu tenho que mandar pro, pro meu proxy aqui, olha eu recebendo a conexão aqui, a transmissão dando, acontecendo, 404, 404, mas a conexão aconteceu cara, olha só, meu user agente, da hora hein, da hora, porra muito legal isso aqui cara, já sei, beleza, olha só, olha, 53, ah mas 53 é o dps, cara que é TCP, cara, show de bola meu, só vou arrumar essa questão de, upload no ftp, e eu já tenho, um proxyzinho, meia boca aí, bicho, olha, meia boca já dá pra trabalhar, alguma coisa nele, tem mais colega, tchau,
Voltar ao curso