笔記均來源《內網安全攻防 - 滲透測試實戰指南》
工作組#
工作組像一個自由加入和退出的社團,沒有集中管理作用,工作組裡的所有計算機都是對等的。
域#
場景:200 台計算機的 SAM 數據庫擁有 Alan 這個賬戶,突然 Alan 想要更換密碼,必須進行 200 次更換密碼的操作,但是有域更改一次密碼即可。
域是一個有安全邊界的計算機集合(一個域無法訪問另一個域的資源)。用戶想要訪問域內的資源,必須以合法的身份登錄域,而用戶對域內的資源擁有什麼權限,還取決於用戶在域內的身份。
單域#
應用於地理位置固定的小公司
也就是說只有一個域,在一個域內,一般有至少兩台域伺服器,一台作為 DC,一台作為備份 DC,進行災備。
父域和子域#
一個大公司的各個分公司位於不同的地點
多個域,第一個域稱為父域,各分部的域稱為子域
分公司可以通過自己的域管理自己的資源,出於安全策略的考慮
域樹#
域樹是多個域通過建立信任關係組成的集合,如果兩個域之間需要互訪,則需要建立信任關係。
域樹內的父域與子域可以按照需要互相管理,還可以跨網絡分配文件和打印機等設備及資源
域森林#
運用後來兼併的公司
多個域樹通過建立信任關係組成的集合,可以保留被兼併公司自身原有的特性。
域控制器(DC)#
域中的一台類似管理伺服器的計算機。DC 擁有這個域的賬戶、密碼等信息構成的數據庫。
- DC 的作用
- 負責所有連入的計算機和用戶的驗證工作
- 域內的計算機互訪,也要經過 DC 的審核
- 計算機連接到域時的條件
- 鑑別這台計算機是否屬於這個域
- 用戶使用的登錄賬戶、密碼是否正確
域名伺服器(DNS)#
實現域名和與之對應的 IP 地址轉換的伺服器,域樹中的域名和 DNS 域名非常相似,實際上域中的計算機是使用 DNS 來定位域控制器、伺服器及其他計算機、網絡服務的。域的名字就是 DNS 域的名字,DNS 伺服器和域控制器通常配置在同一台機器上
活動目錄(AD)P5#
指域環境中提供目錄服務的組件。活動目錄存儲的是網絡中所有資源的 “快捷方式”,域樹內的所有域共享一個活動目錄,這個活動目錄內的數據分散存儲在各個域中,且每個域只存儲該域內的數據。
主要功能:
-
賬號集中管理:所有賬號均存儲在伺服器中,以便執行命令和重置密碼等。
-
軟件集中管理:統一推送軟件、安裝網絡打印機等。利用軟件發布策略分發軟件,可以讓用戶自由選擇需要安裝的軟件。
-
環境集中管理:統一客戶端桌面、IE、TCP/IP 協議等設置。
-
增強安全性:統一部署殺毒軟件和病毒掃描任務、集中管理用戶的計算機權限、統一制定用戶密碼策略等。可以監控網絡,對資料進行統一管理。
-
更可靠,更短的宕機時間:例如,利用活動目錄控制用戶訪問權限,利用集群、負載均衡等技術對文件伺服器進行容災設置。網絡更可靠,宕機時間更短。
活動目錄是微軟提供的統一管理基礎平台,ISA、Exchange、SMS 等都依賴這個平台。
DC 和 AD 區別 P6#
活動目錄數據庫,簡稱AD 庫
要實現域環境,要安裝 AD,如果一台計算機上安裝了 AD,它就變成了 DC(用於存儲活動目錄數據庫的計算機)
安全域的劃分#
劃分安全域的目的是將一組安全等級相同的計算機劃入同一個網段。
在一個用路由器連接的內網中,可以將網絡劃分為三個區域:安全級別最高的內網;安全級別中等的 DMZ; 安全級別最低的外網 (Internet)。這三個區域負責完成不同的任務,因此需要設置不同的訪問策略。
DMZ#
DMZ 稱為隔離區,是為了解決安裝防火牆後外部網絡不能訪問內部網絡伺服器的問題而設立的一個非安全系統與安全系統之間的緩衝區。DMZ 位於企業內部網絡和外部網絡之間。可以在 DMZ 中放置一些必須公開的伺服器設施,例如企業 Web 伺服器、FTP 伺服器和論壇伺服器等。DMZ 是對外提供服務的區域,因此可以從外部訪問。
DMZ 網絡通常需要定義如下訪問控制策略
- 內網可以訪問外網:內網用戶需要自由地訪問外網。在這一策略中,防火牆需要執行 NAT。
- 內網可以訪問 DMZ: 此策略使內網用戶可以使用或者管理 DMZ 中的伺服器。
- 外網不能訪問內網:這是防火牆的基本策略。內網中存儲的是公司內部數據,顯然,這些數據一般是不允許外網用戶訪問的(如果要訪問,就要通過 VPN 的方式來進行)。
- 外網可以訪問 DMZ: 因為 DMZ 中的伺服器需要為外界提供服務,所以外網必須可以訪問 DMZ。同時,需要由防火牆來完成從對外地址到伺服器實際地址的轉換。
- DMZ 不能訪問內網:如果不執行此策略,當攻擊者攻陷 DMZ 時,內網將無法受到保護。DMZ 不能訪問外網:此策略也有例外。例如,在 DMZ 中放置了郵件伺服器,就要允許訪問外網,否則郵件伺服器無法正常工作。
內網#
可以分為辦公區
和核心區
- 辦公區:公司員工日常的工作區,一般會安裝防病毒軟件、主機入侵檢測產品等。辦公區一般能夠訪問 DMZ。如果運維人員也在辦公區,那麼部分主機也能訪問核心數據區(很多大企業還會使用堡壘機來統一管理用戶的登錄行為)。攻擊者如果想進入內網,一般會使用魚叉攻擊、水坑攻擊,當然還有社會工程學手段。辦公區人員多而雜,變動也很頻繁,在安全管理上可能存在諸多漏洞,是攻擊者進入內網的重要途徑之一。
- 核心區:存儲企業最重要的數據、文檔等信息資產,通過日誌記錄、安全審計等安全措施進行嚴密的保護,往往只有很少的主機能夠訪問。從外部是絕難直接訪問核心區的。一般來說,能夠直接訪問核心區的只有運維人員或者 IT 部門的主管,所以,攻擊者會重點關注這些用戶的信息(攻擊者在內網中進行橫向移動攻擊時,會優先查找這些主機)。
域中計算機分類#
- 域控制器
存儲所有賬戶信息和安全策略,管理所有網絡訪問
- 成員伺服器
安裝了伺服器操作系統並加入了域、但沒有安裝活動目錄的計算機,主要任務提供網絡資源
例如,文件伺服器、應用伺服器、數據庫、Web 伺服器、郵件伺服器、打印伺服器等
- 客戶機
安裝了其他操作系統的計算機,用戶利用這些計算機和域中賬戶就可以登錄域。
- 獨立伺服器
沒有加入域也沒安裝 AD,不能使用 AD 提供的任何服務。
他可以成為 DC 也可以成為成員伺服器
域內權限解讀 P9(以後再舉例子)#
組是用戶賬號的集合。通過向一組用戶分配權限,就可以不必向每個用戶分別分配權限,簡化網絡維護和管理工作
域本地組#
主要授予本域內資源訪問的權限。域本地組不能嵌套在其他組。
P11 比較重要的域本地組權限介紹
全局組#
單域用戶訪問多域資源,全局組可以嵌套在其他組。
通用組#
適合在域森林內跨域訪問中使用,通用組的成員不是保存在各自的域控制器中,而是保存在全局編錄(GC)中,任何變化都會導致全林複製
簡單記憶#
域本地組來自全林,作用於本域;全局組來自本域,作用於全林;通用組來自全林,作用於全林。
A-G-DL-P 策略#
- A 表示用戶賬號 (Account)。
- G 表示全局組 (Global Group)。
- U 表示通用組( Universal Group )。
- DL 表示域本地組 (Domain Local Group)。
- Р表示資源權限 (Permission,許可)。
按照 A-G-DL-P 策略對用戶進行組織和管理是非常容易的。在 A-G-DL-P 策略形成以後,當需要給一個用戶添加某個權限時,只要把這個用戶添加到某個本地域組中就可以了。
內置組#
P10
虛擬機#
網絡適配器#
橋接模式#
使用 wifi 或物理網卡段的 IP,相當於虛擬機和主機插在同一個交換機上。
NAT 模式#
使用虛擬網卡(VMware 8)的 IP,虛擬機能夠訪問主機所在局域網內所有同網段的計算機。但是,除了主機,局域網內的其他計算機都無法訪問虛擬機(因為不能在網絡中共享資源)。
Host-only 模式#
Host-only 虛擬網絡是最私密和最嚴格的網絡配置,虛擬機處於一個獨立的網段中。與 NAT 模式比較可以發現,在 Host-only 模式下虛擬機是無法上網的。但是,在 Host-only 模式下可以通過 Windows 提供的連接共享功能實現共享上網,主機能與所有虛擬機互訪(就像在一個局域網內一樣實現文件共享等功能)。如果沒有開啟 Windows 的連接共享功能,那麼,除了主機,虛擬機與主機所在局域網內的所有其他計算機之間都無法互訪。
在搭建滲透測試環境時,推薦使用 Host-only 模式來配置網絡適配器。
Windows PowerShell 基礎#
流行且得力的安全測試工具,前提需要.NET 環境的支持
特點#
- 在 Windows 7 以上版本的操作系統中是默認安裝的。腳本可以在內存中運行,不需要寫入磁碟。
- 幾乎不會觸發殺毒軟件。
- 可以遠程執行。
- 目前很多工具都是基於 PowerShell 開發的。
- 使 Windows 腳本的執行變得更容易。cmd.exe 的運行通常會被阻止,但是 PowerShell 的運行通常不會被阻止
- 可用於管理活動目錄。
查看 ps 版本
get-host
PowerShell 基本概念#
.ps1 文件#
powershell 腳本就是一個簡單的文本文件。擴展名為.ps1
,裡面包含一系列的 powershell 命令。
執行策略#
默認情況下,這個執行策略被設置為 “不能運行”。
查看執行策略
get-executionPolicy
- Restricted: 腳本不能運行(默認設置)。
- RemoteSigned: 在本地創建的腳本可以運行,但從網上下載的腳本不能運行 (擁有數字證書簽名的除外)。
- AllSigned: 僅當腳本由受信任的發布者簽名時才能運行。.
- Unrestricted: 允許所有腳本運行。
可以使用下面的 cmdlet 命令設置 PowerShell 的執行策略。
Set-ExecutionPolicy <policy name>
运行脚本#
輸入完整的路徑和文件名
powershell 下
PS C:\Users\xuhaizhao> C:\Users\xuhaizhao\Desktop\1.ps1
cmd 下
C:\Users\xuhaizhao>powershell C:\Users\xuhaizhao\Desktop\1.ps1
管道#
管道的作用是將一個命令的輸出作為另一個命令的輸入,兩個命令之間用 “|” 連接。我們通過一個例子來了解一下管道是如何工作的。執行如下命令,讓所有正在運行的、名字以字符 “p” 開頭的程序停止運行。
PS> get-process p* | stop-process
powershell 命令#
P18
搭建域環境 P23#
- Windows Server 2012 R2:192.168.1.1。(DC)
- Windows Server 2008 R2:192.168.1.2。.
- Windows 7: 192.168.1.3。
WIN2012#
配置網卡信息#
DNS:192.168.1.1