文章目錄
-
- 0x00 閑聊
- 0x01 什麼是内網?
- 0x02 什麼是工作組?
- 0x03 什麼是域?
- 0x04 什麼是域控制器?
- 0x05 什麼是單域?什麼是父子域?什麼是域樹?什麼是域森林?
- 0x06 什麼是活動目錄?
- 0x07 什麼是SAM?
- 0x08 什麼是Kerberos協定?
- 0x09 什麼是NTLM HASH 和 NET-NTLM HASH?
- 0x10 什麼是SMB?
- 0x11 什麼是IPC?
- 0x12 什麼是NetBIOS?
- 0x13 什麼是WMI?
- 0x14 什麼是Windows Access Token?
- 0x15 什麼是SID?
- 0x16 虛拟安全域
- 0x17 什麼是堡壘機?
- 0x18 域中計算機的分類
- 0x19 域内權限
0x00 閑聊
要開始學習内網了,了解一些知識點和術語先。(很多分類點借鑒了一些文章和徐哥的内網安全攻防,解釋都是借鑒于百科- -)。剛學,可能有些了解不到位的地方,還請大佬們指出。
0x01 什麼是内網?
答: 内網就是區域網路(LAN),比如内網中的機器,輸入
ipconfig/ifconfig
發現我們的ip是192.168..,内網中一号機器是192.168.0.1,二号機器是192.168.0.2,以此類推,但是我們在浏覽器中輸入
ip.cn
發現都是同一個ip。
0x02 什麼是工作組?
答: 這是區域網路中的一個概念,當我們區域網路内的主機太多時,或者需要對不使用者進行功能分類時,就需要用到工作組。就相當于把我們的檔案分類裝在不同的檔案夾中,一個是學習一個是工作。我們可以右擊 此電腦 的屬性,發現可以直接看到我們所處的工作組,其右側可以進行設定更改。工作組的憑證都是放在本地的。
0x03 什麼是域?
答: 域就是相當于進出更加嚴格、功能更加強大的工作組。域提供了更加安全的管理,能夠使用活動目錄等強大的功能,能夠通過域控實施統一的管理和操作。每個域都是使用域名系統 (DNS) 域名來辨別的。每個域都需要一個或多個域控制器。域使用者的憑證是放在域控主機的。
0x04 什麼是域控制器?
答: 域控制器(Domain Controller)簡稱DC。相當于就是域裡面的管理者,每台計算機進入域和互相通路都要經過DC的稽核。DC是我們内網滲透的主要目的。
0x05 什麼是單域?什麼是父子域?什麼是域樹?什麼是域森林?
答: 單域就是一個域;父子域就是有隸屬關系的兩個域;域樹就是多層的父子域,有一個根節點;而域森林就是多個樹建立信任關系的集合,相當于把兩棵樹的根節點連在了一起。為什麼要分這麼多?我的了解是 1是為了更友善管理,2是感覺它就像AS一樣,簡化了域和域之間的交流,降低了帶寬占用。
0x06 什麼是活動目錄?
答: 活動目錄(Active Directory)簡稱AD。它基于DNS,以樹狀結構存儲了一個域内有關網絡對象(例如使用者、使用者組、計算機、域、安全政策等等)的資訊,其中包含所有域使用者和計算機帳戶的密碼哈希值。它提供基礎網絡服務(DNS/DHCP等)、計算機管理、使用者服務、資源管理、桌面配置、應用系統支撐等功能。
該檔案在所有域控制器之間自動同步,它隻能被域管理者通路和修改。
ntds.dit
是AD中的資料庫檔案,它被儲存在域控制器中
c:\windows\system32\ntds\ntds.dit
的位置。我的了解就是一個龐大的索引資料庫+強大的統一調配器。
0x07 什麼是SAM?
答: SAM(security account manager 安全賬戶管理器)。就是我們建立電腦使用者時的一個使用者唯一辨別,它存在
c:/windows/system32/config/SAM
,類似于linux裡的/etc/passwd檔案,不過它是加密了的,顯得更加複雜。而且我們可以通過删除/替換 SAM檔案,通過PE 免密登入一些老版本系統的管理者賬号。
0x08 什麼是Kerberos協定?
答: Kerberos協定面向的是比較小的場景——區域網路,是在不安全的環境中提供安全的認證服務,利用了對稱密鑰加密技術和時間戳技術。
假如使用一對一的密鑰認證,就需要非常大量的密鑰對,這個時候就提供了一個KDC(密鑰配置設定中心)充當中間人,每台機器交換密鑰的對象都變成了KDC,減少了大量的密鑰。
KDC提供了一些服務,分别是AS(Authentication Service認證伺服器,為Client生成TGT的服務)和TGS(Ticket-Granting Service授予票據伺服器,為Client生成某個服務的 ticket)。TGT 的解釋比較繞口不好了解,我覺得也是一種票據。
協定過程:
1)用戶端向KDC發送身份資訊,請求TGT
2)KDC将TGT加密後傳回給用戶端
3)用戶端用解密後的TGT和要請求的服務名去問KDC,通路伺服器的Ticket是什麼(隻有真的用戶端才能解密出TGT)
4)KDC傳回一個加密後的Ticket和加密後的Session Key 給Client(第一個加密是用的KDC和伺服器的密鑰,第二個加密是用的KDC和用戶端的密鑰)(Ticket由 使用者名,使用者IP,服務名,有效期, 時間戳,Session key 構成) (Session key用于Service對Client的身份鑒别)。
5)Client解密出Session Key,然後将自己的使用者名和使用者IP,利用Session Key加密成Authenticator,然後把Authenticator和之前得到的Ticket發給伺服器;
6)伺服器解密Ticket,拿到Session Key、使用者名,使用者IP,服務名,有效期。然後再用拿到的Session Key去解密Authenticator,用Authenticator裡的資料和Ticket裡的資料作對比進行驗證用戶端的真實性。認證成功就傳回請求的服務結果。
0x09 什麼是NTLM HASH 和 NET-NTLM HASH?
答: NTLM(New Technologies Lan Manager)HASH,通常是指SAM檔案或ntds.dit檔案中存儲的HASH,生成流程是 :1)16進制編碼 2)unicode編碼 3)MD4加密。
NET-NTLM HASH 是在上面的NTLM認證過程中,從伺服器端傳回的一個hash值,裡面存儲了使用者名、ip、加密算法,密碼hash等。
對NTLM Hash可以通過這些方式擷取:
1)導出SAM檔案,配合SYSKEY利用mimikatz等工具獲得
2)改系統資料庫用minikatz讀取lsass.exe程序擷取(2012 r2和8.1及以上版本都禁止明文緩存到記憶體,而mimikatz是基于記憶體擷取明文密碼)
3)NTLM哈希傳遞
對NET-NTLM HASH 可通過使用Responder和Inveigh等工具進行中間人攻擊,僞造伺服器端履歷SMB連接配接擷取。
0x10 什麼是SMB?
答: SMB是一種協定,它運作在其他幾種協定之上,通過SMB可以共享通路伺服器上的各種資源和檔案。如果是使用NetBIOS協定就是139端口,如果是使用的TCP協定就是445端口,現在使用445更多。
0x11 什麼是IPC?
答: IPC(Inter-Process Communication 程序間通信),用于程序之間的通信。
在NT/2000以後開始使用IPC$(Internet Process Connection),它是為了讓程序間通信而開放的命名管道,通過驗證賬号和密碼,連接配接雙方可以建立安全的通道并以此通道進行加密資料的交換,進而實作在遠端管理和檢視計算機的共享資源。
它有一個特點,即在同一時間内,兩個 IP 之間隻允許建立一個連接配接。NT/2000 在提供了 ipc$ 功能的同時,在初次安裝系統時還打開了預設共享,即所有的邏輯共享 (c$,d$,e$ …… ) 和系統目錄 winnt 或 windows(admin$) 共享。我們在cms指令行中輸入 net share 就能檢視共享。
我們常說的IPC$漏洞就是IPC的空連接配接,但是它原本的危害就很小,隻能通路 everyone 權限的共享,通路小部分系統資料庫等。而且在2000及之後的版本,更是設定了權限和禁用空連接配接。
IPC$是基于SMB和NetBIOS,是以使用的端口也是139/445,實際通路哪個端口由是否允許NetBIOS決定。
建立空會話:
net use \\ip\ipc$ "" /user:""
(注:前邊引号“”内為空密碼,後邊user:""引号中為空使用者名)
删除IPC$連接配接:
net use \\192.168.1.101\ipc$ /del
已建立連接配接後:
檢視遠端主機的共享資源:
net view \\ip
得到遠端主機的 NetBIOS 使用者名清單(需要打開自己的 NBT ):
nbtstat -A ip
将目标C槽映射到本地Z盤:
net use z: \\192.168.1.101\c$
注意:不管我們是否建立IPC$成功,都會在日志中留下記錄。
0x12 什麼是NetBIOS?
答: NetBIOS(NETwork Basic Input/Output System 網絡基本輸入輸出系統)是一種協定,主要用于數十台計算機的小型區域網路,也是一種應用程式程式設計接口(API),被區域網路上的程式所使用。
在利用Windows NT4.0 建構的網絡系統中,對每一台主機的唯一辨別資訊是它的NetBIOS名。系統可以利用WINS服務、廣播及Lmhost檔案等多種模式通過139端口将NetBIOS名解析為相應IP位址,進而實作資訊通訊。
0x13 什麼是WMI?
答: 是Windows 2K/XP管理系統的核心;對于其他的Win32作業系統,WMI是一個有用的插件。使用者可以使用 WMI 管理本地和遠端計算機。它提供了一個通路作業系統構成單元的公共接口。其預設打開的是135端口,
0x14 什麼是Windows Access Token?
答: windows通路令牌,包含了登陸會話的安全資訊(比如各種SID)。當使用者登陸時,系統建立一個通路令牌,然後以該使用者身份運作的的所有程序都擁有該令牌的一個拷貝。該令牌唯一表示該使用者、使用者的組和使用者的特權。有兩種令牌:主令牌和模拟的令牌。主令牌是與程序相關的;模拟的令牌是與模拟令牌的線程相關的。關于利用Windows Access Token攻擊的視訊,今天漏洞銀行剛發了一個。
0x15 什麼是SID?
答: SID是安全辨別符,是辨別使用者、組和計算機帳戶的唯一的号碼。在第一次建立該帳戶時,将給網絡上的每一個帳戶釋出一個唯一的 SID。它用來跟蹤每個賬戶,而且永遠不會更改,即使我們更改了管理者的名字它也不會變。
0x16 虛拟安全域
答: 虛拟安全域是指,把相同安全等級、相同安全需求的計算機,歸入一個邏輯組内,對這個組配置通路控制政策。可在複雜的網絡中進行簡單友善的安全管理。通常安全域之間通過防火牆進行危險隔離,常見的劃分如下。
DMZ區裡是一些需要被外網通路到的伺服器(比如Web伺服器,郵件伺服器等),而我們内網中的檔案伺服器和資料庫伺服器又是不想被外網通路到的,如果把它們都放在一個區域,制定相同的政策,會有很大的風險,是以用防火牆裝置把它們分割開。内網部分又可以分為辦公區和核心區,隻有運維人員和IT主管能進入核心區。
0x17 什麼是堡壘機?
答: 堡壘機是一種針對 内部運維人員 的運維安全審計系統。它的主要的功能是就是限制登入入口,集中權限賬号管理,對不合法指令進行指令阻斷,記錄運維人員的操作,出事了追責。它和防火牆直覺上的差別就是,防火牆是用于外網和DMZ,DMZ和内網之間的,堡壘機是用于運維人員和内網之間的。
0x18 域中計算機的分類
答: 域類的計算機分為域控制器、成員伺服器、獨立伺服器和客戶機四種。
域控制器:在第四點已經說了;
成員伺服器:加入了域,但是沒有安裝AD,例如Web伺服器、郵件伺服器、防火牆這些;
獨立伺服器:既沒有加入域也沒有安裝AD,可有可無。
客戶機:使用資源的機器。
0x19 域内權限
答: 域相關内置組分為域本地組、全局組、通用組。組的概念在上面說過了。
域本地組:域本地組的成員可以來自森林中的任何域,用來規定通路同一個域内的資源權限,存儲在DC中,不可嵌套在其他組下;
全局組:全局組的成員來自自己的域(必須同一個域),用來通路任意域中的資源,存儲在DC中,可嵌套在其他組中;
通用組:通用組成員來自森林中的任何域,用來通路任意域中的資源,存儲在GC(全局編錄)中。
A-G-DL-P 政策:
先将A(Account使用者賬号)添加到G(Global Group全局組)中,再将其添加到DL(Domain Local Group域本地組)中,最後授予P(Permission 資源許可權限)。
一些重要的域本地組:
管理者組(Administratos):權力值max;
遠端登入組(Remote Desktop Users):具有遠端登入權限;
列印機操作員組(Print Operators):管列印機,并且可以在登入登入和關閉域控;
賬号操作員組(Account Operators):建立和管理域内的使用者群組,可登入域控,預設沒有成員;
伺服器操作員組(Server Operators):管理域伺服器,可管理共享目錄、列印機、備份、關閉域控等,預設沒有成員;
備份操作員組(Backup Operators):執行備份和還原操作,可登入域控和關閉域控,預設沒有成員。
一些重要的全局組、通用組:
域管理者組(Domain Admins):該組成員預設會被添加到每台域成員計算機的管理者組,是以也繼承了管理者組的權限;
企業系統管理者組(Enterprise Admins):是域森林根域中的一個組,該組成員在域森林的每個域内都是管理者組成員;
架構管理者組(Schema Admins):是域森林根域中的一個組,可以修改AD和域森林的模式;
域使用者組(Domain Users):所有域成員所在的組。