《網絡攻防實踐》第七週做業

教材學習總結

Windows操做系統的基本結構

  • Windows操做系統內核的基本模塊
    • Windows執行體
    • Windows內核體
    • 設備驅動程序
    • 硬件抽象層
  • Windows窗口與圖形界面接口內核實現代碼
    • Windows操做系統在用戶態的代碼模塊
    • 系統支持進程
    • 環境子系統服務進程
    • 服務進程
    • 用戶應用軟件
    • 核心子系統DLL
  • Windows操做系統內核中的核心機制
    • Windows進程和線程管理機制
    • Windows內存管理機制
    • Windows文件管理機制(NTFS)
    • Windows註冊表管理機制
    • Windows的網絡機制
      結構圖:

Windows操做系統的安全體系結構與機制

  • Windows安全體系結構

Windows操做系統基於引用監控器模型來實現基本的對象安全模型。系統中全部主體對客體的訪問都經過引用監控器做爲中介,由引用監控器根據安全訪問控制策略來進行受權訪問,全部訪問記錄也都由引用監控器生成審計日誌。html

Windows操做系統實現基礎的安全機制,其中最核心的是位於內核的SRM安全引用監控器,以及位於用戶態的LSASS安全服務,它們與Winlogon/Netlogon及Eventlog等服務一塊兒,實現了對主體用戶的身份認證機制,對全部資源對象的訪問控制機制,以及對訪問的安全審計機制。python

  • Windows身份認證機制

Windows操做系統中以安全主體概念來包含全部進行系統資源訪問請求的實體對象,有用戶、用戶組和計算機三大類,對於每一個安全主體,以時間和空間上都全局惟一的SID安全標識符來進行標識。帳戶權限的根本做用就是限制這些帳戶內運行程序對系統資源對象的訪問。git

Windows系統中擁有一些內建帳戶,如擁有最高權限的本地Administrator帳戶,做爲自動運行系統進程環境的SYSTEM/LocalSystem帳戶,具備相對極少權限的Guest匿名訪問用戶,以及IUSR_Machinename IIS服務的匿名網絡訪問帳戶等。而這些帳戶在黑客眼中,本地Administrator和SYSTEM帳戶擁有最高的權限,是他們攻擊的終極目標。github

Windows系統的內建用戶組包括:本地最高權限用戶組Administrators、具備單一方面系統權限的Account/Backup/Server/Print Operators等操做組、用於容納服務帳戶的Network Service與Local Service用戶組,以及全部用戶帳戶所在的Users組等。 Windows用戶帳戶的口令字通過加密處理以後被保存於SAM或者活動目錄AD中,其中本地用戶帳戶口令信息通過不可逆的128位隨機密鑰Hash加密後存儲在SAM文件中,SAM存儲於%systemroot%\system32\config\sam文件系統路徑位置,並在註冊表的HKEY_LOCAL MACHINE\SAM存有副本。web

Windows域帳戶口令信息則保存在域控制器的活動目錄AD中,加密方式與單機平臺一致,存儲文件系統位置是域控制器的%systemroot%\ntds\ntds.dit路徑。sql

Windows支持本地身份認證和網絡身份認證兩種方式,分別對在本地系統登陸和遠程網絡訪問的主主體進行合法性驗證。網絡身份認證過程由LSASS服務的Netlogon模塊主導完成。shell

Windows進程、GINA圖形化登陸窗口,與LSASS服務經過協做來完成本地身份認證過程。數據庫

  • Windows受權與訪問控制機制

Windows受權與訪問控制機制是基於引用監控器模型,由內核中的SRM模塊與用戶態的LSASS服務共同來實施。在Windows服務器操做系統中,用戶能夠執行內建的whoami命令來查看當前用戶的訪問令牌信息。Windows對於系統中全部需保護的資源都抽象成對象,具體類型包括文件、目錄、註冊表鍵值、內核對象、同步對象、私有對象、管道、內存、通訊接口等,而對每一個對象會關聯一個SD安全描述符。windows

windows遠程安全攻防技術

1.包括遠程口令猜解攻擊、windows網絡服務攻擊,windows客戶端和用戶攻擊。api

2.生命週期:

  • windows安全漏洞發現,利用與修補過程
  • 安全漏洞公開披露信息庫:CVE,NVD,SecyrityFocus,OSVDB
  • 針對特定目標的滲透測試攻擊過程:漏洞掃描測試、查找針對發現漏洞的滲透代碼、實施滲透測試
  • 使用metasploit軟件實施滲透測試:用戶接口(CLI、Console,web,GUI)

