E nesta palestra, vamos ver outro método de explorar vulnerabilidades de inclusão de
arquivos locais e obter controle total sobre o servidor de destino.
Então, no vídeo anterior, vimos como usar as variáveis ​​de ambiente com a variável environ.
E nesta palestra vamos ver como fazer com base nos logs que esses servidores possuem muitos arquivos de
log e basicamente no momento em que podemos ler qualquer arquivo no servidor, desde que tenhamos permissão
para lê-lo.
Então, se conseguirmos gravar alguma coisa em qualquer um desses arquivos, podemos executar código e
obter controle sobre nosso alvo.
Então, o que você precisa fazer é que você precisa tentar ler qualquer um dos arquivos de log e ver ou pensar em uma maneira de
interagir com esses arquivos de log para que você possa escrever coisas, por exemplo, se os arquivos de log que você
está lendo ou interagindo com nossos arquivos de registro de e-mail, então talvez você possa enviar um e-mail com um código e, em seguida, ele
será exibido no arquivo de log.
E nosso exemplo vamos usar o log var desse log e esse arquivo contém todas as tentativas de
log para o servidor de destino.
Então, vamos fazer isso e você terá uma melhor compreensão no momento.
Agora eu só tenho o exploit básico e estou tentando mostrar que é a senha.
Então este é o arquivo que usamos em nosso exploit básico.
Eu só vou remover isso e vou procurar por fio desconectar o relógio.
Agora, como você pode ver, o arquivo é legível e podemos ler as tentativas de login no servidor de destino.
Então, o que vamos pensar agora é que esse arquivo exibe todas as tentativas de login.
Então, por que não tentar entrar e ver se a tentativa será exibida aqui.
Então eu vou fazer aqui.
Eu só vou tentar S-sh no servidor.
Então eu vou usar S-sh como I Sage é apenas um serviço de logon remoto que é usado por servidores web.
Praticamente todo servidor web tem isso instalado.
Então vamos tentar o S-sh, então vamos fazer S-sh e então vamos colocar o nome
do usuário.
E vou colocar um nome de usuário aleatório que provavelmente nem existe.
Eu só quero ver se esta solicitação será registrada no arquivo de log.
Então eu sou apenas
SS eu estou indo para S-sh e eu vou colocar um nome de usuário como aleatório e, em seguida, eu
vou fazê-lo e vamos subir com o endereço IP que é 10 20 9:46 e estou vai entrar Agora está me pedindo uma senha.
Obviamente, este nome de usuário não existe de qualquer maneira, então eu vou colocar uma senha aleatória também.
Eu não estou realmente tentando invadir usando S-sh.
Eu estou literalmente apenas tentando fazer o login, estou indo para Control-C agora e quero ver se isso
será registrado neste arquivo.
Então, vou enviar outra solicitação e vou procurar meu nome de usuário para que o nome do usuário seja chamado de aleatório e
eu verifico se isso foi registrado e você pode
ver que ainda é um mouse e o arquivo de log.
Então foi gravado no servidor que alguém tentou logar com um nome de usuário aleatório e ele realmente tem o
meu endereço IP.
Então, na verdade, também gravou meu endereço IP.
Então agora podemos ler esse arquivo e também podemos gravar no arquivo fazendo login com uma conta existente.
Então, o que vou fazer agora é que, na verdade, vou tentar efetuar login novamente e, em vez de colocar
um nome de usuário, coloco o nome de usuário como aleatório.
Eu estou indo realmente para colocar o peacoat PH que sempre usamos para me dar um shell reverso ou
conexão reversa no servidor.
Agora, novamente, você pode usar qualquer código de página desejado no meu exemplo.
Eu vou usar o código que me dará um shell reverso no computador de destino.
Então, antes de eu executar o código, vou ouvir a parte e vou fazer isso usando o netcat
como sempre fizemos.
Então eu ia ser netcat E. V. LP e eu vou fazer a minha parte que é 8
8 8 8 e agora estamos ouvindo as conexões e eu vou tentar logar novamente no alvo.
E neste caso eu vou realmente colocar meu Ph Veikko.
Então, o mesmo código que usamos antes.
Então meu nome de usuário vai ser eu vou colocar duas aspas e então eu vou colocar
meu código para usar e passar e então vamos passar o comando dos comandos PH que queremos rodar.
E esse comando vai usar aspas simples aqui.
E então meu comando vai
ser netcat bin sh.
Então eu vou colocar meu endereço IP que é 10 20 14 a 0 8 então eu vou
colocar a parte que estou ouvindo no qual é 8 8 8 8 com esse método.
Você só vai ter uma chance com este código, porque se você colocar o código Kura incorretamente,
a coisa toda vai quebrar e o arquivo não será mais exibido porque você tem um
erro no seu código.
Então, o que eu sugiro é que eu vou manter o passe porque é uma função segura.
E tenho certeza que isso vai rodar corretamente.
Eu só preciso esquecer de colocar um ponto e vírgula aqui, então vou colocar isso lá.
Então, tenho certeza de que esse código está funcionando corretamente, mas eu tenho muitas desvantagens aqui.
Eu tenho muitos espaços e eu tenho muitas barras que sempre tem problemas quando você está
tentando passá-las entre os próximos comandos e você pode tentar ignorar esses personagens.
Mas o que eu sugiro é que você realmente criptografar esse uso e base 64 e, em seguida, descriptografado na outra extremidade.
Então eu vou te mostrar como fazer isso.
Primeiro vou copiar este comando.
Portanto, este é o resultado de que queremos que a função pastoral seja executada e copiada.
Eu vou para meus arrotos
e vou para o meu decodificador aqui.
Nós nunca demos uma olhada no decodificador, então esta aba permite que você codifique e decodifique o texto para
diferentes tipos de codificação.
Então, vou colar o que copiei e vou codificá-lo como Bedu 64.
Portanto, este texto que o netcast foi enviado pela porta IP é convertido para este código criptografado.
Eu vou copiar esse código, vou substituí-lo aqui no meu comando.
Então, em vez de executá-lo desta forma, em vez de colocar o texto, colocarei o
código base 64 para garantir que não haja caracteres especiais que interfiram no comando com o Bash.
Então eu copiei isso.
Agora, se eu executar isso desta maneira, eu tenho o meu passe através do qual é uma função Peachtree e
estou dizendo para executar este comando show.
Agora, obviamente, se você copiar este texto e executá-lo, ele não executará nada, porque é apenas um lixo.
Então eu preciso dizer que este é o código base 64 e eu vou fazer isso usando a função APHC
chamada base 64 decode.
Então vou dizer para decodificar isso.
Este pedaço de texto.
E então, uma vez que você decodifique, passe a passagem por ele.
Então, vou digitá-lo aqui.
Então, vai ser 64 decodificar e
isso é apenas outra função de função ph e, em seguida, vou colocar os colchetes.
Então eu vou fazer isso um pouco maior para podermos falar mais sobre isso.
E eu vou copiar e escrever de novo só para falar um pouco mais sobre
isso.
ESTÁ BEM.
Então, primeiro, na verdade, estamos usando o nome de usuário como nosso código como o código que queremos injetar porque, como
vemos, o nome do usuário foi exibido na página de registro para que qualquer coisa que colocarmos no nome
do usuário seja executada como discurso código.
Então, temos que entre duas citações aqui entre esta e esta citação.
Agora temos nossa página porque sempre usamos e sempre usamos sempre a função repassar para executar
comandos Unix no servidor de destino.
Então, estamos mantendo exatamente o mesmo e estamos dizendo para executar este texto.
Mas antes de você executar este texto eu quero que você decodifique com base na base 64.
Então passamos por decodificar o código a seguir.
E esse é o código.
Portanto, este é o comando que o comando net cat sempre usamos. Estamos decodificando-o com base na base 64.
E então estamos dizendo para executá-lo usando a função pass through para executar como um comando bash.
Então eu vou ficar antera agora.
E é isso, pergunte-me por uma senha, porque ela acha que esse é realmente um nome de usuário, então estamos
injetando tudo como um nome de usuário.
Então, vou colocar qualquer senha aleatoriamente aqui e ali.
Agora isso deve ser armazenado agora nos logs.
Portanto, esse código deveria ter sido injetado no log desse log.
Então, vamos voltar agora ao nosso navegador e você pode ver isso em toda a escuta aqui.
Então, eu só vou apertar enter aqui no navegador.
E como você pode ver, temos uma conexão de volta do nosso site de destino e se eu fizer isso. D. você verá isso no site de
destino com o nome de usuário ou o grupo de usuários de dados do readably.
E eu posso executar comandos ou fazer o que quiser no servidor de destino.
Este é apenas outro método de explorar vulnerabilidades de inclusão de arquivos locais para obter um programa no
computador de destino.
Agora, novamente, esta é apenas uma idéia e você pode tentar essas idéias com diferentes tipos de arquivos de log para que você
possa experimentá-lo com o log off.
Você pode tentar com qualquer outro tipo de arquivo de log, mas precisa pensar sobre isso.
Você precisa pensar em como injetar código nesse arquivo de log.
Então, por exemplo, como eu disse, se é um servidor de e-mail e tente enviar um e-mail se estiver
fora do log como temos neste exemplo atual, tente logar usando S-sh e veja se você pode injetar
código e se esse código for executado no computador de destino.