{"id":18087809,"url":"https://github.com/danielewood/argorat","last_synced_at":"2025-07-12T13:08:26.749Z","repository":{"id":106881730,"uuid":"255708766","full_name":"danielewood/ArgoRAT","owner":"danielewood","description":"Argo Tunnel Remote Access Tool","archived":false,"fork":false,"pushed_at":"2020-04-15T01:58:50.000Z","size":11,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-06T01:43:00.419Z","etag":null,"topics":["argo-tunnel","cloudflare","remote-access-tool","reverse-proxy"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danielewood.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-14T19:42:08.000Z","updated_at":"2022-09-24T20:13:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"7a4d33bc-3e8f-4580-975e-c0081f2a5429","html_url":"https://github.com/danielewood/ArgoRAT","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/danielewood/ArgoRAT","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielewood%2FArgoRAT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielewood%2FArgoRAT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielewood%2FArgoRAT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielewood%2FArgoRAT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danielewood","download_url":"https://codeload.github.com/danielewood/ArgoRAT/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielewood%2FArgoRAT/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264995631,"owners_count":23695002,"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":["argo-tunnel","cloudflare","remote-access-tool","reverse-proxy"],"created_at":"2024-10-31T17:05:49.528Z","updated_at":"2025-07-12T13:08:26.734Z","avatar_url":"https://github.com/danielewood.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# ArgoRAT\nArgo Tunnel Remote Access Tool\n\n**NOTE to Security/Firewall/Systems Engineers:** You can block this entirely from your network by blocking outbound TCP/7844. That is the port used by cloudflared to connect to the Argo network.\n\n## Concept\n- Work-in-Porgress\n\n### Client (golang wrapper for cloudflared or just import the sources of cloudflared and add module)\n- Gets config from server via HTTPS (token or some other UUID for config mapping on server database)\n- Config:\n  - yaml/JSON of (many) port:service:proto:targethost:comment\n  - client FriendlyName\n  - client UUID\n- Spawns multiple `cloudflared tunnel` with config from above\n- Puts status json to server with current list of tunnels and urls.\n\n### Server\nDocker/Linux VM\n- Database to store client configs and connection states\n- Bridged/Internally NATted NIC to bind arbitrary IP addresses for port forwarding\n- DNS with suffix of .argo.domain.com\n  - ${FriendlyName}.name.argo.domain.com\n  - ${UUID}.uuid.argo.domain.com\n- nginx to rewrite all incoming http/https bound requests to the target argo url\n\n### Desired outcome\n\nClientConfig.yml:\n```yaml\nFriendlyName: ClientName\nUUID: 7e03c4fe-2b21-42da-af88-77954ce27d98\ntunnel: 1\n  - clientport: 23\n  - relayport: 23\n  - targethost: localhost (or 127.0.0.1)\n  - service: telnet\n  - proto: tcp\n  - comment: documentation\n\ntunnel: 2\n  - clientport: 23\n  - relayport: 10023\n  - targethost: host_reachable_from_client.domain.com\n  - service: telnet\n  - proto: tcp\n  - comment: documentation\n\ntunnel: 3\n  - clientport: 80\n  - relayport: null\n  - targethost: host_reachable_from_client.domain.com\n  - service: webproxy\n  - proto: http\n  - comment: configures server nginx proxy_pass to do header rewrites of ${UUID}.uuid.argo.domain.com to aaaa-bbbb-cccc-dddd.trycloudflare.com\n  \ntunnel: 4\n  - clientport: 445\n  - relayport: 445\n  - targethost: host_reachable_from_client.domain.com\n  - service: smb\n  - proto: tcp\n  - comment: allows client on lan local to server to connect to smb://${UUID}.uuid.argo.domain.com/share\n\ntunnel: 5\n  - clientport: 1234\n  - relayport: 1234\n  - relaytarget: bbbb-cccc-dddd-eeee.trycloudflare.com\n  - service: netcat\n  - reverse: true\n  - proto: tcp\n  - comment: causes server to create its own reverse tunnel and share details with the client\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielewood%2Fargorat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanielewood%2Fargorat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielewood%2Fargorat/lists"}