当我们获取内网主机的一个 Session 后,通常使用该 Session 作为跳板/入口点进行进一步的内网渗透.
本机信息收集
Session 信息
- 选择 权限操作-权限信息 查看Session信息,信息用于确认该入口点拥有哪些权限,是否需要提权,是否在域中,操作系统等信息.
权限信息,确定是否需要提权.域信息确定 Session 是否需要下一阶段进行域信息收集/域渗透.
主机信息
在确定 Session 信息后我们还需要对已控制的主机进行更详细的信息收集.具体操作可以参考 主机操作-主机信息
- 该信息主要用于确认主机当前有多少用户正在登录,主机版本,用于后续抓取密码(Windows)
- 外网连接 主要用于确认主机的用途,通常通过该方法快速查找向外网提供服务的进程.
- 内网连接 主要用于查看该主机连接了哪些内网 IP 地址,为下一步内网网络扫描/内网漏洞扫描做准备.一些数据库连接,RDP 连接,SMB 连接等还可以进行密钥提取等操作
-
本机密码
感谢 kiwi ,我们可以抓取已控制 windows 主机的明文密码或 hash,为之后的渗透做准备,VIPER 中有多个模块可以完成该工作,以获取 windows 内存密码(新)为例进行演示

- 收集到的凭证信息还可以在凭证列表中查看
网络代理
一般我们将 NAT 后面的网络称为内网,当前内网分为两种 内网主机可直接访问互联网,互联网无法直接访问内网主机(如基于路由器的家庭网络) 内网主机不可直接访问互联网,互联网无法直接访问内网主机(如银行,公安等机要部门网络) 当前章节默认网络为第一种网络.
内网路由
- 所谓内网路由是一种基于 Session 的透明代理,通过 Sesison 添加对应路由后,VIPER 中的监听/横向移动/漏洞扫描/Socks 代理,漏洞利用等功能会自动使用该路由连接内网对应的 IP 地址.
- 假设 VIPER IP 地址为 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 会根据 Session 主机的网卡配置的 IP 地址添加路由 如果对方有多个内网网段可以选择手动添加
- 如果添加了对应的路由,会提示连接该 ip 所用的路由 sessionid ,便于判断是通过那个 Session 进行路由.

这是我们最常用的正向直连内网的方法,也是 VIPER 模块默认的连接内网方法
socks 代理
上一节的内网路由只能由 VIPER 内置的功能进行调用,外部的工具(如 Nmap)是无法使用的,我们可以使用 VIPER 的内网代理模块搭建一个基于内网路由的 socks 代理供外部程序使用

socks 代理的流量转发是基于内网路由的,所以在添加代理前确保正确配置了内网路由 内网代理和内网路由是相互配合的
端口转发
- 通常内网路由及 socks4a 代理可以满足我们常见的内网正向连接的请求.但有些时候外部工具无法直接使用代理(mstsc.exe)或某些工具需要反向链接(Cobalt strike),这时就需要端口转发功能.


详细帮助可以参考页面下方帮助
https://github.com/fatedier/frp
https://github.com/FunnyWolf/TFirewall
内网网络扫描
在我们完成跳板机的信息收集及代理搭建后,下一步就要看一下跳板机能连接内网的哪些主机,这时就需要使用内网网络扫描模块.
内网端口扫描与服务识别
内网端口扫描与服务识别是最常用的内网网络扫描模块,模块本身会包含端口探测及基于指纹的端口识别功能.

- 后台任务标签可以查看正在运行的任务

- 运行结果

- 扫描到的主机会自动在主控台显示出来,还可以点击开放端口按钮查看该主机开放的端口


模块所有的网络连接都是在内网中进行,所以扫描速度与准确度远高于基于代理的内网扫描. 如果你希望扫描流量更少,不触发内网中流量探测设备的告警,可以使用内网端口扫描,模块不会进行端口服务识别,使用方式与内网端口扫描与服务识别相同 如果你只对主机是否存活感兴趣,可以使用内网 arp 扫描
内网漏洞扫描
- 在网络扫描完成后,我们可以通过漏洞扫描模块来确定我们可以攻陷哪些内网主机
在完成扫描之前需要确认已经建立了对应内网主机的内网路由,确保我们模块可以正确连接该主机 具体方法见 网络代理-内网路由 章节
MS17-010 扫描

- 还可以选择已知漏洞查看已扫描到的漏洞
内网横向移动
内网横向移动从方式上可以大概分为两种
- 基于漏洞的方式获取权限,如 MS17-010,weblogic RCE 等
- 基于凭证暴力破解方式获取权限,如基于获取到的凭证或弱密码破解其他主机的 smb,mssql,mysql 等
在完成利用之前需要确认已经建立了对应内网主机的内网路由,确保我们模块可以正确连接该主机具体方法见网络代理-内网路由
Cobalt Strike 上线
- VIPER 可以通过虚拟监听+Session 克隆的方式方便 Cobalt Strike 上线.
- 首先在 Cobalt Strike 建立监听

- 在 VIPER 中建立对应的虚拟监听

- 选择对应的 Session,然后运行 Session 克隆模块

- 运行后 Cobalt Strike 即上线
其他功能
此处介绍入门/基础/进阶未涉及的 VIPER 的其他基础功能.
msfconsole
- 使用方式与原生控制台相同,支持选择自动复制,拷贝,删除,CTRL+C,CTRL+Z
生成载荷
系统状态
系统配置
常见问题
为什么我无法抓取到本机密码?
抓取密码需要本地管理员权限,在 windows server2012 抓取密码有一定几率失败.
为什么使用横向移动模块没有获取到 Session?
漏洞利用可能会失败/传递的凭证可能无法登陆该主机. 对方主机无法直接连接 VIPER,这时你可以使用正向监听(bind_xxx)尝试利用



