
اختبر واستغل خوادم STUN/TURN لاستغلال التكوينات الخاطئة، مما يتيح التنقل داخل الشبكة الداخلية عبر وكيل SOCKS، وهجمات تسرب الذاكرة، ومسح المنافذ الداخلية.
Stunner هي أداة لاختبار واستغلال خوادم STUN و TURN و TURN عبر TCP. TURN هو بروتوكول يستخدم بشكل أساسي في مؤتمرات الفيديو والدردشات الصوتية (WebRTC).
إذا وجدت خادمًا تم تكوينه بشكل خاطئ، يمكنك استخدام هذه الأداة لفتح وكيل socks محلي يقوم بترحيل كل حركة المرور عبر بروتوكول TURN إلى الشبكة الداخلية خلف الخادم.
لقد طورت هذه الأداة أثناء اختبار Cisco Expressway مما أدى إلى بعض الثغرات: https://firefart.at/post/multiple_vulnerabilities_cisco_expressway/
للحصول على اسم المستخدم وكلمة المرور المطلوبين، تحتاج إلى جلبهما باستخدام طريقة خارج النطاق مثل التقاط طلب Connect من متصفح ويب باستخدام Burp. لقد أضفت مثال سير العمل في أسفل ملف readme حول كيفية اختبار مثل هذا الخادم.
هذا العمل مرخص بموجب رخصة المشاع الإبداعي نسب المصنف - غير تجاري - المشاركة بالمثل 4.0 الدولية. لعرض نسخة من هذه الرخصة، قم بزيارة http://creativecommons.org/licenses/by-nc-sa/4.0/ أو أرسل رسالة إلى Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
STUN: RFC 5389
TURN: RFC 5766
TURN for TCP: RFC 6062
TURN Extension for IPv6: RFC 6156
هذا الأمر سيطبع بعض المعلومات حول خادم stun أو turn مثل البروتوكولات المدعومة والسمات مثل البرنامج المستخدم.
--debug, -d enable debug output (default: false)
--turnserver value, -s value turn server to connect to in the format host:port
--tls Use TLS/DTLS on connecting to the STUN or TURN server (default: false)
--timeout value connect timeout to turn server (default: 1s)
--help, -h show help (default: false)
./stunner info -s x.x.x.x:443
يحاول هذا الأمر عدة نطاقات خاصة ومقيدة لمعرفة ما إذا كان خادم TURN مهيأً للسماح بالاتصالات بعناوين IP المحددة. إذا لم يكن نطاق معين ممنوعًا، يمكنك تعداد هذا النطاق أكثر باستخدام الأوامر الأخرى المقدمة. إذا كان عنوان IP قابلًا للوصول، فهذا يعني أن خادم TURN سيوصل حركة المرور إلى عنوان IP هذا.
--debug, -d enable debug output (default: false)
--turnserver value, -s value turn server to connect to in the format host:port
--tls Use TLS/DTLS on connecting to the STUN or TURN server (default: false)
--protocol value protocol to use when connecting to the TURN server. Supported values: tcp and udp (default: "udp")
--timeout value connect timeout to turn server (default: 1s)
--username value, -u value username for the turn server
--password value, -p value password for the turn server
--help, -h show help (default: false)
اتصال TURN قائم على TCP (اتصال منك إلى خادم TURN):
./stunner range-scan -s x.x.x.x:3478 -u username -p password --protocol tcp
اتصال TURN قائم على UDP (اتصال منك إلى خادم TURN):
./stunner range-scan -s x.x.x.x:3478 -u username -p password --protocol udp
هذا أحد أكثر الأوامر فائدة لخوادم TURN التي تدعم اتصالات TCP بالخوادم الخلفية. سيطلق خادم socks5 محلي بدون مصادقة وسيرحل كل حركة مرور TCP عبر بروتوكول TURN (UDP عبر SOCKS غير مدعوم حاليًا). إذا كان الخادم تم تكوينه بشكل خاطئ، فسيوصل حركة المرور إلى العناوين الداخلية، لذلك يمكن استخدامه للوصول إلى الأنظمة الداخلية وإساءة استخدام الخادم كوكيل إلى الشبكة الداخلية. إذا اخترت أيضًا إجراء استعلامات DNS عبر socks، فسيتم حلها باستخدام خادم الأسماء المحلي لديك، لذا من الأفضل العمل مع عناوين IPv4 و IPv6 الخاصة. يرجى ملاحظة أن هذه الوحدة يمكنها فقط ترحيل حركة مرور TCP.
--debug, -d enable debug output (default: false)
--turnserver value, -s value turn server to connect to in the format host:port
--tls Use TLS/DTLS on connecting to the STUN or TURN server (default: false)
--protocol value protocol to use when connecting to the TURN server. Supported values: tcp and udp (default: "udp")
--timeout value connect timeout to turn server (default: 1s)
--username value, -u value username for the turn server
--password value, -p value password for the turn server
--listen value, -l value Address and port to listen on (default: "127.0.0.1:1080")
--drop-public, -x Drop requests to public IPs. This is handy if the target can not connect to the internet and your browser want's to check TLS certificates via the connection. (default: true)
--help, -h show help (default: false)
./stunner socks -s x.x.x.x:3478 -u username -p password -x
بعد تشغيل الوكيل، افتح متصفحك، ووجه الوكيل في إعداداتك إلى socks5 بعنوان IP 127.0.0.1:1080 (تأكد من عدم تعيين خيار تجاوز العنوان المحلي لأننا نريد الوصول إلى العناوين المحلية البعيدة) واستدعِ عنوان IP الذي تختاره في المتصفح.
مثال: https://127.0.0.1, https://127.0.0.1:8443 أو https://[::1]:8443 (ستستدعي هذه المنافذ على خادم TURN المختبر من الواجهات المحلية).
يمكنك أيضًا تكوين proxychains لاستخدام هذا الوكيل (لكنه سيكون بطيئًا جدًا لأن كل طلب يؤدي إلى طلبات متعددة لتمكين البروكسي). فقط قم بتحرير /etc/proxychains.conf وأدخل القيمة socks5 127.0.0.1 1080 تحت ProxyList.
مثال لـ nmap عبر هذا الوكيل socks5 مع proxychains مهيأ بشكل صحيح (لاحظ أنها -sT للقيام بمزامنات TCP وإلا فلن يستخدم وكيل socks5)
sudo proxychains nmap -sT -p 80,443,8443 -sV 127.0.0.1
من المرجح ألا يعطي هذا أي معلومات قابلة للاستخدام ولكنه قد يكون مفيدًا لتعداد جميع وسائل النقل المتاحة (=البروتوكولات إلى الأنظمة الداخلية) التي يدعمها الخادم. قد يُظهر هذا بعض تطبيقات البروتوكول المخصصة لكنه في الغالب سيعيد الإعدادات الافتراضية فقط.
--debug, -d enable debug output (default: false)
--turnserver value, -s value turn server to connect to in the format host:port
--tls Use TLS/DTLS on connecting to the STUN or TURN server (default: false)
--protocol value protocol to use when connecting to the TURN server. Supported values: tcp and udp (default: "udp")
--timeout value connect timeout to turn server (default: 1s)
--username value, -u value username for the turn server
--password value, -p value password for the turn server
--help, -h show help (default: false)
./stunner brute-transports -s x.x.x.x:3478 -u username -p password
يحاول هذا الأمر جميع كلمات المرور من ملف معين لاسم مستخدم عبر بروتوكول TURN (UDP). يمكن أن يكون هذا مفيدًا عند تحليل pcap حيث يمكنك رؤية اسم المستخدم ولكن ليس كلمة المرور. يرجى ملاحظة أن القوة العمياء غير المتصلة بالإنترنت أسرع بكثير في هذه الحالة.
--debug, -d enable debug output (default: false)
--turnserver value, -s value turn server to connect to in the format host:port
--tls Use TLS/DTLS on connecting to the STUN or TURN server (default: false)
--protocol value protocol to use when connecting to the TURN server. Supported values: tcp and udp (default: "udp")
--timeout value connect timeout to turn server (default: 1s)
--username value, -u value username for the turn server
--passfile value, -p value passwordfile to use for bruteforce
--help, -h show help (default: false)
./stunner brute-password -s x.x.x.x:3478 -u username -p wordlist.txt