-: Até agora, vimos como podemos usar
um serviço com uma
senha padrão ou um serviço que não foi configurado corretamente
ou um serviço que vem com uma porta
traseira para obter acesso total ao computador de destino.
Também vimos como o Metasploit usa o
básico para conectar-se a um backdoor
instalado no serviço FTP.
Hoje, teremos uma visão mais
avançada do Metasploit e veremos como o usamos para executar
a vulnerabilidade existente em um determinado serviço.
É uma vulnerabilidade de execução de código que também nos
dará acesso total ao computador de destino.
Então, voltando aos nossos resultados aqui com o Nmap e faremos a mesma
coisa que fazemos há algum tempo, copiamos
o nome do serviço e verificamos
se ele possui alguma vulnerabilidade.
Então, hoje, vamos dar uma olhada nessa porta específica, 139,
que possui um servidor Samba versão 3. X.
Então 3. Qualquer coisa, mesmo.
Então, vamos analisar
o Google, como fizemos
nos vídeos anteriores, e procuraremos o Samba
3. X explorar.
Agora, como você pode ver, há vários resultados.
O que nos interessa é o que
vem do Rapid 7 porque, como eu disse, essas
são as pessoas que fazem o Metasploit, para que
as façanhas que você vê lá possam ser usadas pelo Metasploit.
Então, temos dois exemplos aqui,
agora eu realmente tentei os dois.
O primeiro não funciona, portanto, existe um
pouco de tentativa e erro e o segundo é o
Script de Mapas do usuário.
É uma vulnerabilidade de execução de comando, como você pode ver aqui.
Portanto, o nome da vulnerabilidade é esse.
Portanto, é a mesma coisa
que usamos anteriormente com o backdoor maligno no serviço FTP.
Este é apenas o nome diferente que vamos usar.
Então, eu vou para o Metasploit e já
executei o console do MSF, para que
você possa ver que o console está sendo executado aqui para mim.
Então, eu vou fazer um uso, como fizemos
antes, ontem e depois colocarei o nome da exploração que
quero usar.
A próxima coisa que costumamos fazer é mostrar opções
como fizemos ontem.
Então, eu vou fazer opções de exibição.
Portanto, o uso dessas explorações é sempre praticamente o mesmo,
a única diferença são as opções que você pode definir
para cada exploração.
Portanto, você sempre usa e, em seguida, coloca o nome da
exploração e, em seguida, exibe as opções para ver o que pode mudar
para trabalhar com essa exploração.
Portanto, no futuro, você provavelmente terá explorações diferentes das
que eu tenho.
Portanto, toda vez que você deseja executar
uma exploração, use um nome de exploração e, em seguida, mostre as
opções para ver as opções que deseja configurar,
mas usar as explorações e definir as opções e
executá-las é sempre o mesmo.
Estou mostrando alguns exemplos que devem abranger
praticamente tudo o que você deseja fazer no futuro.
Então, novamente, precisamos configurar o R-Host, que é o IP do
computador de destino e faremos da mesma maneira que
fizemos antes.
Como eu disse, definir as opções é sempre o mesmo.
Então vamos definir o R-HOST e depois
colocaremos o IP do computador de destino que
é 10. 20 14) 204
Assim, exatamente como fizemos antes, estamos usando o conjunto
para definir uma opção que é o R-HOST.
Então, vamos fazer nossas opções de show.
E como você pode ver agora, o R-HOST foi configurado corretamente.
O que precisamos fazer agora é que aqui as coisas
diferem da palestra anterior.
Na palestra anterior, usamos um backdoor que já estava instalado no
computador de destino; portanto, tudo o que precisamos fazer
é conectar-se ao backdoor e,
em seguida, executar qualquer comando, qualquer comando Linux no computador de destino.
No vídeo de hoje, o computador de destino não
possui backdoor, possui um programa normal que possui um estouro de
buffer ou uma vulnerabilidade de execução de código.
Portanto, o programa não possui nenhum código que nos permita executar
comandos do Linux, possui uma falha que nos permitirá executar um
pequeno pedaço de código.
Esses pequenos pedaços de código são chamados de cargas úteis.
Portanto, o que precisamos fazer é criar uma carga
útil e executá-la no computador de destino
usando a vulnerabilidade que encontramos.
Esse trecho de código nos permitirá fazer coisas diferentes.
Portanto, a carga útil é o que nos permite fazer coisas
que são úteis para nós.
Agora, a carga útil pode nos permitir executar comandos do Linux
e há outro tipo de carga útil que veremos
no futuro.
Portanto, para ver as cargas úteis que você pode
usar com essa exploração em particular, tudo o que você
precisa fazer é executar show payloads.
E esses são os diferentes tipos de carga útil que você pode usar.
Agora vou falar sobre isso novamente, portanto cargas úteis
são pequenos pedaços de código que serão executados no computador de
destino assim que a vulnerabilidade for explorada.
Portanto, quando explorarmos a vulnerabilidade, o código
que escolheremos aqui será executado e, dependendo do
tipo de carga que escolhermos, essa carga fará algo
útil para nós.
Portanto, agora você pode ver que todas as cargas úteis são
cmd, o que significa abreviação de comando, para que
você execute comandos no computador de destino, assim como os comandos do Linux.
E todos eles rodam apenas no Unix e tudo bem,
porque nosso objetivo é o Linux.
E existem dois tipos principais, há cargas úteis de
ligação e cargas úteis reversas.
As cargas de ligação, tudo o que eles fazem é abrir uma porta
no computador de destino e depois nos conectarmos a essa porta.
O contrário, eles fazem o oposto.
Então eles abrem uma porta na minha máquina e depois se
conectam do computador de destino à minha máquina.
Isso é útil porque o inverso nos permite ignorar firewalls, para que
o firewall filtre todas as conexões que vão para a máquina de
destino, mas se a máquina de destino se
conectar a mim e eu não tiver
um firewall, poderei ignorar o firewall.
Então, eu vou usar o cmd Unix reverse
ou, na verdade, vou usar o cmd Unix reverse netcat.
A última parte dessas cargas úteis é a ferramenta de pedido
de programa e idioma que será
usada para facilitar a conexão.
Por exemplo, podemos ver que existem cargas
escritas em perl em ruby ou python, php ou usar um
netcat, que é uma ferramenta que permite conexões entre computadores.
Então este é o que eu vou usar e vou
usá-lo da mesma maneira que você usa uma exploração.
Então, eu só vou dizer, desculpe, eu vou usá-lo
usando o comando set.
Da mesma forma que você usa set
e option, definiremos a carga útil, assim como uma opção, para o
nome da carga útil que escolhemos.
Agora vou fazer um show de opções para ver se há
outras opções que preciso definir.
E sim, porque escolhemos uma carga útil agora
há mais opções.
Portanto, existe uma opção chamada L-HOST e
é o endereço de escuta que é o meu próprio endereço.
Então, eu vou pegar meu próprio endereço IP usando if config.
E meu endereço é 10. 20 14) 203
Então, eu vou fechar
isso e definir o L-HOST.
Portanto, é da mesma maneira que configuramos o R-Host
antes, configuramos o L-HOST.
Faça 10.
20
Portanto, antes de configurar o R-HOST para definir esta opção, agora
estamos configurando o L-HOST para definir esta opção específica.
Então set é realmente simples, set, você coloca o nome da
opção e depois o valor que deseja definir.
Então eu vou fazer as opções de show
e agora tudo parece bem.
Então, estamos usando essa exploração, o R-HOST está definido para isso, o
que é bom.
E então o L-HOST é ajustado para isso, o que é perfeito.
E então você também pode definir a
porta que você ouvirá no seu computador atual.
Você pode configurá-lo para 80, se
quiser, essa é a porta usada pelos navegadores da web.
Portanto, se você definir L-PORT como 80, o computador de destino
tentará se conectar a você usando a porta 80, que nunca é filtrada por
firewalls, porque essa é a porta que os navegadores ou
servidores da Web usam.
Portanto, sempre que você acessa um site, na verdade acessa a porta
80 nesse site.
Portanto, se você abrir a porta 80 na sua máquina e
o destino se conectar a você no 80, o firewall
pensará que o destino está navegando apenas na Internet.
Não vou fazer isso agora porque tenho um servidor Web rodando
na porta 80 e isso entrará em conflito.
Então, eu vou definir
o L-PORT como 555 apenas por exemplo, apenas para ver que
você pode alterar qualquer opção da mesma maneira que é
definida, o nome da opção e o valor.
Então, eu vou mostrar as opções novamente.
E como você pode ver, isso foi alterado para
5555 e eu explorarei para executá-lo.
Agora, como você pode
ver, está me dizendo que a primeira sessão foi aberta.
E a conexão é entre este dispositivo e este dispositivo.
Qual é o alvo e o meu dispositivo.
Então eu vou fazer um pwd e,
ou eu faço um id.
Você verá que eu sou root e, portanto, faço um uname -a.
Você verá que estou na máquina Metaploitable e
se eu fizer um ls, poderei listar os arquivos e assim por diante.
Eu posso usar qualquer comando do Linux, como fizemos anteriormente
nos outros vídeos.