139,445 - Pentesting SMB
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Port 139
Mrežni osnovni ulazno-izlazni sistem** (NetBIOS)** je softverski protokol dizajniran da omogući aplikacijama, računarima i radnim stanicama unutar lokalne mreže (LAN) da interaguju sa mrežnim hardverom i olakšaju prenos podataka kroz mrežu. Identifikacija i lokacija softverskih aplikacija koje rade na NetBIOS mreži postiže se kroz njihove NetBIOS nazive, koji mogu imati do 16 karaktera i često se razlikuju od imena računara. NetBIOS sesija između dve aplikacije se pokreće kada jedna aplikacija (koja deluje kao klijent) izda komandu da "pozove" drugu aplikaciju (koja deluje kao server) koristeći TCP Port 139.
Port 445
Tehnički, Port 139 se naziva ‘NBT over IP’, dok se Port 445 identifikuje kao ‘SMB over IP’. Akronim SMB označava ‘Server Message Blocks’, koji je takođe modernizovan kao Common Internet File System (CIFS). Kao mrežni protokol na aplikacionom nivou, SMB/CIFS se prvenstveno koristi za omogućavanje deljenog pristupa datotekama, štampačima, serijskim portovima i olakšavanje različitih oblika komunikacije između čvorova na mreži.
Na primer, u kontekstu Windows-a, ističe se da SMB može raditi direktno preko TCP/IP, eliminišući potrebu za NetBIOS-om preko TCP/IP, korišćenjem porta 445. S druge strane, na različitim sistemima, primećuje se korišćenje porta 139, što ukazuje na to da se SMB izvršava u kombinaciji sa NetBIOS-om preko TCP/IP.
SMB
Protokol Server Message Block (SMB), koji funkcioniše u klijent-server modelu, dizajniran je za regulisanje pristupa datotekama, direktorijumima i drugim mrežnim resursima poput štampača i rutera. Primarno se koristi unutar serije operativnih sistema Windows, SMB obezbeđuje unazadnu kompatibilnost, omogućavajući uređajima sa novijim verzijama Microsoftovog operativnog sistema da besprekorno komuniciraju sa onima koji rade na starijim verzijama. Pored toga, projekat Samba nudi rešenje slobodnog softvera, omogućavajući implementaciju SMB-a na Linux i Unix sistemima, čime se olakšava međusobna komunikacija putem SMB-a.
Deljenja, koja predstavljaju arbitrarne delove lokalnog fajl sistema, mogu biti obezbeđena od strane SMB servera, čineći hijerarhiju vidljivom klijentu delimično nezavisnom od stvarne strukture servera. Liste kontrole pristupa (ACL), koje definišu prava pristupa, omogućavaju fino podešavanje korisničkih dozvola, uključujući atribute kao što su execute
, read
i full access
. Ove dozvole mogu biti dodeljene pojedinačnim korisnicima ili grupama, na osnovu deljenja, i razlikuju se od lokalnih dozvola postavljenih na serveru.
IPC$ Share
Pristup IPC$ deljenju može se dobiti putem anonimne null sesije, omogućavajući interakciju sa servisima izloženim putem imenovanih cevi. Alat enum4linux
je koristan za ovu svrhu. Kada se pravilno koristi, omogućava sticanje:
Informacija o operativnom sistemu
Detalja o matičnoj domeni
Kompilacije lokalnih korisnika i grupa
Informacija o dostupnim SMB deljenjima
Efektivnu bezbednosnu politiku sistema
Ova funkcionalnost je ključna za mrežne administratore i bezbednosne profesionalce da procene bezbednosni položaj SMB (Server Message Block) usluga na mreži. enum4linux
pruža sveobuhvatan pregled SMB okruženja ciljanog sistema, što je od suštinskog značaja za identifikaciju potencijalnih ranjivosti i osiguranje da su SMB usluge pravilno zaštićene.
The above command is an example of how enum4linux
might be used to perform a full enumeration against a target specified by target_ip
.
Šta je NTLM
Ako ne znate šta je NTLM ili želite da saznate kako funkcioniše i kako ga iskoristiti, ova stranica o NTLM će vam biti veoma zanimljiva, gde je objašnjeno kako ovaj protokol funkcioniše i kako možete da iskoristite njegove prednosti:
NTLMServer Enumeration
Skener mreže u potrazi za hostovima:
SMB server version
Da biste tražili moguće eksploite za SMB verziju, važno je znati koja verzija se koristi. Ako ove informacije ne pojavljuju u drugim korišćenim alatima, možete:
Koristiti MSF pomoćni modul _auxiliary/scanner/smb/smb_version
Ili ovaj skript:
Pretraži exploit
Moguće Kredencijale
Korisničko ime
Uobičajene lozinke
(prazno)
(prazno)
gost
(prazno)
Administrator, admin
(prazno), lozinka, administrator, admin
arcserve
arcserve, backup
tivoli, tmersrvd
tivoli, tmersrvd, admin
backupexec, backup
backupexec, backup, arcada
test, lab, demo
lozinka, test, lab, demo
Brute Force
SMB Okruženje Informacije
Dobijanje Informacija
Enumerate Users, Groups & Logged On Users
Ove informacije bi već trebalo da budu prikupljene iz enum4linux i enum4linux-ng
Enumerate local users
Oneliner
Metasploit - Enumeracija lokalnih korisnika
Enumerating LSARPC and SAMR rpcclient
rpcclient enumerationGUI konekcija sa linux-a
U terminalu:
xdg-open smb://cascade.htb/
U prozoru za pretragu datoteka (nautilus, thunar, itd)
smb://friendzone.htb/general/
Enumeracija deljenih foldera
Lista deljenih foldera
Uvek se preporučuje da proverite da li možete pristupiti bilo čemu, ako nemate kredencijale pokušajte koristiti null kredencijale/gost korisnik.
Povezivanje/Lista deljenog foldera
Ručno enumerisanje Windows deljenja i povezivanje na njih
Može biti moguće da ste ograničeni da prikažete bilo koja deljenja host mašine i kada pokušate da ih navedete, čini se da ne postoje deljenja na koja se može povezati. Stoga bi moglo biti korisno pokušati ručno povezivanje na deljenje. Da biste ručno enumerisali deljenja, možda biste želeli da tražite odgovore poput NT_STATUS_ACCESS_DENIED i NT_STATUS_BAD_NETWORK_NAME, kada koristite važeću sesiju (npr. null sesija ili važeće akreditive). Ovi odgovori mogu ukazivati na to da li deljenje postoji i nemate pristup njemu ili deljenje uopšte ne postoji.
Uobičajena imena deljenja za Windows ciljeve su
C$
D$
ADMIN$
IPC$
PRINT$
FAX$
SYSVOL
NETLOGON
(Uobičajena imena deljenja iz Network Security Assessment 3rd edition)
Možete pokušati da se povežete na njih koristeći sledeću komandu
или за ovaj skript (koristeći null sesiju)
primeri
Enumerirajte deljenja sa Windows / bez alata trećih strana
PowerShell
CMD konzola
MMC Snap-in (grafički)
explorer.exe (grafički), unesite \\<ip>\
da biste videli dostupne ne-skrivene deljene foldere.
Montirajte deljeni folder
Preuzmite datoteke
Pročitajte prethodne odeljke da biste saznali kako se povezati sa kredencijalima/Pass-the-Hash.
Commands:
mask: specificira masku koja se koristi za filtriranje datoteka unutar direktorijuma (npr. "" za sve datoteke)
recurse: prebacuje rekurziju na uključen (podrazumevano: isključeno)
prompt: prebacuje traženje imena datoteka na isključeno (podrazumevano: uključeno)
mget: kopira sve datoteke koje odgovaraju maski sa hosta na klijentsku mašinu
(Informacije iz man stranice smbclient-a)
Pretraga deljenih foldera domena
Snaffler****
CrackMapExec pauk.
-M spider_plus [--share <share_name>]
--pattern txt
Posebno zanimljivi su fajlovi nazvani Registry.xml
jer mogu sadržati lozinke za korisnike podešene sa autologon putem Grupske Politike. Ili web.config
fajlovi jer sadrže akreditive.
SYSVOL share je čitljiv za sve autentifikovane korisnike u domenu. Tamo možete pronaći mnoge različite batch, VBScript i PowerShell skripte. Trebalo bi da proverite skripte unutar njega jer biste mogli pronaći osetljive informacije kao što su lozinke.
Čitanje Registra
Možda ćete moći da pročitate registry koristeći neke otkrivene akreditive. Impacket reg.py
vam omogućava da probate:
Post Exploitation
Podrazumevana konfiguracija Samba servera obično se nalazi u /etc/samba/smb.conf
i može imati neke opasne konfiguracije:
Podešavanje
Opis
browseable = yes
Dozvoliti listanje dostupnih deljenja u trenutnom deljenju?
read only = no
Zabraniti kreiranje i modifikaciju fajlova?
writable = yes
Dozvoliti korisnicima da kreiraju i modifikuju fajlove?
guest ok = yes
Dozvoliti povezivanje na servis bez korišćenja lozinke?
enable privileges = yes
Poštovati privilegije dodeljene specifičnom SID-u?
create mask = 0777
Koje dozvole moraju biti dodeljene novokreiranim fajlovima?
directory mask = 0777
Koje dozvole moraju biti dodeljene novokreiranim direktorijumima?
logon script = script.sh
Koji skript treba da se izvrši prilikom prijavljivanja korisnika?
magic script = script.sh
Koji skript treba da se izvrši kada se skript zatvori?
magic output = script.out
Gde treba da se sačuva izlaz magičnog skripta?
Komanda smbstatus
daje informacije o serveru i o tome ko je povezan.
Authenticate using Kerberos
Možete autentifikovati se na kerberos koristeći alate smbclient i rpcclient:
Izvršavanje komandi
crackmapexec
crackmapexec može izvršavati komande zloupotrebljavajući bilo koji od mmcexec, smbexec, atexec, wmiexec, pri čemu je wmiexec podrazumevani metod. Možete naznačiti koju opciju preferirate da koristite sa parametrima --exec-method
:
Obe opcije će napraviti novu uslugu (koristeći \pipe\svcctl putem SMB) na žrtvenoj mašini i koristiti je da izvrši nešto (psexec će otpremiti izvršni fajl na ADMIN$ share, a smbexec će se povezati na cmd.exe/powershell.exe i staviti u argumente payload --file-less technique--). Više informacija o psexec i smbexec. U kali se nalazi na /usr/share/doc/python3-impacket/examples/
Koristeći parameter-k
možete se autentifikovati protiv kerberos umesto NTLM
wmiexec/dcomexec
Tajno izvršite komandnu liniju bez dodirivanja diska ili pokretanja nove usluge koristeći DCOM preko port 135. U kali se nalazi na /usr/share/doc/python3-impacket/examples/
Koristeći parameter-k
možete se autentifikovati protiv kerberos umesto NTLM
Izvršite komande putem Task Scheduler-a (koristeći \pipe\atsvc preko SMB). U kali se nalazi na /usr/share/doc/python3-impacket/examples/
Impacket reference
https://www.hackingarticles.in/beginners-guide-to-impacket-tool-kit-part-1/
Bruteforce korisničkih akreditiva
Ovo se ne preporučuje, mogli biste blokirati nalog ako premašite maksimalan dozvoljeni broj pokušaja
SMB relay attack
Ovaj napad koristi Responder alat za hvatanje SMB autentifikacionih sesija na unutrašnjoj mreži, i preusmerava ih na ciljanu mašinu. Ako je autentifikacija sesija uspešna, automatski ćete biti prebačeni u sistem shell. Više informacija o ovom napadu ovde.
SMB-Trap
Windows biblioteka URLMon.dll automatski pokušava da se autentifikuje na host kada stranica pokušava da pristupi nekom sadržaju putem SMB, na primer: img src="\\10.10.10.10\path\image.jpg"
To se dešava sa funkcijama:
URLDownloadToFile
URLDownloadToCache
URLOpenStream
URLOpenBlockingStream
Koje koriste neki pregledači i alati (kao što je Skype)
SMBTrap using MitMf
NTLM Theft
Slično SMB Trapping-u, postavljanje malicioznih fajlova na ciljani sistem (putem SMB, na primer) može izazvati pokušaj SMB autentifikacije, omogućavajući da se NetNTLMv2 hash presretne pomoću alata kao što je Responder. Hash se zatim može razbiti offline ili koristiti u SMB relay attack.
HackTricks Automatic Commands
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Last updated