Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
SSH-Remote-Code-Execution — ثغرة يوم الصفر في SSH من صنع ClumsyLulz | Kitploit
أدوات/GitHubGitHub/sleepthegod/ssh-remote-code-execution
توليد الحمولةالاستغلالاستغلال الملفات الثنائية
GitHubsleepthegod/ssh-remote-code-execution

SSH-Remote-Code-Execution

ثغرة يوم الصفر في SSH من صنع ClumsyLulz

عرض المستودع

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
1283215منذ 8 أشهرتمت المراجعة من قبل Kitploit
مشاركة

تنفيذ التعليمات البرمجية عن بُعد عبر SSH

ثغرة يوم الصفر في SSH | من إعداد ClumsyLulz و Taylor Christian Newsome

ملخص

يحتوي هذا المستودع على برنامج مكتوب بلغة C يقبل معاملات إدخال ويولّد حزمة (packet) ليتم إرسالها إلى خادم عبر بروتوكول SSH. يخصّص البرنامج مخزنًا مؤقتًا (buffer) لحفظ البيانات، ويكتبها في ملف، وينشئ سلسلة أوامر لبدء اتصال SSH بمضيف ومنفذ محددين باستخدام دالة system.

المشكلات المحددة

توجد عدة مشكلات أمنية واستقرار في التنفيذ الحالي:

  1. تجاوز سعة المخزن المؤقت: يتم تخصيص 28 بايت فقط باستخدام malloc، ولكن تتم كتابة 29 بايت، مما قد يسبب تلفًا في الذاكرة أو أخطاء تجزئة (segmentation faults).
  2. حساب غير صحيح لعنوان الإرجاع: يتم حساب عنوان الإرجاع باستخدام طول الحزمة بدلاً من حجم المخزن المؤقت، مما يؤدي إلى قيمة غير صالحة.
  3. مشكلة سلسلة التنسيق: تحتوي عبارة printf الخاصة بعنوان الإرجاع على سلسلة تنسيق غير صحيحة، مما يؤدي إلى سلوك غير محدد.
  4. عمليات الإدخال/الإخراج غير المفحوصة: لا يتم التحقق من القيم المُرجعة من open وwrite، مما يعرّض البيانات لفقدان أو كتابات غير مكتملة.
  5. تسرب الذاكرة: لا يتم تحرير الذاكرة المخصصة لمؤشري buffer وssh أبدًا.
  6. تنفيذ أوامر غير آمن: استخدام system لتنفيذ أمر SSH يسمح بتشغيل أوامر عشوائية بصلاحيات مرتفعة، مما يشكل خطرًا أمنيًا جسيمًا.

التوصيات

لتحسين أمان البرنامج وموثوقيته، يُنصح بالتغييرات التالية:

  • تخصيص 29 بايت على الأقل للمخزن المؤقت لمنع التجاوز.
  • استخدام حجم المخزن المؤقت، وليس طول الحزمة، عند حساب عنوان الإرجاع.
  • تصحيح سلسلة التنسيق في عبارة printf الخاصة بعنوان الإرجاع.
  • التحقق من القيم المُرجعة لاستدعاءات open وwrite ومعالجتها.
  • تحرير جميع الذاكرة المخصصة ديناميكيًا لمؤشري buffer وssh.
  • استبدال system ببديل أكثر أمانًا مثل execvp لتجنب تنفيذ أوامر عشوائية.

سيؤدي تنفيذ هذه الإصلاحات إلى تعزيز استقرار البرنامج وتقليل الثغرات الأمنية المحتملة.


root@vmi2865841:~/tools/SSH-Remote-Code-Execution# cat /etc/issue
Debian GNU/Linux 12 \n \l

root@vmi2865841:~/tools/SSH-Remote-Code-Execution# docker run -it --rm \
>   -v /root/tools/SSH-Remote-Code-Execution:/poc \
>   i386/debian:wheezy bash
root@29bcb37807cf:/# cat /etc/issue
Debian GNU/Linux 7 \n \l

root@29bcb37807cf:/# cat /etc/shadow
root:*:17955:0:99999:7:::
daemon:*:17955:0:99999:7:::
bin:*:17955:0:99999:7:::
sys:*:17955:0:99999:7:::
sync:*:17955:0:99999:7:::
games:*:17955:0:99999:7:::
man:*:17955:0:99999:7:::
lp:*:17955:0:99999:7:::
mail:*:17955:0:99999:7:::
news:*:17955:0:99999:7:::
uucp:*:17955:0:99999:7:::
proxy:*:17955:0:99999:7:::
www-data:*:17955:0:99999:7:::
backup:*:17955:0:99999:7:::
list:*:17955:0:99999:7:::
irc:*:17955:0:99999:7:::
gnats:*:17955:0:99999:7:::
nobody:*:17955:0:99999:7:::
libuuid:!:17955:0:99999:7:::
root@29bcb37807cf:/# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
root@29bcb37807cf:/# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0@if11: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP
    link/ether 1e:13:2e:66:6f:69 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever
root@29bcb37807cf:/# cd /bin/
root@29bcb37807cf:/bin# ls
bash   chmod  dash  df     dnsdomainname  egrep  findmnt  gzexe     ip     ls     mknod   mount       nisdomainname  ping6  readlink  run-parts  sh.distrib  stty  tailf     touch   uname       which         zcmp    zfgrep  zless
cat    chown  date  dir    domainname     false  grep     gzip      ln     lsblk  mktemp  mountpoint  pidof          pwd    rm        sed        sleep       su    tar       true    uncompress  ypdomainname  zdiff   zforce  zmore
chgrp  cp     dd    dmesg  echo           fgrep  gunzip   hostname  login  mkdir  more    mv          ping           rbash  rmdir     sh         ss          sync  tempfile  umount  vdir        zcat          zegrep  zgrep   znew
root@29bcb37807cf:/bin# df -h
Filesystem      Size  Used Avail Use% Mounted on
overlay         1.4T  977G  346G  74% /
tmpfs            64M     0   64M   0% /dev
shm              64M     0   64M   0% /dev/shm
/dev/sda1       1.4T  977G  346G  74% /poc
/dev/sda1       1.4T  977G  346G  74% /etc/resolv.conf
/dev/sda1       1.4T  977G  346G  74% /etc/hostname
/dev/sda1       1.4T  977G  346G  74% /etc/hosts
tmpfs            48G     0   48G   0% /proc/acpi
tmpfs            64M     0   64M   0% /proc/interrupts
tmpfs            64M     0   64M   0% /proc/kcore
tmpfs            64M     0   64M   0% /proc/keys
tmpfs            64M     0   64M   0% /proc/timer_list
tmpfs            48G     0   48G   0% /sys/firmware
root@29bcb37807cf:/bin# cat /proc/keys
root@29bcb37807cf:/bin# cat /etc/resolv.conf
# Generated by Docker Engine.
# This file can be edited; Docker Engine will not make further changes once it
# has been modified.

nameserver 1.1.1.1
nameserver 8.8.8.8
nameserver 213.136.95.10
nameserver 213.136.95.11
search .
تنزيل الأداة