快轉到主要內容

立刻檢查您的 OpenSSH 版本!遠端未經授權代碼執行漏洞曝光

·1343 字·3 分鐘
Y Cheung
作者
Y Cheung
Blogger, Programer & Traveler.
目錄

2024年7月1日,Qualys 安全研究團隊發現了一個嚴重的 OpenSSH 服務器漏洞,命名為 『regreSSHion』1

1. regreSSHion漏洞的影響
#

這個漏洞的潛在影響是非常嚴重的。攻擊者可以在不需要任何身份驗證的情況下,在受影響的系統上執行任意代碼,獲得最高權限。這意味著他們可以完全控制系統,安裝惡意軟體、操縱數據,甚至建立持久的後門訪問。此外,他們還可以利用被入侵的系統作為跳板,橫向滲透到組織內部的其他系統。

2. 受到影響的OpenSSH 版本
#

根據 Qualys 的研究,這個漏洞是一個過去曾被修復的問題 (CVE-2006-5051) 的回歸,在 2020年10月的 OpenSSH 8.5p1 版本中被意外引入。受影響的 OpenSSH 版本範圍從 4.4p1 到 9.8p1之前的所有版本。

OpenSSH 版本 是否收到影響
version <4.4p1 🛑受影響,立即採取措施
4.4p1<= version <8.5p1 ✅不受影響
8.5p1<= version <9.8p1 🛑受影響,立即採取措施

3. 如何查看OpenSSH 版本
#

登入服務器,執行以下命令查看OpenSSH版本:

1sshd -V

或者

1ssh -V

你如果你的版本不受影響,那麼恭喜,你什麼都不需要做。比如查詢到的結果是:

1OpenSSH_8.2p1 Ubuntu-4ubuntu0.11, OpenSSL 1.1.1f  31 Mar 2020

4. 立即採取措施
#

如果你的OpenSSH版本是在受影響的範圍內,那麼面對這個嚴重的安全隱患,必須立即採取行動!也可以聯繫 Y Cheung ,我可以幫你檢測及處理~

4.1. 及時修補 OpenSSH 服務器
#

迅速將 OpenSSH 版本升級到 9.8p1 或更高版本,以修補該漏洞。

4.1.1. 在 Windows 系統如何升級 SSH ?
#

Windows 上常用的 SSH 客戶端軟體包括 PuTTY,可以直接從官網下載最新版本替換原有的版本。另外也可以使用套件管理器 Chocolatey 升級 PuTTY。

Windows 10 1803 版及以上也內建了 OpenSSH 客戶端,可以透過 Windows Update 或是PowerShell命令 Update-Help ssh 進行升級。

4.1.2. 在 Linux 系統如何升級 SSH ?
#

Linux 系統通常預設已安裝 OpenSSH 客戶端,可以使用套件管理器如 apt、yum 或 pacman 進行升級。例如:

1# Ubuntu/Debian
2sudo apt update && sudo apt upgrade openssh-client -y
3# Fedora/CentOS
4sudo yum update && sudo yum upgrade openssh-clients -y

4.1.3. 在 Mac 系統如何升級 SSH ?
#

Mac 系統同樣預設安裝 OpenSSH 客戶端,可以透過系統偏好設定中的軟體更新功能進行升級,或是使用套件管理器 Homebrew 執行 brew updatebrew upgrade openssh 進行升級。

4.2. 限制 SSH 訪問權限
#

透過網路訪問控制,儘量限制SSH服務的對外開放,減少攻擊面。

4.2.1. 限制 SSH 服務的開放端口
#

預設 SSH 服務通常在 22 號端口開放,可以將其變更為其他非標準端口,以降低被掃描發現的風險。

4.2.2. 配置 IP 訪問控制列表(ACL)
#

只允許特定 IP 地址或 IP 段訪問 SSH 服務,阻擋其他未授權的 IP 連接。也可以在防火牆或路由器上設置 ACL 規則來實現。

4.2.3. 啟用雙因素認證
#

除了公鑰驗證,還可以要求使用者輸入一次性密碼或其他二次驗證因素。

