Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
pybof — Python module for running BOFs | Kitploit
Outils/GitHubGitHub/rkbennett/pybof
Post-ExploitationPenetration TestingRed Teaming
GitHubrkbennett/pybof

pybof

Python module for running BOFs

Voir le dépôt
8010il y a 8 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

PyBOF

Exécuter des fichiers Beacon Object via python

chargement et exécution en mémoire des BOFs

PyBOF permet à Python3 de charger des fichiers Beacon Object via des octets et d'exécuter une fonction BOF cible dans un interpréteur Python

Utilisation de base

Exécuter un BOF simple sans argument requis

root@kitploit:~
data = open(r'c:\path\to\example.o', 'rb').read()
bof.run(data)

Passer un argument de chaîne brute à un BOF

root@kitploit:~
data = open(r'c:\path\to\example.o', 'rb').read()
bof.run(data, args=["foo"], raw=True)
# Raw cannot be used with function kwarg

Passer des arguments empaquetés/formatés à un BOF

root@kitploit:~
data = open(r'c:\path\to\example.o', 'rb').read()
bof.run(data, args=[r"c:\users"], format="Z")

Exemple pratique d'exécution

root@kitploit:~
import bof
from urllib.request import urlopen
data = urlopen("https://github.com/trustedsec/CS-Situational-Awareness-BOF/raw/master/SA/dir/dir.x64.o").read()
bof.run(data, args=[r"c:\users"], format="Z")

Args/Kwargs

Plusieurs arguments peuvent être utilisés avec PyBOF, ils sont décrits plus en détail ci-dessous

data

Argument positionnel obligatoire qui doit être un objet octet contenant le contenu brut d'un BOF

args

Argument nommé facultatif qui est une liste d'arguments à transmettre à la fonction BOF cible

function

Argument nommé facultatif qui est le nom sous forme de chaîne de la fonction cible à exécuter à partir du BOF fourni, il est défini par défaut sur go

format (AVIS - Ces éléments ont récemment été mis à jour)

Argument nommé facultatif qui est une chaîne indiquant au packer d'arguments du BOF les types d'arguments tels qu'ils sont empaquetés dans le tampon. C'est similaire à l'argument format de struct.pack. Les seules options de format valides sont les suivantes :
i pour entier
s pour short
z pour chaîne
b pour binaire
Z pour chaîne large

Au moins un type de format doit être fourni pour chaque argument de la liste args. Cet argument nommé ne peut pas être utilisé conjointement avec raw

raw

Argument nommé facultatif qui est un booléen transmettant les arguments sous forme de chaîne jointe par des espaces sans les empaqueter, au lieu de tenter d'empaqueter les arguments formatés pour la fonction BOF. Cet argument nommé ne peut pas être utilisé conjointement avec format

Compilation

Clonez ce dépôt

root@kitploit:~
git clone https://github.com/rkbennett/pybof.git

Compilez l'extension C _bof

root@kitploit:~
cd pybof\src
python .\setup.py build

Copiez le fichier pyd résultant dans le répertoire bof

root@kitploit:~
copy build\lib.win-xxx-cpython-3xx\_bof.cp3xx-win_xxxx.pyd ..\bof\

Déplacez-vous dans le répertoire parent du répertoire bof, importez et amusez-vous

root@kitploit:~
cd ..\
python
>>> import bof
>>> from urllib.request import urlopen
>>> data = urlopen("https://github.com/trustedsec/CS-Situational-Awareness-BOF/raw/master/SA/dir/dir.x64.o").read()
>>> bof.run(data, args=[r"c:\users"], format="Z")

Pièges

Si une fonction BOF ne renvoie pas de valeur, je lève un avertissement informant l'utilisateur que rien n'a été retourné. Je suppose que ce n'est probablement pas le résultat attendu d'une exécution, mais je ne voulais pas lever d'erreurs fatales. Si vous exécutez une fonction BOF et recevez l'avertissement de sortie vide, gardez à l'esprit que le formatage de vos arguments doit peut-être être défini ou peut être défini incorrectement, ce qui peut causer ce problème (notamment si vous utilisez une chaîne au lieu d'une chaîne large)

Remerciements spéciaux

  • natesubra - Pour avoir répondu à mes questions diverses
  • trustedsec - Pour le COFFLoader que j'ai intégré dans mon module PyBof (licence incluse dans src/source)
Télécharger l’outil