Jump to content

Hello visitors, welcome to the Hacker World Forum!

Red Team 1949  (formerly CHT Attack and Defense Team) In this rapidly changing Internet era, we maintain our original intention and create the best community to jointly exchange network technologies. You can obtain hacker attack and defense skills and knowledge in the forum, or you can join our Telegram communication group to discuss and communicate in real time. All kinds of advertisements are prohibited in the forum. Please register as a registered user to check our usage and privacy policy. Thank you for your cooperation.

TheHackerWorld Official

Featured Replies

Posted

NPS工具简介NPS工具是一款用Go语言编写的轻量级、功能强大的内网渗透工具。支持TCP、UDP流量转发,支持内网HTTP、SOCKS5代理,支持snappy压缩(节省带宽和流量)、站点保护、加密传输、复用、修改报头等,还支持Web图形化管理。这个工具很容易使用。与FRP相比,NPS具有图形界面,因此配置更简单。

[root@ls4jtubcnt opt]#wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz [root@ls4jtubcnt opt]# mkdir nps[root@ls4jtubcnt opt]# tar -zxf linux_amd64_server.tar.gz -C nps/[root@ls4jtubcnt opt]# cd nps/[root@ls4jtubcnt nps]# ./nps install #执行安装命令[root@ls4jtubcnt nps]# ./nps start #启动NPS,nps start|stop|restart|uninstall|reload[root@ls4jtubcnt nps]# cd /etc/nps/conf/#安装后配置文件位于/etc/nps/conf 目录下的nps.confg 配置文件:

appname=weblogger#启动模式(dev|pro)#指定运行模式(dev|pro)runmode=dev

#HTTP(S)代理端口,为空则不启动# http[s]代理,如果设置为空则表示忽略#http_proxy_ip=#http_proxy_port=#https_proxy_port=#https_just_proxy=#default https证书设置#表示https默认证书文件位置https_default_cert_file=conf/server.pemhttps_default_key_file=conf/server.key

##bridge#客户端与服务器之间使用的通信协议,端口与服务器绑定ipbridge_type=tcpbridge_port=8024bridge_ip=0.0.0.0

# 公共密码,客户端可以使用该密码连接服务器# 连接后,服务器将能够根据自己的配置文件打开相关端口并解析相关域名。 #客户端以配置文件模式启动时的key,设置为空则关闭客户端配置文件连接模式public_vkey=Pksfy2312df70i5osc

#流量数据持久化间隔(分钟)#忽略表示不持久化#服务器流量数据持久化间隔,单位为分钟,忽略表示不持久化flow_store_interval=3

# 日志级别LevelEmergency-0 LevelAlert-1 LevelCritical-2 LevelError-3 LevelWarning-4 LevelNotice-5 LevelInformational-6 LevelDebug-7#输出运行日志,如下,写入当前目录下的weblogger.log 文件,7 代表调试模式log_level=7log_path=weblogger.log #生成的日志文件路径为:/weblogger.log

#是否限制IP访问,true或false或忽略#是否限制IP访问,true或false或忽略#ip_limit=true

#p2p#p2p_ip=127.0.0.1#p2p_port=6000

#web# Web控制面板配置,包括域名、访问端口和登录账号密码。需要使用反向代理配置域名访问web_host=login.weblogger.comweb_username=backlionweb_password=bks.net@#125web_port=8081web_ip=0.0.0.0web_base_url=web_open_ssl=falseweb_cert_file=conf/server.pemweb_key_file=conf/server.key# 如果代理下的web 使用子路径。像http://host/nps 需要这个。#web_base_url=/nps

#Web API未认证的IP地址(auth_crypt_key的len必须为16)#如果需要请去掉注释# auth_key为Web api密钥,auth_crypt_key代表获取服务器authKey时的aes加密密钥,16位#auth_key=ATi39sdp2dauth_crypt_key=AmSo173adsPEWRSZ

#allow_ports=9001-9009,10001,11000-12000#为了防止nps服务器端口滥用,可以限制可以打开的端口。如果忽略或留空,则表示该端口不受限制。

#Web管理多用户登录#是否支持多用户登录,该功能默认关闭,一般不会使用。 allow_user_login=falseallow_user_register=falseallow_user_change_username=false

#扩展#其他杂项,比如流量限制、带宽限制、客户端隧道数限制、最大连接数等.默认忽略即可allow_flow_limit=falseallow_rate_limit=falseallow_tunnel_num_limit=falseallow_local_proxy=falseallow_connection_num_limit=falseallow_multi_ip=false#nps服务器支持在网页上显示和统计服务器相关信息,但有些统计图表被关闭默认。您可以通过此选项打开system_info_display=true。

#cache# http缓存设置,保持默认http_cache=falsehttp_cache_length=100

#获取原点iphttp_add_origin_header=false

#pprof 调试选项#pprof_ip=0.0.0.0#pprof_port=9999

#client disconnect timeoutdisconnect_timeout=60 服务器启动后,首先会监听两个端口,一个是web面板访问端口【这里是8081】,另一个是nps客户端与服务器之间的通信端口【这里是9099】[root@ls4jtubcnt conf]# netstat -tulnp 1049983-20250509152647751-1604441388.png access: http://vps ip:8081/,并输入上面/etc/nps/conf/nps.confg配置文件中设置的用户名和密码1049983-20250509152648727-1489102701.jpg。下面是登录成功后整个nps web控制面板的实际效果图。由于当前没有客户端在线,所以全部显示为1049983-20250509152649387-1051885394.jpg