4.2.4. 啟用 SSH 連接會話超時
#

設置 SSH 會話的最大閒置時間,超時後自動斷開連接。

4.2.5. 限制 SSH 登錄用戶
#

僅允許指定的用戶或用戶組訪問 SSH 服務,阻擋其他未授權用戶。

4.2.6. 啟用 SSH 連接日誌記錄
#

記錄 SSH 連接日誌,以便監控和審計。

4.3. 加強網路分段和入侵檢測
#

將關鍵系統與網路進行隔離分段,並部署入侵檢測系統,監控異常活動。

4.4. 建立完整的補丁管理流程
#

確保所有系統都能及時獲得安全更新,不讓已修復的漏洞重新出現。

安全就像一場持續的戰役,需要全方位的防禦。此次安全事件再次提醒我們,必須時刻保持警惕,並建立完善的安全防禦體系,才能有效應對各種新興的網路安全威脅。讓我們共同努力,保護好我們的信息基礎設施!


  1. Bharat Jogi, “QualysregreSSHion: Remote Unauthenticated Code Execution Vulnerability in OpenSSH server”, https://blog.qualys.com/vulnerabilities-threat-research/2024/07/01/regresshion-remote-unauthenticated-code-execution-vulnerability-in-openssh-server ↩︎

相關文章

Cross-Origin Resource Sharing (CORS) 跨來源資源共用錯誤解決方法

·932 字·2 分鐘
最近Y cheung 遇到了兩個典型 CORS error問題,XMLHttpRequest 和 Fetch 請求了跨來源資源被瀏覽器阻擋,記錄一下解決方法。 什麼是Cross-Origin Resource Sharing (CORS) 跨來源資源共用? # Cross-Origin Resource Sharing (CORS) is an HTTP-header based mechanism that allows a server to indicate any origins (domain, scheme, or port) other than its own from which a browser should permit loading resources. CORS also relies on a mechanism by which browsers make a “preflight” request to the server hosting the cross-origin resource, in order to check that the server will permit the actual request. In that preflight, the browser sends headers that indicate the HTTP method and headers that will be used in the actual request.

獲取最新惡意爬蟲列表配置 Fail2ban Filter

