黑客游走于企业windows内网的几种姿势(一)

0X01  前言

现如今网络攻击日益频繁,而内网安全防护始终是企业的一个痛点所在,很多企业一旦外网被突破,内网就犹如一大块美味蛋糕一样任人宰割。不仅如此,一个经验丰富的攻击者是不会在内网留下太多攻击痕迹的,这使得被入侵的企业通常需要很久才意识到自己的内网已经被渗透攻击,有的企业甚至根本就发现不了。

谈到内网渗透的过程,它往往是攻击者以获得一个目标shell为起点,以拿到最终需求目标为终点的过程,期间会有大量的攻击路径和攻击手段,本文将跟大家聊一聊攻击者在以拿到一个windows内网webshell开始到结束这一过程中会用到的一些技巧和方法,帮助广大企业安全人员做到知己知彼。


0X02 信息收集

首先是做信息收集。主要针对三种:

一种是基于命令形式的,包括权限信息,机器信息,进程端口,网络连接,共享、会话等等;

一种是基于应用与文件形式的,例如一些敏感文件,密码文件,浏览器,远程连接客户端等;

还有一种是最直接的,例如抓取本地明文与hash,键盘记录,屏幕记录等。

网上已经有大量相关的资源与文章了,这里就不再占篇幅了,只说点额外的不常见技巧。

whoami /all   查看Mandatory Label看我们是否过uac

net session    查看有没有远程连过来的session

cmdkey /l     看是否保存了登陆凭证.(凭据管理器)

攻击者会先查看管理员是否保留了登陆凭证,方便后续的凭证抓取。

1

echo %logonserver%  查看登陆域

net stitastics server  查看登陆时间

Wmic  能让攻击者大量利用来获取系统信息的系统自带工具

Netsh  做端口转发

spn –l administrator 域内查某个用户spn记录

dsquery | nltest  域内信息收集

要注意的一点是session的问题,不管是system、administrator还是userxx ,对信息收集都会有很大的影响。xp、2003时代system跟普通用户是在同个session中的,从vista起就隔离了,所以执行某些命令就需要切换session,网上的开源工具有incognito等。

其次基于应用与文件形式的信息收集,说白了就是翻文件,包括一些应用的配置文件,密码文件等。有时候会碰到一些加密的office办公软件,例如word,excel 这些。但如果是低版本如2003的话,攻击者会在百度搜一些网上的破解软件进行破解(会联网)。如果是高版本的话,往往在目标用户开着文件时使用微软SysinternalsSuite套装中的procdump将内存dump回去,用内存查看器直接查看文件内容。因此就算有些敏感文件加密了照样能够被攻击者获取敏感信息。

最后针对hash或明文的获取使用mimikatz基本就足够了,也分exe与ps两个版本,攻击者会分情况使用。屏幕截图在windows中也有系统自带psr命令能够做截图等等。


0X03 网络判定

再者攻击者需要对其当前所处的网络环境进行判断,这里的判断分为三种。一种是机器所处位置区域的判断,一种是机器角色的判断,还有一种是进出口流量是否连通的判断,是否出得去,进得来。

机器所处位置区域的判断是指机器处于网络拓扑中的某个区域,是在DMZ区、办公网、还是核心区、核心DB等多个位置,当然这里的区域并不是绝对的,只是大概的一个环境,不同的地方网络环境不一样,区域的界限也不一定明显。

机器角色的判断指判断已经控制的机器是普通Web服务器、开发测试服务器、公共服务器、文件服务器还是代理服务器、DNS服务器、存储服务器等等。具体的判断是通过对机器内的主机名、文件、网络连接等多种情况进行综合判断的。

出口流量是否连通的判断指机器是否能上外网这些,要综合判断协议(tcp\http\dns\icmp等协议)与端口(常见能出去的端口有80,8080,443,53,110,123等)。在这里还有一种是网络内网设置了代理服务器的情况,攻击者通常会查看环境变量set,主机名是否有proxy字样的机器,注册表是否有写明代理地址或指定pac代理文件等。

如下图:

2

具体可以参考

http://bobao.360.cn/learning/detail/3204.html


0X04 横向渗透

接下来一个是横向的过程。

如果是workgroup横向,攻击者会尝试web漏洞挖掘、密码猜解等。

如果是domain横向,方法就比较多了,例如AD2008 gpp 、ms14-068 、kerberoast 、配置错误、一直抓密码等。

这里提一下配置错误,主要是权限配置的问题:

默认权限配置如下:

3

当某些普通\不普通用户加入AD的rdp组或其他管理员组,当攻击者拿到这些用户的权限时就相当于可以获取到域控制器的权限了。

接下来说点横向中涉及的一些问题,主要有:

1. 远程命令执行方式

例如at\schtasks\psexec\wmic\sc\ps网上有很多相关资源也不占篇幅了,只提一个很少提的。从2012r2 起,他们开了一个端口叫5985,原理跟大家常说的powershell remote是一样的,基于winrm服务,于是可以这样执行。又是一个系统自带的远程管理工具。

4

2. 域管理员定位

一是日志,二是会话。

日志指的的本地机器的管理员日志。可以使用脚本或wevtutil导出查看

会话是域内每个机器的登陆会话,可以匿名查询,无需权限。可以使用netsess.exe或powerview查询

5

3.  账户枚举 (nbtstat -A\nmapd等)、hash注入 (mimikatz) 、bypassuac、 session切换等,贴几个图占篇幅。

6   7

4. 代理转发

5. 做MIMT这块的两个工具:

responder.py &&Invoke-Inveigh.ps1 ,经常被用来做信息收集。

responder.py –A 分析模式

6. Powerview.ps1 域渗透利器

最后,如果攻击者终于拿到了域控了,要做的事就是信息获取,包括全域hash(mimikatz),ldap信息(csvde),dns信息(dnscmd)等,碰到文件占用的情况还会使用卷影复制。

除此之外攻击者还可能利用域控干点其他事,例如当问权限设置严格,攻击者所在位置访问不了目标机器,甚至域控本机也访问不了,只能是目标单向访问的情况,例如攻击者找不到目标ip,这时攻击者就可以拿出域组策略GPO这个大杀器了,当然相对应的动静会偏大。

具体操作可以是对某个目标用户添加登陆脚本:

8   9

这样,当目标用户登录时就会自动执行攻击者设置的脚本了。(当然执行的脚本命令需要考虑目标用户是否有执行权限)。


0X05 如何应对

在windows内网渗透上,系统自身带的大量命令极大的方便了攻击者进行渗透操作,而这是普通的防护软件都无法去做查杀的,只能做放行操作。因此在windows的内网防御上我们可以做些针对性的防护手段:

1. 关闭管理员维护不必要的服务,重点为部分能让攻击者远程攻击的服务;

2. 关闭办公人员机器不必要的文件共享服务

3. 域内做好组策略的设定,防止错误的配置

4. 严格限制域内成员的权限,甚者直接对域成员机器本身做权限限制