- 取得連結
- X
- 以電子郵件傳送
- 其他應用程式
本篇為投稿HITCON KB文章
國網中心舉辦了第一屆CDX
CDX(Cyber Defense Exercise)也就是網路資訊攻防競賽
雖然比賽很靠近期末大爆炸
但還是邀了實驗室的同學一起參加
這是我第一次參加King of the Hill類型的CTF
算是一個很特別經驗
因此把過程寫成這篇
分享給對CTF有興趣的朋友
因使對於程式能力需求也比較低
不太需要逆向工程或是原始碼審查
而需要大量的工具去嗅探主機潛藏的漏洞
如果說找0day是用邏輯挖掘
那麼找已知漏洞就是用資訊挖掘了!
因此如何利用工具挖掘漏洞就是一個重點
不只要挖得到 還要挖得快
這是一個Linux的OS
專門用來做滲透測試
裡面內建了許多工具
(下面沒有特別提到的工具就是內建)
offensive-security有提供VM版本可以快速架設起來
在設定VM時網路建議選擇Bridge
這樣可以直接與比賽的內網相連
這樣在建立反彈shell的時候會簡單很多
但也因此建議把預設密碼及以及防火牆打開
雖然比賽有VLAN切開各隊伍的網路
也有規定不能對對手攻擊
但防人之心不可無
主機如果反過來攻擊我們可就糟了
Zenmap是nmap的GUI版
GUI版不用記指令 快速上手
主要的功能為掃描電腦端口
可以快速地知道目標主機可能存在哪些服務
最新版本的VM沒有內建
安裝需要非常久的時間
在安裝過程會產生admin密碼
記得要複製起來 方便之後更改
這是一套非常強大的弱點掃描工具
也是我們隊伍得分最大關鍵
他可以透過行為來分析目標主機
可以獲得相關資訊或是可能存在的漏洞
這是一個漏洞利用framework工具
當我們知道目標可能存在漏洞
我們可以利用對應的模組
透過Metasploit去進行驗證或是攻擊
是一個滲透工具組合包
但我們主要是拿來進行暴力破解
20種類型 每個類型5台
(這在比賽中才慢慢發現)
比賽一開始我們就用zenmap
對所有目標IP進行"快速"掃描
掃描到的資訊
開啟OpenVAS一樣進行全盤掃描
但OpenVAS需要花的時間非常多
第一天比賽結束前都還沒掃完
我們的策略是在攻進主機後
利用iptable把所有的port關掉
只留下80port來計分
上面的作法可能只適用於這次的比賽
很多的大型比賽會檢查服務的可用性
所以攻進去之後 需要去修補漏洞並且更新程式
如果服務沒有正常運作 分數也就不會計算
但這次比賽沒有這樣的規則
因此關掉服務不是一個好方法 但卻很有用XD
在開賽不到10分鐘就讓我們隊伍破蛋
我發現一台主機只開了22port
對於ssh沒有太大的印象有新漏洞
因此直接嘗試了手動猜密碼
(這是壞習慣 應該要開工具破的XD)
結果一下就猜到了root:toor
發現是一台kali主機沒有更改預設密碼
第一時間進去先改密碼
望向記分板才想到要寫辨識碼到網頁才會計分
kali主機內建apache 因此只要執行
另外兩台是透過OpenVAS找到的
掃描結果如下
通常用來遠端桌面操控Windows系統
這一題首頁上就給了
但發現使用者的權限不足
沒辦法修改網頁的內容
可以得知這是一個Windows提權題目
系統是Win7 SP1
我們嘗試了幾個不同的payload
最後我們使用CVE-2016-0051成功提權
之後只要進去xampp的目錄下更改index.html成我們的flag就可以了
通常用來遠端桌面操控Linux系統
這一題是OpenVAS掃到的
掃描結果如下
可以看到一樣是弱密碼的問題
我們登進去發現其實有其他隊伍已經進來過了
但他們沒有做正確的防守動作
(vnc的認證如果不是經由ssh 更改使用者密碼是沒用的)
因此我們換掉首頁後用iptable把服務關掉
用同樣的方式刷了四台主機
但沒想到過了一會兒只剩下三台
最後心得那邊會提到這個失誤的狀況
一樣是由OpenVAS掃到的
掃描結果如下
可以看到這是CVE-2015-2208任意代碼執行的漏洞
Metasploit有exploit可以直接用
這裡示範一下大概要怎麼使用Metasploit
但沒想到才剛開始真正的難題
進去之後發現權限不足
才知道這一題還需要提權
提權首先要先了解系統版本
我印象中是Ubuntu14.04 內核版本4.4.0-53
用searchsploit查找相關的提權方式
最後嘗試之前通殺Linux的Dirty COW(CVE-2016-5195)
第一台主機成功佔據5秒
主機就crash了…
我們用了四個不同的exploit嘗試了另外4台
每個的最終結果都是crash…
原本要衝一波高分的
沒想到獵物全部都變成了垃圾主機(別人也攻不破)
回來研究才發現要選擇寫入
在getroot的方式是最穩定的 例如這個exploit
但沒有嘗試過也不曉得會不會成功
這個題型沒拿下來真的是我們隊伍的一大損失
但因為其他隊伍已經攻佔了
很多都是推測跟想法
還有跟其他隊伍賽後的討論
是一個用來練習Web Hacking的框架
可以在Github找到源碼
我們用了"OS Command Injection"打了進去
但權限不足 嘗試提權看看
版本是Ubuntu 16.04 內核4.4.0-75都是最新的…
賽後討論沒有一支隊伍可以提權成功
可能有其他的洞 或是有其他提權方式
但大家都覺得這是在釣0day
用HTTP來管理遠端檔案系統
CVE-2014-6287
Metasploit:
主要功能是使網路上的機器能夠共享資源
跟WannaCry一樣的洞
CVE-2017-0144
Metasploit:
CVE-2014-6271
Metasploit:
首頁上有一個Mail Form
討論得知要用CVE-2016-10033解出來
沒有聽到是用哪個洞
但推測是CVE-2017-5638
Metasploit:
一樣是暴力破解密碼
但首頁是看不出問題的
主要需要具備的能力有
是一種透過網路的即時聊天方式
CVE-2010-2075
Metasploit:
沒有XSS漏洞
分析是一個Honeypot
很多服務都有開但都是假的
據說刷得夠快就會計分
最後沒有隊伍拿下
一樣是Honeypot
很多服務都有開但都是假的
一樣最後沒有隊伍拿下
聽到最酷的解法是暴力解出FTP Administrator密碼
正常解法應該用user帳號暴力就可以登入
總而言之都是弱密碼XD
掃描全部的port浪費太多的時間
應該針對有特定弱點的port先找出來分析
ex:21(ftp),445(smb),8080(hfs)…等等
我們在打進去後換了首頁就用iptable鎖死了
沒想到其實這台主機已經被別人藏了web後門
這台主機就這樣被別人搶了回去…QQ
因此以後記得要檢查web後門
然後也要自己藏web後門再利用iptable鎖上
但記分板上沒有ip位置 因此我們浪費很多時間在詢問主機的存活
如果設計一個monitor來監看這些主機的狀態
一定能大大的幫助我們找尋下一個攻擊目標
另外這次還有非常多時間浪費在打指令上
如果能加強shellscript相關技能
這次的比賽一定能更輕鬆
相信這是想告訴我們弱密碼其實比我們想的還嚴重
除此之外很多已知漏洞都還存在現實中
漏洞不會自己消失 因此系統更新很重要
感謝國網中心
花了很多心思去設計題目
還有超棒的計分板介面
感謝我的隊友
在期末大爆炸還要被我抓來討論戰術
在比賽中也不斷的幫助我
最後附上比賽最終盤面
We are PentaKill
國網中心舉辦了第一屆CDX
CDX(Cyber Defense Exercise)也就是網路資訊攻防競賽
雖然比賽很靠近期末大爆炸
但還是邀了實驗室的同學一起參加
這是我第一次參加King of the Hill類型的CTF
算是一個很特別經驗
因此把過程寫成這篇
分享給對CTF有興趣的朋友
King of the Hill 介紹
CTF(Capture the Flag)分成三種類型-
Jeopardy
是大家最熟悉的解題拿Flag
拿到Flag送出就可以得到分數
-
Attack and Defense
每個隊伍都有屬於自己的服務主機
因此除了要攻擊對方的主機之外
還需要修補自己的程式漏洞防止被攻擊
如果成功攻擊 攻擊者會加分 被攻擊者會扣分
-
King of the Hill
主辦方提供多台主機
參賽隊伍同時去攻擊這些主機
攻進主機後在首頁放上隊伍的Flag就會開始計分
計分的方式為每分鐘計分一次
如果隊伍有佔領主機就會加分
因此佔領越多主機 佔領時間越久 累積的分數也就越高
因使對於程式能力需求也比較低
不太需要逆向工程或是原始碼審查
而需要大量的工具去嗅探主機潛藏的漏洞
如果說找0day是用邏輯挖掘
那麼找已知漏洞就是用資訊挖掘了!
因此如何利用工具挖掘漏洞就是一個重點
不只要挖得到 還要挖得快
工具介紹
以下會介紹我們隊伍有使用到的工具Kali Linux
這是一個Linux的OS
專門用來做滲透測試
裡面內建了許多工具
(下面沒有特別提到的工具就是內建)
offensive-security有提供VM版本可以快速架設起來
在設定VM時網路建議選擇Bridge
這樣可以直接與比賽的內網相連
這樣在建立反彈shell的時候會簡單很多
但也因此建議把預設密碼及以及防火牆打開
雖然比賽有VLAN切開各隊伍的網路
也有規定不能對對手攻擊
但防人之心不可無
主機如果反過來攻擊我們可就糟了
Zenmap
Zenmap是nmap的GUI版
GUI版不用記指令 快速上手
主要的功能為掃描電腦端口
可以快速地知道目標主機可能存在哪些服務
OpenVAS
最新版本的VM沒有內建
安裝需要非常久的時間
在安裝過程會產生admin密碼
記得要複製起來 方便之後更改
這是一套非常強大的弱點掃描工具
也是我們隊伍得分最大關鍵
他可以透過行為來分析目標主機
可以獲得相關資訊或是可能存在的漏洞
Metasploit
這是一個漏洞利用framework工具
當我們知道目標可能存在漏洞
我們可以利用對應的模組
透過Metasploit去進行驗證或是攻擊
Sparta
是一個滲透工具組合包
但我們主要是拿來進行暴力破解
比賽過程&題目
這次的比賽有100台機器20種類型 每個類型5台
(這在比賽中才慢慢發現)
比賽一開始我們就用zenmap
對所有目標IP進行"快速"掃描
掃描到的資訊
開啟OpenVAS一樣進行全盤掃描
但OpenVAS需要花的時間非常多
第一天比賽結束前都還沒掃完
我們的策略是在攻進主機後
利用iptable把所有的port關掉
只留下80port來計分
上面的作法可能只適用於這次的比賽
很多的大型比賽會檢查服務的可用性
所以攻進去之後 需要去修補漏洞並且更新程式
如果服務沒有正常運作 分數也就不會計算
但這次比賽沒有這樣的規則
因此關掉服務不是一個好方法 但卻很有用XD
有解出來的題目
Kali
這一題完全就是意外在開賽不到10分鐘就讓我們隊伍破蛋
我發現一台主機只開了22port
對於ssh沒有太大的印象有新漏洞
因此直接嘗試了手動猜密碼
(這是壞習慣 應該要開工具破的XD)
結果一下就猜到了root:toor
發現是一台kali主機沒有更改預設密碼
第一時間進去先改密碼
望向記分板才想到要寫辨識碼到網頁才會計分
kali主機內建apache 因此只要執行
service apache2 start echo '$our_flag' > /var/www/html/index.html就這樣拿到了一台主機
另外兩台是透過OpenVAS找到的
掃描結果如下
RDP
RDP(Remote Desktop Protocol)通常用來遠端桌面操控Windows系統
這一題首頁上就給了
rdp:user/123456登入後一樣先改密碼
但發現使用者的權限不足
沒辦法修改網頁的內容
可以得知這是一個Windows提權題目
系統是Win7 SP1
我們嘗試了幾個不同的payload
最後我們使用CVE-2016-0051成功提權
之後只要進去xampp的目錄下更改index.html成我們的flag就可以了
VNC
VNC(Virtual Network Computing)通常用來遠端桌面操控Linux系統
這一題是OpenVAS掃到的
掃描結果如下
可以看到一樣是弱密碼的問題
我們登進去發現其實有其他隊伍已經進來過了
但他們沒有做正確的防守動作
(vnc的認證如果不是經由ssh 更改使用者密碼是沒用的)
因此我們換掉首頁後用iptable把服務關掉
用同樣的方式刷了四台主機
但沒想到過了一會兒只剩下三台
最後心得那邊會提到這個失誤的狀況
PHPMoAdmin
PHPMoAdmin是一個由PHP構成用來管理MongoDB的工具一樣是由OpenVAS掃到的
掃描結果如下
可以看到這是CVE-2015-2208任意代碼執行的漏洞
Metasploit有exploit可以直接用
這裡示範一下大概要怎麼使用Metasploit
msf > search phpmoadmin Matching Modules ================ Name Disclosure Date Rank Description ---- --------------- ---- ----------- exploit/multi/http/phpmoadmin_exec 2015-03-03 excellent PHPMoAdmin 1.1.2 Remote Code Execution msf > use exploit/multi/http/phpmoadmin_exec msf exploit(phpmoadmin_exec) > show options Module options (exploit/multi/http/phpmoadmin_exec): Name Current Setting Required Description ---- --------------- -------- ----------- Proxies no A proxy chain of format type:host:port[,type:host:port][...] RHOST yes The target address RPORT 80 yes The target port (TCP) SSL false no Negotiate SSL/TLS for outgoing connections TARGETURI / yes The URI path of the PHPMoAdmin page VHOST no HTTP server virtual host Exploit target: Id Name -- ---- 0 PHPMoAdmin msf exploit(phpmoadmin_exec) > set RHOST 172.16.42.110 RHOST => 172.16.42.110 msf exploit(phpmoadmin_exec) > exploit拿到了shell原本以為結束了
但沒想到才剛開始真正的難題
進去之後發現權限不足
才知道這一題還需要提權
提權首先要先了解系統版本
我印象中是Ubuntu14.04 內核版本4.4.0-53
用searchsploit查找相關的提權方式
root@kali:~# searchsploit linux 4.4 ubuntu -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------- Exploit Title | Path | (/usr/share/exploitdb/platforms/) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------- Linux Kernel 4.4.0 (Ubuntu) - DCCP Double-Free (PoC) | linux/dos/41457.c Linux Kernel 4.4.x (Ubuntu 16.04) - 'double-fdput()' bpf(BPF_PROG_LOAD) Privilege Escalation | linux/local/39772.txt Linux Kernel 4.4.0-21 (Ubuntu 16.04 x64) - Netfilter target_offset Out-of-Bounds Privilege Escalation | lin_x86-64/local/40049.c Linux Kernel 4.4 (Ubuntu 16.04) - 'BPF' Privilege Escalation (Metasploit) | linux/local/40759.rb Linux Kernel 4.4.0 (Ubuntu 14.04/16.04 x86-64) - 'AF_PACKET' Race Condition Privilege Escalation | lin_x86-64/local/40871.c Linux Kernel 4.4.0 (Ubuntu) - DCCP Double-Free Privilege Escalation | linux/local/41458.c -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------沒想到全部都沒有用…
最後嘗試之前通殺Linux的Dirty COW(CVE-2016-5195)
第一台主機成功佔據5秒
主機就crash了…
我們用了四個不同的exploit嘗試了另外4台
每個的最終結果都是crash…
原本要衝一波高分的
沒想到獵物全部都變成了垃圾主機(別人也攻不破)
回來研究才發現要選擇寫入
/etc/passwd
在getroot的方式是最穩定的 例如這個exploit
但沒有嘗試過也不曉得會不會成功
這個題型沒拿下來真的是我們隊伍的一大損失
沒解出來的題目
很多主機其實有看到漏洞但因為其他隊伍已經攻佔了
很多都是推測跟想法
還有跟其他隊伍賽後的討論
XVWA
XVWA(Xtreme Vulnerable Web Application)是一個用來練習Web Hacking的框架
可以在Github找到源碼
我們用了"OS Command Injection"打了進去
但權限不足 嘗試提權看看
版本是Ubuntu 16.04 內核4.4.0-75都是最新的…
賽後討論沒有一支隊伍可以提權成功
可能有其他的洞 或是有其他提權方式
HFS
HFS(HTTP File Server)用HTTP來管理遠端檔案系統
CVE-2014-6287
Metasploit:
exploit/windows/http/rejetto_hfs_exec
SMB-MS17
SMB(Server Message Block)主要功能是使網路上的機器能夠共享資源
跟WannaCry一樣的洞
CVE-2017-0144
Metasploit:
exploit/windows/smb/ms17_010_eternalblue
Shellshock
Bash上的知名漏洞CVE-2014-6271
Metasploit:
exploit/linux/http/advantech_switch_bash_env_exec
Vul Mail
PHPMailer-RCE首頁上有一個Mail Form
討論得知要用CVE-2016-10033解出來
Struts2
Struts2是用於開發J2EE的WebApp框架沒有聽到是用哪個洞
但推測是CVE-2017-5638
Metasploit:
exploit/multi/http/struts2_content_type_ognl
b374k
b374k是一個PHP構成的後門程式一樣是暴力破解密碼
但首頁是看不出問題的
主要需要具備的能力有
- 網頁目錄掃描
- http的暴力破解
IRC
IRC(Internet Relay Chat)是一種透過網路的即時聊天方式
CVE-2010-2075
Metasploit:
exploit/unix/irc/unreal_ircd_3281_backdoor
留言板
首頁是一個留言板沒有XSS漏洞
分析是一個Honeypot
很多服務都有開但都是假的
據說刷得夠快就會計分
最後沒有隊伍拿下
tryit
首頁上只有"tryit"一樣是Honeypot
很多服務都有開但都是假的
一樣最後沒有隊伍拿下
Bobby Blog
首頁上面寫了Windows 3.1聽到最酷的解法是暴力解出FTP Administrator密碼
正常解法應該用user帳號暴力就可以登入
總而言之都是弱密碼XD
心得
分析方面
賽後發現用zenmap掃描所有目標是不太好的掃描全部的port浪費太多的時間
應該針對有特定弱點的port先找出來分析
ex:21(ftp),445(smb),8080(hfs)…等等
防守方面
其中一台原本在我們手上的機器我們在打進去後換了首頁就用iptable鎖死了
沒想到其實這台主機已經被別人藏了web後門
這台主機就這樣被別人搶了回去…QQ
因此以後記得要檢查web後門
然後也要自己藏web後門再利用iptable鎖上
技巧方面
雖然有記分板可以看到哪些隊伍佔據了哪些主機但記分板上沒有ip位置 因此我們浪費很多時間在詢問主機的存活
如果設計一個monitor來監看這些主機的狀態
一定能大大的幫助我們找尋下一個攻擊目標
另外這次還有非常多時間浪費在打指令上
如果能加強shellscript相關技能
這次的比賽一定能更輕鬆
總結
這次的題目有相當多的弱密碼相信這是想告訴我們弱密碼其實比我們想的還嚴重
除此之外很多已知漏洞都還存在現實中
漏洞不會自己消失 因此系統更新很重要
感謝國網中心
花了很多心思去設計題目
還有超棒的計分板介面
感謝我的隊友
在期末大爆炸還要被我抓來討論戰術
在比賽中也不斷的幫助我
最後附上比賽最終盤面
We are PentaKill
留言
張貼留言