Cuckoo ถือเป็นเครื่องมือที่ยอดนิยมสำหรับ Malware Analysis ซึ่งทำให้ทุ่นแรงในการทำ Dynamic Analysis มาก ลดทั้งเวลาและขั้นตอนการทำ มาดูกันว่าเวลาการติดตั้งจะทำอย่างไรบ้างครับ

(Post นี้ทดสอบใน Ubuntu 16.04 64bit ครับ)

1. ติดตั้ง Application ที่จำเป็น

2. ติดตั้ง lib โดยใช้ python

3. Set เรื่องการ sniff packet

4. ติดตั้ง package เพิ่มเติม

5. สร้าง user สำหรับ cuckoo และติดตั้ง cuckoo

6. สร้าง iptables สำหรับการ monitoring traffic

7. กำหนดให้สามารถทำ ip forwarding ได้

8. ติดตั้ง iptables-persistent เพื่อให้ iptables rule นั้นถูกโหลดเมื่อทำการ restart เครื่อง

9. สร้าง Interface สำหรับหน้าที่ต่างๆ

None Routing Routing แบบที่ไม่ได้ไปไหนต่อ
Drop Routing Drop traffic ทั้งหมดที่ไม่ใช่ cuckoo, รวมถึง subnet VM net ด้วย
Internet Routing เข้าถึง internet ได้ปกติ (เรียกว่าสายที่สกปรก (Dirty Line) เพราะว่า malware จะใช้ network นี้เพื่อจะไปดึง payload ที่เหลือมาใช้)
InetSim Routing Route ทั้งหมดไปที่ InetSim instance – ซึ่งจะมีแต่ fake services ต่างๆ เอาไว้หลอก Malware ที่พยายามติดต่อไปข้างนอก
Tor Routing Routes all traffic through Tor.
VPN Routing Routes all traffic through one of perhaps multiple pre-defined VPN endpoints.

10. กำหนดไฟล์ /etc/iproute2/rt_tables เพื่อให้สามารถใช้ iproute2 ได้ โดยการใส่ interface ของเราเข้าไปในนั้น

11. ติดตั้ง InetSim,

12. Set InetSim ทั้งหมดเป็น IP ที่เราตั้งใน VBox ซึ่งในที่นี้ผมใช้เป็น 192.168.56.1 ดังนั้นใน /etc/inetsim/inetsim.conf

13. Start cuckoo เพื่อให้สร้าง configuration ให้

Configuration ที่ถูกสร้างจะมีดังนี้

  • cuckoo.conf: สำหรับ behavior และ analysis options.
  • auxiliary.conf: สำหรับ enabling และ configuring auxiliary modules.
  • <machinery>.conf: สำหรับการกำหนด option ของแต่ละ virtualization software (ซึ่งไฟล์จะมีชื่อเดียวกับที่เรากำหนดใน cuckoo.conf).
  • memory.conf: Volatility configuration.
  • processing.conf: สำหรับ enabling และ configuring processing modules.
  • reporting.conf: สำหรับ enabling และ disabling report formats.
  • routing.conf: เป็นส่วนกำหนด routing ของ Virtual Machine

14. แก้ไข routing.conf

15. กำหนด inetsim เป็น

16. ติดตั้ง Ichinga2 เพื่อเอาไว้ monitor Cuckoo

17. ติดตั้ง postgresql และ setup database ให้

18. สร้างไฟล์ /etc/icinga2/features-enabled/ido-pgsql.conf ขึ้นมา จากนั้นใส่เนื้อหาเป็น

19. ติดตั้ง icingaweb2

20. สร้างไฟล์ configuration ของ icinga ใน nginx ขึ้นมา (/etc/nginx/sites-available/icinga)

21. นำไฟล์ default ใน site-enabled ออก แล้ว link icinga จาก sites-available เข้าไป

22. สร้าง Token ขึ้นมาโดยใช้คำสั่ง

23. เข้าไปที่ http://localhost แล้วใส่ Token

  • Step ‘modules’, click Next
  • Step ‘icinga web 2’, should be all green
  • Step ‘Authentication’, click Next
  • Step ‘Database Resource’, fill in PostgreSQL details

  • step ‘Authentication Backend’, click Next
  • step ‘Administration’, create an admin account
  • Next on all steps

24. สร้าง master node รองรับการ monitor node ใดๆของ icinga2

25. สร้าง node การ monitor ของ icinga2 สำหรับ Cuckoo

เราสามารถ set ให้ทำการแจ้งเตือนใดๆได้โดยกำหนดที่ /etc/icinga2/conf.d/users.conf

จากนั้นสร้างไฟล์ /etc/icinga2/scripts/notify.py ให้ทำการแจ้งเตือนด้วยสิ่งที่เราต้องการ

25. สร้าง Virtual Machine เพื่อสำหรับการทำ Sandbox

26. Remote เข้าไปเพื่อทำการ setup Windows หรือจะเปิด Virtualbox เพื่อทำการติดตั้งในส่วนที่เหลือ

27. เปลี่ยน mode ของ Virtual Machine ให้เป็น NAT เพื่อติดตั้ง client ของ Cuckoo

28. เพื่อให้เหมาะกับทั้ง environment สำหรับการ monitor โดย Cuckoo และการ set ให้ง่ายต่อการแฮ็ค ทำดังนี้

  • ทำการติดตั้ง Python ใน Windows XP
  • ปิดการใช้งาน Windows Firewall
  • ปิดการใช้งาน Autoupdate
  • ลง Adobe Reader version 9 และ Microsoft Office

29. ติดตั้ง agent ของ Cuckoo โดย copy file จาก /home/<username>/.cuckoo/agent/agent.py ไปไว้ใน Virtual Machine C:\Windows\System32

30. แก้ไข Registry startup เพื่อให้ agent รันทุกๆครั้งที่เปิดเครื่อง

31. เอา nat ออกแล้วทำการ down Virtual Machine เพื่อทำ snapshot

32. Configure Cuckoo

33. กลับมาเปิด WindowsXP

34. Run cuckoo

35. สร้างไฟล์ Malicious file ด้วย Metasploit

36. Submit file

เราสามารถ submit ได้หลายแบบ

37. Setup cuckoo web server

กำหนดใน ~/.cuckoo/conf/reporting.conf

Run web server (อย่าลืมว่าถ้าจะ submit file cuckoo ต้องรันอยู่ด้วยนะครับ)

Source::