Skip to content
KitploitKITPLOIT
ToolsBlog
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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2015-8522.RCE — Tivoli FastBack Server (6.1.4) is vulnerable to a stack-based buffer overflow allowing threat-actors to gain Arbitrary Code Execution (ACE) via a remote TCP-connection. The PoC provided in this repository leverages this vulnerability to establish a reverse-shell. | Kitploit
Tools/GitHubGitHub/damariion/cve-2015-8522.rce
Exploit FrameworksVulnerability AnalysisExploitationReverse EngineeringShellcodePost-ExploitationPenetration TestingRemote Access ToolShellcode Generation

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Payload Development
Binary Exploitation
Archived
GitHubdamariion/cve-2015-8522.rce

CVE-2015-8522.RCE

Tivoli FastBack Server (6.1.4) is vulnerable to a stack-based buffer overflow allowing threat-actors to gain Arbitrary Code Execution (ACE) via a remote TCP-connection. The PoC provided in this repository leverages this vulnerability to establish a reverse-shell.

Repository anzeigenWebseite
vor 4 MonatenNoch nicht geprüft

CVE-2015-8522

Die Anwendung Tivoli FastBack Server (6.1.4) ist anfällig für einen stack-basierten Pufferüberlauf, der es Angreifern ermöglicht, über eine entfernte TCP-Verbindung beliebigen Code auszuführen (ACE). Der in diesem Repository bereitgestellte PoC nutzt diese Sicherheitslücke, um sowohl CMD.exe auf dem Ziel auszuführen als auch die eingehende Verbindung zu verwalten und eine Reverse-Shell einzurichten.

example

OS BUILD ARCH

[!NOTE] Dieser PoC basiert auf einem zuvor veröffentlichten PoC und wurde um eine ASLR-Umgehung sowie eine verbesserte Architektur nach gängigen Softwareentwicklungsparadigmen erweitert. Da die empfohlene Mehrfachdateistruktur nicht in allen Fällen wünschenswert sein mag, wird eine Einzeldateiversion des Exploits in assets/single.py bereitgestellt.

Sicherheitslücke

Kommunikation

Der PoC kommuniziert mit der anfälligen Anwendung über den TCP-Port 11460. An diesen Port gesendete Daten müssen der unten definierten Struktur folgen:

root@kitploit:~
0x00000123 0x00000000 0x00000000 0x00000000
0x00000ABC 0x00000AAA 0x00000111 0x00000BBB
0x00000222 0x00000CCC 0x00000333 0x00000000
0x00000000 0x00000000 0x00000000 0x00000000

<buffer 1> ...
<buffer 2> ...
<buffer 3> ...

Ausnutzung

Unter Verwendung der zuvor genannten Paketstruktur ruft der PoC die Funktion _FXCLI_SetConfFileChunk auf, die durch den Opcode 0x534 identifiziert wird. Von dort führt die Ausführung zu einem Aufruf von sscanf, dessen Argumente aus Puffer (1) ohne ordnungsgemäße Bereinigung gelesen werden. Durch die Bereitstellung eines Blocks von genau 0x118 Bytes wird der eip-Zeiger mit dem Wert überschrieben, der in den letzten 4 Bytes liegt.

Umgehung von Schutzmaßnahmen

Adressraum-Layout-Randomisierung (ASLR)

Um ASLR zu umgehen, ruft der PoC die Funktion FXCLI_DebugDispatch auf, indem er das zuvor genannte Netzwerkpaket mit dem Opcode 0x2000 sendet. Diese Funktion liest den ersten Puffer für eine bestimmte Funktionalität, von denen einige unten aufgeführt sind:

  • DumpMemoryPools
  • ReadRepositorySectors
  • SymbolOperation

Der PoC verwendet die Funktionalität SymbolOperation, die ein beliebiges Symbol eingibt und dessen Basisadresse zurückgibt. Damit wird die Adresse von N98E_CRYPTO_get_new_lockid aufgelöst, von der dessen Offset (0x14E0) subtrahiert wird. Dies führt letztendlich zur Basisadresse von libeay32IBM019.dll, die im nächsten Umgehungsstadium ausgiebig verwendet wird.

