
فحوصات أمان لينكس
أداة كشف وإزالة وتحصين خوادم لينكس ضد عمالات التعدين الرقمية.
بُنيت من استجابة حوادث حقيقية — تكتشف المنقبين الذين يختبئون من
psوtopوhtopوbtopباستخدام تقنيات الروتكيت.
git clone https://gitlab.com/abdom.seada/security-checks.git
cd security-checks
sudo bash setup.sh
🔀 الفرع:
master— هذه المجموعة موجودة على الفرعmaster. قد تُضاف نصوص أمنية أخرى على فروع منفصلة في المستقبل.
⚠️ قم بتشغيل
setup.shمرة واحدة فور الاستنساخ — تخطي هذه الخطوة هو السبب الرئيسي للأخطاء.
sudo bash setup.sh
setup.sh يتولى كل شيء تلقائياً:
| الخطوة | الوظيفة |
|---|---|
| ✅ الأذونات | تشغيل chmod +x على miner-hunter وجميع نصوص lib/*.sh |
| ✅ المجلدات | إنشاء /var/log/miner_hunter/ و /var/lib/miner_hunter/ (للجذر فقط، 700) |
| ✅ التبعيات | فحص perf و mpstat و iptables و fail2ban و bc و strings — تثبيت المفقود تلقائياً |
| ✅ الاختبار الذاتي | تشغيل ./miner-hunter --version للتأكد من أن كل شيء يعمل بشكل صحيح |
المخرجات المتوقعة عند نجاح الإعداد:
✅ Setup complete — all checks passed!
Next steps:
sudo ./miner-hunter scan # Safe read-only scan
sudo ./miner-hunter full # Scan → Kill → Harden
💡 لماذا هذا ضروري؟ لن ينفذ لينكس ملفاً ما لم يكن لديه العلم
+x. ينقل Git و SCP هذه الخاصية. يقومsetup.shبإصلاح جميع الملفات دفعة واحدة — بما في ذلك وحداتlib/التي يعتمد عليها النص الرئيسي.
sudo ./miner-hunter scan # ✅ Safe — read-only, zero changes
sudo ./miner-hunter full # ⚠️ Full pipeline: Scan → Kill → Harden
sudo ./miner-hunter scan --dry-run # 👁️ Preview mode — shows what would happen
| الأمر | الوصف | يُغير النظام؟ |
|---|---|---|
scan | فحص كشف كامل — العمليات المخفية، وحدة المعالجة، الشبكة، الاستمرارية | ✅ لا |
kill | قتل المنقبين المُحددين، حظر عناوين IP التجمعات، إزالة الآثار | ⚠️ نعم |
harden | تحصين بعد الحادث — SSH، جدار الحماية، المراقب، خط الأساس للتكامل | ⚠️ نعم |
full | تنفيذ scan → kill → harden مع تأكيدات بين المراحل | ⚠️ نعم |
report | عرض أحدث تقرير فحص | ✅ لا |
| الخيار | الوصف |
|---|---|
-d, --dry-run | معاينة جميع الإجراءات دون إجراء أي تغييرات |
-e, --evidence DIR | حفظ الأدلة إلى دليل مخصص بدلاً من /root/miner_evidence_* |
-h, --help | عرض المساعدة |
-v, --version | عرض الإصدار |
مواقف من الحياة الواقعية وما يجب تشغيله بالضبط في كل منها.
top لا يظهر شيئاً"هذا هو العرض الكلاسيكي للروتكيت. المنقب يختبئ من أدوات مساحة المستخدم لكنه لا يستطيع الاختباء من عدادات أداء الأجهزة.
# Step 1: Run a safe scan first — confirm what's there before touching anything
sudo ./miner-hunter scan
ما ستراه إذا كان المنقب موجوداً:
🚨 [CRITICAL] CPU anomaly: 97% user CPU but top shows max 2% per process
🚨 [CRITICAL] perf detected 4 hidden threads consuming ~94% total CPU
🚨 [CRITICAL] Active connection to 185.x.x.x:9200 (known mining port)
🚨 [CRITICAL] Fake kernel thread PID=3421 NAME=[kworker/0:1] EXE=/tmp/.x/miner
# Step 2: Kill the miner and block its pool
sudo ./miner-hunter kill
# Step 3: Harden the server so it can't come back
sudo ./miner-hunter harden
لاحظت شيئاً مريباً — حركة مرور صادرة غير معتادة، مهمة cron لم تنشئها، عملية باسم غريب — لكنك لست متأكداً.
# Run a full scan — completely safe, read-only, zero changes
sudo ./miner-hunter scan
# Then read the structured report
sudo ./miner-hunter report
التقرير في /root/miner_evidence_*/report.txt يُصنف كل اكتشاف حسب الخطورة:
[CRITICAL] إدخالات → تابع إلى kill فوراً[WARNING] إدخالات → راجع يدوياً قبل التصرفلدى المنقب آلية استمرارية — مهمة cron، خدمة systemd، إدخال PM2، أو باب خلفي في ملف تعريف الصدفة يعيد إحياءه بعد قتله.
sudo ./miner-hunter scan
ابحث عن هذه في المخرجات:
⚠️ [WARN] Suspicious cron entry: * * * * * /tmp/.x/update
🚨 [CRITICAL] Malicious systemd service: /etc/systemd/system/update-check.service
🚨 [CRITICAL] PM2 process 'app-worker' has 8432 restarts — likely miner respawn loop
🚨 [CRITICAL] Shell profile backdoor detected in /root/.bashrc
# kill removes ALL persistence artifacts — not just the running process
sudo ./miner-hunter kill
# Then harden to install the watchdog so you're alerted if anything respawns
sudo ./miner-hunter harden
💡 بعد
kill، يقوم المراقب (watchdog cron) بالتشغيل كل 5 دقائق ويسجل في/var/log/miner_hunter/watchdog_alerts.log— ستعرف فوراً إذا عاد شيء.
تحصين استباقي قبل النشر — لا منقب، لا حادث، فقط تأمين الأمور.
# Run harden standalone — no scan or kill needed
sudo ./miner-hunter harden
هذا سيقوم بـ:
sshd/usr/bin (مجموع اختباري MD5 — بحيث يمكنك اكتشاف الملفات الثنائية المعدلة لاحقاً)بعد kill، خطوة التحقق تبلغ أن المنقب قد لا يزال قيد التشغيل:
⚠️ MINER MAY HAVE RESPAWNED
CPU: 89% | Mining conns: 1
Firewall blocks are in place — miner can't reach pool
Consider a REBOOT or OS REINSTALL
# 1. Firewall blocks are already in place — miner CANNOT reach its pool
# Confirm blocks are active:
iptables -L OUTPUT -n | grep DROP
# 2. Run a second scan to see what survived
sudo ./miner-hunter scan
# 3. Check for a kernel module rootkit hiding the process
lsmod | grep -iE 'diamorphine|reptile|kovid|rootkit'
# 4. Non-zero taint = out-of-tree kernel modules loaded (rootkit indicator)
cat /proc/sys/kernel/tainted
إذا كانت قيمة تلوث النواة غير صفرية أو ظهرت وحدة روتكيت معروفة — فإن المنقب لديه تحكم على مستوى النواة. المسار الأكثر أماناً في هذه المرحلة هو إعادة تثبيت نظام التشغيل بالكامل من لقطة نظيفة معروفة.
بعد harden، يكون مراقب cron مثبتاً بالفعل. إليك كيفية التعامل معه:
# Watch the alert log in real time
tail -f /var/log/miner_hunter/watchdog_alerts.log
# Confirm the watchdog cron job is registered
cat /etc/cron.d/miner-watchdog
# Check for /usr/bin binary changes since your baseline was taken
md5sum --check /var/lib/miner_hunter/usrbin_baseline.md5 --quiet
أي مخرجات من الأمر الأخير تعني أن ملفاً ثنائياً للنظام قد تم تعديله بعد خط الأساس الخاص بك — تحقق فوراً.
| التقنية | ما تكتشفه |
|---|---|
مقارنة /proc مع ps | عمليات غير مرئية لأدوات مساحة المستخدم |
| اختطاف LD_PRELOAD | مكتبات مشتركة خبيثة تعترض libc لإخفاء العمليات |
| روتكيتات وحدات النواة | Diamorphine و Reptile و Kovid وروتكيتات معروفة أخرى |
| خيوط نواة مزيفة | منقبون يتنكرون كـ [kworker] و [kthreadd] و [kswapd] |
| ملفات ثنائية معدلة للنظام | ps و top و ls و ss و netstat مستبدلة |
| التقنية | ما تكتشفه |
|---|---|
تحليل perf لوحدة PMC (عدادات مراقبة الأداء) للأجهزة | مستهلكو وحدة المعالجة المخفيون — الروتكيتات لا تستطيع تزييف عدادات الأجهزة |
أخذ عينات دلتا من /proc | محاسبة مباشرة على مستوى النواة لوحدة المعالجة لكل PID |
| كشف الشذوذ في وحدة المعالجة | استخدام وحدة معالجة عالي %user دون عملية مرئية تفسره |