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
TriforceOpenBSDFuzzer — Systemaufruf-Fuzzing von OpenBSD amd64 mit TriforceAFL (d.h. AFL und QEMU) | Kitploit
Tools/GitHubGitHub/nccgroup/triforceopenbsdfuzzer
Dynamische Analyse (Sandboxing)SchwachstellenanalyseFuzzing
GitHubnccgroup/triforceopenbsdfuzzer

TriforceOpenBSDFuzzer

Systemaufruf-Fuzzing von OpenBSD amd64 mit TriforceAFL (d.h. AFL und QEMU)

Repository anzeigen
47185vor 8 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

TriforceOpenBSDSyscallFuzzer

  • 20160825
  • https://github.com/nccgroup/TriforceOpenBSDFuzzer
  • Jesse Hertz [email protected]
  • Tim Newsham [email protected]

Dies ist eine Sammlung von Dateien, die zum Fuzzing von Systemaufrufen von OpenBSD amd64 mit TriforceAFL (d.h. AFL und QEMU) verwendet werden. Dazu benötigen Sie TriforceAFL (https://github.com/nccgroup/TriforceAFL), die FlashRD-2.0-Distribution (http://www.nmedia.net/flashrd/), eine OpenBSD-Maschine, um den Treiber und ein Festplatten-Image zu bauen, sowie eine Linux-Maschine als Host, um den Fuzzer auszuführen (andere Fuzzer-Hosts können ebenfalls funktionieren; wir haben TriforceAFL nur von einem Linux-Host aus ausgeführt, konkret Debian/Ubuntu).

Wir werden auf der OpenBSD-Maschine alles als root erledigen, da diese Maschine nur zum Aufsetzen unserer Umgebung dient. Wenn Sie bereits eine OpenBSD-Maschine haben, können Sie getrost weniger davon als root erledigen. Wenn Sie ein erfahrener OpenBSD-Benutzer sind, wird vieles davon übertrieben ausführlich erscheinen. Wie auch immer, weiter!

Auf der OpenBSD-Maschine:

root@kitploit:~
export PKG_PATH=http://mirrors.sonic.net/pub/OpenBSD/$(uname -r)/packages/$(uname -m)/
pkg_add git
pkg_add python # pick python 2.7

Als Nächstes müssen Sie die OpenBSD-Quellen und die Kernel-Quellen herunterladen und dann entpacken:

root@kitploit:~
cd ~
ftp http://mirrors.sonic.net/pub/OpenBSD/5.9/src.tar.gz 
ftp http://mirrors.sonic.net/pub/OpenBSD/5.9/sys.tar.gz
cd /usr/src; tar -xzpf $HOME/src.tar.gz; tar -xzpf $HOME/sys.tar.gz;

Wenn Sie bereits eine Installations-CD haben, müssen Sie die folgenden Dateien nicht herunterladen (da sie sich in $CDMOUNT/5.9/amd64/*.tgz befinden). Sie müssen nur $DISTDIR entsprechend setzen. Andernfalls ...

root@kitploit:~
cd ~
ftp http://mirrors.sonic.net/pub/OpenBSD/5.9/amd64/base59.tgz
ftp http://mirrors.sonic.net/pub/OpenBSD/5.9/amd64/man59.tgz
ftp http://mirrors.sonic.net/pub/OpenBSD/5.9/amd64/comp59.tgz
ftp http://mirrors.sonic.net/pub/OpenBSD/5.9/amd64/game59.tgz
export DISTDIR=~

Wir haben nun die notwendigen Abhängigkeiten installiert und können mit dem Bauen beginnen.

Gehen Sie in das Verzeichnis TriforceOpenBSDFuzzer. Es gibt separate Verzeichnisse, die die OpenBSD-Dateien (targ) und die Dateien für den Fuzzer-Host (fuzzHost) enthalten.

Treiber und Eingaben erstellen

Führen Sie auf einem OpenBSD-Host make im Verzeichnis targ aus. Sie sollten auch die Eingabedateien aus diesem Verzeichnis erstellen.

root@kitploit:~
    mkdir inputs
    ./gen.py                   # build simple tests
    ./genTempl.py templ.txt    # build most syscall tests
    ./gen2.py                  # build complex syscall tests
    tar -czf ../inputs.tgz inputs

Erstellen des Festplatten-Images

Als Nächstes müssen Sie mit der FlashRD-Distribution (http://www.nmedia.net/flashrd/) ein Festplatten-Image mit dem Treiber erstellen. Auf einem OpenBSD-Host (mit den Quellen in /usr/src und den Kernel-Quellen in /usr/src/sys aus dem obigen Abschnitt) werden wir nun mehrere Dinge tun:

  • flashrd-2.0 entpacken
  • flashrd patchen
  • ein obsd-Verzeichnis anlegen und mit Inhalt befüllen!
root@kitploit:~
    cd ~ #make sure this is on your /home parition, you will need significant disk space for this
    ftp http://www.nmedia.net/flashrd/flashrd-2.0.tar.gz
    tar xzf flashrd-2.0.tar.gz
    cd flashrd-2.0
    patch -p1 < $FUZZER/image-diff.txt #set $FUZZER to where you cloned TriforceOpenBSDFuzzer
    mkdir obsd
    cd obsd

    tar xzpf $DISTDIR/base59.tgz
    tar xzpf $DISTDIR/man59.tgz
    tar xzpf $DISTDIR/comp59.tgz
    tar xzpf $DISTDIR/game59.tgz
    tar xzpf /var/sysmerge/etc.tgz
    cp $FUZZER/image-etc-rc etc/rc
    cp $FUZZER/targ/inputs/ex1 root/ex1
    cd ..

Sie können nun ein Image mit den folgenden Befehlen erstellen:

root@kitploit:~
    cp $FUZZER/targ/driver obsd/bin/driver
    ./flashrd obsd
    mv flashimg* $FUZZER/flashimg.bin
    mv bsd.gdb $FUZZER/bsd.gdb

Speichern Sie eine Kopie von flashimg.bin und bsd.gdb. Sie werden sie auf dem Fuzzer-Host benötigen.

Sie möchten möglicherweise ein zweites Image zum Debuggen erstellen, das das Ausführen einer interaktiven Shell ermöglicht. Bearbeiten Sie obsd/etc/rc, ersetzen Sie /bin/driver -v durch /bin/sh -i und erstellen Sie ein zweites Image. Anschließend speichern wir eine Kopie von flashimg-sh.bin und bsd-sh.gdb für später.

root@kitploit:~
    ./flashrd obsd
    mv flashimg* $FUZZER/flashimg-sh.bin
    mv bsd.gdb $FUZZER/bsd-sh.gdb

Wir können nun die OpenBSD-Maschine verlassen und zu unserem Fuzz-Host zurückkehren (stellen Sie sicher, dass Sie $FUZZER kopieren, damit wir es auf dem Fuzz-Host verwenden können).

Fuzzing

Wir führen den Fuzzer auf einem Linux-Host aus (er sollte auf jedem Host funktionieren, auf dem TriforceAFL gebaut und ausgeführt werden kann, aber Ihre Ergebnisse können abweichen, insbesondere auf einem Nicht-Linux-Host). Installieren Sie auf dem Fuzzer-Host TriforceAFL nach ../TriforceAFL. Kopieren Sie flashimg*.bin und bsd*.gdb in das Verzeichnis fuzzhost und entpacken Sie die Eingaben in das fuzzHost-Verzeichnis:

root@kitploit:~
    cd TriforceOpenBSDFuzzer # this should now have the files we made on the BSD host in it
    cp flashimg* fuzzHost/
    cp bsd* fuzzHost/
    cd fuzzhost
    tar xzf ../inputs.tgz

Jetzt sind wir bereit zu fuzzen! Wechseln Sie in das Verzeichnis fuzzHost und starten Sie den Fuzzer mit ./runFuzz -M M0.

Beachten Sie, dass das Skript runFuzz einen Master- oder Slave-Namen erwartet, da es immer im Master/Slave-Modus läuft. Weitere Verwendungsinformationen finden Sie im Skript runFuzz.

Reproduzieren

Um Testfälle (z. B. Abstürze) zu reproduzieren, führen Sie auf dem Fuzzer-Host Folgendes aus:

root@kitploit:~
  ./runTest inputs/ex1
  ./runTest outputs/crashes/id*

Sie können den Treiber auch außerhalb der emulierten Umgebung mit der Option -t ausführen, mit ausführlicher Protokollierung mit -vv und ohne die Systemaufrufe tatsächlich auszuführen mit -x. Führen Sie zum Beispiel auf dem OpenBSD-Host Folgendes aus:

root@kitploit:~
  ./driver -tvvx < inputs/ex1
  ktrace ./driver -t < inputs/ex1

Es ist manchmal nützlich, den Kernel zu booten und Tests interaktiv auszuführen. Sie können ./runSh ausführen, um in eine interaktive Shell zu booten.

Sie möchten wahrscheinlich zusätzliche Dateien (z. B. Testfälle) zur Datei flashimg-sh.bin für Tests hinzufügen. Kopieren Sie dazu auf dem OpenBSD-Host die zusätzlichen Dateien nach flashrd-2.0/obsd/root und erstellen Sie das Flash-Image neu. Übertragen Sie die Dateien zurück auf Ihren Fuzzer-Host und führen Sie runSh erneut aus. Die zusätzlichen Dateien finden Sie im Verzeichnis /root. Sie können dem Flash-Image auch nach der Erstellung als root auf dem OpenBSD-Host Dateien hinzufügen:

root@kitploit:~
    vnconfig vnd0 ./flashimg.bin
    mount /dev/vnd0a /mnt
    cp file /mnt
    umount /mnt
    vnconfig -u vnd0

Hier hinzugefügte Dateien erscheinen beim Booten des Images in /flash.

Debugging

Die zuvor auf die FlashRD-Distribution angewendeten Patches aktivieren beim Erstellen des Kernels das Debugging und deaktivieren die Optimierung. Dadurch wird das Debuggen erheblich erleichtert.

Um den Kernel vom fuzzHost aus zu debuggen, erstellen Sie eine Kopie von /usr/src/sys von Ihrem OpenBSD-Host und kopieren Sie bsd-sh.gdb nach sys/x/x/x/x. Führen Sie in einem Fenster ./runSh aus und führen Sie nach dem Booten des Systems Folgendes aus:

root@kitploit:~
    cd sys
    mkdir -p x/x/x/x
    cd x/x/x/x
    cp $FUZZER/bsd-sh.gdb .
    gdb -ex "target remote :1234" ./bsd-sh.gdb
Tool herunterladen