针对国内一大厂的后渗透 – 持续

0x00 前言


此文将全部脱敏,涉及某大厂商,中间会穿插一些小的知识点与细节。

0x01 信息搜集 – 后渗透


首先我们后渗透阶段的开始表现在 拥有一个Webshell或者通过其他漏洞获取了某些操作服务器文件的权限,亦或者能够直接反弹Shell。

这里我挑选了一个某厂边缘处的一个测试环境,在这之前我做了大量的信息搜集,没有选择直接去挖掘、利用漏洞。

  • 操作系统
  • Web服务器版本
  • PHP版本
  • 绝对路径
  • 子域名
  • 开放端口 – 发现开启了防火墙

扫描到它存在phpMyadmin,弱口令登录进入,通过常规手法SQL写入shell。img

通过Webshell的方式进入,肯定是要直接看权限了,但是由于是他们的测试环境,权限相对比较高。

img

通过上面的结果可以看到该服务器并不是域成员:

img

没有管理员在线:

img

可以发现有3389端口,我尝试了去直接连接,但是被拒绝了,绝对是防火墙做了入站限制。

这个尝试是有风险的,因为你不知道下一步的操作能够为自己带来怎样的走向。

再查看一下网卡:

img

这个内网地址我就不脱敏了,方便读者阅读后面的操作。

0x02 后渗透的开始

img

首先我要生成一个MSF木马,目标由于是Win 2008支持Powershell,可以直接一句话搞定 :

img

这里我是进行了一个端口转发,将公司路由的1131映射到本机的1131。

MSF这边监听1131:img

ps1encode 项目 :https://github.com/CroweCybersecurity/ps1encode

img

但是期望越大失望越大,目标主机提示语法错误,难道是webshell传输字符串太长有丢失?

我尝试了使用cmd批处理脚本启动,vbs脚本启动,一样无果。

决定不采用powershell了,采用exe:img

执行过程中有时候会出现这类情况:

img

很明显是生成的木马与操作系统不兼容;

更改为:

img

使用WebShell执行后:

img

权限维持

img

0x03 关于权限维持的思考


persistence 模块img

优先介绍这个模块:post/windows/manage/persistence_exe

它用于创建一个反向连接的后门,使被控端主动连接控制端,传统又好用,但是会留下文件。

参数介绍:img

metsvc:

img

它是一个正向的连接,不适用于复杂的内网环境。

0x04 端口转发之portfwd详解

imgimg

可以看出服务器开启了3389,假设我如果需要连接3389该怎么办呢? —— 刚才提到了,有防火墙的限制。

使用portfwdimg

下面来练习一下(正向转发)。

目的:将内网某台主机的3389转发到本地。

img

此时连接本机的1144就相当于连接10.159.63.178。

目的:将内网某台主机端口流量转发到某台外网主机 (可做端口劫持)。img

此时访问10.159.63.178的1478端口就相当于访问10.159.191.2的8080端口:

img

删除条目为1的端口转发:

img

列出端口转发条目:

img

清空所有转发。

端口扫描

添加路由表:

img

当然在上线前,你就设置好自动添加路由,就不需要去手动添加了:

img

但是它也有弊端,就是子网太大了,可能会将我们的数据包广播出去,所以最好记一下子网大小,手动灵活添加路由~

扫描:img

0x05 Meterpreter


获取Hash的几个方式

run hashdumpimg

run powerdump

img

load mimikatz kerberos

img

run post/windows/gather/smart_hashdump

img

0x06 PowerShell技巧


外部Powershell脚本

Powersploit**https:**//github.com/PowerShellMafia/PowerSploit

第一种办法(推荐):img

第二种办法:(先通过其他模块下载):

img

0x07 再一次克服困难


之前的方案是使用Portfwd,但是效果太差了,当数据流过大,会将Meterpreter冲掉,并且每次数据回送都不完整。

这次采用Socks5打洞,我利用了外网的服务器,开设一个Socks代理端口,将流量转发到目标内网。

外网服务器:img

0x07 再一次克服困难


之前的方案是使用Portfwd,但是效果太差了,当数据流过大,会将Meterpreter冲掉,并且每次数据回送都不完整。

这次采用Socks5打洞,我利用了外网的服务器,开设一个Socks代理端口,将流量转发到目标内网。

