Sandbox ใช้เพื่อเรียกใช้ไฟล์ที่เป็นอันตรายในสภาพแวดล้อมที่แยกได้ในขณะที่เครื่องมือพฤติกรรมแบบไดนามิกและการรวบรวมสิ่งประดิษฐ์ทางนิติวิทยาศาสตร์
Cape ได้มาจาก Cuckoo V1 ซึ่งมีความสามารถหลักต่อไปนี้บนแพลตฟอร์ม Windows:
Cape เติมเต็มเอาต์พุต Sandbox แบบดั้งเดิมของ Cuckoo ด้วยการเพิ่มคีย์หลายรายการ:
มีอินสแตนซ์การสาธิตฟรีออนไลน์ที่ทุกคนสามารถใช้:
https://capesandbox.com - สำหรับการเปิดใช้งานบัญชีถึง https://twitter.com/capesandbox
Cuckoo Sandbox เริ่มต้นเป็นโครงการ Google Summer of Code ในปี 2010 ภายในโครงการ Honeynet เดิมทีได้รับการออกแบบและพัฒนาโดย Claudio Guarnieri การเปิดตัวเบต้าครั้งแรกได้รับการตีพิมพ์ในปี 2011 ในเดือนมกราคม 2014 Cuckoo v1.0 ได้รับการปล่อยตัว
ปี 2558 เป็นปีที่สำคัญโดยมีส้อมที่สำคัญในประวัติศาสตร์ของ Cuckoo การพัฒนาวิธีการตรวจสอบดั้งเดิมและวิธีการเชื่อมต่อ API ถูกหยุดลงในโครงการ Cuckoo หลัก มันถูกแทนที่ด้วยจอมอนิเตอร์ทางเลือกโดยใช้รูปแบบลายเซ็นแบบ restructuredText ที่รวบรวมผ่าน Linux Toolchain สร้างโดย Jurriaan Bremer
ในเวลาเดียวกันส้อมที่เรียกว่า Cuckoo-Modified ถูกสร้างขึ้นโดย Brad 'Spender' Spengler การพัฒนาอย่างต่อเนื่องของจอมอนิเตอร์ดั้งเดิมพร้อมการปรับปรุงที่สำคัญรวมถึงการสนับสนุน 64 บิตและที่สำคัญแนะนำคอมไพเลอร์ Visual Studio ของ Microsoft
ในระหว่างการพัฒนาปีเดียวกันของการกำหนดค่าบรรทัดคำสั่งแบบไดนามิกและเครื่องมือสกัดเพย์โหลดที่เรียกว่า Cape เริ่มต้นที่ความปลอดภัยของข้อมูลบริบทโดย Kevin O'Reilly ชื่อดังกล่าวได้รับการประกาศเกียรติคุณเป็นตัวย่อของ 'config และ payload extraction' และการวิจัยดั้งเดิมมุ่งเน้นไปที่การใช้ตะขอ API ที่จัดทำโดยห้องสมุด Detours ของ Microsoft เพื่อจับภาพมัลแวร์และการกำหนดค่าที่ไม่ได้บรรจุ อย่างไรก็ตามมันก็เห็นได้ชัดว่า API Hooks เพียงอย่างเดียวให้พลังงานและความแม่นยำไม่เพียงพอที่จะอนุญาตให้คลี่เพย์โหลดหรือกำหนดค่าจากมัลแวร์โดยพลการ
ด้วยเหตุนี้การวิจัยจึงเริ่มเป็นแนวคิดดีบั๊กใหม่เพื่อให้มัลแวร์สามารถควบคุมและใช้เครื่องมือได้อย่างแม่นยำในขณะที่หลีกเลี่ยงการใช้อินเทอร์เฟซดีบั๊กของ Microsoft ดีบักเกอร์นี้ถูกรวมเข้ากับเครื่องมือบรรทัดคำสั่งตามแนวทางการตรวจสอบความคิดเห็นรวมกับตะขอ API และส่งผลให้เกิดความสามารถที่ทรงพลังมาก
เมื่องานเริ่มต้นแสดงให้เห็นว่ามันเป็นไปได้ที่จะแทนที่ Microsoft etours ด้วยเอ็นจิ้น API ของ Cuckoo-Modified ความคิดสำหรับ Cape Sandbox เกิดขึ้น ด้วยการเพิ่มตัวดีบัก, การเปิดตัวอัตโนมัติ, การจำแนกประเภทของ YARA และการแยกการกำหนดค่าแบบบูรณาการในเดือนกันยายน 2559 ที่ 44CON, Cape Sandbox ได้รับการเผยแพร่สู่สาธารณะเป็นครั้งแรก: Cape เวอร์ชัน 1
ในช่วงฤดูร้อนปี 2561 โครงการโชคดีที่ได้เห็นจุดเริ่มต้นของการมีส่วนร่วมอย่างมากจาก Andriy 'Doomedraven' Brukhovetskyy ซึ่งเป็นผู้สนับสนุนนกกาเหว่าเป็นเวลานาน ในปี 2562 เขาเริ่มงานแมมมอ ธ ในการพอร์ตเคปไปที่ Python 3 และในเดือนตุลาคมของปีนั้น Capev2 ได้รับการปล่อยตัว
Cape ได้รับการพัฒนาและปรับปรุงอย่างต่อเนื่องเพื่อให้ทันกับความก้าวหน้าทั้งในมัลแวร์และความสามารถของระบบปฏิบัติการ ในปี 2021 ความสามารถในการตั้งโปรแกรมดีบักเกอร์ของ Cape ในระหว่างการระเบิดผ่านการสแกน Yara แบบไดนามิกถูกเพิ่มเข้ามาช่วยให้สามารถบายพาสไดนามิกสำหรับเทคนิคการต่อต้านแซนด์บ็อกซ์ Windows 10 กลายเป็นระบบปฏิบัติการเริ่มต้นและการเพิ่มเติมที่สำคัญอื่น ๆ ได้แก่ เดสก์ท็อปแบบโต้ตอบ, AMSI (อินเทอร์เฟซสแกนต่อต้านมัลแวร์) การจับภาพโหลด 'Syscall Hooking' ตาม Microsoft Nirvana

