{"id":13475456,"url":"https://github.com/samyk/pwnat","last_synced_at":"2025-05-14T18:07:10.215Z","repository":{"id":4240975,"uuid":"5365511","full_name":"samyk/pwnat","owner":"samyk","description":"The only tool/technique to punch holes through firewalls/NATs where multiple clients \u0026 server can be behind separate NATs without any 3rd party involvement. Pwnat is a newly developed technique, exploiting a property of NAT translation tables, with no 3rd party, port forwarding, DMZ, DNS, router admin requirements, STUN/TURN/UPnP/ICE, or spoofing.","archived":false,"fork":false,"pushed_at":"2025-04-30T07:44:50.000Z","size":117,"stargazers_count":3552,"open_issues_count":22,"forks_count":495,"subscribers_count":144,"default_branch":"master","last_synced_at":"2025-04-30T08:45:30.551Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://samy.pl/pwnat/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/samyk.png","metadata":{"files":{"readme":"README-udptunnel","changelog":"Changes","contributing":null,"funding":null,"license":"COPYING-pingtunnel","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,"zenodo":null}},"created_at":"2012-08-10T05:55:11.000Z","updated_at":"2025-04-30T07:44:55.000Z","dependencies_parsed_at":"2022-07-19T18:04:13.655Z","dependency_job_id":"ef54605d-c433-4201-be68-e0ca63e3e2f4","html_url":"https://github.com/samyk/pwnat","commit_stats":{"total_commits":12,"total_committers":6,"mean_commits":2.0,"dds":0.5833333333333333,"last_synced_commit":"8cf74bd7c0151c7ea6266086690a9ace920901d3"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samyk%2Fpwnat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samyk%2Fpwnat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samyk%2Fpwnat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samyk%2Fpwnat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samyk","download_url":"https://codeload.github.com/samyk/pwnat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254198515,"owners_count":22030966,"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":[],"created_at":"2024-07-31T16:01:20.554Z","updated_at":"2025-05-14T18:07:05.202Z","avatar_url":"https://github.com/samyk.png","language":"C","readme":"=============================================================================\n\n  UDPTUNNEL README\n\n  Author: Daniel Meekins\n  Contact: dmeekins - gmail\n\n  Copyright (C) 2009 Daniel Meekins\n\n=============================================================================\n\nThis project tunnels TCP data through a UDP tunnel. The executable can act as\nthe server or client. The server acts as a proxy for the client, listening\non a specified UDP port and creating a connection to a TCP server that the\nclient specifies. The client listens on a TCP port, acting as the server that\nsome TCP client connects to. The client recevies any TCP data on that port \nand sends the data to the udpserver, which sends it to the TCP connection it\nmade with the desired TCP server.\n\n\n-----------------------------------------------------------------------------\n1.) Building\n\nOn *nix systems in Makefile, make sure that the correct value is set for the \n\"OS\" variable. Then just run 'make'.\n\nOn Windows, if using GCC in Cygwin, make sure the \"OS\" variable is set to\nCYGWIN in Makefile and run 'make'.\n\nIf using the VC++ compiler (cl.exe), make sure to be in the \"Visual Studio\nCommand Prompt\", or at least have all the environment variables set correctly,\nthen run 'nmake.exe /f Makefile.Win32'. Also make sure the location of \nWS2_32.Lib is specified correctly fo the LIBS variable.\n\n\n-----------------------------------------------------------------------------\n2.) Running\n\nusage: ./udptunnel -\u003cs|c\u003e [-6] \u003cargs\u003e\n  -c    client mode (default)\n        \u003cargs\u003e: [local host] \u003clocal port\u003e \u003cproxy host\u003e \u003cproxy port\u003e\n                \u003cremote host\u003e \u003cremote port\u003e\n  -s    server mode\n        \u003cargs\u003e: [host] port [[host]:[port] ...]\n  -6    use IPv6\n  -h    show this junks and exit\n\nTo run the server:\n    udptunnel -s [-6] [host] port\nwhere the port is a UDP port to listen for messages from the udpclient and host\nis the address to listen on. Use the -6 option to listen on IPv6 addresses.\nExamples: \n    udpserver -s 4444\n    udpserver -s -6 2001::10:3 4444\n\nTo run the client:\n    udptunnel -c [-6] [local host] \u003clocal port\u003e \u003cproxy host\u003e \u003cproxy port\u003e\n            \u003cremote host\u003e \u003cremote port\u003e\nlocal host/port - Host and port for the TCP server to listen on. If the host\n                  isn't supplied, it will listen on all available addresses.\nproxy host/port - Host and port that udpserver is listening on.\nremote host/port - Host and port to forward the received TCP data to. The host\n                   is relative to the proxy machine (e.g. specifiying 127.0.0.1\n                   is the proxy machine itself).\nUse the -6 option to listen and connect using IPv6 addresses.\n\nExample for tunneling ssh data through the tunnel between two computers with IP\naddresses 192.168.1.2 (client) and 192.168.1.1 (server):\n\n    server# ./udptunnel -s 192.168.1.1 4444\n    client# ./udptunnel -c 127.0.0.1 3333 192.168.1.1 4444 127.0.0.1 22\n    client# ssh -p 3333 user@127.0.0.1\n\nSpecified destination list:\nAfter the args in server mode, a list of hosts and ports can be included to\ncontrol who the client tries to connect to. Current this doesn't work with IPv6\nand no names are translated yet, so the destination host used in the client\nmust be the same string as that used in the list.\n\nThis code has been tested and works on Linux, Solaris 10 x86, and Cygwin (but\nrequires the IPv6 extension - http://win6.jp/Cygwin/index.html). Please send\nany bugs or issues to the contact listed above.\n","funding_links":[],"categories":["C","Uncategorized","Exfiltration Tools","Tools","Network Tools","Awesome Penetration Testing (\"https://github.com/Muhammd/Awesome-Pentest\")"],"sub_categories":["Uncategorized","Zealandia","Exfiltration Tools","Network Tools","Forensics","Tools"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamyk%2Fpwnat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamyk%2Fpwnat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamyk%2Fpwnat/lists"}