Bevor die ROP-Kette aufgebaut wird, wird die Basis auf potenzielle ungültige Zeichen überprüft. Falls diese vorhanden sind, wird die anfällige Anwendung neu gestartet, indem der Puffer überläuft und eip mit dem sinnlosen Wert 0x90909090 überschrieben wird. Danach wird die Anwendung abgefragt, bis sie wieder online ist, und der Zyklus beginnt von neuem.

Datenausführungsverhinderung (DEP/NX)

Eine ROP-Kette wird aufgebaut, bei der die aus der vorherigen Umgehungsstufe gewonnene Basis verwendet wird. Diese ROP-Kette ruft WriteProcessMemory auf und kopiert den Inhalt der "invite" in die Codehöhle des .text-Abschnitts in libeay32IBM019.dll.

Wenn die ROP-Kette erstellt ist, werden alle ihre (aufgelösten) Inhalte erneut auf potenzielle ungültige Zeichen überprüft. Falls diese vorhanden sind, wird die Anwendung auf dieselbe Weise wie in der vorherigen Umgehungsstufe neu gestartet, und der Zyklus beginnt von neuem.

[!NOTE] Um eine Endlosschleife während der Umgehungsphase zu verhindern, ist der PoC so konfiguriert, dass er höchstens 10 Minuten lang versucht, die Umgehung zu wiederholen. Danach wird der Exploit beendet, da das Timeout erreicht wurde.

Nach der Ausnutzung

Nachdem die Schutzmaßnahmen des Exploits umgangen wurden, ist bereits eine allgemeine ACE erreicht. Diese ACE wird genutzt, um spezifischen Shellcode auszuführen, der einen Prozess von CMD.exe mit CreateProcessA erstellt. Die Argumente dieses Aufrufs werden so gesetzt, dass alle Pipes (STDIN, STDOUT, STDERR) zu einer Socket-Verbindung umgeleitet werden, die mit localhost verbunden ist.

Gleichzeitig startet der PoC einen Listener auf dem localhost, der die eingehende Anfrage vom entfernten Host abfängt und eine sehr einfache CLI-Schnittstelle startet, um mit dem erstellten CMD.exe-Prozess zu interagieren.

Visualisierung

root@kitploit:~
graph

    a("Start")
    b("Buffer overflow: crash")
    c("Buffer overflow: hijack")

    subgraph sa["ASLR Bypass"]

        a1["Resolve API with 'SymbolOperation'"]
        a2["Subtract offset (0x14E0)"]
        a3{"Base contains bad-chars?"}

        a1 -->| N98E_CRYPTO_get_new_lockid | a2
        a2 -->| libeay32IBM019.dll | a3

    end
    
    subgraph sb["DEP Bypass"]

        b1["Construct ROP"]
        b2{"ROP contains bad-chars?"}

        b3["Locate shellcode"]
        b4["Locate code-cave"]
        b5["Invoke WriteProcessMemory"]
        b6["Return to shellcode"]

        b1 --> b2
        b2 -->| no | b3
        b3 --> b4
        b4 --> b5
        b5 --> b6

    end

    subgraph sc["Reverse Shell"]
    
        c1["(Remote) connect to localhost"]
        c2["(Local) listen on available port"]
        c3["(Local) accept connection"]
        c4["(Local) loop over CMDs"]
    
        c1 --> c2
        c2 --> c3
        c3 --> c4

    end

    a3 -->| no  | sb
    
    b2 -->| yes | b
    a3 -->| yes | b
    
    a --> sa
    b --> a
    b6 --> c --> sc

Tool herunterladen
FeldBeschreibungZiel
123GrößePaket
ABCOpcodeFunktion
AAA, 111Offset, GrößePuffer (1)
BBB, 222Offset, GrößePuffer (2)
CCC, 333Offset, GrößePuffer (3)