มัลแวร์สามารถจำแนกได้ใน Cape ผ่านสามกลไก:

การแยกวิเคราะห์สามารถทำได้โดยใช้เฟรมเวิร์กของ Cape หรือรองรับเฟรมเวิร์กต่อไปนี้: Ratdecoders, DC3-MWCP, Malduck หรือ Maco
def extract_config(data): ซึ่งจะถูกเรียกโดย cape_utils.py และ 0 ภาวะแทรกซ้อน
Cape ใช้ประโยชน์จากเทคนิคมัลแวร์หรือพฤติกรรมจำนวนมากเพื่อให้สามารถจับการบรรจุเพย์โหลดที่ยังไม่ได้:
พฤติกรรมเหล่านี้จะส่งผลให้การจับเพย์โหลดถูกฉีดสกัดหรือบีบอัดสำหรับการวิเคราะห์เพิ่มเติม นอกจากนี้ Cape จะสร้างการถ่ายโอนข้อมูลกระบวนการสำหรับแต่ละกระบวนการโดยอัตโนมัติหรือในกรณีของ DLL ภาพโมดูลของ DLL ในหน่วยความจำ สิ่งนี้มีประโยชน์สำหรับตัวอย่างที่เต็มไปด้วยแพคเกอร์แบบง่าย ๆ ซึ่งบ่อยครั้งที่การถ่ายโอนข้อมูลภาพโมดูลถูกแกะออกอย่างสมบูรณ์
นอกเหนือจากกลไกการเปิดตัว 'แฝง' เริ่มต้นของ Cape แล้วยังเป็นไปได้ที่จะเปิดใช้งานการเปิดตัว 'active' ซึ่งใช้จุดพักเพื่อตรวจจับการเขียนไปยังภูมิภาคหน่วยความจำที่จัดสรรใหม่หรือได้รับการป้องกัน สิ่งนี้ถูกเปิดใช้งานผ่านเว็บการส่งเว็บ Tickbox หรือโดยการระบุตัวเลือก unpacker=2 และถูกทิ้งไว้โดยค่าเริ่มต้นเนื่องจากอาจส่งผลกระทบต่อคุณภาพการระเบิด
Cape สามารถตั้งโปรแกรมผ่านลายเซ็น Yara เพื่อแกะแพคเกอร์เฉพาะ ตัวอย่างเช่นแพคเกอร์ประเภท UPX เป็นเรื่องธรรมดามากและแม้ว่าใน CAPE ผลลัพธ์เหล่านี้จะถูกจับอย่างไม่หยุดยั้งการจับภาพเริ่มต้นหลังจากที่น้ำหนักบรรทุกที่ไม่ได้ใช้งานได้เริ่มดำเนินการแล้ว ดังนั้นโดยการตรวจจับ Packers ที่ได้มาจาก UPX แบบไดนามิกผ่านลายเซ็น YARA ที่กำหนดเองและการตั้งค่าเบรกพอยต์ในคำสั่ง Packer สุดท้ายจึงเป็นไปได้ที่จะจับภาพน้ำหนักบรรทุกที่จุดเริ่มต้นเดิม (OEP) ก่อนที่จะเริ่มดำเนินการ


ตัวเลือก dump-on-api อนุญาตให้โมดูลถูกทิ้งเมื่อเรียกฟังก์ชัน API เฉพาะที่สามารถระบุได้ในเว็บอินเตอร์เฟส (เช่น dump-on-api=DnsQuery_A )
ดีบักเกอร์อนุญาตให้ Cape พัฒนาต่อไปนอกเหนือจากความสามารถดั้งเดิมซึ่งตอนนี้รวมถึงบายพาสป้องกันการวิวัฒนาการแบบไดนามิก เนื่องจากมัลแวร์สมัยใหม่มักจะพยายามหลบเลี่ยงการวิเคราะห์ภายใน Sandboxes ตัวอย่างเช่นโดยใช้กับดักจับเวลาสำหรับการเสมือนจริงหรือการตรวจจับตะขอ API Cape ช่วยให้การตอบโต้แบบไดนามิกได้รับการพัฒนารวมการกระทำของดีบักเกอร์ภายในลายเซ็นของ Yara


