内网渗透测试理论学习之第四篇内网渗透域的横向移动
Posted 星球守护者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内网渗透测试理论学习之第四篇内网渗透域的横向移动相关的知识,希望对你有一定的参考价值。
文章目录
在内网中,从一台主机移动到另外一台主机,可以采取的方式通常有文件共享
、计划任务
、远程连接工具
、客户端
等。
一、IPC
IPC(Internet Process Connection)
是为了实现进程间通信而开放的命名管道。
IPC
可以通过验证用户名和密码获得相应的权限,
通过ipc$可以与目标机器建立连接,利用这个连接可以在目标机器上运行命令。
net use \\\\192.168.1.1\\ipc$ "pass" /user:adstudy\\administrator
利用条件:开启139、445端口
;管理员开启了默认共享
。
二、HashDump
LM Hash
,“LAN Manager Hash”
,本质是DES加密,还是硬编码密钥,从Windows Vista和Windows Server 2008开始默认禁用,
dump出的LM Hash为“**aad**3b435b51404eeaad3b435b51404ee”
表示为空或被禁用
。
NTLM Hash,“New Technology LM Hash”,MD4加密。
Hash散列可以通过在线数据库、彩虹表等来破解,也可以使用PTH(Pass the Hash 哈希传递)
来进行横向渗透。
要想在Windows操作系统中抓取散列值或明文密码
,必须将权限提升至System
。
本地用户名、散列值和其他安全验证信息都保存在SAM文件中。
lsass.exe
进程用于实现Windows的本地安全策略和登陆策略。
可以使用工具将散列值和明文密码从内存中的lsass.exe进程或SAM文件中导出。
e.g. GetPassword、PwDump7、QuarksPwDump、mimikatz、PowerShell
SAM文件保存位置C:\\Windows\\System32\\config
,该文件不允许复制,但可以使用U盘进入PE系统进行复制。
利用reg导出SAM和System文件,通过mimikatz或者Cain来从文件读取hash
。
利用任务管理器或者微软出品的Procdump
导出lsass.dmp
文件,通过mimikatz
来从内存文件中获取hash
。
Windows Server 2012开始默认关闭WDigest,使攻击者无法从内存中获取明文密码;2012以下版本,如果安装KB2871997补丁,同样效果。WDigest功能状态可以在注册表中查看修改。
Hashcat只支持CPU破解;oclHashcat支持GPU破解(AMD、NIVDA),支持破解Windows密码、Linux密码、Office密码、Wi-Fi密码、mysql密码、SQL Server密码,以及由MD5、SHA1、SHA256等国际主流加密算法加密的密码。
如何防范hashdump?
1、Windows Server 2012 R2新增了一个名为受保护的用户组(Protected Users),只要将需要保护的用户放入该组,攻击者就无法使用mimikatz等工具抓取明文密码和散列值了。
2、安装KB2871997,是微软用来解决PsExec或IPC远程查看(c$)问题的补丁,能是本地账号不再被允许远程接入计算机系统,**但是SID=500的本地管理员账号(默认Administrator)除外**。
3、微软在Windows XP中添加了一个名为WDigest的协议,该协议能够使Windows将明文密码存储在内存中,以方便用户登录本地计算机。
4、根据Debug权限确定哪些用户可以将调试器附加到任何进程或内核中,默认情况下只有Administrator。mimikatz在抓取散列值或明文密码时需要使用Debug权限(因为mimikatz需要和lsass进程进行交互)。将Administrator从Debug组中移除。
三、PTH
PTH(Pass the Hash 哈希传递)
。在域环境中,用户登录计算机时使用的大都是域账号,大量计算机在安装时会使用相同的本地管理员账号和密码,因此,攻击者就能使用哈希传递攻击的方法登录内网中的其他计算机。
在Windows网络中,散列值就是用来证明身份的(有正确的用户名和密码散列值,就能通过验证)。从Windows Server 2012 R2开始,默认在内存中不会记录明文密码,因此,攻击者往往会使用工具将散列值传递到其他计算机中,进行权限验证,实现对远程计算机的控制。
进行身份验证时,不会使用明文口令,而是将明文口令通过系统API转换成散列值,再与数据库中存储的散列值进行对比,如果完全相同则表示验证成功。不过,攻击者在获得密码散列值之后,依旧可以使用pth攻击来模拟用户进行验证。
使用NTLM Hash进行哈希传递;使用AES-256秘钥进行哈希传递(Pass the Key)。
e.g. mimikatz
四、PTT
要想使用mimikatz的哈希传递功能,必须具有本地管理员权限。mimikatz同样提供了不需要本地管理员权限进行横向渗透测试的方法,例如票据传递(Pass the Ticket,PTT)。
五、PsExec
PsExec是微软官方PsTools工具包中的软件,期初主要是用于大批量Windows主机的运维,在域环境下效果甚好。
通过PsExec,可以在远程计算机上执行命令,也可以将管理员权限提升到System权限以运行指定的程序。
PsExec的基本原理是:通过管道在远程目标计算机上创建一个psexec服务,并在本地磁盘中生成一个名为“PSEXECSVC”的二进制文件,然后通过psexec服务运行命令,运行结束后删除任务。
需要远程系统开启admin$共享(默认是开启的),会产生大量日志。
e.g. Metasploit
六、WMI
WMI,Windows Management Instrumentation,从Windows 98开始支持,可以在本地或者远程管理计算机系统。
自从PsExec在内网中被严格监控后,越来越多的反病毒厂商将PsExec加入了黑名单,于是攻击者逐渐开始使用WMI进行横向移动。通过渗透测试发现,在使用wmiexec进行横向移动时,Windows默认不会记录WMI的操作日志。
使用wmic远程执行命令,在远程系统中启动Windows Management Instrumentation服务(目标服务器需要开放135端口,wmic会以管理员权限在远程系统中执行命令)。如果服务器开启了防火墙,wmic将无法进行连接。此外,wmic命令如果没有回显,可以将命令结果输出到某文件,并使用ipc$和type来读取信息。如果wmic执行的是恶意程序,将不会留下日志。
e.g. wmic、wmiexec.py、wmiexec.vbs、Invoke-WmiCommand.ps1、Invoke-WMIMethod
七、DCOM
DCOM
(Distributed Component Object Model
,分布式组件对象模型)是微软的一系列概念和程序接口。
通过DCOM,客户端程序对象能够对网络中的另一台计算机上的服务器程序对象发送请求。
DCOM是基于组件对象模型(COM)的。
COM提供了一套允许在同一台计算机上的客户端和服务端之间进行通信的接口。
执行流程同样:通过ipc$
连接远程计算机;执行命令。
八、SPN
微软给与内的每种资源分配了不同的服务主体名称(Service Principal Name,SPN
)。
因为域环境中的每台服务器都需要在Kerberos身份验证服务中注册SPN,所以攻击者会直接向域控制器发送查询请求,获取其需要的服务的SPN,从而知晓其需要使用的服务资源在哪台机器上。
SPN扫描也称作“扫描Kerberos服务实例名称”,在活动目录中发现服务的最佳方法就是SPN扫描。与网络端口扫描相比,SPN扫描的主要特点是不需要通过连接网络中的每个IP地址来检查服务端口(不会因触发内网中的IPS、IDS等设备的规则而产生大量的警告日志)。因为SPN查询是Kerberos票据行为的一部分,所以检测难度较大。
SPN是通过LDAP协议向域控制器进行查询的,所以,攻击者只要获得一个普通的域用户权限就可以进行SPN扫描。
Kerberoast攻击。导出票据,破解票据。
防御:确保服务账号密码的长度超过25位;确保密码的随机性(避免相同);定期修改密码。
九、Exchange
电子邮件
中可能包含大量的源码、企业内部通讯录、明文密码、敏感业务登陆地址及可以从外网访问内网的VPN账号密码
等信息。
Exchange支持PowerShell对其进行本地或远程操作。
邮箱服务器、客户端访问服务器、集线传输服务器是核心角色,只要部署这三个角色就能提供基本的电子邮件处理功能,且这仨可以部署在同一台主机上。
邮件发送使用统一的通信协议,即SMTP
(简单邮件传输协议);邮件接收则会使用多种协议标准,如从POP
(邮局协议)发展而来的POP3
,以及使用较为广泛的IMAP
(Internet
邮件访问协议)。Exchange
开发了私有的MAPI
协议用于收取邮件。
Exchange支持的访问接口和协议:
- OWA(Outlook Web App):Exchange提供的Web邮箱。
- EAC(Exchange Administrative Center):Exchange管理中心,后台。
- Outlook Anywhere(RPC-over-HTTP,RPC/HTTP)
- MAPI(MAPI-over-HTTP,MAPI/HTTP)
- Exchange ActiveSync(EAS,XML/HTTP)
- Exchange Web Service(EWS,SOAP-over-HTTP)
Exchange服务发现:基于端口扫描发现(nmap)、SPN查询(在安装Exchange时,SPN就被注册在AD中了)。
Exchange数据库的后缀为“.edb”
,存储在Exchange服务器上,使用PowerShell
可以查看相应信息。
Exchange
邮件的文件后缀为“.pst”
。
UNC
(Universal Naming Convention
,通用命名规则,也称通用命名规范、通用命名约定)。类似于\\\\hostname\\sharename
,\\\\ip\\address\\sharename
的网络路径就是UNC
路径,sharename
为网络共享名称。
以上是关于内网渗透测试理论学习之第四篇内网渗透域的横向移动的主要内容,如果未能解决你的问题,请参考以下文章