Try   HackMD

NAS 與 CVE 之間的距離 / ddaa

NAS:網路附加儲存裝置,現今會加儲存裝置。
但目前由於Open Source 所以風險增高

  • CVE 每個CVE編號會應對唯一漏洞

  • CWE 漏洞的root Cause 分類標準

  • CVSSv3

    • 攻擊向量AV
      • 網路(Network)
      • 協定(Adjacent)
      • 本機(Local)
      • 實體(Physical)
    • Attack Complexity(AC)
      • Low
      • High
    • Privileges Requireed(PR)
      • 登入驗證
    • User interaction(UI)
      • ex.XSS

    Scope
    機密性 Confidentialtiy.明碼密碼
    完整性 Integrity.Log Fogging
    可用性 Availability.ex.Dos

    可能不同組織,計算分數的基準評分不同。

ROOT CAUSE

Severity

CVE 2017-0372 MediaWiki

​​​​MediaWiki 內建套件預設不啟用
​​​​由於權限受限,故做的項目是有限的
​​​​Securgumen Injection or Moditfication
​​​​
​​​​>>Code Review
​​​​由於用完整字串,用逗號接起來,
​​​​所以syntaxHightlight (使用Wiki syntax語法)
​​​​使用symfony.Process Builder(php library)
​​​​
​​​​shell command
​​​​>-l java \
​​​​>-O start=0,full=1,title=,\     >> 原本只接受數字 0 ,但由於後面餵其他參數,故一樣接受指令
​​​​
​​​​
​​​​#Qnap 也有 XSS 這個弱點
​​​​發生原因,把start傳入,而沒有檢查。
​​​​改善:加上型別檢查,並且可以做型別轉換

CVE-201705223 PHP

​​​​CodeReview

​​​​addEmbeddedImage()

可以透過電子郵件傳染,OUTLOOK 沒辦法寄送郵件,但可以透過Burpsuite改完再寄出。((超壞
修復:因為basedir 空字串,應該不允許透過 url 存取檔案
檢查url是否是出現dot-dot, 避免path 繞過

CVE-2017-7494

​​​​要有SMB寫入權限才能觸發漏洞
​​​​metasploit 裡面已經可以實作了
​​​​
​​​​
​​​​Code Review
​​​​    … 
​​​​    
​​​​上傳時偷塞入|  

​​​​所以是功能(feature)還是Bug?
​​​​是因為client \\PIPE\test 但Samba server 以絕對路徑去載入 /test 沒有去做檢查,
​​​​就成功了。
​​​​
​​​​修復:
​​​​smb.conf 中關閉目錄絕對路徑瀏覽,也可以用 metasploit 去調整
​​​​或去過濾傳入的內容路徑 (/) 

CVE-2018-1160 Netatalk

​​​​Remote Code Exction
​​​​其實是Buffer Over 導致的問題,沒有檢查字串欄位,所以memcpy 的size 可控
​​​​dsi>command 給值的size 可控
​​​​
​​​​足夠長的Payload 把參數蓋掉。
​​​​就能直接蓋掉command 的命令位置。
​​​​所以是Buffer Overflow,可以繞過認證,造成address 寫入任意 data
​​​​<heap圖>  

CVE-2018-10387

​​​​來不及抄 =V=|||

CVE-2018-10388 OpenTFTP

由於 optenftpd 自行處理log,無法觸發fmt string漏洞

CVE-2018-10388 Open TFTP(QNAP)

TFTP 無認證機制,故允許打穿。

TFTP Format 實作 RFC2349 <看圖那好像很難>

不能用常用的方式:%x %p %s
不能用sprintf()
不能疊stack,因為會被清掉

讀檔的服務:
檔案名稱是不是有包含 ../ 如果有的話,就不處理無效檔案
但由於是寫在另外一個檔,但這個檔可以被覆寫… 所以改掉就可以上傳,然後就可以任意讀檔了。

逆向 reverse shell command
(1)複寫 atol.got to system()
(2)取消設定,然後就允許疊 stack

就有機會 RCE

更精簡的方式…

CVE-2018-10388 OPEN FTTP

如果opentfppd 自行處理log,無法觸發stack overflow

(QNAP) >>

Proof of Concept
可以蓋掉stack,結果就爛掉了
但後來發現有一個,%n做結尾

會被換行。x64環境不行,但x86的環境有機會。(4bytes 所以可,但有保護)

(Asustor) >>
硬要打,就成功了…
長度有限制,但不夠嚴謹,所以還是有機會可以蓋過stack
即使最後有個%0a,但不重要,該蓋的都有蓋掉,沒問題。

CVE-2018-10387 OPen TFTP (Synology)

前提要有讀取檔案目錄的權限。
能存取到,才會分配heap的空間出來,才有機會能造成heap overflow。

版本利用會相關複雜一點,blksize 有做限制 512-65536 bytes,故其實利用上較難。

而且還有connect timeout 才有機會free 掉 buffer
pwnable.tw 來玩來玩~

TFTP on internet, 共 138867 筆
看Shodan 上的錯誤訊息看有沒有機會。

講者的工作到底是檢查自家的 NAS 有沒有問題還是打別人家的 NAS 啊 (X

tags: HITCONCMT2019,HITCONCMT,HITCON