文章目錄
- 一、網絡基礎設施
- 1.1 內網
- 1.2 DMZ區
- 1.3 網絡枚舉(Network Enumeration)
- 二、域環境
- 三、用戶和組管理
- 四、安全解決方案
- 4.1 基于主機的安全解決方案
- 4.1.1 防病毒軟件
- 4.1.2 Microsoft Windows Defender
- 4.1.3 主機防火墻
- 4.1.4 安全事件記錄與監控
- 4.1.5 基于主機的入侵檢測系統和入侵防御系統
- 4.1.6 終端檢測與響應(EDR)
- 4.2 基于網絡的安全解決方案
- 五、應用和服務
- 5.1 已安裝的應用程序
- 5.2 服務和進程
在這個場景中,假設已經獲得了對機器的訪問權限,我們準備通過枚舉來進一步了解環境,具體包括以下內容:
- 網絡基礎設施
- Active Directory 環境
- 用戶和組
- 基于主機的安全解決方案
- 基于網絡的安全解決方案
- 應用程序和服務
一、網絡基礎設施
當我們進入一個未知的網絡環境時,我們的首要目標是確定我們的位置以及我們能夠訪問到哪些資源。
1.1 內網
內網是根據內部設備的重要性或其數據的可訪問性的重要性而劃分和分離的子網絡。下圖中網絡被劃分為兩個網絡:第一個是用于員工工作站和個人設備的網絡;第二個是用于提供內部服務(如 DNS、內部網頁、電子郵件服務等)的私有和內部網絡設備的網絡。
1.2 DMZ區
DMZ區是一種邊緣網絡,它保護公司內部局域網并為其增加額外的安全層。例如:一家公司提供諸如網站、DNS、FTP、代理、VPN 等公共網絡服務,那么他們可能會設計一個 DMZ 網絡,以隔離并實現對公共網絡流量、不受信任流量的訪問控制。
1.3 網絡枚舉(Network Enumeration)
網絡枚舉涉及檢查與網絡相關的多個方面,例如TCP
和UDP
端口、已建立的連接、路由表、ARP
表等。
# 查看所有建立連接的TCP端口
netstat -nt
# -n:以數字形式顯示地址和端口號
# -t:僅顯示TCP連接,默認不顯示LISTEN端口
# 查看ARP路由表
arp -a
二、域環境
如下圖,域控被放在一個服務器專用的子網中(在圖中顯示為服務器網絡),然后活動目錄客戶端位于一個獨立的網絡中,它們可以加入域并使用活動目錄Active Directory
服務。
域環境中的相關組件:
- 域控制器(Domain Controllers):負責管理域內身份驗證、授權以及目錄服務的服務器。
- 組織單位(Organizational Units):用于對域內的對象(如用戶、計算機、組等)進行邏輯分組和管理的容器。
- 活動目錄對象(AD objects):活動目錄中存儲的各種實體,包括用戶、計算機、組、打印機等。
- 活動目錄域(AD Domains):一個邏輯分組,包含一組具有相同安全策略和管理結構的計算機和用戶。
- 活動目錄服務賬戶(AD Service Accounts):
- 內置本地用戶(Built-in local users):系統預定義的本地用戶賬戶。
- 域用戶(Domain users):屬于域的用戶賬戶。
- 管理型服務賬戶(Managed service accounts):由系統自動管理的用于服務運行的賬戶。
- 域管理員(Domain Administrators):具有域內最高管理權限的用戶組,可以對域內的對象和策略進行管理。
域控制器(Domain Controller)是一臺提供活動目錄(Active Directory)服務并控制整個域的Windows服務器。它是一種集中式用戶管理方式,能夠加密用戶數據,并控制對網絡的訪問,包括用戶、組、策略和計算機等。
組織單位(Organizational Units,OU)是活動目錄(AD)域內的容器,具有層級結構。
活動目錄對象可以是一個單獨的用戶或一個組,也可以是一個硬件組件,例如計算機或打印機。每個域都包含一個數據庫,該數據庫存儲對象的身份信息,從而創建了一個活動目錄(AD)環境,其中包括:
- 用戶:被允許在域內對計算機進行身份驗證的安全主體。
- 計算機:一種特殊類型的用戶賬戶。
- 組策略對象(GPOs):應用于其他活動目錄對象的策略集合。
AD域是活動目錄網絡內的一個由組件構成的集合。AD Forest是一個由相互信任的域構成的集合。下圖就是一個域森林。
# 查看當前設備是否在域環境中
systeminfo | findstr Domain
當前計算機處于thmredteam.com
域中。如果得到WORKGROUP
,說明當前計算機處于工作組中。
三、用戶和組管理
一旦獲得了對被入侵機器的初始訪問權限,賬戶發現就是第一步,以了解當前用戶擁有的權限以及系統中還有哪些其他賬戶。
常見的活動目錄服務賬戶包括內置本地用戶賬戶、域用戶賬戶、管理型服務賬戶和虛擬賬戶。
- 內置本地用戶賬戶:用于在本地管理系統的賬戶,不屬于活動目錄環境。
- 域用戶賬戶:可以訪問活動目錄環境的賬戶,由活動目錄管理,能夠使用活動目錄服務。
- 活動目錄管理型服務賬戶:具有更高權限的有限域用戶賬戶,用于管理活動目錄服務。
- 域管理員賬戶:能夠管理活動目錄環境中的信息的用戶賬戶,包括活動目錄的配置、用戶、組、權限、角色、服務等。在紅隊演練中,獲取域管理員權限以完全控制活動目錄環境是紅隊的一個重要目標。
以下是活動目錄管理員賬戶的類型:
- Domain Admins(域管理員):對整個域中的所有資源具有完全管理權限。
- Enterprise Admins(企業管理員):在某個域森林中的域管理員,閹割版域管理員。
- Schema Admins(架構管理員):能夠修改活動目錄的架構。
- Server Operators(服務器操作員):可以管理域內的服務器。
- Account Operators(賬戶操作員):可以管理域內的用戶賬戶和組,但不能管理特權組(如域管理員組)。
使用PowerShell
命令用于獲取所有活動目錄用戶賬戶
# 獲取所有活動目錄用戶賬戶
Get-ADUser -Filter *
# 從THMREDTEAM.COM域的Users容器中檢索出所有的用戶賬戶信息
Get-ADUser -Filter * -SearchBase "CN=Users,DC=THMREDTEAM,DC=COM"
DistinguishedName : CN=THM Admin,OU=THM,DC=thmredteam,DC=com
# DistinguishedName是用戶在活動目錄中的唯一標識,用于定位用戶對象。它是一個層級路徑,從用戶對象開始,逐步向上到域組件(DC)。
# CN=THM Admin:表示用戶的通用名稱(Common Name)是“THM Admin”。
# OU=THM:表示用戶位于名為“THM”的組織單位(Organizational Unit,OU)中。
# DC=thmredteam,DC=com:表示用戶屬于“thmredteam.com”域。Enabled : True
# Enabled表示該用戶賬戶是否啟用GivenName : THM
# GivenName:表示用戶的名字部分Name : THM Admin
# Name:就是用戶的通用名稱ObjectClass : user
# ObjectClass:對象的類別ObjectGUID : 8974cd3d-9bf0-4c43-ac7d-068413fb462c
# ObjectGUID:對象的全局唯一標識符(Object GUID)。這是一個唯一的標識符,用于在活動目錄中唯一標識該用戶對象。SamAccountName : thmadmin
# SamAccountName:用戶登錄時使用的用戶名SID : S-1-5-21-1966530601-3185510712-10604624-1124
# SID:用戶的安全標識符(Security Identifier,SID)。SID 是一個唯一的標識符,用于標識用戶或組的安全上下文。
Surname : Admin
# Surname:用戶的姓(Surname),即用戶的姓氏部分UserPrincipalName : thmadmin@thmredteam.com
# UserPrincipalName:用戶的主體名稱(User Principal Name,UPN)。這是一個用戶登錄時可以使用的替代名稱,通常是一個電子郵件地址格式。
從
DistinguishedName
中就可以看出,用戶屬于哪個容器,或者哪個組織單位。例如:DistinguishedName : CN=Administrator,CN=Users,OU=THM,DC=thmredteam,DC=com
表示該用戶屬于thmredteam.com 域的THM組織單位中的Users容器內。
1、Use the Get-ADUser -Filter * -SearchBase command to list the available user accounts within THM OU in the thmredteam.com domain. How many users are available?
6
命令如下:
Get-ADUser -Filter * -SearchBase "OU=THM,DC=THMREDTEAM,DC=COM"
2、Once you run the previous command, what is the UserPrincipalName (email) of the admin account?
thmadmin@thmredteam.com
# 獲取所有活動目錄用戶賬戶
Get-ADUser -Filter *
四、安全解決方案
在企業網絡中常用的兩類安全解決方案:基于主機的安全解決方案和基于網絡的安全解決方案。
4.1 基于主機的安全解決方案
基于主機的安全解決方案是一套用于監控和檢測主機內異常及惡意活動的軟件應用程序,包括:
- 防病毒軟件
- 微軟 Windows Defender
- 基于主機的防火墻
- 安全事件記錄與監控
- 基于主機的入侵檢測系統(HIDS)/ 基于主機的入侵防御系統(HIPS)
- 終端檢測與響應(EDR)
4.1.1 防病毒軟件
防病毒軟件,也稱為反惡意軟件,主要用于監控、檢測和防止惡意軟件在主機內執行。防病毒軟件一般依賴于預先定義的病毒特征來識別威脅,其使用了多種檢測技術,包括:
- 基于特征碼的檢測
- 基于啟發式的檢測
- 基于行為的檢測
1、基于特征碼的檢測
基于特征碼的檢測是防病毒軟件用于識別惡意文件的一種常見且傳統的技術。通常,研究人員或用戶會將他們受感染的文件提交到防病毒引擎平臺,供防病毒軟件供應商進行進一步分析。如果確認該文件為惡意文件,那么其特征碼就會被注冊到他們的數據庫中。防病毒軟件會將掃描到的文件與客戶端已知特征碼數據庫中的可能攻擊和惡意軟件進行比對。如果發現匹配項,就會將其視為威脅。
2、基于啟發式的檢測
基于啟發式的檢測使用機器學習來判斷文件是否為惡意文件。它會在實時狀態下進行掃描和靜態分析,以查找應用程序代碼中的可疑屬性,或者檢查其是否使用了不常見的 Windows 或系統 API。它在做決策時并不依賴于基于特征碼的攻擊,不過有時候也會依賴。這取決于防病毒軟件的具體實現方式。
3、基于行為的檢測
基于行為的檢測依賴于監控和檢查應用程序的執行情況,以發現異常行為和不尋常的活動,例如在注冊表鍵中創建/更新值、終止/創建進程等。
使用如下命令對windows
系統中反病毒軟件進行枚舉:
wmic /namespace:\\root\securitycenter2 path antivirusproductGet-CimInstance -Namespace root/SecurityCenter2 -ClassName AntivirusProduct
windows系統中可能沒有
root/SecurityCenter2
命名空間,需要具體問題具體分析。
4.1.2 Microsoft Windows Defender
Microsoft Windows Defender
是一款預裝在終端上的防病毒安全工具。它在檢測過程中使用了多種算法,包括機器學習、大數據分析、深度威脅抗性研究以及微軟云基礎設施,用于抵御惡意軟件和病毒。Windows Defender
有三種保護模式:主動模式、被動模式和禁用模式。
- 主動模式:在這種模式下,Windows Defender 作為機器上的主要防病毒軟件運行,提供保護和修復功能。
- 被動模式:當安裝了第三方防病毒軟件時,Windows Defender 會以被動模式運行。在這種模式下,它作為輔助防病毒軟件,會掃描文件并檢測威脅,但不會提供修復功能。
- 禁用模式:在這種模式下,Windows Defender 被禁用或從系統中卸載。
# powershell下,檢查windows defender狀態
Get-Service WinDefend
# 查看windows defender開啟哪些功能
Get-MpComputerStatus# 查看windows defender是否開啟實時保護功能
Get-MpComputerStatus | select RealTimeProtectionEnabled
4.1.3 主機防火墻
基于主機的防火墻:它是一種安裝并運行在主機機器上的安全工具,能夠防止和阻止攻擊者或紅隊成員的攻擊嘗試。防火墻在網絡層充當訪問控制的角色。它能夠允許和拒絕網絡數據包。
# 獲取當前主機上 Windows 防火墻配置文件的狀態信息
Get-NetFirewallProfile | Format-Table Name, Enabled
表示當前主機上的域、私有和公共網絡位置的防火墻配置文件都處于關閉狀態。
如果有管理員權限,可以使用下面的命令開啟防火墻
# 開啟防火墻
Set-NetFirewallProfile -Profile Domain, Public, Private -Enabled True# 關閉防火墻
Set-NetFirewallProfile -Profile Domain, Public, Private -Enabled False
# 查看防火墻規則
Get-NetFirewallRule | select DisplayName, Enabled, Description
# 測試與指定計算機上的特定端口的連接是否成功
Test-NetConnection -ComputerName 127.0.0.1 -Port 80
80端口運行TCP流量通過。
1、Enumerate the attached Windows machine and check whether the host-based firewall is enabled or not! (Y|N)
N
# 獲取當前主機上 Windows 防火墻配置文件的狀態信息
Get-NetFirewallProfile | Format-Table Name, Enabled
2、Using PowerShell cmdlets such Get-MpThreat can provide us with threats details that have been detected using MS Defender. Run it and answer the following: What is the file name that causes this alert to record?
PowerView.ps1
# 查看windows defender的威脅詳細信息Get-MpThreat
3、Enumerate the firewall rules of the attached Windows machine. What is the port that is allowed under the THM-Connection rule?
# 查看THM-Connection規則
Get-NetFirewallRule | findstr "THM-Connection"
允許
17337
端口的流量入站
4.1.4 安全事件記錄與監控
默認情況下,操作系統使用日志文件記錄系統中的各種活動事件。可以使用如下命令獲取本地計算機上可用的事件日志列表:
# 獲取本地計算機上可用的事件日志列表
Get-EventLog
可用事件日志的列表可以讓你了解機器上安裝了哪些應用程序和服務!例如,我們可以看到本地機器上安裝了活動目錄(Active Directory)、DNS服務器等。
Windows系統監視器
(Sysmon
)是一個服務和設備驅動程序。它是微軟 Sysinternals 套件之一。Sysmon 工具并非必需工具(默認情況下不會安裝),但一旦安裝,它就會開始收集和記錄事件。這些日志指標可以顯著幫助系統管理員和藍隊成員追蹤和調查惡意活動,并協助進行一般的故障排除。使用下面的命令查看目標主機是否安裝了Sysmon
:
# 查看目標主機是否安裝了Sysmon,以下命令均可以查看
Get-Process | Where-Object { $_.ProcessName -eq "Sysmon" }
Get-CimInstance win32_service -Filter "Description = 'System Monitor service'"
Get-Service | where-object {$_.DisplayName -like "*sysm*"}
# 查找sysmon的配置文件
findstr /si '<ProcessCreate onmatch="exclude">' C:\tools\*
4.1.5 基于主機的入侵檢測系統和入侵防御系統
IDS只能檢測,不能阻止入侵;IPS不僅可以檢測入侵,還可以阻斷入侵。
4.1.6 終端檢測與響應(EDR)
EDR(Endpoint Detection and Response)
是一種網絡安全解決方案,用于防御惡意軟件和其他威脅。EDR 可以查找惡意文件,監控端點、系統和網絡事件,并將這些事件記錄在數據庫中以供進一步分析、檢測和調查。EDR 是下一代防病毒技術,能夠在主機上實時檢測惡意活動。
以下是一些常見的端點 EDR 軟件:Cylance、Crowdstrike、Symantec、SentinelOne。
EDR檢測腳本:Invoke-EDRChecker、SharpEDRChecker
4.2 基于網絡的安全解決方案
- 網絡防火墻(Network Firewall):一種網絡安全設備,用于監控進出網絡的流量,并根據預設的安全規則允許或拒絕數據包通過。它可以幫助防止未經授權的訪問和惡意流量進入網絡。
- 安全信息與事件管理(SIEM,Security Information and Event Management):一種集成的安全解決方案,用于收集、分析和報告來自各種安全設備和系統的日志和事件信息。SIEM 系統可以幫助安全團隊實時監控網絡活動,檢測潛在的安全威脅,并進行事件響應和調查。
- 入侵檢測系統/入侵防御系統(IDS/IPS,Intrusion Detection System/Intrusion Prevention System):IDS 用于監控網絡流量,檢測可疑活動和潛在的入侵行為,并發出警報;IPS 則在此基礎上進一步具備阻止或緩解攻擊的能力。它們可以幫助及時發現和阻止惡意活動,保護網絡免受攻擊。
五、應用和服務
在前面的任務中,已經討論了系統內的賬戶發現和安全產品。接下來,我們將繼續深入了解系統,包括:
- 已安裝的應用程序
- 服務和進程
- 共享文件和打印機
- 內部服務:DNS和本地Web應用程序
5.1 已安裝的應用程序
使用如下命令列出所有已安裝的應用程序及其版本:
wmic product get name,version
使用如下命令查找隱藏文件:
# 查看C:\Users\kkidd\Desktop\下的隱藏文件和文件夾
Get-ChildItem -Hidden -Path C:\Users\kkidd\Desktop\# 遞歸列出所有子目錄中的隱藏文件和文件夾
Get-ChildItem -Hidden -Path C:\Users\kkidd\Desktop\ -Recurse
5.2 服務和進程
使用如下命令列出系統上正在運行的服務:
net start
使用如下命令查看服務詳細信息:
# 查看THM Service服務詳細信息
wmic service where "name like 'THM Service'" get Name,PathName# 獲取名為 THM Service的進程的詳細信息
Get-Process -Name thm-Service
使用
Get-Process -Name thm-Service
時,空格要用-
代替,服務進程號為2264
通過進程號檢查該服務的端口情況:
netstat -noa |findstr "LISTENING" |findstr "2264"
Visit the localhost on the port you found in Question #1. What is the flag?
# 訪問13337端口,即可拿到flag
curl http://localhost:13337
DNS 區域傳輸
nslookup.exe
Default Server
:DNS服務器名稱;Address
:DNS服務器地址
# 指定使用的DNS服務器
server 10.10.17.102# 快速獲取指定域名的所有DNS記錄
ls -d thmredteam.com