Skip to content

An embedded intranet penetration tool, support extensive protocol stack and python plugin

License

Notifications You must be signed in to change notification settings

Poseidon-fan/Gung

Repository files navigation

Gung

GitHub stars GitHub release (latest SemVer) GitHub Workflow Status (branch)

Gung is an intranet penetration tool, helping you expose a local server behind a NAT or firewall to the internet. The name has two meanings: firstly, it's an abbreviation of gungnir, the spear of Odin, the chief god in Norse mythology, symbolizing penetration and precision; secondly, it's a homophone for "Going Unblocked Network Gateway." — And the idea for this name originated from LLM.

Features

  • Rich Protocol Integration The transport and proxy layers are unified and abstracted. Multiplexed long-lived connections are encapsulated at the transport layer, currently supporting TCP, QUIC, KCP and Websocket. The proxy layer currently supports TCP and HTTP, with HTTP using port multiplexing based on the host.
  • Pluggable Currently supports user write Python codes as an embedded plugin to authenticate. Lua / RPC plugins will be supported later. Also, the plugin will support network traffic hijacking analysis, similar to nginx.

Quicstart

Gung has two command-line tools: gungs for the server and gungc for the client, which can be obtained from the release page.

Server

To start a server, run the following command on a machine with a public IP address:

$ gungs run <server_config.toml>

<server_config.toml> is the path to the configuration file; please refer to the examples for details. The minimal configuration items are as follows:

[transport]
# Transport type, tcp | quic | kcp | websocket
type = "tcp"
addr = "0.0.0.0:7777"

[auth]
# Allow all users to connect. Alternatively, it can be set to py_plugin to use a Python script for authentication.
type = "pass"

# Allow http proxy
[proxy.http]
base_domain = "your_server_domain"

Client

gungc is a pure CLI tool, run gungc --help for details. A simple example is shown below

$ gungc <local_addr> \
    -s <server_addr> \
    -t tcp \
    -p http

Planning

This project is currently under active development. Feel free to star, fork, and submit PRs to help improve this project. 😊

  • Support network traffic hijacking analysis. Integrate Lua and RPC plugin.
  • More transport and proxy protocols.
  • Http API and web ui for both server management and client analysis.
  • Improve relevant documents

About

An embedded intranet penetration tool, support extensive protocol stack and python plugin

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages