OS Cheats

Windows

:: Pipe output to clipboard
some_command.exe | clip

:: Output clip to file
:: Requires PowerShell 5
Get-Clipboard > clip.txt

:: Add time stamps into log file
echo %DATE% %TIME% >> <TXT LOG>.txt

:: Add/Modify registry value remotely
reg add \\<REMOTE COMPUTER NAME>\HKLM\Software\<REG KEY INFO>

:: Get registry value remotely
reg query \\<REMOTE COMPUTER NAME>\HKLM\Software\<REG KEY INFO>

:: Test to see if Registry Path exists
Test-Path "HKCU:\Software\Microsoft\<HIVE>"

:: Copy files remotely
robocopy C:\<SOURCE SHARED FOLDER> \\<DESTINATION COMPUTER>\<DESTINATION FOLDER> /E

:: Check to see if certain file extensions are in a directory
Test-Path C:\Scripts\Archive\* -include *.ps1, *.vbs

:: Show contents of a file
type <FILE NAME>

:: Combine contents of multiple files
type <FILE NAME 1> <FILE NAME 2> <FILE NAME 3> > <NEW FILE NAME>

:: Desktops, allows multiple Desktop Screens
:: Ref. https://technet.microsoft.com/en-us/sysinternals/cc817881

:: Run live option
"%ProgramFiles%\Internet Explorer\iexplore.exe "https://live.sysinternals.com/desktops.exe

:: Remote mounting, Read and Read/Write
net share MyShare_R=c:\<READ ONLY FOLDER> /GRANT:EVERYONE,READ
net share MyShare_RW=c:\<READ/WRITE FOLDER> /GRANT:EVERYONE,FULL

:: Remote task execution using PSEXEC
:: Ref. https://technet.microsoft.com/en-us/sysinternals/psexec.aspx
psexec.exe \\<TARGET IP ADDRESS> -u <USER NAME> -p <PASSWORD> /c C:\<PROGRAM>.exe
psexec @C:\<TARGET FILE LIST>.txt -u <ADMIN LEVEL USER NAME> -p <PASSWORD> C:\<PROGRAM>.exe >> C:\<OUTPUT FILE NAME>.txt
psexec.exe @C:\<TARGET FILE LIST>.csv -u <DOMAIN NAME>\<USER NAME> -p <PASSWORD> /c C:\<PROGRAM>.exe

:: Remote task execution and send output to share
wmic /node:ComputerName process call create “cmd.exe /c netstat -an > \\<REMOTE SHARE>\<OUTPUT FILE NAME>.txt”

:: Compare two files for changes
Compare-Object (Get-Content .<LOG FILE NAME 1>.log) -DifferenceObject (Get-Content .<LOG FILE NAME 2>.log)

:: Remote task execution using PowerShell
Invoke-Command -<COMPUTER NAME> {<PS COMMAND>}

:: PowerShell Command Help
Get-Help <PS COMMAND> -full

Linux

# Analyze traffic remotely over ssh
ssh root@<REMOTE IP ADDRESS OF HOST TO SNIFF> tcpdump -i any -U -s 0 -w - 'not port 22'

# Manually add note/data to syslog
logger "Something important to note in Log"
dmesg | grep <COMMENT>

# Simple read only mounting
mount -o ro /dev/<YOUR FOLDER OR DRIVE> /mnt

# Mounting remotely over SSH
apt-get install sshfs
adduser <USER NAME> fuse
# Log out and log back in.
mkdir ~/<WHERE TO MOUNT LOCALLY>
sshfs <REMOTE USER NAME>@<REMOTE HOST>:/<REMOTE PATH> ~/<WHERE TO MOUNT LOCALLY>

# Creating a SMB share in Linux
useradd -m <NEW USER>
passwd <NEW USER>
smbpasswd -a <NEW USER>
echo [Share] >> /etc/samba/smb.conf
echo /<PATH OF FOLDER TO SHARE> >> /etc/samba/smb.conf
echo available = yes >> /etc/samba/smb.conf
echo valid users = <NEW USER> >> /etc/samba/smb.conf
echo read only = no >> /etc/samba/smb.conf
echo browsable = yes >> /etc/samba/smb.conf
echo public = yes >> /etc/samba/smb.conf
echo writable = yes >> /etc/samba/smb.conf
service smbd restart

# Visit share from remote system
smb:\\<IP ADDRESS OF LINUX SMB SHARE>

# Copy files to remote system
scp <FILE NAME> <USER NAME>@<DESTINATION IP ADDRESS>:/<REMOTE FOLDER>

# Mount a SMB share to remote system
mount -t smbfs -o username=<USER NAME> //<SERVER NAME OR IP ADDRESS>/<SHARE NAME> /mnt/<MOUNT POINT>/

# Monitor if a website or file is still accessible:
while :; do curl -sSr http://<URL> | head -n 1; sleep 60; done

# Use Screen to manage multiple shell sessions, list sessions,
# create new shell and switchto other shells
screen
screen -ls
# Hit Ctrl-a then c
# Hit Ctrl-a then n

# Re-attach a screen
screen -x

