【VIPER】部署、监听、代理

前导

Viper中文炫彩蛇,为图形化的渗透平台,用户可以使用浏览器登录完成诸如(覆盖初始访问/持久化/权限提升/防御绕过/凭证访问/信息收集/横向移动等大类)操作,并提供内网隧道,文件管理,命令行等常用渗透工具。
在进行内网渗透中,还有内网网络拓扑等可视化工具提高工作效率。

安装

快捷部署有Docker和F8X一键部署两种方式
下方为f8x一件部署,推荐在全新linux环境中使用

curl -o f8x https://f8x.io/   # wget -O f8x https://f8x.io/
bash f8x -viper

我所使用的时Docker安装,并在wsl(Docker on desktop)和linux(CentOS 7)系统下都进行过部署

sudo -s
yum install docker -y
yum install docker-compose -y
systemctl enable docker
service docker restart
#安装Docker并设置自启动
sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo service docker restart
newgrp - docker
#假如Docker权限组
export VIPER_DIR=/root/VIPER
export VIPER_PASSWORD=YOUR_PWD
#确认自己的安装目录与密码
mkdir -p $VIPER_DIR && cd $VIPER_DIR
tee docker-compose.yml <<-'EOF'
version: "3"
services:
  viper:
    image: registry.cn-shenzhen.aliyuncs.com/toys/viper:latest
    container_name: viper-c
    network_mode: "host"
    restart: always
    volumes:
      - ${PWD}/loot:/root/.msf4/loot
      - ${PWD}/db:/root/viper/Docker/db
      - ${PWD}/module:/root/viper/Docker/module
      - ${PWD}/log:/root/viper/Docker/log
      - ${PWD}/nginxconfig:/root/viper/Docker/nginxconfig
    command: ["VIPER_PASSWORD"]
EOF
sed -i "s/VIPER_PASSWORD/$VIPER_PASSWORD/g" docker-compose.yml
cd $VIPER_DIR
docker-compose config
#确认DockerFile正确
docker-compose up -d
#启动容器

在WSL中,有一点使用docker的host mode容易端口冲突,所以docker-compose.yml要修改成如下,并自行确认端口映射(60000一定要开以外,其他多开点)

version: "3"
services:
  viper:
    image: registry.cn-shenzhen.aliyuncs.com/toys/viper:latest
    container_name: viper-c
    restart: always
    ports:
      - "60000-60099:60000-60099"
    volumes:
      - ${PWD}/loot:/mnt/d/Docker/viper/.msf4/loot
      - ${PWD}/db:/mnt/d/Docker/viper/db
      - ${PWD}/module:/mnt/d/Docker/viper/module
      - ${PWD}/log:/mnt/d/Docker/viper/log
      - ${PWD}/nginxconfig:/mnt/d/Docker/viper/nginxconfig
    command: ["VIPER_PASSWORD"]

之后访问https://YourDomain:60000root账户和你的密码,登录Viper

反溯源

此为官方操作,若有流量监控绕过的需求可自行使用

cd /root/VIPER/nginxconfig    # /root/VIPER为viper安装目录
chmod 755 gencert.sh
./gencert.sh                  # 按照提示运行,牢记密码

/root/VIPER/nginxconfig/client.pfx拷贝到本地,并导入进PC,一路Next就好,之后采用新的端口登录
就此安装告一段落

监听

对于渗透监听有两种主要过程(Bind/Reverse),三种方式(Http/Https/TCP)

根据目标系统与网络情况选择相应的监听方式

Bind为正向监听,为Viper访问目标,Reverse为反向监听,为目标访问Viper
正向需要Viper处于公网环境,反向需要目标处于公网且开放相应端口

监听设置完成以后,生成目标载荷,并通过AntSword蚁剑等方式WebShell运行

PE/ELF分别为windows/linux可执行文件,或者可以自行通过C等方式注入
若运行后,获得Session则如下

阿里云等国内云厂商有流量监控设备,请使用带加密的监听(reverse_https),payload 后请稍等一段时间,请勿删除对应监听

内网代理

在扫描内网环境后(fscan等方式),需要渗透进内网,此时需要用到端口转发

正向表示将目标端口映射至Viper,反向则是讲Vpier指定的端口映射至目标端口

目前使用的时正向映射,将内网机器映射至公网环境,继续下一步的操作

内网路由

所谓内网路由是一种基于Session的透明代理,通过Session添加对应路由后,VIPER 中的监听/横向移动/漏洞扫描/Socks代理,漏洞利用等功能会自动使用该路由连接内网对应的 IP 地址。
假设VIPERIP地址为45.45.45.45,Session的内网IP为10.10.10.10,如需连接 10.10.10.11
没有添加路由:

45.45.45.45==>10.10.10.11(这是无法连接的)

当添加路由后:

45.45.45.45<=内网路由=>10.10.10.10==>10.10.10.11(这样就可以连接了)

网络直连表示Viper服务器在尝试连接到该内网在主机时采用直连的方式,很明显在绝大多数情况下由于主机在NAT后面是无法连接的,这时需要我们在Session上添加内网路由才能使Viper连接到内网主机.
所以!是可以不用通过上方代理实现的,不过第一次渗透还没搞懂Viper的使用,这是我们最常用的正向直连内网的方法,也是Viper模块默认的连接内网方法

Socks代理

内网路由只能由Viper内置的功能进行调用,外部的工具(如 Nmap)是无法使用的,我们可以使用VIPER的内网代理模块搭建一个基于内网路由的Sock代理供外部程序使用

Socks代理的流量转发是基于内网路由的,所以在添加代理前确保正确配置了内网路由

内网代理和内网路由是相互配合的

Session克隆

操作Session过程中可能会由于杀毒软件或网络的原因导致Session掉线,在实战会生成多个Session,然后再进行进一步操作,以免丢失权限。Viper中可以使用Session克隆快速的复制多个Session.

WebShell

命令终端集成了Session所有基础功能,可以在下方输入框输入命令,点击下方快捷键快速执行指定命令。

shell+命令 #执行系统命令,如:shell whoami

后续

由于靶场的原因,没有办法继续完成,仅此留下初学渗透的一点笔记
2022/2/9:本文参考了DDOSI以及官方文档的一些资料进行了一定补充

发布者

正汰

永远是这样,山前面是山,天空上面是天空,道路前面还是道路,迷茫之后还有迷茫。

《【VIPER】部署、监听、代理》上有1条评论

发表回复

您的电子邮箱地址不会被公开。