<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>罐頭的網站</title><description>No description</description><link>https://blog.guan4tou2.com/</link><language>zh_TW</language><item><title>OSCP 考試之路：如何一週考兩次</title><link>https://blog.guan4tou2.com/posts/oscp-journey/</link><guid isPermaLink="true">https://blog.guan4tou2.com/posts/oscp-journey/</guid><description>關於我如何在一週內考兩次 OSCP 並成功的故事。</description><pubDate>Sun, 22 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;OSCP（Offensive Security Certified Professional）是滲透測試領域中相當知名的一張證照，考驗的不只是技術知識，更是在 24 小時內獨立攻破多台機器的能力。這篇文章記錄我備考的心路歷程、踩過的坑、如何在一週內考兩次 OSCP 並成功，以及對這張證照的一些看法。&lt;/p&gt;
&lt;h2&gt;為什麼要考 OSCP？&lt;/h2&gt;
&lt;p&gt;前年跟實驗室去資安大會的時候其他人跑去問 OffSec 的攤位，他們有問到相當不錯的價格，想說可以實驗室人手一張，不過當時我手上沒有錢就只能錯過。後來 Kazma 有揪團跟 Devcore 談團體折扣 &lt;s&gt;(雖然沒有比實驗室當初的折扣多)&lt;/s&gt; ，剛好當時有實習，錢包勉強夠用，最後以 62500 的優惠價購買了 Learn one 方案 &lt;s&gt;(說好的 Devcore conference 門票呢)&lt;/s&gt; 。&lt;/p&gt;
&lt;h2&gt;備考過程&lt;/h2&gt;
&lt;p&gt;當初選擇一年方案是想說有很多時間可以慢慢準備，結果拖著拖著就遇到實驗室一堆事情，要忙計劃、國科會、CTF 等等，就一直拖到最後兩個月才開始認真準備。我的方案是從 2025 年 2 月開始的，課程的部分都有仔細看並且跟著做實驗室的練習，但是中間因為實驗室太忙就中斷了，11 月好不容易忙完國科會可以準備 OSCP，原本是計劃 12 月看完課程內容，1 月開始挑戰 Proving Grounds 的機器。不過發現時間真的不夠，所以在 12 月中的時候就跟教授請假要完全專心準備 OSCP，才有辦法依照預期進度完成課程。&lt;/p&gt;
&lt;p&gt;課程看完也差不多到 1 月了，就整天在宿舍專心打靶機。因為沒有訂閱 HTB，所以都只有打 OffSec 的 PG 機器，我問了一些已經考過的朋友，他們推薦去找推薦清單來打，我參考了 &lt;a href=&quot;https://docs.google.com/spreadsheets/d/18weuz_Eeynr6sXFQ87Cd5F0slOj9Z6rt/edit?gid=487240997#gid=487240997&quot;&gt;Lainkusanagi OSCP Like&lt;/a&gt; 跟 &lt;a href=&quot;https://docs.google.com/spreadsheets/u/1/d/1dwSMIAPIam0PuRBkCiDI88pU3yzrqqHkDtBngUHNCw8/htmlview&quot;&gt;NetSecFocus Trophy Room&lt;/a&gt;。一開始主要是打 Lainkusanagi 的清單，後來快打完了就再加入 NetSecFocus 的清單，兩個清單的機器有重複的部分，但也有各自獨特的機器。基本上整個 1 月都是醒來打靶機打到睡覺的流程，剛開始打的時候一台大概要打三到五個小時，後來熟悉後就可以到一兩個小時一台。&lt;/p&gt;
&lt;p&gt;我的習慣是如果遇到卡住的地方就先花個三十分鐘嘗試，如果還是沒有想法就直接去找 writeup，看看別人是怎麼解的，然後再自己嘗試一次。如果是知道漏洞在哪裡，但是無法成功的話，就會先嘗試花一個小時自己解決，真的沒有辦法再去找 writeup。這樣不至於浪費太多時間卡關，也可以學習到，當然一開始都會很快就去找 writeup，後來慢慢就會習慣先自己嘗試，然後再去看別人的解法。多收集別人的 writeup，很常遇到到同一台機器的不同解法，甚至是同一台機器的同一個漏洞的不同利用方式，這樣就可以學習到更多不同的技巧和思路。&lt;/p&gt;
&lt;p&gt;大概一個月內就可以把兩個清單的機器都打完了，我是先挑選 Easy 的機器，後來再 Medium 跟 Hard，主要是怕時間不夠，所以先把 Easy 的機器打完，確保自己有足夠的練習時間。後面把獨立機器都打完後就練習 Challenge lab，大概是在考試前一週開始打 Challenge lab 的機器。&lt;/p&gt;
&lt;h3&gt;遇到的挑戰&lt;/h3&gt;
&lt;p&gt;我原本都是在 Mac 上進行練習，在課程時都是使用 PWK 的機器練習 lab，但是越到後面就容易遇到空間不夠跟常用的工具每次都要重新安裝的問題，所以改成使用 UTM ，但是 UTM 沒有快照功能，而且在使用體驗中也不太好，像是複製貼上就會有問題。所以後面就改成 VMware Fusion，雖然可以免費但是下載很麻煩，還好用了一些黑魔法直接搞到安裝檔，安裝好之後就可以順利使用了。VMware Fusion 的使用體驗就很好，複製貼上都沒有問題。在安裝好常用工具後就進行快照，以避免出現問題的時候可以快速回到之前的狀態，這樣就不會浪費太多時間在環境配置上。&lt;/p&gt;
&lt;p&gt;當時在猶豫考試時要使用 Mac 還是 Windows，後來決定使用 Windows，主要是因為 Windows 使用 x64 架構，如果需要編譯 exploit 的話會比較方便。所以我在考試前兩週就開始在 Windows 上練習，熟悉 Windows 的環境和工具，這樣在考試的時候就不會因為不熟悉環境而浪費時間。&lt;/p&gt;
&lt;h3&gt;實戰練習心得&lt;/h3&gt;
&lt;p&gt;在打靶機的過程，發現一些 OffSec 的習慣，像是如果需要編譯 exploit 的話，就會在環境中安裝 gcc，因此不太會遇到需要在自己機器上編譯的狀況，所以 Mac 理論上也可以順利考試。&lt;/p&gt;
&lt;p&gt;然後漏洞的部分還蠻明顯的，如果是預期的洞都會有明顯能利用的地方，所以不會需要花太多時間找洞。不過也有一些機器的漏洞比較隱蔽，或者是需要一些特定的條件才能觸發的，這些就會比較花時間去找和利用。&lt;/p&gt;
&lt;p&gt;在打 challenge lab 的時候，我先打 0 - 3 的機器，直接打到懷疑人生，題目的設計是一台接著一台，必須要在打完的機器上尋找資料才能打下一台，不然很容易出現通靈狀況。這是很現實的環境，難度也很高，越打越沒希望，感覺考試沒救了。然後去打 OSCP A - C 的機器，發現好簡單，穩了。&lt;/p&gt;
&lt;h2&gt;考試當天&lt;/h2&gt;
&lt;p&gt;如前面提到的，我考了兩次，因為 OSCP 到期時間是 2026 年 2 月 16 日，所以想說在 2 月初考試，如果失敗還有時間再到期前考一次。第一次是在 2 月 2 日晚上 8 點開始，因為我習慣晚上活動所以選晚上開始考，不過考試前一天我還在打靶機，加上當天早起沒有睡飽，所以精神沒有很好。&lt;/p&gt;
&lt;h3&gt;考前準備&lt;/h3&gt;
&lt;p&gt;因為要在考前 15 分鐘連線到監考環境並檢查，所以我就先檢查電腦跟 VMware，然後更新 Windows ......。&lt;/p&gt;
&lt;p&gt;Windows 順利更新後檢查 VMware，機器沒有問題，時間也快到了，就連線到監考環境，然後就破防了。&lt;/p&gt;
&lt;p&gt;一開始使用 WiFi 連線，結果連線不穩定，螢幕分享一直斷線，每次都需要重新點擊分享。最後使用有線網路才順利完成考試檢查，這時已經過去兩個小時了，&lt;strong&gt;破大防&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;還有用有線連線後還是一直斷線，後來使用 Firefox 連線就比較正常了，應該是 Chrome 記憶體用太多，&lt;strong&gt;破大防&lt;/strong&gt;。&lt;/p&gt;
&lt;h3&gt;考試過程&lt;/h3&gt;
&lt;p&gt;剛開始時因為心態爆炸所以連線 VPN 拿到題目後有點呆滯，摸了十分鐘左右才開始建立文件，然後就開始打靶機了。&lt;/p&gt;
&lt;p&gt;整個考試過程都很緊張，原本準備了一堆零食想說考試期間可以吃，結果根本沒有食慾只有一直喝水跟能量飲料。&lt;/p&gt;
&lt;p&gt;三台獨立機器都算簡單，大概六個小時就全部打完拿到 60 分了，接下來就是 AD set，一定很順利吧？對吧？才 10 分有什麼難的。&lt;/p&gt;
&lt;p&gt;簡單介紹一下 AD set，只有一台是唯一可以直接存取的機器，題目會給一個帳號，其他兩台都在內網。&lt;/p&gt;
&lt;p&gt;進入機器都給帳號了，提個權有什麼難的？對吧？&lt;/p&gt;
&lt;p&gt;然後地獄就開始了，winPEAS 跑好幾遍都沒東西，所有檔案都翻過一次，提權漏洞都嘗試一遍，沒有，死都沒有，&lt;strong&gt;破大防&lt;/strong&gt;。這時已經過去三個小時了，死活提不上去。&lt;/p&gt;
&lt;p&gt;後來決定放棄進入機器，查看其他台有沒有機會，一打開，某 CI/CD 工具。花了五六個小時打它的漏洞都沒效果，這時想到之前朋友跟我說過有一個 AD set 魔王題，發現就是這題，還沒聽到身邊有能解出這題的人，&lt;strong&gt;破大防&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;雖然已經知道沒有希望了，但還是打算試試看，畢竟只差 10 分就能考過了，然後就熬了 24 小時的夜成功放棄，&lt;strong&gt;破大防&lt;/strong&gt;。&lt;/p&gt;
&lt;h2&gt;第二次考試&lt;/h2&gt;
&lt;p&gt;考試結束後想說可以還有時間，可以下週到期前再考一次，結果發現 OSCP 考試失敗的話需要 4 週的冷卻時間才能重考，但是我的 OSCP 是 2 月 16 日到期，沒救。&lt;/p&gt;
&lt;p&gt;所以我直接寄信詢問，希望能夠讓我在到期前重考，幸好他們同意了，讓我能夠跳過冷卻期，不過似乎以後就沒辦法再次跳過冷卻期了。總之能夠重考後我就馬上挑選日期，不過因為考試時間太近所以沒有很好的時間，最後決定第二次考試在 2 月 8 日晚上 9 點開始。&lt;/p&gt;
&lt;p&gt;因為有第一次的經驗，所以這次就比較放鬆一點，並且考前檢查也很快就完成了，沒有遇到什麼問題。考試過程也比較順利，雖然還是有一些卡關的地方，但整體來說比第一次順利很多。&lt;/p&gt;
&lt;p&gt;一樣還是先打三台獨立機器，前面兩台大概四五個小時搞定，不過第三台就打不動了，完全找不到漏洞。後來決定先放棄第三台，直接去打 AD set，結果很順利的就打下整個 AD，比我想像的還簡單 WTF。&lt;/p&gt;
&lt;p&gt;目前就 80 分及格了，大概花了八九個小時，但是還有一台獨立機器沒有解出來，打算繼續嘗試。再花了快兩個小時嘗試後覺得真的沒有什麼頭緒就放棄了，反正已經過了 80 分了。然後再檢查幾次筆記跟流程，確定沒有什麼問題跟遺漏，完善筆記內的描述，就結束考試了。&lt;/p&gt;
&lt;p&gt;這次考試只喝了一罐蠻牛，原本還多買了一罐紅牛跟兩罐魔爪。&lt;/p&gt;
&lt;p&gt;順帶一提，我覺得考試的時候吃鱈魚香絲很適合，不會髒手而且很好拿，還可以咬很久，可以幫助保持清醒，推薦給大家。&lt;/p&gt;
&lt;h3&gt;報告撰寫&lt;/h3&gt;
&lt;p&gt;本來打算在考試的 24 小時搞定報告的，不過實在是太累了就先去睡覺了，差不多在考試時間結束的時候開始寫，應該是晚上十點左右。&lt;/p&gt;
&lt;p&gt;我是使用 &lt;a href=&quot;https://sysreptor.com/&quot;&gt;sysreptor&lt;/a&gt; 撰寫報告，它有提供 OSCP 報告的模板，可以直接套用，當初在考試前有花了一些時間練習使用熟悉一下。整個報告撰寫的過程大概花了三四個小時，主要是把之前打靶機的筆記整理一下，然後把考試中遇到的問題和解決方案寫清楚。報告的內容主要包括了每台機器的漏洞分析、利用過程、以及最後的結論和建議。&lt;/p&gt;
&lt;p&gt;因為我在打機器時都有做筆記截圖，所以很快就&lt;s&gt;讓 ChatGPT 幫我&lt;/s&gt;寫完了，不過還是有花一些時間去整理和修改，確保報告的內容清晰、完整，並且符合 OSCP 的要求。最後在提交報告之前，我還有請&lt;strong&gt;好朋友 aka 紅隊大師&lt;/strong&gt;幫我檢查了一下報告，確保沒有什麼錯誤或者遺漏的地方。&lt;/p&gt;
&lt;p&gt;最後再丟給 ChatGPT 幫我降低 AI 度，讓報告看起來更像是人寫的，然後就提交了。&lt;/p&gt;
&lt;p&gt;在準備考試的過程中有找到有人推薦這個工具 &lt;a href=&quot;https://ph03n1x.net/tlogger-on-steroids/&quot;&gt;Tlogger&lt;/a&gt;，可以記錄終端機的內容，並且顯示 VPN IP 與目前時間，這對於截圖跟指令紀錄都很好用。不過因為一些限制所以有些互動式工具會無法正常顯示，我有使用 ChatGPT 幫我修改一下，讓它排除特定工具的記錄，也可以直接暫停記錄。&lt;/p&gt;
&lt;p&gt;這些記錄對於之後復盤或是撰寫報告都有幫助，當然前提是有開著。&lt;/p&gt;
&lt;h2&gt;結果&lt;/h2&gt;
&lt;p&gt;第二天凌晨交的報告，隔天就收到通過的信件了。&lt;/p&gt;
&lt;p&gt;成功在課程到期前一週內考兩次 OSCP 並且通過，好爽。&lt;/p&gt;
&lt;h3&gt;給準備考 OSCP 的人&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;多打靶機，尤其是 OffSec 的 PG 機器，當然也可以參考其他清單的機器，增加不同的練習經驗。&lt;/li&gt;
&lt;li&gt;熟悉工具的使用，盡量不要使用有疑慮的工具，減少考試中出現問題的機會。建議在考試前就熟悉好要使用的工具，確保在考試中能夠順利使用。&lt;/li&gt;
&lt;li&gt;使用 Firefox 連線到監考環境，因為 Chrome 可能會有記憶體使用過高的問題，導致連線不穩定。&lt;/li&gt;
&lt;li&gt;16 GB 的 RAM 可能會比較吃緊，建議在考試前確保有足夠的資源，或者考慮升級到 32 GB 的 RAM，以確保在考試中能夠順利運行需要的工具和環境。&lt;/li&gt;
&lt;li&gt;最好使用有線網路連線到監考環境，因為 WiFi 可能會不穩定，導致連線中斷，影響考試的進行。&lt;/li&gt;
&lt;li&gt;多起來活動，保持身體的活力和精神的清醒，尤其是在考試期間，適當的休息和活動可以幫助提高專注力和效率。&lt;/li&gt;
&lt;li&gt;如果機器環境中沒有預期的工具，那可能就不是預期的漏洞了，建議換個方向去找。&lt;/li&gt;
&lt;li&gt;永遠要把機器翻爛，所有文件都要找過，所有漏洞都要嘗試過，確保沒有遺漏任何可能的線索。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;結語&lt;/h2&gt;
&lt;p&gt;考完的心得是，就這樣嗎？好像有點太簡單了。幾乎都是找漏洞然後利用，沒有什麼特別的技巧或者是需要特別的知識，主要就是熟悉工具和流程，然後有耐心去找漏洞和利用。當然也有一些機器的漏洞比較隱蔽或者是需要一些特定的條件才能觸發的，這些就會比較花時間去找和利用，但整體來說還是算簡單的。&lt;/p&gt;
&lt;h2&gt;我的靶機清單&lt;/h2&gt;
&lt;p&gt;下面是我打過的靶機清單，包含了 Linux、Windows、Treat it like a small network、Active Directory and Networks 四個類別的機器，並且標註了每台機器的難度、社區評分、以及我打完的時間。這些機器都是來自 Lainkusanagi 的 OSCP Like 清單和 NetSecFocus 的 Trophy Room 清單。
我覺得社群評分的準確度比較高，不過有幾台反而是社群評分打太難的。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Linux&lt;/th&gt;
&lt;th&gt;難度&lt;/th&gt;
&lt;th&gt;社群評分&lt;/th&gt;
&lt;th&gt;時間(hh:mm)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ClamAV&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;00:22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pelican&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;00:29&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Payday&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;01:03&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Snookums&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;01:44&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bratarina&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;00:37&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pebbles&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;02:05&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nibbles&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;00:16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hetemit&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;very hard&lt;/td&gt;
&lt;td&gt;01:49&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ZenPhoto&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;00:26&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nukem&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;01:35&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cockpit&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;00:22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Clue&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;very hard&lt;/td&gt;
&lt;td&gt;01:29&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Extplorer&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;01:26&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Postfish&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;very hard&lt;/td&gt;
&lt;td&gt;太麻煩&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hawat&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;very hard&lt;/td&gt;
&lt;td&gt;01:34&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Walla&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;00:54&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PC&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;00:40&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Apex&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;very hard&lt;/td&gt;
&lt;td&gt;02:14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sorcerer&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;01:32&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sybaris&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;01:06&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Peppo&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;00:51&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hunit&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;very hard&lt;/td&gt;
&lt;td&gt;01:08&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Readys&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;very hard&lt;/td&gt;
&lt;td&gt;01:51&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Astronaut&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;00:21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;bullybox&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;01:12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Marketing&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;very hard&lt;/td&gt;
&lt;td&gt;02:01&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Exfiltrated&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;00:57&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fanatastic&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;01:47&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;QuackerJack&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;00:43&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wombo&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;00:17&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Flu&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;01:05&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Roquefort&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;01:46&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Levram&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;00:29&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MZEEAV&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;00:43&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LaVita&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;02:32&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Xposedapi&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;02:42&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zipper&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;very hard&lt;/td&gt;
&lt;td&gt;01:30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Workaholic&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;03:03&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fired&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;01:10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scrutiny&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;very hard&lt;/td&gt;
&lt;td&gt;02:02&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SPX&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;very hard&lt;/td&gt;
&lt;td&gt;01:26&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vmdak&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;01:14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mantis&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;very hard&lt;/td&gt;
&lt;td&gt;02:15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BitForge&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;very hard&lt;/td&gt;
&lt;td&gt;02:16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WallpaperHub&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;very hard&lt;/td&gt;
&lt;td&gt;01:48&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zab&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;02:46&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SpiderSociety&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;01:33&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Twiggy&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;00:24&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Blackgate&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;00:30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;very hard&lt;/td&gt;
&lt;td&gt;01:18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Codo&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;00:55&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Crane&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;00:14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;image&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;00:12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;law&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;00:11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;press&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;00:25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RubyDome&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;01:02&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;pyLoader&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;00:10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;plum&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;00:44&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jordak&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;00:20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ochima&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;00:44&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CVE-2023-6019&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;00:11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sea&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;01:21&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Windows&lt;/th&gt;
&lt;th&gt;難度&lt;/th&gt;
&lt;th&gt;社群評分&lt;/th&gt;
&lt;th&gt;時間&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Kevin&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;00:35&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Internal&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;00:52&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;algernon&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;00:24&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jacko&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;02:42&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Craft&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;02:03&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Squid&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;02:04&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nickel&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;01:51&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MedJed&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;01:03&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Billyboss&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;01:08&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shenzi&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;01:17&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AuthBy&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;02:26&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Slort&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;02:18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hepet&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;very hard&lt;/td&gt;
&lt;td&gt;02:04&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DVR4&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;01:23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mice&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;01:11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Monster&lt;/td&gt;
&lt;td&gt;easy&lt;/td&gt;
&lt;td&gt;very hard&lt;/td&gt;
&lt;td&gt;01:38&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fish&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;01:38&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resourced&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;very hard&lt;/td&gt;
&lt;td&gt;02:41&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hutch&lt;/td&gt;
&lt;td&gt;Intermediate&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;01:39&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Treat it like a small network&lt;/th&gt;
&lt;th&gt;難度&lt;/th&gt;
&lt;th&gt;社群評分&lt;/th&gt;
&lt;th&gt;時間(hh:mm)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;SkillForge&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;very hard&lt;/td&gt;
&lt;td&gt;02:57&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Active Directory and Networks&lt;/th&gt;
&lt;th&gt;難度&lt;/th&gt;
&lt;th&gt;社群評分&lt;/th&gt;
&lt;th&gt;時間(hh:mm)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Access&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;very hard&lt;/td&gt;
&lt;td&gt;02:00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nagoya&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;very hard&lt;/td&gt;
&lt;td&gt;03:05&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hokkaido&lt;/td&gt;
&lt;td&gt;intermediate&lt;/td&gt;
&lt;td&gt;very hard&lt;/td&gt;
&lt;td&gt;02:16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vault&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;01:57&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Heist&lt;/td&gt;
&lt;td&gt;hard&lt;/td&gt;
&lt;td&gt;very hard&lt;/td&gt;
&lt;td&gt;01:23&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</content:encoded></item><item><title>我的 VPS 被 Spamhaus ban 掉了</title><link>https://blog.guan4tou2.com/posts/my-vps-blocked-by-spamhaus/</link><guid isPermaLink="true">https://blog.guan4tou2.com/posts/my-vps-blocked-by-spamhaus/</guid><description>我的 VPS 被 Spamhaus ban 掉了，笑死</description><pubDate>Sun, 14 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;故事開始是我跟某個&lt;s&gt;國家級&lt;/s&gt;好駭客分著用一台 VPS，本來一直都用得好好的，某天他突然說 &lt;code&gt;我有個好玩的&lt;/code&gt;，然後就收到我的 VPS 被判斷為 BOTNET ban 掉的信件了。&lt;/p&gt;
&lt;p&gt;見鬼，我用 VPS 當 Proxy 掃這麼多東西都沒出事，怎麼會這樣。&lt;br /&gt;
這還是我第一次遇到這種事情，我看到信件後稍微查了一下，好像比較多是使用 SMTP 遇到的問題，只能直接依照他們信件內的指引操作了。&lt;/p&gt;
&lt;p&gt;信件內容如下：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/abuse-report-email.png&quot; alt=&quot;abuse report email&quot; /&gt;&lt;/p&gt;
&lt;p&gt;我需要到 Spamhaus 對此 IP 申請解除。&lt;/p&gt;
&lt;p&gt;我到 VPS 供應商的頁面查看時也發現 VPS 被暫停了，並且過一陣子發現完全被移除對該台伺服器的操作權限，無法關機或移除。&lt;/p&gt;
&lt;p&gt;順道一提，我使用 kamatera 這間 VPS，&lt;s&gt;他有 1TB/month 的流量可以使用，好爽&lt;/s&gt;。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/VPS-blocked.png&quot; alt=&quot;VPS blocked&quot; /&gt;&lt;/p&gt;
&lt;p&gt;開啟 Spamhaus 提供的連結後會看到此畫面。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/BCL-report.png&quot; alt=&quot;BCL report&quot; /&gt;&lt;/p&gt;
&lt;p&gt;基本上就是依照他給的指引進行操作，如果沒有公司信箱，使用學校信箱也可以通過。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/BCL-submit.png&quot; alt=&quot;BCL submit&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/BCL-message.png&quot; alt=&quot;BCL message&quot; /&gt;&lt;/p&gt;
&lt;p&gt;這裏我是讓 GPT 幫我寫內容，詳細回答可以看&lt;a href=&quot;#%E8%AE%93-gpt-%E5%B9%AB%E6%88%91%E5%AF%AB&quot;&gt;這邊&lt;/a&gt;。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;我使用vps架設網路攻擊環境進行網路安全的學習 並且只對我自己可以掌控的電腦環境進行測試
但是被Spamhaus偵測到是botnet並強制將我的vps暫停 我需要在Spamhaus網站上申請解除
Please provide details on how and when the issue was resolved *
我可以如何撰寫
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;將內容填寫上去就可以送出了。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/BCL-submitted.png&quot; alt=&quot;BCL submitted&quot; /&gt;&lt;/p&gt;
&lt;p&gt;送出後沒多久就看到伺服器可以進行 Terminate 了，不確定是因為 submit 的原因還是 kamatera 自己處理的比較久。&lt;br /&gt;
然後就到學校信箱收到回覆信件。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/Spamhaus-reply.png&quot; alt=&quot;Spamhaus-reply&quot; /&gt;
&lt;img src=&quot;/assets/images/Spamhaus-tickets.png&quot; alt=&quot;Spamhaus-tickets&quot; /&gt;&lt;/p&gt;
&lt;p&gt;剩下就等他的回覆什麼時候會解除，等解除後再進行更新。&lt;/p&gt;
&lt;h3&gt;更新&lt;/h3&gt;
&lt;p&gt;其實蠻快的，過幾天就收到移除 IP 的消息了，之前有看到好幾個月都沒消息的，不知道是不是運氣好。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/Spamhaus-update.png&quot; alt=&quot;Spamhaus-update&quot; /&gt;
&lt;img src=&quot;/assets/images/Spamhaus-removed.png&quot; alt=&quot;Spamhaus-removed&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;查看出事原因&lt;/h2&gt;
&lt;p&gt;跟罪魁禍首討論了一下，原本懷疑是因為 C2 的惡意流量被偵測到，不過他說有使用 SSL。&lt;/p&gt;
&lt;p&gt;後來他發現 Spamhaus 的 Technical information 寫說 botnet controller 在 443 Port。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/BCL-info.png&quot; alt=&quot;BCL-info&quot; /&gt;&lt;/p&gt;
&lt;p&gt;至此突破華點了，443 就是他的 C2 login page。&lt;/p&gt;
&lt;p&gt;Damn 這也可以???&lt;/p&gt;
&lt;h2&gt;詢問 GPT：為什麼會被偵測到？&lt;/h2&gt;
&lt;p&gt;Spamhaus 的報告寫著：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;research team has intelligence indicating that the above IP address is hosting an active botnet command and controller (C2) used by bad actors to control infected devices&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;這代表他們的情資系統「實際看到」C2 行為，而不是單純掃到可疑服務。&lt;/p&gt;
&lt;h3&gt;什麼是 Spamhaus BCL？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;BCL（Botnet Controller List）&lt;/strong&gt; 主要目標是識別「正在或曾經充當殭屍網路控制端（C2）」的 IP。&lt;/p&gt;
&lt;p&gt;它不是只看「有沒有惡意程式」，而是透過多訊號關聯判斷：&lt;/p&gt;
&lt;h4&gt;1️⃣ 來自「已感染主機」的回連行為（最關鍵）&lt;/h4&gt;
&lt;p&gt;這是 &lt;strong&gt;BCL 最核心的依據&lt;/strong&gt;。Spamhaus 透過 Sinkhole、Honeypot 或與 ISP / CERT 合作的感染主機遙測資料，如果發現：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;已被標記為 bot 的 IP&lt;/strong&gt; 嘗試連線到你的 VPS&lt;/li&gt;
&lt;li&gt;且連線模式符合 C2 行為（固定週期的 beacon、長時間保持低頻但穩定的連線等）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;👉 &lt;strong&gt;你的 IP 會被視為 botnet controller&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;⚠️ 就算你是「自己測試」，但如果用真實 malware 樣本在真實網路上跑，&lt;strong&gt;BCL 不會知道你是「學習用途」&lt;/strong&gt;&lt;/p&gt;
&lt;h4&gt;2️⃣ C2 通訊行為特徵&lt;/h4&gt;
&lt;p&gt;即使使用 SSL，&lt;strong&gt;行為層仍然可見&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;固定週期的 beacon（例如每 30s / 60s）&lt;/li&gt;
&lt;li&gt;多個來源 IP 使用相同流量節奏&lt;/li&gt;
&lt;li&gt;request / response size 高度一致&lt;/li&gt;
&lt;li&gt;TLS fingerprint 與常見 malware 相符&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;👉 &lt;strong&gt;加密不等於不可分析&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;C2 辨識是關係圖問題，不是解密問題。他們看的是：誰找誰、多久一次、找多久、找多少人。加密只藏內容，不藏關係。&lt;/p&gt;
&lt;h4&gt;3️⃣ SSL / TLS 指紋&lt;/h4&gt;
&lt;p&gt;自簽憑證、非主流 cipher suite、非瀏覽器 TLS 行為等，都可能被標記為「非人類操作的控制通道」。&lt;/p&gt;
&lt;h4&gt;4️⃣ Login Interface 特徵&lt;/h4&gt;
&lt;p&gt;路徑、樣式、banner 與已知 C2 framework 相符，或被安全研究人員識別，&lt;strong&gt;但單純有 login page ≠ BCL&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Spamhaus 的世界觀是：只要 bot 在連你，你就是 C2。不看你的 README、不問你的動機。&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;案件大翻轉&lt;/h2&gt;
&lt;p&gt;就在我詢問 GPT 的時候，越想越不對勁，跟朋友討論了一下也覺得 GPT 這樣的解釋還是很牽強。&lt;/p&gt;
&lt;p&gt;如果依照一開始的想法，是 C2 被偵測到，那誰會知道我們架設了 C2？總不可能是 VPS 供應商有內鬼吧。&lt;/p&gt;
&lt;p&gt;這時我一個突發奇想，到 Virustotal 上搜尋 IP 看看，笑死！&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/Virustotal-detection.png&quot; alt=&quot;Virustotal-detection&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;被人掃描了，而且還有人回報。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/Virustotal-comments.png&quot; alt=&quot;Virustotal-comments&quot; /&gt;&lt;/p&gt;
&lt;p&gt;更誇張的是，還被抓到 SSL 屬於 mythic C2 的，笑死。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/Virustotal-ssl.png&quot; alt=&quot;Virustotal-ssl&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Threatfox 上也有報告。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/Threatfox.png&quot; alt=&quot;Threatfox&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;結論：&lt;/strong&gt; 原來是 IP 被安全研究人員或掃描器掃到，然後被回報到各種威脅情報平台，Spamhaus 收到這些情報後就把 IP 加入 BCL 了。&lt;/p&gt;
&lt;p&gt;所以不是因為「bot 在連你」，而是因為「有人看到你的 C2 介面並回報」。&lt;/p&gt;
&lt;h2&gt;讓 GPT 幫我寫&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;你可以用**專業、負責、以補救與防範為重點**的方式來撰寫。Spamhaus 重視的是：