3.遠程口令猜解攻擊:

  • 遠程口令猜解:SMB協議(tcp44五、tcp139),其餘包括WMI服務、TS遠程桌面終端服務,MY SQL數據庫服務、SharePoint。工具包括:Legion、enum、smbgrind、NTScan、XScan、流光
  • 遠程口令字交換通訊竊聽與破解:NTLM、Lanman、NTLMV2和kerberos網絡認證協議的弱點。
  • 遠程口令猜解的防範:關閉沒必要要的易受攻擊的網絡服務、配置主機防火牆來限制某些端口服務、網絡防火牆限制這些服務的訪問、禁用過期且有安全缺陷的Lanman和NTLM、指定強口令策略。

4.網絡服務遠程滲透攻擊:針對NETBIOS服務的著名漏洞和攻擊、針對SMB服務的著名漏洞和攻擊、針對MSRPC服務的著名漏洞和攻擊、針對windows系統上微軟網絡的遠程滲透攻擊、針對windows系統上第三方服務的遠程滲透攻擊。

防範措施:最基本的是儘可能避免與消除這些滲透攻擊所依賴的服務軟件安全漏洞。

Windows本地安全攻防技術

  • windows本地特權提高

受限用戶權限嘗試得到特權帳戶的攻擊技術也被稱爲特權提高,業內簡稱爲「提權」。Windows系統上進行特權提高的攻擊途徑主要是經過DLL注入和破解本地程序安全漏洞。

  • windows敏感信息竊取
    • Windows系統口令字密文提取技術
    • Windows系統口令字破解技術
    • 用戶敏感數據竊取
    • 本地敏感信息竊取
  • windows消蹤滅跡
    • 關閉審計功能
    • 清理事件日誌
    • 針對消蹤滅跡的防範措施
  • windows遠程控制與後門程序
    • 命令行遠程控制工具
    • 圖形化遠程控制工具
    • 針對後門程序的防範措施

視頻學習總結

漏洞利用之檢索與利用

searchsploit能夠藉助關鍵詞搜索漏洞信息以及漏洞對應的exp。
searchsploit wordpress列出了漏洞和文件地址。


漏洞利用之Metasploit基礎

Metasploitable在滲透測試中常常被用到,實際上這套軟件包括了不少工具,這些工具組成了一個完整的攻擊框架。
先使用命令service postgresql start開啓PostgreSQL數據庫服務,而後使用msfconsole開啓metasploit服務。

測試,首先使用nmap掃描目標主機開啓的服務,這裏選擇21號端口做爲攻擊目標:


使用search命令查找該服務對應的攻擊文件:


選擇一個攻擊文件用use命令啓動:


使用show options查看幫助,設置是須要設置的選項,這裏設置主機監聽端口和目標地址IP:


設置payload:


可使用msfpayload生成payload或者shellcode,也可使用預製的payload。
搜索的時候能夠用msfpayload -l |grep "windows"這樣的命令查詢。-o 選項能夠列出payload所需的參數。

漏洞利用之Meterpreter介紹

Meterpreter是metasploit框架中的一個擴展模塊,做爲溢出成功之後的攻擊載荷使用,攻擊載荷在溢出攻擊成功之後紿咱們返回一個控制通道。使用它做爲攻擊載荷可以得到目標系統的—個meterpretershell的連接。

打開MSF,開啓監聽(選擇exploit/multi/handler)。


在指定目錄,生成exe後門:



如今能夠將生成的exe文件保存到目標主機開始攻擊。

Metasploit後滲透測試

在跳板機獲取必定權限後,須要積極地向內網主機權限發展,獲取指定的目標信息,探查系統的漏洞,藉助Msf已經獲得的Meterpreter後門,可使後續操做更容易。

  • 查看當前網卡、網段信息 先控制一臺跳板機,查看相關網卡網段信息
  • 添加路由表 run autoroute -s 10.0.0.1
  • 開Socks代理 經過使用 auxiliary/sever/socks4a模塊,建立一個Socks代理,能夠做爲瀏覽器,Sqlmp,Namp等使用。
  • 經過Background和sessions -i能夠自由切換進入Session
  • 輸入run能夠看到Meterpreter上能夠作的不少命令
  • 獲取內網信息run arp_scanner -r 10.0.0.1/24
  • 也可上傳文件,作端口轉發後續測試
  • 應用程序/權限維持/Tunnel工具集
  • 端口轉發 upload lcx.exe c:

漏洞利用之BeeF

在Kali下,BeeF是一個不遜色於XSS平臺的工具。Beef是瀏覽器攻擊框架的簡稱,是一款專一於瀏覽器端的滲透測試工具。官網http://beefproject.com/

命令行下啓動Beef:


輸入用戶名和密碼登陸:


主界面:


咱們假設被測試主機因爲XSS漏洞請求到頁面http://127.0.0.1:3000/demod/basic.html,這是一個測試頁面,若是經過XSS把該頁面加入頁面請求中,也就是說每一個訪問某個頁面的人都會訪問該頁面,則訪問者就會被BeEF hook 到,即加入到 Online Browsers中。


