
Ronin هي مجموعة أدوات روبي مجانية ومفتوحة المصدر لأبحاث وتطوير الأمن. تسمح رونين أيضًا بالتطوير والتوزيع السريع للكود، والاستغلالات، والحمولات، وما إلى ذلك، عبر مستودعات git تابعة لجهات خارجية.
[رونين][website] هي مجموعة أدوات Ruby مفتوحة المصدر ومجانية لأبحاث وتطوير الأمن. تحتوي رونين على العديد من أوامر CLI و مكتبات Ruby لمجموعة متنوعة من مهام الأمن، مثل ترميز/فك تشفير البيانات، تصفية عناوين IP/المضيفين/URLs، الاستعلام عن ASNs، الاستعلام عن DNS، HTTP، مسح الثغرات الأمنية في الويب، زحف المواقع، تثبيت مستودعات الطرف الثالث من الثغرات و/أو الحمولات، تشغيل الثغرات، تطوير ثغرات جديدة، إدارة قواعد البيانات المحلية، تخمين البيانات، إجراء الاستطلاع، وغير ذلك الكثير.
ronin.ronin irb.ronin الأخرى.Usage: ronin [options] [COMMAND [ARGS...]]
Options: -h, --help Print help information
Arguments: [COMMAND] The command name to run [ARGS ...] Additional arguments for the command
Commands: archive asn banner-grab bitflip cert-dump cert-gen cert-grab completion decode, dec decrypt dns dns-proxy email-addr encode, enc encrypt entropy escape extract grep help hexdump highlight hmac homoglyph host http ip iprange irb md5 netcat, nc new pack proxy public-suffix-list quote rot sha1 sha256 sha512 strings tld-list tips typo typosquat unarchive unescape unhexdump unpack unquote url xor
Additional Ronin Commands: $ ronin-repos $ ronin-wordlists $ ronin-db $ ronin-web $ ronin-fuzzer $ ronin-masscan $ ronin-nmap $ ronin-recon $ ronin-payloads $ ronin-exploits $ ronin-vulns $ ronin-app
قائمة أوامر ronin:```shell
$ ronin help
اعرض صفحة دليل لأمر:```shell $ ronin help COMMAND
احصل على نصيحة عشوائية حول كيفية استخدام `ronin`:```shell
$ ronin tips
افتح Ronin Ruby REPL:```
$ ronin irb
, Jµ ▓▓█▓
J▌ ▐▓██▌ ████ ██ ▐███D
╓▄▓▓█████▌ ██µ ████ ▄███ÖJ██▌ ███▌
,╓µ▄▄▄▄▄▄▄▄µ;, ,▄▓██████████ ▐███ ▐███▀ ███▌ ████µ ▄███
¬∞MÆ▓███████████████████████▓M ▄██████▀▀╙████▌ ████▌ ████ ▄███ J█████ ███▌
█████▀▀▀▀▀███████ -████▀└ ████ ▐█████n ▄███O ███▌ ██████████ ▓████L ████▀ ▓████ ▓███Ö ███████ ███▌ ▓███ ▐█████████▀ ▄████▀ ,╓▄▄▄█████ J████Ü ,███▌ ▄███████████ J███▀ ████ █████ J█████████████████─ ████▌ ████ ██████████▌ ████ ▐███Ü ▐███Ü
███████████▀▀▀╙└ ▐████ J███▌ ▓███▌ ²█████ J███Ü ███▌ ▀█▌
▓██████████▌ ████▌ ████ ;████ ▀███▀ ███▌ J▀▀▀- █
▄█████▀ ▀█████µ ▐████ ,▄▓████▀ ████▀ ███ J███ `
J█████- ╙▀███▄ ████████████▀╙ J█▀▀▀ █U ▀█▌
████▀ ▀███ ▄████████▀▀ ╨ █
▓██▀ ²▀█▄ █▀▀▀╙└
▄██╜ ╙W
J█▀
▌└
┘
irb(ronin)>
يبدأ ويفتح واجهة الويب التفاعلية لـ Ronin:```
$ ronin-app
يقوم Hexdumps بتفريغ البيانات بعدة تنسيقات:```shell $ ronin hexdump /bin/ls
إلغاء تفريغ سداسي عشري لملف تفريغ سداسي عشري وإعادته إلى بياناته الثنائية الخام الأصلية:```shell
$ ronin unhexdump -o data.bin hexdump.txt
طباعة جميع السلاسل القابلة للطباعة من ملف:```shell $ ronin strings /bin/ls
اطبع جميع السلاسل الأبجدية من ملف:```shell
$ ronin strings --alpha /bin/ls
طباعة جميع السلاسل الأبجدية الرقمية من ملف:```shell $ ronin strings --alpha-num /bin/ls
طباعة جميع السلاسل الرقمية من ملف:```shell
$ ronin strings --numeric /bin/ls
طباعة كل السلاسل السداسية العشرية من ملف:```shell $ ronin strings --hex /bin/ls
قم بتعداد جميع Bit-flips لاسم نطاق:```shell
$ ronin bitflip microsoft --alpha-num --append .com
licrosoft.com
oicrosoft.com
iicrosoft.com
eicrosoft.com
Microsoft.com
mhcrosoft.com
mkcrosoft.com
mmcrosoft.com
macrosoft.com
mycrosoft.com
...
Base64 ترميز سلسلة نصية:```shell $ ronin encode --base64 --string "foo bar baz" Zm9vIGJhciBiYXo=
يقوم Zlib بضغط السلسلة النصية، ثم ترميزها بصيغة Base64، ثم ترميز URI لها:```shell
$ ronin encode --zlib --base64 --uri --string "foo bar"
%65%4A%78%4C%79%38%39%58%53%45%6F%73%41%67%41%4B%63%41%4B%61%0A
فك تشفير سلسلة نصية باستخدام Base64:```shell $ ronin decode --base64 --string "Zm9vIGJhciBiYXo=" foo bar baz
فك ترميز URI، ثم فك ترميز Base64، ثم فك ضغط zlib لنص:```shell
$ ronin decode --uri --base64 --zlib --string "%65%4A%78%4C%79%38%39%58%53%45%6F%73%41%67%41%4B%63%41%4B%61%0A"
foo bar
تشفير URI لسلسلة نصية:```shell $ ronin escape --uri --string "foo bar" foo%20bar
فك ترميز سلسلة URI:```shell
$ ronin unescape --uri --string "foo%20bar"
foo bar
تحويل ملف إلى سلسلة C مقتبسة:```shell $ ronin quote --c file.bin "..."
تحويل ملف إلى سلسلة نصية مقتبسة في JavaScript:```shell
$ ronin quote --js file.bin
إزالة علامات الاقتباس من سلسلة C:```shell $ ronin unquote --c --string '"\x66\x6f\x6f\x20\x62\x61\x72"' foo bar
### نص
استخلاص بيانات عالية الإنتروبيا من ملف:```shell
$ ronin entropy -e 5.0 index.html
ابحث عن الأنماط الشائعة للبيانات باستخدام grep:```shell $ ronin grep --hash index.html
استخراج الأنماط الشائعة من البيانات:```shell
$ ronin extract --hash index.html
توليد خطأ إملائي عشوائي لكلمة:```shell $ ronin typo microsoft microssoft
تعداد كل تنويعات الأخطاء المطبعية لكلمة:```shell
$ ronin typo --enum microsoft
microosoft
microsooft
microssoft
أنشئ نسخة هوموغليف عشوائية من كلمة:```shell $ ronin homoglyph CEO CEO
تعداد كل اختلاف متجانس الشكل لكلمة:```shell
$ ronin homoglyph --enum CEO
ϹEO
СEO
ⅭEO
CEO
CΕO
CЕO
CEO
CEΟ
CEО
CEO
يظلل بناء جملة ملف:```shell $ ronin highlight index.html
### التشفير
تشفير ملف باستخدام AES-256:```shell
$ ronin encrypt --cipher aes-256-cbc --password "..." file.txt > encrypted.bin
فك تشفير البيانات:```shell $ ronin decrypt --cipher aes-256-cbc --password "..." encrypted.bin
يُنتج HMAC لملف:```shell
$ ronin hmac --hash sha1 --password "too many secrets" data.txt
ينشئ HMAC لسلسلة نصية:```shell $ ronin hmac --hash sha1 --password "too many secrets" --string "..."
احسب MD5 checksum لسلسلة نصية:```shell
$ ronin md5 --string "hello world"
5eb63bbbe01eeed093cb22bb8f5acdc3
احسب المجموع الاختباري MD5 لملف:```shell $ ronin md5 file.txt
احسب المجموع الاختباري MD5 لكل سطر في ملف:```shell
$ ronin md5 --multiline file.txt
احسب رمز التحقق SHA1 لسلسلة نصية:```shell $ ronin sha1 --string "hello world" 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed
احسب المجموع الاختباري SHA1 لملف:```shell
$ ronin sha1 file.txt
احسب المجموع الاختباري SHA1 لكل سطر في ملف:```shell $ ronin sha1 --multiline file.txt
احسب المجموع الاختباري SHA256 لسلسلة نصية:```shell
$ ronin sha256 --string "hello world"
b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
احسب المجموع الاختباري SHA256 لملف:```shell $ ronin sha256 file.txt
احسب المجموع الاختباري SHA256 لكل سطر في ملف:```shell
$ ronin sha256 --multiline file.txt
احسب المجموع الاختباري SHA512 لسلسلة نصية:```shell $ ronin sha512 --string "hello world" 309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f989dd35bc5ff499670da34255b45b0cfd830e81f605dcf7dc5542e93ae9cd76f
احسب المجموع الاختباري SHA512 لملف:```shell
$ ronin sha512 file.txt
احسب مجموع SHA512 الاختباري لكل سطر في ملف:```shell $ ronin sha512 --multiline file.txt
ROT-13 يقوم بتشفير سلسلة نصية:```shell
$ ronin rot --string "The quick brown fox jumps over the lazy dog"
Gur dhvpx oebja sbk whzcf bire gur ynml qbt
يقوم XOR بتشفير سلسلة نصية:```shell $ ronin xor --key ABC --string "The quick brown fox jumps over the lazy dog" "\x15*&a36(!(a 1.5-a$,9b)4/32b,7'1a6+$b/ 8:a&,&"
### الشبكات
استعلام عن ASN لعنوان IP:```shell
$ ronin asn -I 4.2.2.1
4.0.0.0/9 AS3356 (US) LEVEL3
احصل على عنوان IP الخارجي/العام للنظام:```shell $ ronin ip --public
تحويل عنوان IP إلى صيغة عشرية:```shell
$ ronin ip --decimal 127.0.0.1
2130706433
تحويل ملف من عناوين IP إلى URLs:```shell $ ronin ip --file targets.txt --http
قم بتعداد كل عنوان IP في نطاق CIDR:```shell
$ ronin iprange 10.1.0.0/15
10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.4
10.0.0.5
10.0.0.6
10.0.0.7
10.0.0.8
10.0.0.9
...
تعداد كل عنوان IP في نطاق IP glob:```shell $ ronin iprange 10.1-3.0.* 10.1.0.1 10.1.0.2 10.1.0.3 10.1.0.4 10.1.0.5 10.1.0.6 10.1.0.7 10.1.0.8 10.1.0.9 10.1.0.10 ...
تعداد كل عنوان IP بين عنواني IP:```shell
$ ronin iprange --start 10.0.0.1 --stop 10.0.3.33
10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.4
10.0.0.5
10.0.0.6
10.0.0.7
10.0.0.8
10.0.0.9
10.0.0.10
الاتصال بخدمة TCP عن بعد:```shell $ ronin netcat -v example.com 80
استمع على منفذ TCP محلي:```shell
$ ronin netcat -v -l 1337
الاتصال بخدمة SSL/TLS عن بعد:```shell $ ronin netcat -v --ssl example.com 443
اتصل بخدمة UDP عن بُعد:```shell
$ ronin netcat -v -u example.com 1337
استمع على منفذ UDP محلي:```shell $ ronin netcat -v -u -l 1337
يفتح مقبس UNIX:```shell
$ ronin netcat -v --unix /path/to/unix.socket
Hexdump جميع البيانات المستلمة من مأخذ توصيل:```shell $ ronin netcat --hexdump example.com 80 GET / HTTP/1.1 Host: example.com User-Agent: Ruby
00000000 48 54 54 50 2f 31 2e 31 20 32 30 30 20 4f 4b 0d |HTTP/1.1 200 OK.| 00000010 0a 41 67 65 3a 20 32 35 30 38 30 36 0d 0a 43 61 |.Age: 250806..Ca| 00000020 63 68 65 2d 43 6f 6e 74 72 6f 6c 3a 20 6d 61 78 |che-Control: max| 00000030 2d 61 67 65 3d 36 30 34 38 30 30 0d 0a 43 6f 6e |-age=604800..Con| 00000040 74 65 6e 74 2d 54 79 70 65 3a 20 74 65 78 74 2f |tent-Type: text/| 00000050 68 74 6d 6c 3b 20 63 68 61 72 73 65 74 3d 55 54 |html; charset=UT| ...
#### DNS
استعلام سجلات DNS:```shell
$ ronin dns -t TXT github.com
اعثر على جميع TLDs المسجلة لاسم مضيف:```shell $ ronin host --enum-tlds --registered github.com github.ac github.actor github.ae github.africa github.agency github.ai ...
ابحث عن جميع اللواحق العامة المسجلة لاسم المضيف:```shell
$ ronin host --enum-suffix --registered github.com
example.com.ag
example.ai
example.al
example.am
example.com.ar
example.at
example.co.at
example.or.at
example.com.au
example.be
example.com.bh
...
ابحث عن جميع النطاقات الفرعية التي تحتوي على عناوين:```shell $ ronin host --enum-subdomains subdomains.txt --has-addresses google.com www.google.com mail.google.com smtp.google.com ns1.google.com ns2.google.com m.google.com ns.google.com blog.google.com admin.google.com news.google.com vpn.google.com ns3.google.com ...
تعداد كل الاختلافات الممكنة للانتحال الإملائي لنطاق:```shell
$ ronin typosquat microsoft.com
microosoft.com
microsooft.com
microssoft.com
ابحث عن جميع نطاقات التشابه الإملائي المسجلة لنطاق صحيح:```shell $ ronin typosquat --registered microsoft.com
ابحث عن جميع نطاقات التشابه الإملائي مع العناوين لنطاق صحيح:```shell
$ ronin typosquat --has-addresses microsoft.com
ابحث عن جميع نطاقات typosquat غير المسجلة لنطاق صالح:```shell $ ronin typosquat --unregistered microsoft.com
إزالة التمويه عن عنوان بريد إلكتروني:```shell
$ ronin email-addr --deobfuscate "john [dot] smith [at] example [dot] com"
[email protected]
قم بتعداد جميع حالات التعتيم لعنوان بريد إلكتروني:```shell $ ronin email-addr --enum-obfuscations [email protected] john.smith @ example.com john.smith AT example.com john.smith at example.com john.smith[AT]example.com john.smith[at]example.com ...
#### SSL/TLS Certs
استخراج معلومات حول شهادة SSL/TLS:```shell
$ ronin cert-dump https://example.com/
تحميل شهادة SSL/TLS من مضيف ومنفذ:```shell $ ronin cert-grab github.com:443
إنشاء شهادة SSL/TLS جديدة:```shell
$ ronin cert-gen -c test.com -O "Test Co" -U "Test Dept" \
-L "Test City" -S NY -C US
قم بتنفيذ طلب HTTP GET (مع تمييز بناء الجملة):```shell
$ ronin http https://example.com/
أرسل طلب HTTP مع رؤوس إضافية:```shell
$ ronin http --post --header "Authorization: ..." https://foo.bar/
أرسل طلب HTTP مع سلسلة User-Agent معروفة:```shell
$ ronin http --post --user-agent chrome-android https://foo.bar/
أرسل طلب HTTP مع سلسلة `User-Agent` مخصصة:```shell
$ ronin http --post --user-agent-string "..." https://foo.bar/
افتح شل HTTP تفاعلي:```shell $ ronin http --shell https://example.com/ https://example.com/> help help [COMMAND] Prints the list of commands or additional help get PATH[?QUERY] [BODY] Performs a GET request head PATH[?QUERY] Performs a HEAD request patch PATH[?QUERY] [BODY] Performs a PATCH request post PATH[?QUERY] [BODY] Performs a POST request put PATH [BODY] Performs a PUT request copy PATH DEST Performs a COPY request delete PATH[?QUERY] Performs a DELETE request lock PATH[?QUERY] Performs a LOCK request options PATH[?QUERY] Performs a OPTIONS request mkcol PATH[?QUERY] Performs a MKCOL request move PATH[?QUERY] DEST Performs a MOVE request propfind PATH[?QUERY] Performs a PROPFIND request proppatch PATH[?QUERY] Performs a PROPPATCH request trace PATH[?QUERY] Performs a TRACE request unlock PATH[?QUERY] Performs a UNLOCK request cd PATH Changes the base URL path headers [{set | unset} NAME [VALUE]] Manages the request headers
اطبع حالة HTTP لكل URL في ملف:```shell
$ ronin url --file urls.txt --status
أنشئ نص برمجي جديد بلغة Ruby مع تحميل ronin-support مسبقًا:```shell $ ronin new script foo.rb
إنشاء مشروع روبي جديد مع `Gemfile`:```shell
$ ronin new project foo
أنشئ سكربت روبي جديد nokogiri لتحليل HTML/XML:
$ ronin new nokogiri foo.rb
أنشئ سكريبت Ruby جديد لـ [ronin-web-server]:```shell
$ ronin new web-server my_server.rb
إنشاء تطبيق ويب جديد يعتمد على ronin-web-server:```shell $ ronin new web-app my_app
إنشاء سكربت Ruby جديد [ronin-web-spider]:```shell
$ ronin new web-spider --host=example.com my_spider.rb
قم بإنشاء برنامج نصي ronin-listener-dns:```shell $ ronin new dns-listener my_dns_listener.rb
أنشئ سكريبت [ronin-dns-proxy]:```shell
$ ronin new dns-proxy my_dns_proxy.rb
قم بإنشاء سكربت ronin-listener-http:```shell $ ronin new http-listener my_http_listener.rb
توليد سكريبت [ronin-exploits]:```shell
$ ronin new exploit my_exploit.rb
أنشئ نصًا برمجيًا ronin-payloads:```shell $ ronin new payload my_payload.rb
### الأرشيف
ملفات الأرشيف:```shell
$ ronin archive -o archive.zip file1.txt file2.txt
أرشفة الملفات باستخدام تنسيق tar:```shell $ ronin archive -o archive.tar file1.txt file2.txt
فك أرشفة الملفات:```shell
$ ronin unarchive arch1.tar arch2.zip
فك ضغط ملف بتنسيق محدد:```shell $ ronin unarchive -f zip arch2.jar
### انظر أيضًا
* [ronin-repos](https://github.com/ronin-rb/ronin-repos#synopsis)
* [ronin-wordlists](https://github.com/ronin-rb/ronin-wordlists#synopsis)
* [ronin-db](https://github.com/ronin-rb/ronin-db#synopsis)
* [ronin-web](https://github.com/ronin-rb/ronin-web#synopsis)
* [ronin-fuzzer](https://github.com/ronin-rb/ronin-fuzzer#synopsis)
* [ronin-payloads](https://github.com/ronin-rb/ronin-payloads#synopsis)
* [ronin-exploits](https://github.com/ronin-rb/ronin-exploits#synopsis)
* [ronin-vulns](https://github.com/ronin-rb/ronin-vulns#synopsis)
## المتطلبات
* [gcc] / [clang]
* [make]
* [git]
* [libsqlite3]
* [Ruby] >= 3.2.0
* [open_namespace] ~> 0.4
* [rouge] ~> 3.0
* [io-endpoint] ~> 0.15
* [io-stream] ~> 0.8
* [wordlist] ~> 1.1
* [ronin-support] ~> 1.1
* [ronin-dns-proxy] ~> 0.1
* [ronin-core] ~> 0.2
* [ronin-repos] ~> 0.1
* [ronin-wordlists] ~> 0.1
* [ronin-db] ~> 0.1
* [ronin-listener] ~> 0.1
* [ronin-nmap] ~> 0.1
* [ronin-masscan] ~> 0.1
* [ronin-recon] ~> 0.1
* [ronin-fuzzer] ~> 0.1
* [ronin-web] ~> 2.0
* [ronin-code-asm] ~> 1.0
* [ronin-code-sql] ~> 2.0
* [ronin-payloads] ~> 0.1
* [ronin-exploits] ~> 1.0
* [ronin-vulns] ~> 0.2
* [ronin-app] ~> 0.1
## التثبيت
### سكريبت Bash```shell
curl -o ronin-install.sh https://raw.githubusercontent.com/ronin-rb/scripts/main/ronin-install.sh && bash ronin-install.sh
راجع تعليمات التثبيت اليدوي لكيفية تثبيت Ronin وتبعياته الإضافية على منصتك.
إذا كنت تفضل استخدام [Docker]، فهناك أيضاً [صور Docker] متاحة:```shell docker pull roninrb/ronin docker run -it roninrb/ronin
بالإضافة إلى ذلك، إذا كنت ترغب في تحميل دليل منزلك (home directory) داخل صورة الدوكر (docker image):```shell
docker run --mount type=bind,source="$HOME",target=/home/ronin -it ronin
[الحاويات][Docker]: https://www.docker.com/ [صور Docker]: https://hub.docker.com/r/roninrb/ronin
cd ronin./scripts/setupgit checkout -b my_featurebundle exec rake specgit push origin my_featureحقوق الطبع والنشر (c) 2006-2026 Hal Brodigan (postmodern.mod3 at gmail.com)
رونين هو برنامج حر: يمكنك إعادة توزيعه و/أو تعديله بموجب شروط رخصة جنو العمومية العامة كما نشرتها مؤسسة البرمجيات الحرة، إما الإصدار 3 من الرخصة، أو (حسب اختيارك) أي إصدار لاحق.
يتم توزيع رونين على أمل أن يكون مفيدًا، ولكن دون أي ضمان؛ حتى بدون الضمان الضمني لـ القابلية للتسويق أو الملاءمة لغرض معين. راجع رخصة جنو العمومية العامة لمزيد من التفاصيل.
يجب أن تكون قد تلقيت نسخة من رخصة جنو العمومية العامة جنبًا إلى جنب مع رونين. إذا لم يكن الأمر كذلك، فانظر https://www.gnu.org/licenses/.