การเข้าถึงดีบักเกอร์อย่างรวดเร็วนั้นเกิดขึ้นได้ด้วยตัวเลือกการส่ง bp0 ผ่าน bp3 ยอมรับค่า RVA หรือ VA เพื่อกำหนดจุดพักดังนั้นการติดตามคำสั่งสั้น ๆ จะถูกส่งออกภายใต้ตัวเลือก count และ depth (เช่น bp0=0x1234,depth=1,count=100 ) 
ในการตั้งค่าเบรกพอยต์ที่จุดเริ่มต้นของโมดูล ep จะใช้แทนที่อยู่ (เช่น bp0=ep ) อีกทางเลือกหนึ่ง break-on-return อนุญาตให้มีจุดพักบนที่อยู่ผู้ส่งกลับของ API ที่เชื่อมต่อ (เช่น break-on-return=NtGetContextThread ) พารามิเตอร์ base-on-api ช่วยให้ฐานภาพสำหรับเบรกพอยต์ RVA ตั้งค่าโดยการเรียก API (เช่น base-on-api=NtReadFile,bp0=0x2345 )

ตัวเลือก action0 - action3 อนุญาตให้ดำเนินการดำเนินการเมื่อมีการหยุดพักเช่นการทิ้งหน่วยความจำ (เช่น action0=dumpebx ) หรือเปลี่ยนโฟลว์การควบคุมการดำเนินการ (เช่น action1=skip ) เอกสารประกอบของ Cape มีตัวอย่างเพิ่มเติมของการกระทำดังกล่าว
ที่เก็บที่มีรหัสสำหรับจอภาพของ Cape นั้นแตกต่างกัน
มีพื้นที่เก็บข้อมูลชุมชนของลายเซ็นที่มีลายเซ็นหลายร้อยที่พัฒนาโดยชุมชนเคป คุณสมบัติชุมชนใหม่ทั้งหมดควรถูกผลักดันไปยัง repo นั้น หลังจากนั้นพวกเขาสามารถย้ายไปที่แกนได้หาก devs สามารถและเต็มใจที่จะรักษาพวกเขา
โปรดมีส่วนร่วมในโครงการนี้โดยช่วยสร้างลายเซ็นตัวแยกวิเคราะห์หรือบายพาสใหม่สำหรับครอบครัวมัลแวร์เพิ่มเติม ปัจจุบันมีงานมากมายดังนั้นดูพื้นที่นี้
ขอขอบคุณอย่างมากสำหรับ @D00M3DR4V3N สำหรับการพอร์ตเคปพอร์ตเดียวไปยัง Python 3
Python3
ควรมีการรูทเลอร์เป็นรูทเท่านั้น ส่วนที่เหลือเป็นผู้ใช้ Cape การทำงานเป็นรูทจะยุ่งกับการอนุญาต
conf !kvm-qemu.sh และ cape2.sh จากเซสชัน tmux เพื่อป้องกันปัญหาระบบปฏิบัติการใด ๆ หากการเชื่อมต่อ ssh แตก<username> ด้วยรูปแบบจริง<WOOT> ทั้งหมดภายใน!sudo ./kvm-qemu.sh all <username> 2>&1 | tee kvm-qemu.logsudo ./cape2.sh base 2>&1 | tee cape.logconfsystemctl restart <service_name>journalctl -u <service_name>-h สำหรับเมนูช่วยเหลือ การเรียกใช้บริการในโหมดดีบัก ( -d ) สามารถช่วยได้เช่นกัน-h แต่โปรดตรวจสอบสคริปต์เพื่อ ทำความเข้าใจว่า พวกเขากำลังทำอะไรอยู่git pullpython3 utils/community.py -waf ดู -h ก่อนเพื่อให้แน่ใจว่าคุณเข้าใจ git add --all
git commit -m '[STASH]'
git pull --rebase origin master
# fix conflict (rebase) if needed
git reset HEAD~1
# make sure kevoreilly repo has been added as a remote (only needs to be done once)
git remote add kevoreilly https://github.com/kevoreilly/CAPEv2.git
# make sure all your changes are commited on the branch which you will be merging
git commit -a -m '<your commit message goes here>'
# fetch changes from kevoreilly repo
git fetch kevoreilly
# merge kevoreilly master branch into your current branch
git merge kevoreilly/master
# fix merge conflicts if needed
# push to your repo if desired
git push
หากคุณใช้ CAPEV2 ในงานของคุณโปรดอ้างอิงตามที่ระบุไว้ในเมนู "อ้างอิงที่เก็บนี้" GitHub
pefile เป็นแต่ละรุ่นพินที่พวกเขาต้องการpefile ตามที่คุณติดตั้งอยู่แล้ว Volia ไม่เจ็บปวดอีกต่อไป