You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"J NDC" is the abbreviation of "java no distance connection", which is intended to provide an easy-to-use visual intranet penetration application. The application is written based on java netty.
The application is built with the Client/Server architecture. Through the idea of "service registration", the local client side provides local services to the server side, and the server side manages and exposes the corresponding services
The application core is supported by the ndc private protocol, providing "transmission data encryption", "ip black and white list", "client visualization", "service port timing", "domain name routing" functions
Project source code directory structure
- jndc
- jndc_core # core public implementation
- jndc_server # server implementation
- jndc_client # client implementation
TCP data flow
broser -------> (tunnel) ---------->local_app
client -------> jndc server <----------> jndc client ---------->local_app
other -------> ---------->local_app
The data length limit of a single packet, beyond which will be automatically unpacked
public static final int AUTO_UNPACK_LENGTH = 5 * 1024 * 1024
Agreement description:
--------------------------------
3byte 1byte 1byte
| ndc | version | type |
--------------------------------
4byte
| local ip |
--------------------------------
4byte
| remote ip |
--------------------------------
4byte
| local port |
--------------------------------
4byte
| server port |
--------------------------------
4byte
| remote port |
--------------------------------
4byte
| data length |
--------------------------------
data length byte
| data |
--------------------------------
Configuration file description
server configuration
secrete: "xxx"# Server secret, very important, be sure to change it before useloglevel: "info"blackList: # ip access blacklist#- "192.168.1.1"whiteList: # whitelist#- "192.168.1.2"servicePort: 81# jndc server running listening portbindIp: "127.0.0.1"# jndc server running ipdbConfig:
type: "mysql"# optional values: mysql and sqlite# type: "sqlite" # optional values: mysql and sqliteurl: "jdbc:mysql://127.0.0.1:3306/jndc?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true"name: "root"password: "xxx"manageConfig: # management-side api servicemanagementApiPort: 777#Management api portuseSsl: false # Whether to use ssljksPath: "/xx.jks"#jks certificate addressjksPass: "xxx"# jks certificate passwordloginName: "xxx"# login user nameloginPassWord: "xxx"# login passwordadminEnable: true # Whether to start a static pagewebConfig: # http web servicenotFoundPage: "/404.html"httpPort: 80# http application portuseSsl: false # Whether to use ssljksPath: "/xx.jks"#jks certificate addressjksPass: "ddd"# jks certificate password
client configuration
secrete: "xxx1"# Server secret, it is very important to change it before useloglevel: "info"# log print levelserverIp: "127.0.0.1"# Server running listening ipserverPort: "81"# server running portopenGui: falseautoReleaseTimeOut: 600000# Client auto disconnect time (milliseconds)clientServiceDescriptions: # register service
- serviceName: "xx"serviceIp: "xx.com"servicePort: "80"serviceEnable: true
Summary
If you have good functional requirements, or bugs in the code, please submit them in the issue
Development Plan
http certificate configuration support
data monitoring
Query syntax optimization
supporting
Thanks to jetbrains for supporting this open source project