1. 你是否理解問題
2. 問題是否**已經停止**
3. 是否採取措施**避免再次發生**

下面給你**可直接使用／微調的英文範例**，以及撰寫重點說明。

---

## 一、英文範例（建議使用）

### 範例 1（保守、成功率高）

&amp;gt; The issue has been resolved immediately after notification.
&amp;gt;
&amp;gt; On **[DATE]**, I discovered that my VPS was detected as part of a botnet due to misconfigured security testing services. This VPS is used solely for **personal cybersecurity learning and testing**, and all tests are conducted **only against systems that I own and control**.
&amp;gt;
&amp;gt; Upon receiving the alert, I **shut down the VPS**, removed the testing environment, and reviewed all running services and network traffic. Any software that could generate outbound attack-like traffic has been permanently removed.
&amp;gt;
&amp;gt; To prevent recurrence, I have implemented stricter firewall rules, limited outbound traffic, and will ensure future security testing is conducted in isolated lab environments that do not interact with the public internet.
&amp;gt;
&amp;gt; The issue was fully resolved on **[DATE &amp;amp; TIME]**, and the VPS is now clean and secured.

---

### 範例 2（如果你已經加強管控）

&amp;gt; The problem was resolved on **[DATE]**.
&amp;gt;
&amp;gt; After being notified, I immediately suspended all testing activities and powered off the VPS. The system was audited, and all penetration testing tools and scripts were removed.
&amp;gt;
&amp;gt; This VPS was used for educational cybersecurity practice only, targeting systems under my own control; however, I understand that the generated traffic resembled malicious activity.
&amp;gt;
&amp;gt; I have now implemented outbound traffic restrictions, IDS/IPS monitoring, and will only conduct future experiments in a fully isolated local or private lab environment.
&amp;gt;
&amp;gt; No further suspicious activity has occurred since **[DATE &amp;amp; TIME]**.