客户端,新建一个客户端链接(注意,这里的用户名和密码只有使用socks5和http代理时才会用到) 1049983-20250509152649974-1723173939.png 下面是客户端创建成功后的样子。特别注意这个id。后续的所有隧道代理和socks5代理都将基于此id创建。1049983-20250509152650546-901288886.png 在客户端执行命令:/npc -server=106.13.218.47:8024 -vkey=yxznk7q02rirabtz -type=tcp 1049983-20250509152651117-1045580108.png 发现客户端已上线,说明已与服务器连接1049983-20250509152651654-1745806902.png

tcp隧道

适用范围:SSH、远程桌面、数据库等TCP连接场景

假设场景:我想访问公网服务器1.1.1.1的2022端口,连接内网机器192.168.126.128:的22端口,实现SSH连接。

使用步骤

在刚刚创建的客户端隧道管理中添加一条tcp隧道,填写监听端口(2022)、内网目标IP和目标端口(192.168.126.128:22),保存1049983-20250509152652288-366356992.png 访问公网服务器IP(1.1.1.1),填写监听端口(2022),相当于访问内网IP (192.168.126.128) : 目标端口(22) 1049983-20250509152652825-801680511.png

udp隧道

适用范围:内网DNS解析等UDP连接场景

假设场景:内网有一个DNS(10.1.50.102:53)。如果要在非内网环境下使用此DNS,公网服务器为1.1.1.1

使用步骤

在刚刚创建的客户端的隧道管理中添加一条UDP隧道,填写监听端口(53)、内网目标IP和目标端口(10.1.50.102:53),保存。将需要的DNS地址修改为1.1.1.1,相当于使用10.1.50.102作为DNS服务器

socks5代理

适用范围:像使用VPN一样访问内网设备或外网环境中的资源

假设场景:我想使用公网服务器1.1.1.1的3538端口作为socks5代理,达到访问内网任意设备或资源的效果

使用步骤

在刚刚创建的客户端隧道管理中添加socks5代理,填写监听端口(3538),保存1049983-20250509152653386-973001912.png。在外网环境本地配置socks5代理(例如使用proxifier进行全局代理)。 ip为公网服务器ip(1.1.1.1),端口为填写的监听端口(3438)。您可以享受内网并添加代理服务器。

点击菜单栏的Proxy Servers图标-添加,这里添加socks代理,填写socks服务器的IP和端口【一定要记住,这里的代理是有账号和密码的,就是我们开始创建客户端配置时设置的账号和密码】

1049983-20250509152654160-355578952.png 1049983-20250509152654720-1704114224.png 单击代理规则图标— 添加。这里,如果访问192.168.126.*目标内网网段,该IP网段将使用socks5代理。1049983-20250509152655435-1953238627.png 检查我们添加的代理规则。默认代理规则是Direct!记住

1049983-20250509152656029-993355106.png

这样我们就可以像在本地一样直接访问目标内网的机器并启动burp进行渗透测试了。

1049983-20250509152656611-363371952.jpg

或者使用SocksCap64进行全局代理socks5

1049983-20250509152657229-374016003.png 1049983-20250509152657901-1900673950.png

注意,通过socks5代理,当接收到socks5数据包时,socket已经处于accept状态。表现为连接建立后不久扫描端口全部打开又关闭。如果想要和内网一样的性能,建议远程连接设备。

http 转发代理

适用范围:在外网环境下使用http正向代理访问内网站点

假设场景:我想使用公网服务器1.1.1.1的9999端口作为http代理访问内网网站

使用步骤

在刚刚创建的客户端隧道管理中添加http代理,填写监听端口(9999),保存。1049983-20250509152658515-1283716840.png 在外网环境下在本机配置http代理。 ip为公网服务器ip(1.1.1.1),port为填写的监听端口(9999)。您可以访问1049983-20250509152659088-2046571998.png 1049983-20250509152659750-1873127916.png 注意:对于私有代理和p2p,除了客户端和服务器统一配置外,还需要客户端作为访问端,提供访问的端口。

私人代理

适用范围:不需要占用额外端口且安全性要求较高的TCP服务,可防止他人连接,例如ssh。

假设场景:无需添加额外端口即可访问内网服务器10.1.50.2的22端口

使用步骤

在刚刚创建的客户端上添加私有代理,并在需要连接SSH执行命令的机器上设置唯一密钥secretest和内网目标10.1.50.2:22 /npc -server=1.1.1.1:8024 -vkey=vkey -type=tcp -password=secretest -local_type=secret 如果需要指定本地端口,可以添加参数-local_port=xx,默认2000

注:密码为Web管理中添加的唯一密钥。具体命令请查看Web管理上的命令提示符。

假设10.1.50.2用户名为root。现在执行ssh -p 2000 [email protected] 即可访问ssh。

p2p 服务

适用范围:大流量传输场景,流量不经过公网服务器,但由于p2p穿透与NAT类型关系密切,不保证100%成功,支持大部分NAT类型。 nat类型检测

假设场景:

我要访问用户机器(接入端,即本机)的2000端口----访问内网机器10.2.50.2的22端口

使用步骤

在nps.conf中设置p2p_ip(nps服务器ip)和p2p_port(nps服务器udp端口)注意:如果p2p_port设置为6000,请在防火墙中打开6000~6002(额外2个端口)udp端口

在刚刚创建的客户端上添加p2p代理,并设置唯一密钥p2pssh在用户机器(本机)上执行命令。 /npc -server=1.1.1.1:8024 -vkey=123 -password=p2pssh -target=10.2.50.2:22Copy to ClipboardErrorCopied 如果需要指定本地端口,可以添加参数-local_port=xx,默认2000

注:密码为Web管理中添加的唯一密钥。具体命令请查看Web管理上的命令提示符。

假设内网机器为10.2.50.2,ssh用户名为root。现在在本机上执行ssh -p 2000 [email protected] 即可访问2号机的ssh。如果是网站,只需在浏览器中访问127.0.0.1:2000端口即可。

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.