Narrador: Vulnerabilidades de execução de código.
Esse tipo de vulnerabilidade nos permite executar
o código do sistema operacional no servidor de destino.
Portanto, se o servidor de destino usar
o Windows, poderemos executar o
comando do Windows, se usar o Linux, poderemos usar os comandos do Linux.
Claramente, este é um problema realmente crítico, que nos
permitiria fazer o que realmente queremos
com o alvo.
Podemos fazer upload de
um shell PHP, usando o comando wget, ou carregar uma carga
útil, um vírus,
o que quisermos, usando o comando wget Linux.
Você só precisa ter certeza de que está
fazendo o upload para um arquivo
ou diretório, no qual você pode escrever coisas.
Outra maneira de explorar essa vulnerabilidade é
simplesmente executar comandos do sistema operacional e obter uma proteção reversa
com base nesses comandos.
Portanto, como podemos executar comandos do sistema
operacional, podemos usar as linguagens
de programação suportadas por esse sistema operacional para tentar
obter uma conexão reversa em nosso computador.
Então, primeiro de tudo, vamos supor
que estamos
navegando aqui, e conseguimos navegar e, em
seguida, chegamos a uma guia no site em
que ele permite, por exemplo,
executar um ping.
Agora, o que você deve
fazer é sempre tentar experimentar qualquer trabalho de entrada que visualizar.
Tente ver o que essa entrada funciona e o
que você pode injetar nela, o
que você pode fazer para colocar as coisas em funcionamento.
Então, por exemplo, esta entrada funciona dizendo
que você fará um ping.
E, se você colocar um
IP, por exemplo, eu vou colocar 10 20 14 203, que é
o meu próprio IP.
Só para vê-lo, para usá-lo como uma pessoa normal,
vou enviar e ele seguirá em frente e fará ping para mim
e me fornecerá os resultados do ping.
Então, como parece aqui, na verdade,
ele está executando o comando ping, nos
sistemas Linux.
Agora, vamos ver se podemos explorar isso.
Se estiver realmente executando o comando ping.
Então, o que está fazendo
é, está indo, e está fazendo.
Então, estamos enviando 10 20 14 203 como o ping.
E então ele vai para o
servidor da Web e o servidor da Web faz ping, 10 20 14 203.
Então, vamos ver se podemos explorar isso.
Como poderíamos explorá-lo?
É preciso o que estamos inserindo, bem aqui.
E então, está fazendo ping, isso.
Agora, nos comandos baseados em Linux e Unix,
você pode usar o sinal para executar vários comandos em
uma linha.
Então, se você fizer isso, por exemplo, em seu próprio terminal, então, eu
apenas vou passar pelo meu terminal, aqui.
E eu apenas vou fazer LS, que é o comando list
e, em seguida, PWD é o que
lista, o que mostra seu diretório de trabalho.
Portanto, se eu fizer um LS, seguido por
esse sinal e depois fazer PWD, ele executará os dois comandos.
Portanto, ele fará isso e mostrará onde está
o diretório de trabalho.
Então, podemos fazer a mesma coisa com isso e ver
se funciona para nós.
Então, vamos colocar o IP, um IP correto,
e depois eu vou
fazer PWD e ver se ele executará o PWD para mim.
Caso isso aconteça,
é uma vulnerabilidade de execução
de código e posso executar o que quiser no servidor.
Então, vamos ver o que vai acontecer.
Colei isso e vou clicar em enviar.
E como você pode ver, obtivemos os resultados
do ping, mas no final obtivemos
nosso diretório de trabalho atual.
Portanto, sua vulnerabilidade via wwwdvwa é um executivo.
Então, ele executou o PWD que eu inseri.
E isso significa que eu posso inserir qualquer comando
que eu quiser lá e eles serão executados.
Então, inseri um arquivo de recursos
que você pode usar para obter conexão reversa
no computador de destino.
Agora, existem várias
maneiras, vários comandos que dariam a
você uma conexão reversa.
Todos esses comandos dependem da linguagem de programação.
Então, por exemplo, temos comandos em PHP,
temos comandos em Ruby, você tem comandos Pearl e
nós temos o Bash.
Bash é o comando e o idioma do shell do Linux.
Portanto, todos os sistemas operacionais Unix poderão executar
comandos Bash.
Então, essa é uma maneira muito boa de fazer isso.
Portanto, na maioria dos sistemas Unix, esse
comando deve funcionar na maioria dos sistemas baseados em Unix.
Então, essa seria uma maneira muito boa de fazer isso.
Novamente, a maioria deles teria Python, portanto,
o Python seria uma boa maneira.
Netcat, a maioria deles também possui o Netcat.
Portanto, o Netcat é uma boa maneira de fazer isso.
E, na verdade, vamos usar o Netcat neste vídeo.
Então, o que eu
vou fazer é, primeiro, eu vou
ouvir conexões, como costumávamos fazer com
o Metasploit, quando costumávamos fazer manipuladores múltiplos.
Você pode realmente usar um manipulador múltiplo para
isso e ouvir uma conexão.
Bem, vou simplificar e mostrar
um novo caminho.
E eu vou usar o Netcat.
Então, Netcat.
O Netcat é apenas uma
ferramenta que permite ouvir e conectar computadores.
Então, eu vou ouvir na porta 80 80.
Então, Netcat é o programa.
vv é apenas para ver uma saída detalhada,
para que possamos ver muita saída,
algo der errado, podemos ver.
E, estamos dizendo para ouvir,
usando a opção L na porta 8080.
Então, eu vou pressionar enter,
e isso é dizer apenas ouvindo na porta 8080, é tudo
o que isso fará.
O próximo comando que vamos executar é tentar
conectar o servidor da Web
de volta ao meu computador, usando o Netcat também.
Portanto, estamos assumindo que o servidor da Web possua o Netcat.
Vamos tentar e ver se funciona.
Então, o comando é muito simples.
É o Netcat e estamos dizendo para usar o bin bash.
E estamos dando o IP do meu dispositivo.
Meu dispositivo invasor, que é 10 20 14.
E, então, a porta que é 8080.
É onde estamos ouvindo, bem aqui.
Então, eu vou copiar isso.
E eu apenas vou executá-lo
da mesma
maneira que usamos para executar o comando PWD.
Então, a última coisa que fizemos foi 10 20 14 203.
E então nós fizemos PWD.
Então, o
que vou fazer agora, vou
remover o PWD e colar o código que
acabamos de criar, que tentaremos conectar do servidor da Web
de volta à máquina cally e à máquina atacante.
E eu vou vir aqui.
E, como você pode ver,
recebemos uma conexão de 10 20 14 204 para nós.
Então, esse é o computador tarried.
E, se fizermos um PWD, você verá que temos um
shell reverso se fizermos um LS.
Se fizermos um ID, você verá que somos wwwdata e você está livre
para (murmurar) o nome de A, apenas para confirmar.
Que eu estou no meta-explorável e você pode ver que
eu estou no meta-explorável.
E sou capaz de executar qualquer comando que desejar no
computador de destino.
Então, basicamente, eu tenho acesso total ao computador de destino.