·873 字·2 分鐘
安裝並設置好 Fail2ban 後(可以參考Y Cheung 之前寫的『Fail2ban 配置 Nginx filter』),可以看到在 /etc/fail2ban/filter.d/nginx-badbots.conf 內容如下: 1# /etc/fail2ban/filter.d/nginx-badbots.conf 2# Fail2Ban configuration file 3# 4# Regexp to catch known spambots and software alike. Please verify 5# that it is your intent to block IPs which were driven by 6# above mentioned bots. 7 8[Definition] 9 10badbotscustom = EmailCollector|WebEMailExtrac|TrackBack/1\.02|sogou music spider|(?:Mozilla/\d+\.\d+ )?Jorgee 11 12badbots = Atomic_Email_Hunter/4\.0|atSpider/1\.0|autoemailspider|bwh3_user_agent|China Local Browse 2\.6|ContactBot/0\.2|ContentSmartz|DataCha0s/2\.0|DBrowse 1\.4b|DBrowse 1\.4d|Demo Bot DOT 16b|Demo Bot Z 16b|DSurf15a 01|DSurf15a 71|DSurf15a 81|DSurf15a VA|EBrowse 1\.4b|Educate Search VxB|EmailSiphon|EmailSpider|EmailWolf 1\.00|ESurf15a 15|ExtractorPro|Franklin Locator 1\.8|FSurf15a 01|Full Web Bot 0416B|Full Web Bot 0516B|Full Web Bot 2816B|Guestbook Auto Submitter|Industry Program 1\.0\.x|ISC Systems iRc Search 2\.1|IUPUI Research Bot v 1\.9a|LARBIN-EXPERIMENTAL \(efp@gmx\.net\)|LetsCrawl\.com/1\.0 \+http\://letscrawl\.com/|Lincoln State Web Browser|LMQueueBot/0\.2|LWP\:\:Simple/5\.803|Mac Finder 1\.0\.xx|MFC Foundation Class Library 4\.0|Microsoft URL Control - 6\.00\.8xxx|Missauga Locate 1\.0\.0|Missigua Locator 1\.9|Missouri College Browse|Mizzu Labs 2\.2|Mo College 1\.9|MVAClient|Mozilla/2\.0 \(compatible; NEWT ActiveX; Win32\)|Mozilla/3\.0 \(compatible; Indy Library\)|Mozilla/3\.0 \(compatible; scan4mail \(advanced version\) http\://www\.peterspages\.net/?scan4mail\)|Mozilla/4\.0 \(compatible; Advanced Email Extractor v2\.xx\)|Mozilla/4\.0 \(compatible; Iplexx Spider/1\.0 http\://www\.iplexx\.at\)|Mozilla/4\.0 \(compatible; MSIE 5\.0; Windows NT; DigExt; DTS Agent|Mozilla/4\.0 efp@gmx\.net|Mozilla/5\.0 \(Version\: xxxx Type\:xx\)|NameOfAgent \(CMS Spider\)|NASA Search 1\.0|Nsauditor/1\.x|PBrowse 1\.4b|PEval 1\.4b|Poirot|Port Huron Labs|Production Bot 0116B|Production Bot 2016B|Production Bot DOT 3016B|Program Shareware 1\.0\.2|PSurf15a 11|PSurf15a 51|PSurf15a VA|psycheclone|RSurf15a 41|RSurf15a 51|RSurf15a 81|searchbot admin@google\.com|ShablastBot 1\.0|snap\.com beta crawler v0|Snapbot/1\.0|Snapbot/1\.0 \(Snap Shots&#44; \+http\://www\.snap\.com\)|sogou develop spider|Sogou Orion spider/3\.0\(\+http\://www\.sogou\.com/docs/help/webmasters\.htm#07\)|sogou spider|Sogou web spider/3\.0\(\+http\://www\.sogou\.com/docs/help/webmasters\.htm#07\)|sohu agent|SSurf15a 11 |TSurf15a 11|Under the Rainbow 2\.2|User-Agent\: Mozilla/4\.0 \(compatible; MSIE 6\.0; Windows NT 5\.1\)|VadixBot|WebVulnCrawl\.unknown/1\.0 libwww-perl/5\.803|Wells Search II|WEP Search 00 13 14failregex = ^<HOST> -.*"(GET|POST|HEAD).*HTTP.*"(?:%(badbots)s|%(badbotscustom)s)"$ 15 16ignoreregex = 17 18datepattern = {^LN-BEG}%%ExY(?P<_sep>[-/.])%%m(?P=_sep)%%d[T ]%%H:%%M:%%S(?:[.,]%%f)?(?:\s*%%z)? 19 ^[^\[]*\[({DATE}) 20 {^LN-BEG} 21 22# DEV Notes: 23# List of bad bots fetched from http://www.user-agents.org 24# Generated on Thu Nov 7 14:23:35 PST 2013 by files/gen_badbots. 25# 26# Author: Yaroslav Halchenko 如果沒有找到這個文件,請新建一個,或者將 apache-badbots.conf 拷貝並重命名。

IPTABLES 封鎖 IP 黑名单

·271 字·1 分鐘
在服務器上增加 iptables chain # 1iptables -N black_ip_list 2iptables -I INPUT -p tcp -m multiport --dports 80,443 -j black_ip_list 新建 bash 文件 banip.sh # 在這個文件中,首先清空 black_ip_list 中的規則, 然後從 mitchellkrogza/nginx-ultimate-bad-bot-blocker 中獲取最新的IP BLACKLIST 列表,循環每一個IP地址,將其設為拒絕請求。

Fail2ban 配置 Nginx filter

