<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Pracujesz w **firmie cyberbezpieczeństwa**? Chcesz zobaczyć swoją **firmę reklamowaną w HackTricks**? A może chcesz mieć dostęp do **najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF**? Sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** [**💬**](https://emojipedia.org/speech-balloon/) [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** mnie na **Twitterze** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do repozytorium [hacktricks](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
To enumerate from the network without a domain session, you can use the following techniques:
1.**Port scanning**: Use tools like Nmap to scan the network for open ports on the target machine. Look for ports commonly used by Active Directory (AD) and Microsoft SQL Server (MSSQL), such as 389 (LDAP), 445 (SMB), and 1433 (MSSQL).
2.**Service enumeration**: Once you have identified open ports, use tools like enum4linux or smbmap to enumerate services running on those ports. These tools can provide valuable information about the target system, including user accounts, group memberships, and shared resources.
3.**LDAP enumeration**: If port 389 (LDAP) is open, you can use tools like ldapsearch or ADExplorer to query the AD server for information. This can include details about users, groups, organizational units, and more.
4.**SMB enumeration**: If port 445 (SMB) is open, you can use tools like smbclient or CrackMapExec to enumerate shares, access files, and gather information about the target system.
5.**MSSQL enumeration**: If port 1433 (MSSQL) is open, you can use tools like sqlmap or Metasploit to enumerate databases, tables, and columns, as well as extract data from the MSSQL server.
Remember to always perform these enumeration techniques within the boundaries of legal and authorized penetration testing.
W przypadku, gdy już uzyskamy dostęp do wewnętrznej sieci domeny, możemy przystąpić do wyliczania informacji na temat systemu Active Directory (AD) oraz baz danych Microsoft SQL Server (MSSQL). Poniżej przedstawiam kilka technik, które można zastosować w celu wykorzystania AD i MSSQL.
#### Wykorzystywanie AD
1.**Wykorzystywanie usług AD**: Sprawdzamy, jakie usługi są dostępne w AD, takie jak DNS, DHCP, LDAP, Kerberos itp. Możemy wykorzystać te usługi do zdobycia informacji o domenie.
2.**Wykorzystywanie kont użytkowników**: Przeprowadzamy analizę kont użytkowników w celu znalezienia kont z nadmiernymi uprawnieniami lub słabymi hasłami. Możemy również sprawdzić, czy istnieją konta usunięte, które nadal mają dostęp do zasobów.
3.**Wykorzystywanie grup**: Analizujemy grupy w AD w celu znalezienia grup z nadmiernymi uprawnieniami lub grup, które mogą być wykorzystane do eskalacji uprawnień.
4.**Wykorzystywanie uprawnień**: Sprawdzamy, jakie uprawnienia mają konta użytkowników w AD. Możemy znaleźć konta z nadmiernymi uprawnieniami, które mogą być wykorzystane do uzyskania dostępu do innych zasobów.
1.**Wykorzystywanie informacji o serwerze**: Sprawdzamy informacje o serwerze MSSQL, takie jak wersja, nazwa instancji, konfiguracja itp. Te informacje mogą pomóc nam w identyfikacji potencjalnych podatności.
2.**Wykorzystywanie kont użytkowników**: Analizujemy konta użytkowników w bazie danych MSSQL w celu znalezienia kont z nadmiernymi uprawnieniami lub słabymi hasłami.
3.**Wykorzystywanie procedur składowanych**: Sprawdzamy, czy istnieją procedury składowane, które mogą być wykorzystane do wykonania kodu na serwerze MSSQL.
4.**Wykorzystywanie podatności**: Szukamy znanych podatności w serwerze MSSQL i wykorzystujemy je do uzyskania dostępu do danych lub eskalacji uprawnień.
Pamiętaj, że przed przystąpieniem do wykorzystywania AD i MSSQL należy uzyskać odpowiednie uprawnienia i przestrzegać prawnych i etycznych zasad.
W przypadku, gdy baza danych MSSQL jest źle skonfigurowana, istnieje możliwość uzyskania dostępu do niej. Oto kilka potencjalnych błędów konfiguracyjnych, które można wykorzystać:
- Używanie słabych lub domyślnych haseł dla konta administratora bazy danych.
- Brak zabezpieczeń sieciowych, takich jak firewall, które umożliwiają zdalny dostęp do bazy danych.
- Niewłaściwe uprawnienia dla kont użytkowników, które umożliwiają wykonanie nieautoryzowanych operacji.
#### 2. Wykorzystanie podatności
MSSQL może mieć różne podatności, które można wykorzystać do uzyskania dostępu do bazy danych. Oto kilka przykładów popularnych podatności:
- SQL Injection: Wykorzystanie nieodpowiednio zabezpieczonych zapytań SQL, aby wykonać nieautoryzowane operacje na bazie danych.
- Remote Code Execution (RCE): Wykorzystanie podatności, która umożliwia wykonanie kodu na serwerze bazy danych.
- Uzyskanie dostępu do konta administratora bazy danych poprzez podatność w mechanizmach uwierzytelniania.
#### 3. Wykorzystanie słabych haseł
Często administratorzy bazy danych używają słabych haseł, co ułatwia uzyskanie dostępu do bazy danych. Można wykorzystać różne techniki, takie jak brute force lub słownikowe ataki, aby złamać hasło i uzyskać dostęp.
Jeśli baza danych MSSQL jest źle zabezpieczona na poziomie sieciowym, można wykorzystać różne techniki, takie jak sniffing sieciowy, aby przechwycić dane uwierzytelniające i uzyskać dostęp do bazy danych.
Jeśli aplikacje korzystające z bazy danych MSSQL mają błędy w implementacji, można je wykorzystać do uzyskania dostępu do bazy danych. Przykłady takich błędów to nieodpowiednie sprawdzanie uprawnień użytkownika, niewłaściwe filtrowanie danych wejściowych itp.
Jeśli użytkownicy mają nadmiarowe uprawnienia w bazie danych MSSQL, można wykorzystać te uprawnienia, aby uzyskać dostęp do danych lub wykonać nieautoryzowane operacje. Należy sprawdzić, czy istnieją konta użytkowników z nadmiarowymi uprawnieniami i wykorzystać je do uzyskania dostępu.
#### 7. Wykorzystanie błędów w mechanizmach uwierzytelniania
Jeśli mechanizmy uwierzytelniania w bazie danych MSSQL mają błędy, można je wykorzystać do uzyskania dostępu. Przykłady takich błędów to podatności w protokole uwierzytelniania, nieodpowiednie sprawdzanie tożsamości użytkownika itp.
#### 8. Wykorzystanie błędów w konfiguracji serwera
Jeśli serwer MSSQL jest źle skonfigurowany, można wykorzystać różne błędy konfiguracyjne, takie jak niewłaściwe ustawienia uprawnień, aby uzyskać dostęp do bazy danych.
#### 9. Wykorzystanie błędów w procedurach składowanych
Jeśli w bazie danych MSSQL istnieją procedury składowane z błędami, można je wykorzystać do uzyskania dostępu do bazy danych. Przykłady takich błędów to nieodpowiednie sprawdzanie uprawnień, niewłaściwe filtrowanie danych itp.
#### 10. Wykorzystanie błędów w konfiguracji aplikacji
Jeśli aplikacje korzystające z bazy danych MSSQL mają błędy w konfiguracji, można je wykorzystać do uzyskania dostępu do bazy danych. Przykłady takich błędów to niewłaściwe ustawienia uprawnień, nieodpowiednie filtrowanie danych wejściowych itp.
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ł **użyć relacji zaufania do wykonywania zapytań również w innej instancji**. Te zaufania mogą być łańcuchowe, a w pewnym momencie użytkownik może znaleźć źle skonfigurowaną bazę danych, w której może wykonywać polecenia.
Get-SQLQuery -Instance "sql.domain.io,1433" -Query 'SELECT * FROM OPENQUERY("sql2.domain.io", ''SELECT * FROM sys.configurations WHERE name = ''''xp_cmdshell'''''');'
Zauważ, że metasploit będzie próbował 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** w celu wykonania poleceń, zobacz więcej poniżej.)
Z systemu **Windows** możesz również znaleźć linki i wykonywać polecenia ręcznie za pomocą **klienta MSSQL, takiego jak** [**HeidiSQL**](https://www.heidisql.com)
Lokalny użytkownik **MSSQL** zazwyczaj posiada specjalny rodzaj uprawnienia o nazwie **`SeImpersonatePrivilege`**. Pozwala to na "udawanie klienta po uwierzytelnieniu".
Strategią, którą wielu autorów opracowało, jest zmuszenie usługi **SYSTEM** do uwierzytelnienia się w fałszywej usłudze lub usłudze typu man-in-the-middle, którą tworzy atakujący. Ta fałszywa usługa jest w stanie udawać usługę **SYSTEM**, podczas gdy ta próbuje się uwierzytelnić.
[SweetPotato](https://github.com/CCob/SweetPotato) zawiera kolekcję różnych technik, które można wykonać za pomocą polecenia `execute-assembly` w narzędziu Beacon.
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Pracujesz w **firmie zajmującej się cyberbezpieczeństwem**? Chcesz zobaczyć reklamę swojej **firmy na HackTricks**? A może chcesz mieć dostęp do **najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF**? Sprawdź [**PLAN SUBSKRYPCYJNY**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** [**💬**](https://emojipedia.org/speech-balloon/) [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy Telegram**](https://t.me/peass) lub **śledź** mnie na **Twitterze** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi trikami hakerskimi, przesyłając PR do repozytorium [hacktricks](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.