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`