跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

精选回复

发布于

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端口即可。

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。