DDOS 編年史:應對 WordPress Bot 的 XMLRPC 攻擊
已發表: 2019-04-08兩天前,我們的一個客戶網站 Nettsted Limited 遇到了困難。 我們通常不向我們的客戶提供技術支持,但不幸的是我們客戶的託管服務沒有為她提供任何支持。 由於我們感到有責任幫助她,我們決定對殭屍網絡攻擊採取行動。 我們在攻擊過程中遇到了機器人的奇怪行為。 我將在此頁面上逐小時提及發生的事情以及我們為保護客戶網站所做的行動。
DDOS攻擊的開始:攻擊者識別自己
由於我是 Nettsted Limited 的所有者,我每天工作 16-18 小時為我們的客戶提供支持。 我們有來自世界各地的不同客戶,所以我需要在不同的時區保持清醒。 幾個月後,我首先想看電影,和家人一起玩。 不幸的是,這是我職業生涯中最糟糕的日子之一。 看完電影,我們決定休息一下。 然而,一個看不見的東西戳了我一下,告訴我“嘿! 你必須看看你的作品然後睡覺”。 是的……這些是我在工作中缺席 5 小時時發生的事情:
- 我的一位客戶刪除了 SEO 插件,刪除了網站的所有描述和標題。 他還破壞了網站的鏈接結構。
- 另一個客戶端刪除了我們安裝的一些與 SEO 相關的插件。 更改了緩存的設置,並以某種方式破壞了所有 .js 和 .css 文件。
- 我的一位客戶受到 DDOS 攻擊,她只是看著她的網站崩潰。
當我加入 WhatsApp 和 Skype 時,在那 5 個小時裡我看到了很多抱怨。 30% 的句子只是“你在哪裡?!”。
我的客戶告訴我,他通過 WhatsApp 收到了一條消息。 攻擊者用電話號碼表明了自己的身份,並告訴我的客戶他要攻擊她。 這聽起來確實很愚蠢,但他確實做到了……當我回到工作崗位時,攻擊已經開始了。
第 1 天-) 對攻擊採取第一行動
這些是我們得到的攻擊的一些日誌:
103.9.156.249 - - [07/Apr/2019:01:19:02 +0100] "GET / HTTP/1.0" 200 73651 "-" "WordPress/4.1.1; ; verifying pingback from 93.174.93.163"
199.223.214.148 - - [07/Apr/2019:01:19:03 +0100] "GET / HTTP/1.0" 200 13194 "-" "WordPress/3.3.1; http://www.mentalic.gr"
216.240.176.141 - - [07/Apr/2019:01:19:02 +0100] "GET / HTTP/1.0" 200 73651 "-" "WordPress/4.0;
104.236.33.158 - - [07/Apr/2019:01:19:02 +0100] "GET / HTTP/1.0" 200 73651 "-" "WordPress/4.1.1; http://pmsearchpartners.com; verifying pingback from 93.174.93.163"
149.210.236.96 - - [07/Apr/2019:01:19:02 +0100] "GET / HTTP/1.0" 200 73651 "-" "WordPress/3.9.27; http://imageconsultant.mu/; verifying pingback from 149.210.236.96"
185.87.249.33 - - [07/Apr/2019:01:19:02 +0100] "GET / HTTP/1.0" 200 73651 "-" "WordPress/4.1;
158.69.26.84 - - [07/Apr/2019:01:19:02 +0100] "GET / HTTP/1.0" 200 73651 "-" "WordPress/3.9.2; http://teensystudios.com; verifying pingback from 93.174.93.163"
103.233.76.243 - - [07/Apr/2019:01:19:02 +0100] "GET / HTTP/1.0" 200 73651 "-" "WordPress/4.1.26; http://help.worldmart.in; verifying pingback from 93.174.93.163"
203.175.180.254 - - [07/Apr/2019:01:19:02 +0100] "GET / HTTP/1.0" 200 73651 "-" "WordPress/4.1.1; http://www.cybertechriskcenter.com; verifying pingback from 93.174.93.163"
199.223.214.148 - - [07/Apr/2019:01:19:03 +0100] "GET / HTTP/1.0" 200 13194 "-" "WordPress/3.3.1; http://www.mentalic.gr"
68.71.60.249 - - [07/Apr/2019:01:19:02 +0100] "GET / HTTP/1.0" 200 73651 "-" "WordPress/4.1.26; http://www.itunesalternative.org; verifying pingback from 93.174.93.163"
66.55.132.6 - - [07/Apr/2019:01:19:02 +0100] "GET / HTTP/1.0" 200 73651 "-" "WordPress/3.8.16;
163.172.103.45 - - [07/Apr/2019:01:19:02 +0100] "GET / HTTP/1.0" 200 73651 "-"