# Start a service that will keep running after logout and return back to prompt
nohup ./<COMMAND> > <OUTPUT TO A FILE> &

# Check list of nohup running jobs
jobs -l

# Kill a nohup job
kill %<JOB NUMBER>

# Check which command is being used and list all locations
which <COMMAND NAME>
which -a <COMMAND NAME>

Decoding

Windows

:: Convert from hex to decimal in Windows
set /a 0xff 
:: 255

:: Convert from hex to decimal in Windows in PowerShell
0xff
:: 255

:: Other Basic Math in Windows
set /a 1+2
:: 3
set /a 3*(9/4)
:: 6
set /a (2*5)/2
:: 5
set /a "32>>3"
:: 4

:: Decode Base64 text in a file
certutil -decode <BASE64 ENCODED FILE NAME> <DECODED FILE NAME>

:: Decode XOR and search for HTTP
:: Ref. https://blog.didierstevens.com/programs/xorsearch/
xorsearch.exe -i -s <INPUT FILE NAME> http

:: Decode HTML Strings
Add-Type -AssemblyName System.Web
[System.Uri]::UnescapeDataString("HTTP%3a%2f%2fHello%20World.com") HTTP://Hello World.com

Linux

# Convert from hex to decimal in Linux
echo “0xff”|wcalc -d # 255

# Convert from decimal to hex in Linux
echo “255”|wcalc -h # 0xff

Snort

Snort Rules

# Snort Rules to detect Meterpreter traffic
# Ref. https://blog.didierstevens.com/2015/06/16/metasploit-meterpreter-reverse-https-snort-rule/

alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"Metasploit User Agent String"; flow:to_server,established; content:"User-Agent|3a| Mozilla/4.0 (compatible\; MSIE 6.0\; Windows NT 5.1)|0d 0a|"; http_header; classtype:trojan-activity; reference:url,blog.didierstevens.com/2015/03/16/quickpost-metasploit-user-agent-strings/; sid:1618000; rev:1;)

alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"Metasploit User Agent String"; flow:to_server,established; content:"User-Agent|3a| Mozilla/4.0 (compatible\; MSIE 6.1\; Windows NT)|0d 0a|"; http_header; classtype:trojan-activity; reference:url,blog.didierstevens.com/2015/03/16/quickpost-metasploit-user-agent-strings/; sid:1618001; rev:1;)

alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"Metasploit User Agent String"; flow:to_server,established; content:"User-Agent|3a| Mozilla/4.0 (compatible\; MSIE 7.0\; Windows NT 6.0)|0d 0a|"; http_header; classtype:trojan-activity; reference:url,blog.didierstevens.com/2015/03/16/quickpost-metasploit-user-agent-strings/; sid:1618002; rev:1;)

alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"Metasploit User Agent String"; flow:to_server,established; content:"User-Agent|3a| Mozilla/4.0 (compatible\; MSIE 7.0\; Windows NT 6.0\; Trident/4.0\; SIMBAR={7DB0F6DE-8DE7-4841-9084-28FA914B0F2E}\; SLCC1\; .N|0d 0a|"; http_header; classtype:trojan-activity; reference:url,blog.didierstevens.com/2015/03/16/quickpost-metasploit-user-agent-strings/; sid:1618003; rev:1;)

alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"Metasploit User Agent String"; flow:to_server,established; content:"User-Agent|3a| Mozilla/4.0 (compatible\; Metasploit RSPEC)|0d 0a|"; http_header; classtype:trojan-activity; reference:url,blog.didierstevens.com/2015/03/16/quickpost-metasploit-user-agent-strings/; sid:1618004; rev:1;)

alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"Metasploit User Agent String"; flow:to_server,established; content:"User-Agent|3a| Mozilla/5.0 (Windows\; U\; Windows NT 5.1\; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/4.0.221.6 Safari/525.13|0d 0a|"; http_header; classtype:trojan-activity; reference:url,blog.didierstevens.com/2015/03/16/quickpost-metasploit-user-agent-strings/; sid:1618005; rev:1;)

alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"Metasploit User Agent String"; flow:to_server,established; content:"User-Agent|3a| Mozilla/5.0 (compatible\; Googlebot/2.1\; +http://www.google.com/bot.html)|0d 0a|"; http_header; classtype:trojan-activity; reference:url,blog.didierstevens.com/2015/03/16/quickpost-metasploit-user-agent-strings/; sid:1618006; rev:1;)

alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"Metasploit User Agent String"; flow:to_server,established; content:"User-Agent|3a| Mozilla/5.0 (compatible\; MSIE 10.0\; Windows NT 6.1\; Trident/6.0)|0d 0a|"; http_header; classtype:trojan-activity; reference:url,blog.didierstevens.com/2015/03/16/quickpost-metasploit-user-agent-strings/; sid:1618007; rev:1;)

# Snort Rules to detect PSEXEC traffic
# Ref. https://github.com/John-Lin/docker-snort/blob/master/snortrules-snapshot-2972/rules/policy-other.rules