外网服务器:img

内网主机:

img

ew下载地址: http://rootkiter.com/EarthWorm/

现在在浏览器中设置一下Socks5代理即可访问内网,很稳定。imgimg

0x08 开始扫描


一开始我使用PowerSploit扫描,但是需要等待Meterpreter将数据取回,这样就占用了一个session,搜集了部分信息后,决定采用Nmap。

由于我的操作系统是黑苹果,需要安装proxychains-ng。

img

0x08 开始扫描


一开始我使用PowerSploit扫描,但是需要等待Meterpreter将数据取回,这样就占用了一个session,搜集了部分信息后,决定采用Nmap。

由于我的操作系统是黑苹果,需要安装proxychains-ng。

img

程序安装在:/usr/local/Cellar/proxychains-ng/4.12_1/bin/proxychains4

配置文件:/usr/local/etc/proxychains.conf

添加一条Socks5代理:img

开始扫描:

img

0x09 信息搜集基本结果


通过端口扫描以及HTTP服务的爬行,发现一些运维人员开放的共享,和一些MS17010漏洞的Windows服务器,但是没有选择直接去打,觉得信息搜集的不够全面。

在内网中收获最大的就是搜集到了运维人员用于共享系统镜像、工具的Web服务器:img

发现基线检查的文档,下载了一两个,开始通过搜集的信息进行内网结构画像:

imgimg

轻松获得域控服务器

img

从文档中搜集信息如下:

img

根据之前搜集的子网来判断,我们所处于的内网中有很多域。并且能够可以和域控服务器通信,即使当前的服务器不在域中,也可以进行登录。

img

通过两层转发,我们尝试登录:

  • 一层是公司路由
  • 一层是LCX

img

当时登录上去并没有做过多的操作,简单看看就下来了,因为这个内网很大,后面的发现令我倒吸凉气。

0x10 内网核心


Orion

这是一款完善的网络带宽、性能和故障管理软件。使用它用户可以通过自己的浏览器即时监控自己的网络状态和统计资料。程序将监视和搜集来自路由、节点、服务器和所有开启SNMP服务的设备信息;同时也将监控本机的CPU占用率、内存使用情况以及可用磁盘空间。

img

通过空口令进入:

img

通过查看别名发现这些设备是企业的核心路由、防火墙、交换机。

  • 官网防火墙
  • 管理员交换机(专线)
  • 内网核心交换机 x 2
  • 外网核心交换机 x 2
  • 公网接入交换机 x 2
  • 回源 (这个不太清楚)

基本上都是50个口以上。

通过之前的自动搜集的路由来看:

img

10.0.0.0 是可以访问整个超大的内网,在搜集其他网段信息的时候,不泛发现其他大企业的漏洞、大多是配置不得当。

0x12 配置引发的隐患img

img

还有未做权限验证的Docker集群管理平台:

img

有多个实例,分别用于对外的服务。

搜集到用户中心的数据库配置,也就是说泄漏了所有用户的数据了,这可是一个大厂。img

其次一些网段基本上都安装了tomcat,通过socks5代理,进行爆破,流量不走Meterpreter,因为会掉线。

imgimg

如我所料,没有一个成功的,也发现了一些SSH端口,但是会把流量升高,触发一些警报,就没有再尝试这种爆破手法了。

0x13 需要搜集的信息


搜集的信息列出来,就不贴了:

  • 服务器当前所在网段的所有主机端口
  • 服务器ARP缓存
  • 服务器上的服务
  • 内网中其他HTTP服务
  • 满足容易利用的漏洞端口 (MS17010 / 445)
  • 抓包嗅探还是很有必要的 (千万不要ARP %@#@@651#@^#@@#@@###@@!)
  • 共享文件
  • 密码

0x14 总结


  • 在行动之前思考几分钟,有没有更好的办法
  • 思考一个问题多个解决方案的利弊
  • 尽量快速熟悉网络环境 -> [前提是你已经熟悉了服务器环境]
  • 对日志要时刻保持敏感
  • 看子网掩码、计算子网大小,判断有没有VLAN
  • 选取自己熟悉的协议进行信息搜集
  • 网络命令一定要熟
  • 对于后门要加强维护
  • 你必须保证你花费98%的时间都在了解他们
  • 学习使用Powershell和熟练掌握端口转发