iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 10
2
Security

CTF 的三十道陰影系列 第 10

Day10: [Pwn] DEVCORE Conference 2019

DEVCORE Conference 2019

今天到台北聽 DEVCORE 的大大們分享各種紅隊演練的分享,簡單記錄一下各場的心得

從攻擊者的角度制定防禦策略 - Aaron

這場介紹了紅隊演練的基本觀念,從風險評鑑來區分防禦方和攻擊方的差異,最後介紹了 MITRE 定義的 ATT&CK framework,這場如果是對於剛畢業的我應該會覺得很無趣,但由於之前參與過 CSIRT 的相關業務,實在是深有感觸......

DEVCORE 紅隊的進化,與下一步 - Shaolin

這場比較像是火力展示 XD 介紹 DEVCORE red team 的內部分工和各種工具,再搭配幾個實際案例加以說明,讓聽眾很快速就可以進入 red team 的情境和明白遭遇的各種挑戰,對防禦方來說應該聽完也可以明白專業的紅隊可以對企業帶來怎樣的價值

我很喜歡這場 talk 提到的一個觀念:「評估評損點是紅隊很重要的技能,如果覺得不行就要果斷放棄轉換思路,如果有機會做到,就要相信自己的判斷並堅持下去」(非原文,大概是這樣的意思)

跳出思路的陷阱 - 紅隊演練中的經典案例 - Ding

之前在 BambooFox 時期過有一起解過幾次題目的 web 大神,從這次分享的案例也是收穫良多,今年 HITCON 上的挑戰題 backup 我就是傻傻的一直攻擊 domain 本體 ... Orz

Show Me The Shell - ASP.NET 滲透實戰經驗分享 - Cyku

介紹透過 .NET 任意讀檔和 SQLi 結合 deserialization 達成的 RCE,我對 .NET 不太熟,這場的攻擊方式真的讓我學到不少東西,下次 CTF 也許可以挑戰看看 .NET 的題目 (?)

轉起來轉起來!淺談中繼攻擊於企業內網中的影響 - Chris

這場詳細介紹了透過 Windows NTLM hash 進行中繼攻擊的手段以及造成的危害,這個主題比較偏後滲透的應用,我個人比較不感興趣 QQ

飛鴿傳書 - 紅隊演練中的數位擄鴿 - meh

這邊介紹了某家知名 mail server 的漏洞,並透過兩種不同的利用方式達成 auth RCE 和 unauth RCE,這次的攻擊利用了 angelboy 在 HITCON 2017 發表的 FILE structure 攻擊手法,真的是非常實用,我之前也在某個 0day exploit 中使用上 XDD BTW,跟友人討論之後,猜測 stack 沒有 NX 保護是歷史遺毒,某段 legacy code 需要執行 stack 上的 code 來做事情這樣....XD

你用它上網,我用它進你內網 - 知名電信商設備 RCE 漏洞 - Orange

萬眾矚目的一場 talk ! 果然也不負眾望,讓大家知道駭客有多可怕 XDD 最後的 cmd injection 利用方式也是 CTF 常會考的 blacklist (但當下 30 秒我只想出兩種繞過方式而已 QQ),相信大家聽完回家後第一件事應該都先檢查自己的某個 port 是不是開著吧 XDD

0x09: pwnable.tw seethefile 250

由於 meh 今天在演講中提到了 angelboy 的研究 Play with FILE Structure - Yet Another Binary Exploit Technique,今天就來講個 FILE structure exploit 的基本應用,沒猜錯的話,應該也是 meh 演講中的利用手法

題目是標準的菜單題,一共有 openfilereadfilewritefileclosefile 四個功能,功能依序可以開啟檔案、讀取內容、印到 stdout、關閉檔案,但功能有限制不能開啟檔名為 flag 和不能印出包含 FLAG{,輸入選單的 5. 可以離開程式,離開之前輸入名字到 bss,同時有一個 scanf("%s") 造成的 bof 可以把 file 變數給覆蓋

我們可以在輸入 name 偽造 file 結構,將 vtable 改成放控 address 的位置,並且最後 overflow 時把 file 的 pointer 覆蓋成指向 input buf 的位置,關閉檔案的 fclose 裡面在從 vtable 取得要 release 資源的 function 就會變成 call 我們預期想跳的 function

具體的作法會是:

  1. 透過 open, read, write 這三個功能讀取 /proc/self/maps,取得 libc 的 address,並根據 libc 的版本算出 system 的位置
  2. 離開程式前構造 fake FILE structure 並 overflow 改掉 file ptr,讓 fclose 去關我們偽造的 FILE
    • 將 vtable 的值改成由第一步得到的 system address
    • 將 FILE 的開頭放 system 要執行的指令,但開頭前兩 byte 是 fclose 執行流程需要的 flag,因此用 ; 分隔後在接我們要執行的指令
  3. 順利的話就可以取得 shell XD

最後爆個小八卦,這題其實是 angelboy 在 HITCON 2017 講的 Play with FILE Structure - Yet Another Binary Exploit Technique 的導火線 (?),一開始 seethefile 是出在 2016 年 AIS3 訓練課程的 final exam 上,預期解法是透過 fclose 兩次造成的 double free 製造 abort,再想辦法從 stderr leak 出 flag (印象中 AIS3 最初的版本是可以 open flag 並 read 到 bss 段上,但不能透過 write 印出來),當時小玩了一下沒做出 double free,卻意外發現 overflow 之後 fclose 可以控到 RIP ... XD,隔了一年 angelboy 就研究出一系列 FILE 的攻擊手法,讓這個世界又變得更不安全了,可喜可賀 (X)


上一篇
Day9: [Misc] Misc Challenge Overview
下一篇
Day11: [Pwn] Tom Cruise of CTF
系列文
CTF 的三十道陰影31

尚未有邦友留言

立即登入留言