跳转到内容

横向渗透

当我们获取内网主机的一个 Session 后,通常使用该 Session 作为跳板/入口点进行进一步的内网渗透.

本机信息收集

Session 信息

  • 选择 权限操作-权限信息 查看Session信息,信息用于确认该入口点拥有哪些权限,是否需要提权,是否在域中,操作系统等信息.
  • 权限信息,确定是否需要提权.域信息确定 Session 是否需要下一阶段进行域信息收集/域渗透.

主机信息

  • 在确定 Session 信息后我们还需要对已控制的主机进行更详细的信息收集.具体操作可以参考 主机操作-主机信息
  • 该信息主要用于确认主机当前有多少用户正在登录,主机版本,用于后续抓取密码(Windows)
  • 外网连接 主要用于确认主机的用途,通常通过该方法快速查找向外网提供服务的进程.
  • 内网连接 主要用于查看该主机连接了哪些内网 IP 地址,为下一步内网网络扫描/内网漏洞扫描做准备.一些数据库连接,RDP 连接,SMB 连接等还可以进行密钥提取等操作
  • 重要进程 信息用于识别主机的杀毒软件,远控软件等进程

本机密码

  • 感谢 kiwi ,我们可以抓取已控制 windows 主机的明文密码或 hash,为之后的渗透做准备.
  • VIPER 中有多个模块可以完成该工作,以获取 windows 内存密码为例进行演示

  • 收集到的凭证信息还可以在 **凭证管理 **中查看

网络代理

一般我们将 NAT 后面的网络称为内网,当前内网分为三种

内网主机可直接访问互联网,互联网无法直接访问内网主机(如基于路由器的家庭网络)

内网主机可通过企业内部的代理服务器访问互联网,互联网无法直接访问内网主机(如很多大型IT企业或外企)

内网主机不可直接访问互联网,互联网无法直接访问内网主机(如银行,公安等机要部门网络)

当前章节默认网络为第一种网络.第二三种网络的渗透可参考后续内网隧道章节

内网路由

  • 内网路由是一种基于 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 模块(MSF模块)默认的连接内网方法

socks 代理

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

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

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

端口转发

  • 内网路由及 socks4a 代理可以满足我们常见的内网正向连接的请求.但有些时候外部工具无法直接使用代理(mstsc.exe)或某些工具需要反向链接(Cobalt strike),这时就需要端口转发功能.

详细帮助可以参考VIPER页面下方的帮助

  • 如果需要查看所有权限上的端口转发,可以在内网代理中查看

外部工具

  • 有很多外部工具可以实现内网穿透型的代理,如老牌的 ew,htran 等,推荐几款其他的代理工具,具体操作方法见对应的说明文档

https://github.com/fatedier/frp

https://github.com/FunnyWolf/pystinger

https://github.com/FunnyWolf/TFirewall

https://github.com/FunnyWolf/ligolo

内网网络扫描

  • 在我们完成跳板机的信息收集及代理搭建后,下一步就要看一下跳板机能连接内网的哪些主机,这时就需要使用内网网络扫描模块.

内网端口扫描与服务识别

  • 内网端口扫描与服务识别是最常用的内网网络扫描模块,模块本身会包含端口探测及基于指纹的端口识别功能.

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

  • 运行结果

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

模块所有的网络连接都是在内网中进行,所以扫描速度与准确度远高于基于代理的内网扫描.

如果你希望扫描流量更少,不触发内网中流量探测设备的告警,可以使用内网端口扫描,模块不会进行端口服务识别,使用方式与内网端口扫描与服务识别相同

如果你只对主机是否存活感兴趣,可以使用内网 arp 扫描

内网漏洞扫描

  • 在网络扫描完成后,我们可以通过漏洞扫描模块来确定我们可以攻陷哪些内网主机

在完成扫描之前需要确认已经建立了对应内网主机的内网路由,确保我们模块可以正确连接该主机

具体方法见 _网络代理-内网路由 _章节

MS17-010 扫描

  • 还可以选择已知漏洞查看已扫描到的漏洞

内网横向移动

内网横向移动从方式上可以大概分为两种

  • 基于漏洞的方式获取权限,如 MS17-010,weblogic RCE 等
  • 基于凭证暴力破解方式获取权限,如基于获取到的凭证或弱密码破解其他主机的 smb,mssql,mysql 等

在完成利用之前需要确认已经建立了对应内网主机的内网路由,确保我们模块可以正确连接该主机具体方法见网络代理-内网路由

常见问题

  • 为什么我无法抓取到本机密码?

抓取密码需要本地管理员权限,在 windows server2012 抓取密码有一定几率失败.

  • 为什么使用横向移动模块没有获取到 Session?

漏洞利用可能会失败/传递的凭证可能无法登陆该主机.

对方主机无法直接连接 VIPER,这时你可以使用正向监听(bind_xxx)尝试利用

Terms · Privacy