在日誌中,您可以看到攻擊來自 WordPress 用戶代理。 然而,其中一些攻擊也是在沒有代理的情況下發生的。 我檢查了所有那些被引用的網站,它們都是過時和廢棄的網站。 有一個 IP 在所有日誌中幾乎相同,另外還有 2 個。 93.174.93.163 是荷蘭 IP,但我相信是服務器/主機正在為我們準備殭屍網絡攻擊。 其他 2 個 IP 也是荷蘭 IP。
由於關於攻擊的“驗證 pingback”通知太多,我認為他正在使用 pingbacks 和 xmlrpc.php 進行攻擊。
我對攻擊的第一反應是更改 xmlrpc.php 的名稱,然後將其完全刪除並從 WordPress 設置中刪除 pingback 。
結果:它甚至沒有減慢攻擊速度。
由於我沒有從第一個動作中得到任何好的結果,我決定從文件中刪除 WordPress 的 xmlrpc.php 文件。 然而它仍然沒有幫助。
然而,它已經證明它有助於某種 DDOS 攻擊。 如果您也面臨這種情況,您也可以嘗試一下。
第 1 天-) 第一反應:利用本地化優勢
現在你要告訴我為什麼我不使用 cloudflare。 CF 需要時間來設置,名稱服務器的更改有時真的很痛苦。 所以我想減慢攻擊速度,但我也為網站設置了 cloudflare。 更改了名稱服務器。 攻擊很嚴重,對I/O、帶寬等的使用造成了嚴重的破壞。 我相信他們是 2-3 個人從不同的服務器進行攻擊。 我客戶的網站每天賺取 1000 美元,這對他來說是一個嚴重的問題。 網站關閉了大約 6 小時。
由於該站點是本地站點,因此我決定設置一個 htaccess。 我需要丹麥的所有 IP 地址。 在網站的幫助下,我設法找到了所有丹麥 IP。 我會暫時關閉所有外國流量的網站。 我創建了一個 htaccess 文件並阻止了該網站的所有外國流量。
結果:這是一個很好的暫時結果。 現在所有惡意機器人都達到了 403 頁。 然而壞消息。 谷歌機器人也達到了 403。 由於漫遊器流量主要來自美國,因此我沒有為美國或 Google 漫遊器 IP 進行任何設置。 由於在名稱服務器更改發生之前這是暫時的,所以這不是問題。
在整個過程中,我一直在和我的客戶通電話,讓她冷靜下來。 由於這種情況,她非常生氣和不安。 她告訴我她收到了攻擊者的信息。 她有他的電話號碼!
第 1 天-) 名稱服務器更改和 Cloudflare 設置問題
大約 2 小時後,我設置了 htaccess,更改了名稱服務器並激活了 cloudflare。 從 .htaccess 文件中刪除了拒絕/允許規則。 但是 Cloudflare 的 WAF 設置存在問題。 我要求我的客戶更改服務器 IP ,她已經做到了。 稍後我會更改 cloudflare 的 DNS 記錄,因為舊的 IP 信息仍然存在。 但是,如果我在購買 IP 後不久就這樣做,網站將再次關閉。 “Under Attack Mode”已經在網站上激活。
結果:在我們激活 Cloudflare 後,所有攻擊都停止了。
經過 6-7 小時的興奮之後,我從椅子上站起來睡覺。 我們以為我們贏了,但還沒有結束。
第2天-)他回來了! 通過殭屍網絡繞過 Cloudflare!
早上我們換了IP,因為我認為網站是安全的,所以我將攻擊模式改為中等。 我對 .htaccess 做了一些其他的更改。 我為我的客戶購買了 PRO cloudflare。 我設置了一些 WAF 設置以使網站更安全。 然而一段時間後,他設法以更嚴重的攻擊回來了,並且大量的攻擊擊中了原點。 他繞過了 Cloudflare。
Cloudflare 的一些 WAF 設置有望阻止 WordPress 機器人攻擊、XMLRPC 攻擊,但事實並非如此。 我決定在 Cloudflare 上將所有 WAF 設置設置為默認設置。
結果:所有沒有用戶代理的機器人攻擊開始達到 403。
結果讓網站鬆了一口氣,服務器再次啟動。 然而,我們受到了太多的攻擊,而且已經接近了。
第 2 天-) Cloudflare 上的國家/地區封鎖
最後我認為我們應該在 cloudflare 上做更多的投資來擺脫這些攻擊。 通過我最近的更改,我們幾乎消除了 50% 的威脅。 然而,還有其他 50%。 對於本地網站,國家/地區封鎖不會是問題。 此外,由於我們已經修復了 50% 的 bot 流量,因此來自美國的攻擊對我們來說不會是一個嚴重的問題。 我們收購了 Cloudflare 企業並封鎖了除美國和丹麥以外的所有外國流量。
結果:這修復了 90% 的殭屍網絡流量。
第 3 天-) 復仇是一道最好的冷菜
我們的服務器可以處理 90% 的殭屍網絡流量。 然而,他們並沒有停止攻擊。 然後我在 WordPress 上發現了一個有趣的插件。 但是,我必須先對其進行測試。 否則網站可能會崩潰,這會毀了一切。 我請一位程序員朋友攻擊我的一個網站。 它工作得很好。 然後我調查攻擊者。 我明白他是誰以及他為什麼要攻擊我們。
我先聯繫了攻擊者。 我要求他停止攻擊。 然而,他用大量的侮辱和咒罵來回答我。 我只是將他從 WhatsApp 中屏蔽,甚至沒有回應他。 我的客戶要求我為這項服務支付更多費用,但我拒絕了。 我把它當作一種驕傲。 我詢問了我的客戶許可並刪除了攻擊模式。 我設置了插件。
我開始將他討厭的、血腥的、卑鄙的機器人發送回他的網站。 他的網站在我眼前崩潰了。 我的感覺和看著毀滅貝勒聖堂的瑟曦一樣。然後我給他們發送了他的另一個網站,然後是另一個,然後是另一個……當他們停止攻擊時,系統正在停止。 然而,當他們開始使用機器人時,它會將他們重定向到他們所有的網站。