ความกระฉับกระเฉง

Rustredops เป็นที่เก็บข้อมูลที่เป็นที่ตั้งของเครื่องมือและโครงการต่าง ๆ ที่เกี่ยวข้องกับการดำเนินงานของทีมสีแดงที่พัฒนาขึ้นใน Rust ที่เก็บนี้มีไว้เพื่อจัดหาเครื่องมือที่มีประสิทธิภาพและมีประสิทธิภาพสำหรับผู้เชี่ยวชาญด้านความปลอดภัยและผู้ทดสอบการเจาะที่ต้องการทำการประเมินความปลอดภัยและการทดสอบการบุกรุก
สารบัญ
- สารบัญ
- ทรัพยากร
- โครงการสนิมอื่น ๆ
- ความต้องการ
- รวบรวม
- รวบรวมโครงการ
- การเพิ่มสถาปัตยกรรมปลายทาง
- การรวบรวมสำหรับสถาปัตยกรรมเฉพาะ
- วิธีเริ่มต้นใช้งาน
- มีส่วนร่วมในความวุ่นวาย
- การอ้างอิง
- ใบอนุญาต
สารบัญ
ที่เก็บจัดเป็นหลายโครงการแต่ละโครงการมีจุดประสงค์และฟังก์ชั่นของตนเอง นี่คือตัวอย่างของโครงการรวม:
การฉีด APC
- โครงการนี้ใช้เทคนิคการฉีดรหัสแบบอะซิงโครนัส (APC) เพื่อดำเนินการรหัสที่เป็นอันตรายในกระบวนการเป้าหมาย
API HOOKING
- การสาธิตการเชื่อมต่อ API ซึ่งเป็นเทคนิคการเขียนโปรแกรมที่ช่วยให้คุณสกัดกั้นและจัดการการโทรไปยังฟังก์ชั่น Windows API
การต่อต้าน
- เทคนิคการต่อต้าน debugging
API ตอก
- API Hammering ประกอบด้วยการดำเนินการต่าง ๆ เพื่อชะลอมัลแวร์
การต่อต้านการวิเคราะห์
- เทคนิคการต่อต้านการวิเคราะห์
ข้อมูลไบนารี
- นี่เป็นเพียงการสาธิตอย่างง่าย ๆ ในกรณีที่คุณต้องการรวมข้อมูลเมตาในไบนารีสนิมของคุณหรือเปลี่ยนไอคอนที่เกี่ยวข้อง
บล็อกนโยบาย DLL
- หลีกเลี่ยงการโหลด DLL ที่ไม่ได้ลงนามโดย Microsoft
สร้างไดรเวอร์
- เป็นโครงการที่แสดงวิธีการสร้างไดรเวอร์ง่ายๆโดยใช้ Rust
สร้าง DLL
- เป็นโครงการที่แสดงวิธีการสร้าง DLL โดยใช้ Rust
การเรียกใช้รหัสการโทรกลับ
- การสาธิตการดำเนินการ ShellCode ผ่านการโทรกลับ
สร้าง uefi
- เป็นโครงการที่แสดงวิธีการสร้าง UEFI โดยใช้ Rust
รวบรวมสตริง Encrypt
- การเข้ารหัสสตริงในเวลาคอมไพล์และถอดรหัสพวกเขาเมื่อรันไทม์
สารสกัด wifi
- การแยกรหัสผ่าน WiFi โดยใช้ Winapis เป็นรูปแบบที่กำหนดเองของคำสั่ง NETSH
การฉีด APC นกก่อน
- มันมุ่งเน้นไปที่การเปลี่ยนแปลงของการฉีด APC ดำเนินการรหัสก่อนที่กระบวนการหลักจะเริ่มขึ้น
การเข้ารหัส (ShellCode)
- การเข้ารหัส / ถอดรหัสเชลล์โดยใช้ AES และ RC4
กระบวนการแจงนับ
- การแจกแจงกระบวนการด้วยสนิม
เปิดใช้งานโทเค็นทั้งหมด
- เปิดใช้งานโทเค็นสิทธิพิเศษทั้งหมด
ดำเนินการคำสั่ง
Hells / Halos / Tartarus Gate
- การกู้คืน SSN ผ่านเทคนิค Hells / Halos / Tartarus Gate
การทำให้งงงวยของ IAT
- การทำให้งงงวย IAT โดยการแทนที่ getProcaddress และ getModuleHandle
การอำพราง IAT
- เทคนิคสำหรับการส่งออก APIs (โดยไม่ดำเนินการ) เพื่ออำพราง IAT และหลีกเลี่ยงลักษณะที่เป็นอันตราย
ldrloaddll unhook
- หลักฐานของแนวคิดในการฉีดสปริงบอร์ดเพื่อข้ามตะขอ EDR และใช้ LDRLOADDLL
การดำเนินการโหลดในพื้นที่
- โครงการนี้กล่าวถึงการดำเนินการโดยตรงของน้ำหนักบรรทุกที่เป็นอันตรายในสภาพแวดล้อมท้องถิ่นของระบบ
การฉีดแผนที่ท้องถิ่น
- ทำการฉีดรหัสที่เป็นอันตรายผ่านการแมปหน่วยความจำในกระบวนการท้องถิ่น
ฟังก์ชั่นท้องถิ่นกระทืบการฉีด
- มันมุ่งเน้นไปที่การแทนที่ฟังก์ชั่นที่ใช้งานในเครื่องด้วยรหัสที่เป็นอันตรายเปลี่ยนพฤติกรรมเริ่มต้น
การจี้เธรดท้องถิ่น
- โครงการนี้เกี่ยวข้องกับการจี้เธรดของกระบวนการที่ทำงานบนระบบท้องถิ่นเพื่อดำเนินการรหัสที่เป็นอันตราย
การฉีด PE ในท้องถิ่น
- การรันไฟล์ PE ในหน่วยความจำ
minidump-rs
- การทิ้งกระบวนการ lsass.exe
โมดูลกระทืบ
- เทคนิคการกระทืบโมดูลมุ่งเน้นไปที่การฉีดเชลล์ลงในจุดเข้าใช้งานของ DLL ที่แมปหรือโหลด
ntdll unhooking
- เรียกใช้ NTDLL ที่ไม่สามารถมองผ่านกระบวนการที่ถูกระงับได้
ชื่อ Pipe Server / ไคลเอนต์
- โครงการง่าย ๆ แสดงให้เห็นว่าเราสามารถสื่อสารระหว่างกระบวนการโดยใช้ท่อชื่อได้อย่างไร
โมดูลโอเวอร์โหลด
- การโอเวอร์โหลดโมดูลเป็นเทคนิคที่แมปเป้าหมาย DLL และแทนที่เนื้อหาด้วยไฟล์ EXE / DLL จากนั้นเรียกใช้งาน
shellcode ที่ทำให้งงงวย
- การทำให้งงงวย ShellCode โดยใช้ IPv4, IPv6, Mac และ UUIDS
การปลอมแปลง PPID
- แสดงให้เห็นถึงเทคนิคการปลอมแปลง PPID
แยกวิเคราะห์ส่วนหัว PE
- รหัสนี้มุ่งเน้นไปที่การแยกวิเคราะห์ส่วนหัว PE ของไฟล์ปฏิบัติการ Windows ใด ๆ
patch etw
Patch Amsi
การควบคุมการดำเนินการของเพย์โหลด
- การควบคุมการดำเนินการของ Payload ผ่าน Mutex เหตุการณ์และเซมาฟอร์
การปลอมแปลงอาร์กิวเมนต์
- ใช้ประโยชน์จากเทคนิคการปิดบังหรือเปลี่ยนแปลงข้อโต้แย้งของกระบวนการเพื่อซ่อนกิจกรรมที่เป็นอันตราย
การฉีดกระบวนการ (DLL)
- มันมุ่งเน้นไปที่การฉีดไลบรารีลิงก์แบบไดนามิก (DLL) ลงในกระบวนการรันเพื่อดำเนินการรหัสที่เป็นอันตราย
การฉีดกระบวนการ (shellcode)
- มันใช้ประโยชน์จากการฉีด ShellCode โดยตรงไปยังกระบวนการทำงานเพื่อควบคุมหรือดำเนินงานที่เป็นอันตราย
ตำแหน่งของน้ำหนักบรรทุก
- การจัดเก็บ shellcode ในส่วน. ข้อความแล้วดำเนินการ
กระบวนการสะกดจิต
- เทคนิคนี้มุ่งเน้นไปที่การควบคุมกระแสการดำเนินการของโปรแกรมที่กำลังดีบั๊กและได้รับข้อมูลที่เกี่ยวข้องจากมันเช่นการสร้างเธรดใหม่โมดูลโหลดข้อยกเว้นและอื่น ๆ อีกมากมาย หรือแม้แต่เรียกใช้งาน ShellCode
เส้นใยการดำเนินการของน้ำหนักบรรทุก
การแสดงละครบรรทุก
- โครงการนี้มุ่งเน้นไปที่การสาธิตวิธีการดึงรหัสเชลล์โดยใช้คำขอ HTTP และคีย์รีจิสทรี
ประมวลผลผี
- การโหลดไฟล์ PE โดยใช้เทคนิคการทำ Ghosting Process
ประมวลผล Herpaderping
- การบดบังความตั้งใจของกระบวนการโดยการแก้ไขเนื้อหาของดิสก์หลังจากที่ภาพถูกแมป
การจี้เธรดระยะไกล
- มันกล่าวถึงการจี้เธรดในกระบวนการระบบระยะไกลเพื่อดำเนินการที่เป็นอันตราย
ฟังก์ชั่นระยะไกลกระทืบการฉีด
- มันใช้ประโยชน์จากการแทนที่ฟังก์ชั่นในระบบระยะไกลเพื่อดำเนินกิจกรรมที่เป็นอันตราย
การฉีดแผนที่ระยะไกล
- ทำการฉีดรหัสที่เป็นอันตรายผ่านการแมปหน่วยความจำลงในกระบวนการระยะไกล
ลบ CRT
- มันมุ่งเน้นไปที่การลดการใช้ CRT (C Library) ในระหว่างการรันไทม์และใช้ธงเพิ่มเติมเพื่อตัดข้อมูลที่ไม่จำเป็นออกจากไบนารี
การลบด้วยตนเอง
- เทคนิคสำหรับการลบไบนารีที่วิ่ง
การแฮชสตริง
- การสร้างแฮชสตริงเพื่อทำการซ่อน
Syscalls
- เรียกใช้ syscall โดยตรงและโดยอ้อม
การฉีดแบบไม่มีเกลียว
- ทำการฉีดแบบไม่มีด้ายโดยใช้สนิม
WMI
- การเรียกใช้การค้นหา WMI (เครื่องมือจัดการ Windows Management)
WebAssembly ShellCode
โครงการสนิมอื่น ๆ
นี่คือตัวอย่างอื่น ๆ ของโครงการที่ฉันทำกับ Rust:
- Windows Kernel Rootkit
- รถตักโลงศพ
- วิ่ง. NET
ทรัพยากร
- แต่ละโครงการสามารถรวมส่วนคุณสมบัติที่ให้รายละเอียดคุณสมบัติหลักและฟังก์ชันการทำงานของโครงการ
- คุณสามารถดูคำแนะนำการติดตั้งการใช้งานและตัวอย่างสำหรับแต่ละโครงการในไดเรกทอรีที่เกี่ยวข้อง
ความต้องการ
- Rust: Rust เป็นภาษาการเขียนโปรแกรมที่ทันสมัยและปลอดภัยที่ใช้ในการพัฒนาเครื่องมือในที่เก็บนี้
- สินค้า: สินค้าเป็นผู้จัดการแพ็คเกจและคอมไพเลอร์ของ Rust ซึ่งจำเป็นสำหรับการรวบรวมและดำเนินโครงการ
รวบรวม
รวบรวมโครงการ
ในการเริ่มต้นการรวบรวมให้ใช้คำสั่งต่อไปนี้:
การเพิ่มสถาปัตยกรรมปลายทาง
หากคุณใช้ระบบปฏิบัติการที่แตกต่างกันหรือจำเป็นต้องรวบรวมสำหรับสถาปัตยกรรมเฉพาะคุณสามารถแสดงรายการสถาปัตยกรรมเป้าหมายที่มีอยู่ทั้งหมดด้วยคำสั่งต่อไปนี้:
เมื่อคุณระบุสถาปัตยกรรมเป้าหมายที่ต้องการแล้วให้เพิ่มโดยใช้ Rustup:
rustup target add < arch >
แทนที่ด้วยสถาปัตยกรรมที่ต้องการเช่น X86_64-PC-Windows-GNU
การรวบรวมสำหรับสถาปัตยกรรมเฉพาะ
จากนั้นรวบรวมโครงการสำหรับสถาปัตยกรรมเฉพาะ:
cargo build --release --target < arch >
วิธีเริ่มต้นใช้งาน
ทำตามขั้นตอนเหล่านี้เพื่อเริ่มใช้โครงการในที่เก็บนี้:
- โคลนที่เก็บนี้บนเครื่องในพื้นที่ของคุณ:
git clone https://github.com/joaoviictorti/RustRedOps.git
- นำทางไปยังไดเรกทอรีของโครงการที่คุณสนใจ:
cd RustRedOps/ < name-project >
- ทำตามคำแนะนำการติดตั้งและการใช้งานเฉพาะโครงการตามที่อธิบายไว้ใน readMe ภายในไดเรกทอรีนี้
มีส่วนร่วมในความวุ่นวาย
เพื่อมีส่วนร่วมใน ความวุ่นวาย ให้ทำตามขั้นตอนเหล่านี้:
- แยกที่เก็บนี้
- สร้างสาขา:
git checkout -b <branch_name> - ทำการเปลี่ยนแปลงของคุณและกระทำพวกเขา:
git commit -m '<commit_message>' - ผลักดันการเปลี่ยนแปลงของคุณไปยังสาขาของคุณ:
git push origin <branch_name> - สร้างคำขอดึง
อีกทางเลือกหนึ่งปรึกษาเอกสาร GitHub เกี่ยวกับวิธีการสร้างคำขอดึง
การอ้างอิง
ฉันต้องการแสดงความขอบคุณอย่างจริงใจต่อผู้สร้างโครงการที่น่าทึ่งและเทคนิคที่น่าสนใจซึ่งให้เครื่องมือและแรงบันดาลใจที่จำเป็นในการสร้างที่เก็บข้อมูลพิเศษนี้
- https://github.com/memn0ps
- https://github.com/hasherezade
- https://github.com/vxunderground
- https://github.com/nul0x4c
- https://github.com/mrd0x
- https://github.com/cracked5pider
- https://github.com/trickster0
- https://github.com/blwasp
- https://balwurk.com/shellcode-evasion-using-webassembly-and-rust
- https://github.com/janoglezcampos/rust_syscalls
- https://github.com/microsoft
- https://ired.team
- https://github.com/rust-osdev/uefi-rs
- https://github.com/stephanvanschaik/windows-kernel-rs
- https://discord.gg/rust-lang-community (ชุมชน Discord ที่ช่วยได้มาก)
- https://github.com/ccob
- https://github.com/anvie/litcrypt.rs
ใบอนุญาต
โครงการนี้ได้รับใบอนุญาตภายใต้ ใบอนุญาต MIT