·639 字·2 分鐘
簡要紀錄一下目前服務器上的 fail2ban 關於 nginx 的 filter 配置。 惡意爬蟲過濾器 # 1# /etc/fail2ban/filter.d/nginx-badbots.conf 2[Definition] 3 4badbotscustom = Sogou web spider|DotBot|AhrefsBot|Baiduspider|PetalBot|WOW64|Daum|Barkrowler|360Spider|Buck|Photon|SEOkicks|magpie-crawler|SemrushBot|SeznamBot|MJ12bot|EmailCollector|WebEMailExtrac|TrackBack/1\.02|sogou music spider|(?:Mozilla/\d+\.\d+ )?Jorgee 5 6badbots = Atomic_Email_Hunter/4\.0|atSpider/1\.0|autoemailspider|bwh3_user_agent|China Local Browse 2\.6|ContactBot/0\.2|ContentSmartz|DataCha0s/2\.0|DBrowse 1\.4b|DBrowse 1\.4d|Demo Bot DOT 16b|Demo Bot Z 16b|DSurf15a 01|DSurf15a 71|DSurf15a 81|DSurf15a VA|EBrowse 1\.4b|Educate Search VxB|EmailSiphon|EmailSpider|EmailWolf 1\.00|ESurf15a 15|ExtractorPro|Franklin Locator 1\.8|FSurf15a 01|Full Web Bot 0416B|Full Web Bot 0516B|Full Web Bot 2816B|Guestbook Auto Submitter|Industry Program 1\.0\.x|ISC Systems iRc Search 2\.1|IUPUI Research Bot v 1\.9a|LARBIN-EXPERIMENTAL \(efp@gmx\.net\)|LetsCrawl\.com/1\.0 \+http\://letscrawl\.com/|Lincoln State Web Browser|LMQueueBot/0\.2|LWP\:\:Simple/5\.803|Mac Finder 1\.0\.xx|MFC Foundation Class Library 4\.0|Microsoft URL Control - 6\.00\.8xxx|Missauga Locate 1\.0\.0|Missigua Locator 1\.9|Missouri College Browse|Mizzu Labs 2\.2|Mo College 1\.9|MVAClient|Mozilla/2\.0 \(compatible; NEWT ActiveX; Win32\)|Mozilla/3\.0 \(compatible; Indy Library\)|Mozilla/3\.0 \(compatible; scan4mail \(advanced version\) http\://www\.peterspages\.net/?scan4mail\)|Mozilla/4\.0 \(compatible; Advanced Email Extractor v2\.xx\)|Mozilla/4\.0 \(compatible; Iplexx Spider/1\.0 http\://www\.iplexx\.at\)|Mozilla/4\.0 \(compatible; MSIE 5\.0; Windows NT; DigExt; DTS Agent|Mozilla/4\.0 efp@gmx\.net|Mozilla/5\.0 \(Version\: xxxx Type\:xx\)|NameOfAgent \(CMS Spider\)|NASA Search 1\.0|Nsauditor/1\.x|PBrowse 1\.4b|PEval 1\.4b|Poirot|Port Huron Labs|Production Bot 0116B|Production Bot 2016B|Production Bot DOT 3016B|Program Shareware 1\.0\.2|PSurf15a 11|PSurf15a 51|PSurf15a VA|psycheclone|RSurf15a 41|RSurf15a 51|RSurf15a 81|searchbot admin@google\.com|ShablastBot 1\.0|snap\.com beta crawler v0|Snapbot/1\.0|Snapbot/1\.0 \(Snap Shots&#44; \+http\://www\.snap\.com\)|sogou develop spider|Sogou Orion spider/3\.0\(\+http\://www\.sogou\.com/docs/help/webmasters\.htm#07\)|sogou spider|Sogou web spider/3\.0\(\+http\://www\.sogou\.com/docs/help/webmasters\.htm#07\)|sohu agent|SSurf15a 11 |TSurf15a 11|Under the Rainbow 2\.2|User-Agent\: Mozilla/4\.0 \(compatible; MSIE 6\.0; Windows NT 5\.1\)|VadixBot|WebVulnCrawl\.unknown/1\.0 libwww-perl/5\.803|Wells Search II|WEP Search 00 7 8failregex = ^<HOST> -.*"(GET|POST|HEAD).*HTTP.*"*(?:%(badbots)s|%(badbotscustom)s).*"$ 9 10ignoreregex = 11 12datepattern = {^LN-BEG}%%ExY(?P<_sep>[-/.])%%m(?P=_sep)%%d[T ]%%H:%%M:%%S(?:[.,]%%f)?(?:\s*%%z)? 13 ^[^\[]*\[({DATE}) 14 {^LN-BEG} 15 16/etc/fail2ban/filter.d/nginx-badbots.conf 自定義規則 # 1# /etc/fail2ban/filter.d/nginx-custom.conf 2[Definition] 3failregex = ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+XDEBUG.+$ 4 ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+GponForm.+$ 5 ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+phpunit.+$ 6 ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+ajax-index\.php .+$ 7 ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+sellers\.json .+$ 8 ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+adminer\.php .+$ 9 ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+wp-configuration\.php.+$ 10 ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+ThinkPHP.+$ 11 ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+wp-config.+$ 12 ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+dede\/login\.php .+$ 13 ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+plus\/recommend\.php .+$ 14 ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+e\/install\/index.php .+$ 15 ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+m\/e\/install\/index\.php .+$ 16 ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+e_bak\/install\/index.php .+$ 17 ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+\.aspx .+$ 18 ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+\.act .+$ 19 ^<HOST>.*] "(GET|POST|HEAD) .*xmlrpc\.php.* 20 ^<HOST> -.*"(GET|POST|HEAD).*HTTP\/1\.1.*"*.Mozilla/5\.0 \(Windows NT 6\.1\; rv\:60\.0\) Gecko\/20100101 Firefox\/60\.0.*"$ 21 ^<HOST> -.*"(GET|POST|HEAD).*HTTP\/1\.1.*"*.Photon.*"$ 22 ^<HOST> -.*"(GET|POST|HEAD).*HTTP\/1\.1.*"*.Mozilla\/5\.0 zgrab\/0\.x.*"$ 23 ^<HOST> -.*"(GET|POST|HEAD).*HTTP\/1\.1.*"*.XTC.*"$ 24 ^<HOST> -.*"(GET|POST|HEAD).*HTTP\/1\.1.*"*.python-requests.*"$ 25 ^<HOST> -.*"(GET|POST|HEAD).*HTTP\/1\.1.*"*.bidswitchbot.*"$ 26 ^<HOST> -.*"(GET|POST|HEAD).*HTTP\/1\.1.*"*.Google-adstxt.*"$ 27 ^<HOST> -.*"(GET|POST|HEAD).*HTTP\/1\.1.*"*.Apache-HttpClient.*"$ 28 ^<HOST>.*] "POST .*HTTP\/1\.1.* 29 ^<HOST> -.*"(GET|POST|HEAD).*HTTP\/1\.1.*"*.Go-http-client\/1\.1.*"$ 30 ^<HOST> .* ".*\\x.*" .*$ 31 ^<HOST> -.*"(GET|POST|HEAD) .+wp-login\.php .*HTTP\/1\.1.* 32 ^<HOST> -.*"(GET|POST|HEAD) .*wp-includes/wlwmanifest.xml .*HTTP\/1\.1.* 33ignoreregex = ^<HOST>.*] "POST /xmlrpc\.php\?for=jetpack.* 34 ^<HOST>.*] "POST /wp-cron\.php\?doing_wp_cron=.* 35datepattern = {^LN-BEG}%%ExY(?P<_sep>[-/.])%%m(?P=_sep)%%d[T ]%%H:%%M:%%S(?:[.,]%%f)?(?:\s*%%z)? 36 ^[^\[]*\[({DATE}) 37 {^LN-BEG} 簡要說明一下:

修復SSL_do_handshake() failed 錯誤

·463 字·1 分鐘
最近WP網站遇到了詭異的問題,Jetpack 的統計數據與 Google Analytics 上的不一致,wordpress.com 面板上又顯示無法訪問這個站點,但是 Y Chueng 用瀏覽器打開網站又正常,很奇怪。然後本應該在昨日計劃發佈的 Post 沒有被發佈。太奇怪了。