alert tcp $HOME_NET any -> $HOME_NET [139,445] (msg:"POLICY-OTHER use of psexec remote administration tool"; flow:to_server,established; content:"|FF|SMB|A2|"; depth:5; offset:4; content:"|5C 00|p|00|s|00|e|00|x|00|e|00|c|00|s|00|v|00|c"; nocase; metadata:service netbios-ssn; reference:url,technet.microsoft.com/en-us/sysinternals/bb897553.aspx; classtype:policy-violation; sid:24008; rev:1;)

alert tcp $HOME_NET any -> $HOME_NET [139,445] (msg:"POLICY-OTHER use of psexec remote administration tool SMBv2"; flow:to_server,established; content:"|FE|SMB"; depth:8; nocase; content:"|05 00|"; within:2; distance:8; content:"P|00|S|00|E|00|X|00|E|00|S|00|V|00|C|00|"; fast_pattern:only; metadata:service netbios-ssn; reference:url,technet.microsoft.com/en-us/sysinternals/bb897553.aspx[1]; classtype:policy-violation; sid:30281; rev:1;)

DOS/DDOS

Fingerprint DOS/DDOS

# Fingerprinting the type of DoS/DDoS
# Ref. https://www.trustwave.com/Resources/SpiderLabs-Blog/PCAP-Files-Are-Great-Arn-t-They--/

# --- Volumetric - Bandwidth consumption ---

# Sustaining sending 1Gb of traffic to 10Mb connection
# Ref. http://freecode.com/projects/iftop
iftop -n

# --- Protocol - Use of specific protocol ---

# SYN Flood, ICMP Flood, UDP flood
tshark -r <FILE NAME>.pcap -q -z io,phs
tshark -c 1000 -q -z io,phs
tcpdump -tnr $FILE |awk -F '.' '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -n | tail
tcpdump -qnn "tcp[tcpflags] & (tcp-syn) != 0"
netstat -s

# Isolate one protocol and or remove other protocols
tcpdump -nn not arp and not icmp and not udp
tcpdump -nn tcp

# --- Resource - State and connection exhaustion ---

# Firewall can handle 10,000 simultaneous connections, and attacker sends 20,000
netstat -n | awk '{print $6}' | sort | uniq -c | sort -nr | head

# --- Application - Layer 7 attacks ---

# HTTP GET flood, for a large image file
tshark -c 10000 -T fields -e http.host | sort | uniq -c | sort -r | head -n 10
tshark -r capture6 -T fields -e http.request.full\_uri | sort | uniq -c | sort -r | head -n 10c
tcpdump -n 'tcp[32:4] = 0x47455420'| cut -f 7- -d ":"

# Look for excessive file requests, GIF, ZIP, JPEG, PDF, PNG
tshark -Y "http contains "ff:d8"" || "http contains "GIF89a"” || "http contains "\x50\x4B\x03\x04"" || "http contains\xff\xd8" " || “http contains "%PDF"" || “http contains "\x89\x50\x4E\x47""

# Look for web application 'user-agent' pattern of abuse
tcpdump -c 1000 -Ann | grep -Ei 'user-agent' | sort | uniq -c | sort -nr | head -10

# Show HTTP Header of requested resources
tcpdump -i en0 -A -s 500 | grep -i refer

# Sniff HTTP Headers for signs of repeat abuse
tcpdump -s 1024 -l -A dst <EXAMPLE.COM>

# --- Poison - Layer 2 attacks ---

# ARP poison, race condition DNS, DHCP
tcpdump 'arp or icmp'
tcpdump -tnr <SAMPLE TRAFFIC FILE>.pcap ARP |awk -F '.' '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -n | tail
tshark -r <SAMPLE TRAFFIC FILE>.pcap -q -z io,phs| grep arp.duplicate-address-detected

Tool Suites

Prebuilt ISO, virtual machine and distributions

  • KALI – Open Source Pentesting Distribution
  • SIFT – SANS Investigative Forensics Toolkit
  • REMNUX – A Linux Toolkit for Reverse-Engineering and Analyzing Malware
  • OPEN VAS – Open Source vulnerability scanner and manager
  • MOLOCH – Large scale IPv4 packet capturing (PCAP), indexing and database system
  • SECURITY ONION – Linux distro for intrusion detection, network security monitoring, and log management
  • NAGIOS – Network Monitoring, Alerting, Response, and Reporting Tool
  • OSSEC – Scalable, multi-platform, open source Host-based Intrusion Detection System
  • SAMURAI WTF – Pre-configured web pen-testing environment
  • RTIR – Request Tracker for Incident Response
  • HONEYDRIVE – Pre-configured honeypot software packages
  • The Enhanced Mitigation Experience Toolkit – helps prevent vulnerabilities in software from being successfully exploited
  • ATTACK SURFACE ANALYZER by Microsoft – Baseline Tool
  • WINDOWS TO GO – USB Portable Windows 8
  • WINFE – Windows Forensic Environment on CD/USB
  • DCEPT – Deploying and detecting use of Active Directory honeytokens
  • TAILS – The Amnesic Incognito Live System
  • GRR – Google Rapid Respponse framework focused on remote live forensics