能夠查看詳細信息:


HOOK持續的時間爲關閉測試頁面爲止,在此期間,至關於被控制了,能夠發送攻擊命令(js代碼)。

咱們以MISC下的Raw JavaScript模塊爲例進行測試,右端輸入 Javascript code 給目標彈出窗口,點擊Excute進行攻擊。


被攻擊方顯示以下:


BeFF還有Proxy功能,右鍵目標主機:


來到以下界面:


點擊send,在history中能夠查看歷史:


以上就是依賴目標作一個代理,而後請求一個特定頁面的過程。BeEF還可以配合Metasploit進一步滲透主機。BeEF 默認不加載 Metasploit,若是要使用 Metasploit 豐富的攻擊模塊,須要作如下配置:

  1. 進入目錄/usr/share/beef-xss/,修改 config.yaml 文件,將metasploit設置爲true。
  2. 進入目錄/usr/share/beef-xss/extensions/metasploit,修改 config.yaml 文件,host和callback_host設置成本機IP地址,而後再修改Custom路徑便可。
  3. 打開msfconsole,輸入命令load msgrpc ServerHost=192.168.199.162 Pass=abc123
  4. 進入目錄/usr/share/beef-xss/,執行./beef -x命令,從新加載metasploit模塊。
  5. service beef-xss start命令重啓服務,而後從新登錄 BeEF,metasploit下增長了不少可使用的模塊,如今就可使用metasploit的模塊進行攻擊了。

教材實踐內容

課上已完成

Black Hat Python3 chapter 六、9

第六章代碼用到的Jyphon包不支持python3版本,所以本次代碼均使用書中原版代碼(小幅修改)。

模糊測試

首先配置好jyphon包的路徑,以後將bhp_fuzz.py文件加入到工具:


模擬運行結果以下:


BING API 反查域名

成功添加該工具:


運行結果:


能夠看到並無查詢獲得結果。首先bing search API的網址已經變了,如今網址爲:https://api.cognitive.microsoft.com/bing/v7.0/

其次,新版的API已經取消了該搜索功能(至少我是沒找到,在bing搜索中按照IP:XXX.XXX.XXX.XXX的方式也得不到有效結果,結果爲Ref A: 2EBF0909B997498C843D95CDC73B2946 Ref B: BJ1EDGE0307 Ref C: 2019-04-12T01:19:46Z),所以經過本擴展實現反查域名已經不可行了。須要另求它法。

生成字典

首先由host地址發現拓撲結構:


生成字典:


結果以下:


好兄弟IE

IE瀏覽器是目前市場佔有率最高的瀏覽器,爲了在ie瀏覽器完成此實驗,不得不重裝一個win7虛擬機進行此實驗。此部分代碼使用python3重寫。

書中讓我觀察瀏覽器是否有難以理解的動做,確實有,當我進入程序中target_site中的登陸界面後,或者我自己就在登陸狀態,瀏覽器會不停的刷新回輸入帳戶的界面···



其實是try部分轉爲python3後出錯了,沒有錯誤提示,改正後運行結果以下:

html標籤中沒有id怎麼辦

本代碼要求比較複雜,首先須要使用keygen.py生成RSA公私鑰對,而後使用ie_exfil.py將明文文件名加密後在目標網站以標題的形式發出,以後還能夠用decryptor.py解密。

在修改過程當中其餘的不談,原程序使用win32com這個包來進行瀏覽器操做,對於目標網站來講存在如下幾個問題:

  • win32com使用id來尋找網頁中的標籤,可是目標網站中咱們須要插入數據的地方沒有id

  • win32com在插入數據時使用setAttribute來進行修改,問題在於從網頁返回的實例中難以得到有哪些attribute,屢次使用dir()命令也沒有獲得什麼有效信息

所以在個人視角中使用書中的win32com包來完成這項工做幾乎是不可能的。

所以我用selenium包重寫了這個程序,在程序連接中命名爲ie_exfil_new.py。更換工具包後一切都變得簡單了起來,運行結果以下:

仍須要注意的是,selenium操做瀏覽器須要下載對應瀏覽器的驅動文件,在64位的iedriver中存在bug,在想IE11瀏覽器中輸入英文字母和數字時會很是緩慢,大約5s才能輸入一個字符。

據悉對IE瀏覽器進行降級或者換用32位的驅動能夠解決這個問題,可是我將IE11降級爲IE10後依然存在這個問題,也有多是iedriver和selenium版本不匹配的問題?我只是單純的下載了最新版沒有注意版本是否對應。不過具體怎樣其實也不重要了,由於selenium只要有對應瀏覽器的驅動,能夠操做任何瀏覽器,誰還會去用集萬千缺點於一身的IE呢?

代碼連接

Black Hat Python3

相關文章
相關標籤/搜索