{"id":25244995,"url":"https://github.com/pepelux/stuncheck","last_synced_at":"2025-10-26T21:30:24.986Z","repository":{"id":220552998,"uuid":"751938900","full_name":"Pepelux/stuncheck","owner":"Pepelux","description":"Set of tools to audit and exploit STUN/TURN servers","archived":false,"fork":false,"pushed_at":"2024-05-31T18:00:32.000Z","size":355,"stargazers_count":14,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-05-31T19:31:19.849Z","etag":null,"topics":["hacking","penetration-testing","pentesting","security","security-audit","security-tools","stun","turn"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Pepelux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-02T16:53:32.000Z","updated_at":"2024-05-31T18:00:35.000Z","dependencies_parsed_at":"2024-02-15T23:28:00.180Z","dependency_job_id":"bb7111e3-dfa8-40e7-8a38-7ca2828d87b9","html_url":"https://github.com/Pepelux/stuncheck","commit_stats":null,"previous_names":["pepelux/stuncheck"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pepelux%2Fstuncheck","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pepelux%2Fstuncheck/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pepelux%2Fstuncheck/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pepelux%2Fstuncheck/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pepelux","download_url":"https://codeload.github.com/Pepelux/stuncheck/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238399605,"owners_count":19465484,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacking","penetration-testing","pentesting","security","security-audit","security-tools","stun","turn"],"created_at":"2025-02-12T01:56:38.545Z","updated_at":"2025-10-26T21:30:24.635Z","avatar_url":"https://github.com/Pepelux.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"StunCheck is a set of tools for scanning, testing and exploiting STUN and TURN servers.\n\nSome of the implemented utilities are based on the fantastic Stunner application (https://github.com/firefart/stunner)\n\n# StunScan #\n\nMultithread STUN/TURN server scanner. It can scan large ranges of networks.\n\n```\n -= STUN scan =-\n\noptions:\n  -h, --help                                 show this help message and exit\n  -i IPADDR, --ip IPADDR                     Host/IP address/network (ex: mystunserver.com | 192.168.0.10 | 192.168.0.0/24)\n  -r REMOTE_PORT, --remote_port REMOTE_PORT  Ports to scan. Ex: 3478 | 3478,5349 | 3400-3500 | 3470,5000,5300-5400 | ALL for 1-65536 (default: 3478/udp or 5349/tcp)\n  -proto PROTO                               Protocol to connect TURN server: udp|tcp|tls|all (default: udp)\n  -th THREADS, --threads THREADS             Number of threads (default: 200)\n  -v, --verbose                              Increase verbosity\n  -vv, --more_verbose                        Increase more verbosity\n  -nocolor                                   Show result without colors\n  -f FILE, --file FILE                       File with several IPs or network ranges\n  -o OFILE, --output_file OFILE              Save data into a log file\n  -random                                    Randomize target hosts\n```\n\n# StunInfo #\n\nGets info about the stun or turn server like used software, listening interface and supported protocols.\n\n```\n -= STUN info =-\n\noptions:\n  -h, --help                                 show this help message and exit\n  -i IPADDR, --ip IPADDR                     Target IP address\n  -r REMOTE_PORT, --remote_port REMOTE_PORT  Remote port (default: 3478)\n  -proto PROTO                               Protocol to connect TURN server: udp|tcp|tls (default: udp)\n  -v, --verbose                              Increase verbosity\n  -vv, --more_verbose                        Increase more verbosity\n```\n\nExample:\n\n```\n$ ./stuninfo.py -i 185.X.X.11\n\n☎️  STUNCHECK BY 🅿 🅴 🅿 🅴 🅻 🆄 🆇\n\n███████████████████████████████████████████████████\n█─▄▄▄▄█─▄─▄─█▄─██─▄█▄─▀█▄─▄█▄─▄█▄─▀█▄─▄█▄─▄▄─█─▄▄─█\n█▄▄▄▄─███─████─██─███─█▄▀─███─███─█▄▀─███─▄███─██─█\n▀▄▄▄▄▄▀▀▄▄▄▀▀▀▄▄▄▄▀▀▄▄▄▀▀▄▄▀▄▄▄▀▄▄▄▀▀▄▄▀▄▄▄▀▀▀▄▄▄▄▀\n\n💾 https://github.com/Pepelux/stuncheck\n🐦 https://twitter.com/pepeluxx\n\n[✓] IP/Network: 185.X.X.11\n[✓] Port: 3478\n[✓] Protocol: UDP\n\n[+] Headers:\n  [-]  Message Type: Binding Response\n  [-]  Message Cookie: 482112a4\n  [-]  Transaction ID: 422cb0fa30c04c71f3dd3264e4\n[+] Attributes:\n  [-]  XOR-MAPPED-ADDRESS: 193.X.X.9:55878\n  [-]  MAPPED-ADDRESS: 193.X.X.9:55878\n  [-]  RESPONSE-ORIGIN: 185.X.X.11:3478\n  [-]  SOFTWARE: Coturn-4.5.2 'dan Eider'\n  [-]  FINGERPRINT: 848d1fa8\n\nTransport ... UDP\n[+] Headers:\n  [-]  Message Type: Allocate Error Response\n  [-]  Message Cookie: 682112a4\n  [-]  Transaction ID: 42ffd9da6b9f98f06077f2ca56\n[+] Attributes:\n  [-]  ERROR-CODE: 401 Unauthorized\n  [-]  NONCE: 7eb2371b7c103283\n  [-]  REALM: mydomain.com\n  [-]  SOFTWARE: Coturn-4.5.2 'dan Eider'\n  [-]  FINGERPRINT: 27227d9d\n\nTransport ... TCP\n[+] Headers:\n  [-]  Message Type: Allocate Error Response\n  [-]  Message Cookie: 682112a4\n  [-]  Transaction ID: 423ef44c68a1e7ec22f3b1d076\n[+] Attributes:\n  [-]  ERROR-CODE: 34303120 401 Unauthorized\n  [-]  NONCE: 7b2d5efff9a9f2b5\n  [-]  REALM: mydomain.com\n  [-]  SOFTWARE: Coturn-4.5.2 'dan Eider'\n  [-]  FINGERPRINT: dd4a9f0e\n```\n\n# StunSniff #\n\nSniffer for the STUN protocol. When starting a conference it will show all IP addresses involved in the conversation. It verifies the attributes of the messages received from the STUN/TURN server and also the communication using the RTP protocol.\n\n```\n -= STUN Network sniffing =-\n\noptions:\n  -h, --help                                 show this help message and exit\n  -d DEV, --dev DEV                          Set Device (by default try to get it)\n  -r REMOTE_PORT, --remote_port REMOTE_PORT  Remote port (default: 3478 for udp/tcp and 5349 for tls). ALL for all ports\n  -o OFILE, --output_file OFILE              Save output into a PCAP file\n  -f FILE, --_file FILE                      Save output into a TXT file\n  -proto PROTO                               Protocol to sniff to connect TURN server: udp|tcp|tls|all\n  -rtp                                       Filter only RTP traffic\n  -v, --verbose                              Increase verbosity (no data displayed by default)\n  -vv, --more_verbose                        Increase more verbosity\n  -w, --whois                                Do a whois\n```\n\n# StunLogin #\n\nUsing the TURN protocol verifies the authentication of a given username and password.\n\n```\n -= STUN login =-\n\noptions:\n  -h, --help                                 show this help message and exit\n  -i IPADDR, --ip IPADDR                     Target IP address\n  -r REMOTE_PORT, --remote_port REMOTE_PORT  Remote port (default: 3478)\n  -proto PROTO                               Protocol to connect TURN server: udp|tcp|tls (default: udp)\n  -v, --verbose                              Increase verbosity\n  -vv, --more_verbose                        Increase more verbosity\n  -u USER, --user USER                       Username\n  -p PWD, --pass PWD                         Password\n```\n\nExample:\n\nYou can obtain TURN_USER and TURN_PASS, for example, using Burp.\n\n```\n$ ./stunlogin.py -i 185.X.X.11 -user TURN_USER -pass TURN_PASS\n\n☎️  STUNCHECK BY 🅿 🅴 🅿 🅴 🅻 🆄 🆇\n\n███████████████████████████████████████████▀█████████████\n█─▄▄▄▄█─▄─▄─█▄─██─▄█▄─▀█▄─▄█▄─▄███─▄▄─█─▄▄▄▄█▄─▄█▄─▀█▄─▄█\n█▄▄▄▄─███─████─██─███─█▄▀─███─██▀█─██─█─██▄─██─███─█▄▀─██\n▀▄▄▄▄▄▀▀▄▄▄▀▀▀▄▄▄▄▀▀▄▄▄▀▀▄▄▀▄▄▄▄▄▀▄▄▄▄▀▄▄▄▄▄▀▄▄▄▀▄▄▄▀▀▄▄▀\n\n💾 https://github.com/Pepelux/stuncheck\n🐦 https://twitter.com/pepeluxx\n\n[✓] IP/Network: 185.X.X.11\n[✓] Remote port: 3478\n[✓] Protocol: UDP\n\n[+] Allocate Request\n[-] Allocate Error Response\n[-] 401 Unauthorized\n[+] Allocate Request\n[-] Allocate Success Response\n[✓] Connection successful\n```\n\n# StunTransports #\n\nBruteforce transports of a TURN server.\n\n```\n  -= STUN transports =-\n\noptions:\n  -h, --help                                 show this help message and exit\n  -i IPADDR, --ip IPADDR                     Target IP address\n  -r REMOTE_PORT, --remote_port REMOTE_PORT  Remote port (default: 3478)\n  -proto PROTO                               Protocol to connect TURN server: udp|tcp|tls (default: udp)\n  -v, --verbose                              Increase verbosity\n  -vv, --more_verbose                        Increase more verbosity\n  -u USER, --user USER                       Username\n  -p PWD, --pass PWD                         Password\n```\n\nExample:\n\n```\n$ ./stuntransports.py -i 185.X.X.11 -user TURN_USER -pass TURN_PASS\n\n☎️  STUNCHECK BY 🅿 🅴 🅿 🅴 🅻 🆄 🆇\n\n█████████████████████████████████████████████████████████████████████████████████████████\n█─▄▄▄▄█─▄─▄─█▄─██─▄█▄─▀█▄─▄█─▄─▄─█▄─▄▄▀██▀▄─██▄─▀█▄─▄█─▄▄▄▄█▄─▄▄─█─▄▄─█▄─▄▄▀█─▄─▄─█─▄▄▄▄█\n█▄▄▄▄─███─████─██─███─█▄▀─████─████─▄─▄██─▀─███─█▄▀─██▄▄▄▄─██─▄▄▄█─██─██─▄─▄███─███▄▄▄▄─█\n▀▄▄▄▄▄▀▀▄▄▄▀▀▀▄▄▄▄▀▀▄▄▄▀▀▄▄▀▀▄▄▄▀▀▄▄▀▄▄▀▄▄▀▄▄▀▄▄▄▀▀▄▄▀▄▄▄▄▄▀▄▄▄▀▀▀▄▄▄▄▀▄▄▀▄▄▀▀▄▄▄▀▀▄▄▄▄▄▀\n\n💾 https://github.com/Pepelux/stuncheck\n🐦 https://twitter.com/pepeluxx\n\n[✓] IP/Network: 185.X.X.11\n[✓] Port range: 3478\n[✓] Protocol: UDP\n\n[✓] Proto 06 (TCP) Connection successful\n[✓] Proto 11 (UDP) Connection successful\n```\n\n# StunIpScan #\n\nTries to access to several pre-established IP addresses (or a specific IP address) over TURN connection.\n\n```\n -= STUN IP scan =-\n\noptions:\n  -h, --help                                 show this help message and exit\n  -i IPADDR, --ip IPADDR                     Target IP address\n  -r REMOTE_PORT, --remote_port REMOTE_PORT  Remote port (default: 3478)\n  -proto PROTO                               Protocol to connect TURN server: tcp|tls (default: tcp)\n  -v, --verbose                              Increase verbosity\n  -u USER, --user USER                       Username\n  -p PWD, --pass PWD                         Password\n  -ipdst IPDST                               IP address to check connection\n```\n\nExample:\n\n```\n$ ./stunipscan.py -i 185.X.X.11 -user TURN_USER -pass TURN_PASS\n\n☎️  STUNCHECK BY 🅿 🅴 🅿 🅴 🅻 🆄 🆇\n\n\n████████████████████████████████████████████████████████████████\n█─▄▄▄▄█─▄─▄─█▄─██─▄█▄─▀█▄─▄█▄─▄█▄─▄▄─█─▄▄▄▄█─▄▄▄─██▀▄─██▄─▀█▄─▄█\n█▄▄▄▄─███─████─██─███─█▄▀─███─███─▄▄▄█▄▄▄▄─█─███▀██─▀─███─█▄▀─██\n▀▄▄▄▄▄▀▀▄▄▄▀▀▀▄▄▄▄▀▀▄▄▄▀▀▄▄▀▄▄▄▀▄▄▄▀▀▀▄▄▄▄▄▀▄▄▄▄▄▀▄▄▀▄▄▀▄▄▄▀▀▄▄▀\n\n💾 https://github.com/Pepelux/stuncheck\n🐦 https://twitter.com/pepeluxx\n\n[✓] IP/Network: 185.X.X.11\n[✓] Port range: 3478\n[✓] Protocol: TCP\n\n[✓] 192.168.0.1/UDP: Successfully connected\n[✓] 192.88.99.0/UDP: Successfully connected\n[✓] 198.18.0.1/UDP: Successfully connected\n[✓] 192.0.2.254/UDP: Successfully connected\n[✓] 198.19.255.254/UDP: Successfully connected\n[x] 224.0.0.1/UDP: Create Perm Error Response (Forbidden IP)\n[x] 255.255.255.255/UDP: Create Perm Error Response (Forbidden IP)\n[✓] 100.127.255.254/UDP: Successfully connected\n[✓] 192.0.0.254/UDP: Successfully connected\n[✓] 169.254.254.255/UDP: Successfully connected\n[x] 240.0.0.1/UDP: Create Perm Error Response (Forbidden IP)\n[✓] 203.0.113.254/UDP: Successfully connected\n[✓] 203.0.113.1/UDP: Successfully connected\n[x] 239.255.255.254/UDP: Create Perm Error Response (Forbidden IP)\n[x] ::/UDP: Create Perm Error Response (Forbidden IP)\n[✓] 10.255.255.254/UDP: Successfully connected\n[✓] 127.0.0.1/UDP: Successfully connected\n[✓] 169.254.0.1/UDP: Successfully connected\n[✓] 169.254.169.254/UDP: Successfully connected\n[x] ::1/UDP: Create Perm Error Response (Forbidden IP)\n[✓] 172.31.255.254/UDP: Successfully connected\n[✓] 192.0.2.1/UDP: Successfully connected\n[✓] 10.0.0.1/UDP: Successfully connected\n[✓] 198.51.100.1/UDP: Successfully connected\n[✓] 192.168.255.254/UDP: Successfully connected\n[✓] 172.16.0.1/UDP: Successfully connected\n[✓] 198.51.100.254/UDP: Successfully connected\n[x] 0.0.0.0/UDP: Create Perm Error Response (Forbidden IP)\n[✓] 127.0.0.8/UDP: Successfully connected\n[✓] 100.64.0.0/UDP: Successfully connected\n[✓] 192.0.0.1/UDP: Successfully connected\n[✓] 127.255.255.254/UDP: Successfully connected\n[✓] 192.168.0.1/TCP: Successfully connected\n[✓] 192.88.99.0/TCP: Successfully connected\n[✓] 198.18.0.1/TCP: Successfully connected\n[✓] 192.0.2.254/TCP: Successfully connected\n[✓] 198.19.255.254/TCP: Successfully connected\n[x] 224.0.0.1/TCP: Create Perm Error Response (Forbidden IP)\n[x] 255.255.255.255/TCP: Create Perm Error Response (Forbidden IP)\n[✓] 100.127.255.254/TCP: Successfully connected\n[✓] 192.0.0.254/TCP: Successfully connected\n[✓] 169.254.254.255/TCP: Successfully connected\n[x] 240.0.0.1/TCP: Create Perm Error Response (Forbidden IP)\n[✓] 203.0.113.254/TCP: Successfully connected\n[✓] 203.0.113.1/TCP: Successfully connected\n[x] 239.255.255.254/TCP: Create Perm Error Response (Forbidden IP)\n[x] ::/TCP: Create Perm Error Response (Forbidden IP)\n[✓] 10.255.255.254/TCP: Successfully connected\n[✓] 127.0.0.1/TCP: Successfully connected\n[✓] 169.254.0.1/TCP: Successfully connected\n[✓] 169.254.169.254/TCP: Successfully connected\n[x] ::1/TCP: Create Perm Error Response (Forbidden IP)\n[✓] 172.31.255.254/TCP: Successfully connected\n[✓] 192.0.2.1/TCP: Successfully connected\n[✓] 10.0.0.1/TCP: Successfully connected\n[✓] 198.51.100.1/TCP: Successfully connected\n[✓] 192.168.255.254/TCP: Successfully connected\n[✓] 172.16.0.1/TCP: Successfully connected\n[✓] 198.51.100.254/TCP: Successfully connected\n[x] 0.0.0.0/TCP: Create Perm Error Response (Forbidden IP)\n[✓] 127.0.0.8/TCP: Successfully connected\n[✓] 100.64.0.0/TCP: Successfully connected\n[✓] 192.0.0.1/TCP: Successfully connected\n[✓] 127.255.255.254/TCP: Successfully connected\n```\n\n# StunPortScan #\n\nTCP Port scanner via TURN connection. It is possible to scan remote computers, from the internal network or the machine itself if it allows localhost connections.\n\n```\n -= STUN portscan =-\n\noptions:\n  -h, --help                                 show this help message and exit\n  -i IPADDR, --ip IPADDR                     Target IP address\n  -r REMOTE_PORT, --remote_port REMOTE_PORT  Remote port (default: 3478)\n  -proto PROTO                               Protocol to connect TURN server: tcp|tls (default: tcp)\n  -v, --verbose                              Increase verbosity\n  -vv, --more_verbose                        Increase more verbosity\n  -vvv, --much_more_verbose                  Increase much more verbosity\n  -u USER, --user USER                       Username\n  -p PWD, --pass PWD                         Password\n  -ipdst IPDST                               IP to scan (default: 127.0.0.1)\n  -ports PORTS                               Ports to scan. Ex: 80 | 80,8080 | 1-1000 | 21,22,80,1000-2000 | ALL for 1-65536 (default: ALL)\n  -fp, --fingerprinting                      Fingerprinting\n```\n\nExample:\n\n```\n$ ./stunportscan.py -i 185.X.X.11 -user TURN_USER -pass TURN_PASS -ports 80,22,443,3306 -v\n\n☎️  STUNCHECK BY 🅿 🅴 🅿 🅴 🅻 🆄 🆇\n\n█████████████████████████████████████████████████████████████████████████████\n█─▄▄▄▄█─▄─▄─█▄─██─▄█▄─▀█▄─▄█▄─▄▄─█─▄▄─█▄─▄▄▀█─▄─▄─█─▄▄▄▄█─▄▄▄─██▀▄─██▄─▀█▄─▄█\n█▄▄▄▄─███─████─██─███─█▄▀─███─▄▄▄█─██─██─▄─▄███─███▄▄▄▄─█─███▀██─▀─███─█▄▀─██\n▀▄▄▄▄▄▀▀▄▄▄▀▀▀▄▄▄▄▀▀▄▄▄▀▀▄▄▀▄▄▄▀▀▀▄▄▄▄▀▄▄▀▄▄▀▀▄▄▄▀▀▄▄▄▄▄▀▄▄▄▄▄▀▄▄▀▄▄▀▄▄▄▀▀▄▄▀\n\n💾 https://github.com/Pepelux/stuncheck\n🐦 https://twitter.com/pepeluxx\n\n[✓] IP/Network: 185.X.X.11\n[✓] Remote port: 3478\n[✓] Port range: 80,22,443,3306\n[✓] Protocol: TCP\n\n[✓] Port : 22 open\n[✓] Port : 3306 open\n[x] Port : 443 closed\n[✓] Port : 80 open\n```\n\nThe port scan is executed from the TURN server itself. If we scan from outside and there is a firewall, we see that some ports are not accessible.\n\n```\n$ nmap 185.X.X.11 -p80,22,443,3306 -Pn\nStarting Nmap 7.94 ( https://nmap.org ) at 2024-02-08 18:01 CET\nNmap scan report for webrtc (185.X.X.11)\nHost is up (0.020s latency).\nrDNS record for 185.99.186.211: webrtc.seguridadvoip.com\n\nPORT     STATE    SERVICE\n22/tcp   open     ssh\n80/tcp   filtered http\n443/tcp  filtered https\n3306/tcp filtered mysql\n\nNmap done: 1 IP address (1 host up) scanned in 1.25 seconds\n```\n\n# StunSocks #\n\nRelay traffic over TURN server using a Socks5 TCP proxy.\n\n```\n -= STUN socks =-\n\noptions:\n  -h, --help                                 show this help message and exit\n  -i IPADDR, --ip IPADDR                     Target IP address\n  -r REMOTE_PORT, --remote_port REMOTE_PORT  Remote port (default: 3478)\n  -proto PROTO                               Protocol to connect TURN server: tcp|tls (default: tcp)\n  -v, --verbose                              Increase verbosity\n  -vv, --more_verbose                        Increase more verbosity\n  -u USER, --user USER                       Username\n  -p PWD, --pass PWD                         Password\n  -serverip SERVERIP                         Local SOCK5 server IP address (default: 127.0.0.1)\n  -serverport SERVERPORT                     Local SOCK5 server port (default: 1080)\n```\n\nExample:\n\n```\n$ ./stunsocks.py -i 185.X.X.11 -user TURN_USER -pass TURN_PASS\n\n☎️  STUNCHECK BY 🅿 🅴 🅿 🅴 🅻 🆄 🆇\n\n\n█████████████████████████████████████████████████████████\n█─▄▄▄▄█─▄─▄─█▄─██─▄█▄─▀█▄─▄█─▄▄▄▄█─▄▄─█─▄▄▄─█▄─█─▄█─▄▄▄▄█\n█▄▄▄▄─███─████─██─███─█▄▀─██▄▄▄▄─█─██─█─███▀██─▄▀██▄▄▄▄─█\n▀▄▄▄▄▄▀▀▄▄▄▀▀▀▄▄▄▄▀▀▄▄▄▀▀▄▄▀▄▄▄▄▄▀▄▄▄▄▀▄▄▄▄▄▀▄▄▀▄▄▀▄▄▄▄▄▀\n\n💾 https://github.com/Pepelux/stuncheck\n🐦 https://twitter.com/pepeluxx\n\n[✓] IP/Network: 185.X.X.11\n[✓] Port range: 3478\n[✓] Protocol: TCP\n\nSock5 server started on 127.0.0.1:1080\n\n[✓] Destination: 34.117.118.44:80\n[✓] Connection established to: webrtc:3478\n[✓] Connect Request: 34.117.118.44:80\n[✓] Destination accepted\n[✓] Connection successfully linked\n```\n\nOn another console:\n\n```\n$ curl -x socks5://127.0.0.1:1080 http://ifconfig.me\n185.X.X.11\n\n$ proxychains4 curl http://ifconfig.me\n[proxychains] config file found: /usr/local/etc/proxychains.conf\n[proxychains] preloading /usr/local/Cellar/proxychains-ng/4.16/lib/libproxychains4.dylib\n[proxychains] DLL init: proxychains-ng 4.16\n[proxychains] Strict chain  ...  127.0.0.1:1080  ...  ifconfig.me:80  ...  OK\n185.X.X.11\n```\n\nTo access the local web of the TURN server:\n\n```\n$ curl -x socks5://127.0.0.1:1080 http://localhost\n\n$ proxychains4 curl http://localhost\n```\n\n# Requirements #\n* Python 3\n\n\n# Instalation #\n\n```\n$ git clone https://github.com/Pepelux/stuncheck.git\n$ cd stuncheck\n$ pip3 install -r requirements.txt\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpepelux%2Fstuncheck","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpepelux%2Fstuncheck","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpepelux%2Fstuncheck/lists"}