---

## 二、撰寫重點（很重要）

✅ **一定要寫的**

- 已經 **停止行為**
- 已經 **清理系統**
- 已經 **加強防護**
- 有 **明確時間點**

⚠️ **避免這樣寫**

- 不要說「我只是學習而已，不是惡意」
- 不要爭辯 Spamhaus 的判斷
- 不要提「attack environment」而不加說明

請用：

&amp;gt; security testing / cybersecurity learning / misconfiguration

而不是：

&amp;gt; attack / botnet / DDoS practice

---

## 三、你可以先用中文草稿 → 再轉英文

如果你願意，你也可以直接把你想寫的**中文版本貼上來**，我可以幫你：

- 改成 **Spamhaus 友善版本**
- 修成 **高通過率的英文**
- 判斷會不會有「踩雷用語」

這類申請我處理過很多次，你這個情況**是可解的，而且不嚴重**。
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>一些 CTF 密碼學會用到的東西</title><link>https://blog.guan4tou2.com/posts/some-ctf-crypto/</link><guid isPermaLink="true">https://blog.guan4tou2.com/posts/some-ctf-crypto/</guid><pubDate>Wed, 04 Jun 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;常用到的密碼學工具&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;yafu&lt;/strong&gt;：大整數分解工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;factordb&lt;/strong&gt;：質因數分解資料庫&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;sagemath&lt;/strong&gt;：數學計算軟體，常用於密碼學計算&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CoCalc&lt;/strong&gt;：線上 SageMath 環境&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CyberChef&lt;/strong&gt;：編碼解碼和數據分析工具&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;常用到的 Python 函式庫&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;gmpy2&lt;/strong&gt;：高精度數學運算庫&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;libnum&lt;/strong&gt;：數論和密碼學工具庫&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;sympy&lt;/strong&gt;：符號數學庫&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;pycryptodome&lt;/strong&gt;：密碼學函式庫（Crypto 模組）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;owiener&lt;/strong&gt;：Wiener attack 實現&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;正確安裝 Crypto&lt;/h2&gt;
&lt;p&gt;如果遇到 &lt;code&gt;ModuleNotFoundError: No module named &apos;Crypto&apos;&lt;/code&gt; 錯誤，通常是因為安裝了錯誤的 &lt;code&gt;crypto&lt;/code&gt; 套件。正確的安裝方式：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pip uninstall crypto pycryptodome
pip install pycryptodome
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;crypto.bytes_to_long 原理&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;def bytes_to_long(bytes_data):
    result = 0
    for b in bytes_data:
        result = result * 256 + b
    return result
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;crypto.long_to_bytes 原理&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;def long_to_bytes(long_val):
    if long_val == 0:
        return b&apos;\x00&apos;
    result = bytearray()
    while long_val &amp;gt; 0:
        result.append(long_val &amp;amp; 0xff)
        long_val &amp;gt;&amp;gt;= 8
    return bytes(result[::-1])
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;RSA 原理&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;隨意選擇兩個大的質數 $p$ 和 $q$，$p$ 不等於 $q$，計算 $N = p \times q$&lt;/li&gt;
&lt;li&gt;根據歐拉函數獲取 $\phi = (p-1) \times (q-1)$&lt;/li&gt;
&lt;li&gt;選擇一個小於 $\phi$ 並與 $\phi$ 互質的整數 $e$ (public key)，我們通常取 65537&lt;/li&gt;
&lt;li&gt;求得 $e$ 關於 $\phi$ 的模反元素 $d$ (private key)，即 $ed \equiv 1 \pmod{\phi}$&lt;/li&gt;
&lt;li&gt;$p, q$ 丟棄（保留 $N, e, d$）
&lt;ul&gt;
&lt;li&gt;加密: $C \equiv M^e \pmod{N}$&lt;/li&gt;
&lt;li&gt;解密: $M \equiv C^d \pmod{N}$&lt;/li&gt;
&lt;li&gt;公鑰: $(N, e)$&lt;/li&gt;
&lt;li&gt;私鑰: $(N, d)$&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;RSA 攻擊&lt;/h2&gt;
&lt;h3&gt;針對 N 的攻擊&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;p, q 質數太小&lt;/strong&gt;：可以使用分解工具（如 yafu、factordb）直接分解&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;共用 N&lt;/strong&gt;：如果多個密文使用相同的 $N$，可以通過最大公因數找到 $p$ 和 $q$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;p, q 太接近&lt;/strong&gt;：可以使用費馬分解法（Fermat&apos;s factorization method）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;針對 e 的攻擊&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;e 太小&lt;/strong&gt;：如果 $e$ 很小且 $M^e &amp;lt; N$，則 $C = M^e$，可以直接開方還原明文&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;e 太大導致 d 太小&lt;/strong&gt;：可以使用 Wiener attack 或 Boneh-Durfee attack&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Wiener attack&lt;/strong&gt;：當滿足以下條件時可以使用
&lt;ol&gt;
&lt;li&gt;$q &amp;lt; p &amp;lt; 2q$&lt;/li&gt;
&lt;li&gt;$d &amp;lt; \dfrac{1}{3} N^{\dfrac{1}{4}}$&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item></channel></rss>