Rottenpotatong เวอร์ชัน Sugared ที่มีน้ำผลไม้เล็กน้อยนั่นคือ เครื่องมือการเพิ่มสิทธิ์ในท้องถิ่นอื่น ๆ จากบัญชีบริการ Windows ไปจนถึง NT Authority System
Rottenpotatong และตัวแปรของมันใช้ประโยชน์จากห่วงโซ่การเลื่อนระดับสิทธิพิเศษตามบริการ BITS ที่มีผู้ฟัง MITM ในวันที่ 127.0.0.1:6666 และเมื่อคุณมีสิทธิพิเศษ SeImpersonate หรือ SeAssignPrimaryToken ในระหว่างการตรวจสอบ Windows Build เราพบการตั้งค่าที่ BITS ถูกปิดการใช้งานโดยเจตนาและมีการใช้พอร์ต 6666
เราตัดสินใจที่จะใช้อาวุธ Rottenpotatong: ทักทายกับมันฝรั่งฉ่ำ
สำหรับทฤษฎีดูที่ Rotten Potato - การเพิ่มสิทธิ์ในการให้บริการจากบัญชีบริการไปยังระบบและติดตามห่วงโซ่ของลิงก์และการอ้างอิง
เราค้นพบว่านอกเหนือจาก BITS ยังมีเซิร์ฟเวอร์ COM หลายตัวที่เราสามารถใช้ในทางที่ผิดได้ พวกเขาเพียงแค่ต้องทำ:
IMarshalหลังจากการทดสอบบางอย่างเราได้รับและทดสอบรายการ CLSID ที่น่าสนใจอย่างกว้างขวางในหลายเวอร์ชัน Windows
Juicypotato ช่วยให้คุณ:
เป้าหมาย clsid
เลือก clsid ใด ๆ ที่คุณต้องการ ที่นี่คุณสามารถค้นหารายการที่จัดโดย OS
com พอร์ตการฟัง
กำหนดพอร์ตการฟัง com ที่คุณชอบ (แทนที่จะเป็น hardcoded marshalled 6666)
com ฟังที่อยู่ IP
ผูกเซิร์ฟเวอร์บน IP ใด ๆ
โหมดการสร้างกระบวนการ
ขึ้นอยู่กับสิทธิ์ของผู้ใช้ที่ไม่มีตัวตนคุณสามารถเลือกได้:
CreateProcessWithToken (ต้องการ SeImpersonate )CreateProcessAsUser (ต้องการ SeAssignPrimaryToken )both กระบวนการเปิดตัว
เรียกใช้งานหรือสคริปต์หากการเอารัดเอาเปรียบสำเร็จ
อาร์กิวเมนต์กระบวนการ
ปรับแต่งอาร์กิวเมนต์กระบวนการที่เปิดตัว
ที่อยู่เซิร์ฟเวอร์ RPC
สำหรับแนวทางที่ซ่อนเร้นคุณสามารถตรวจสอบความถูกต้องของเซิร์ฟเวอร์ RPC ภายนอก
พอร์ตเซิร์ฟเวอร์ RPC
มีประโยชน์หากคุณต้องการตรวจสอบความถูกต้องของเซิร์ฟเวอร์ภายนอกและไฟร์วอลล์คือการปิดกั้นพอร์ต 135 ...
โหมดทดสอบ
ส่วนใหญ่เพื่อวัตถุประสงค์ในการทดสอบคือการทดสอบ CLSIDS มันสร้าง DCOM และพิมพ์ผู้ใช้โทเค็น ดูที่นี่สำหรับการทดสอบ
T:>JuicyPotato.exe
JuicyPotato v0.1
Mandatory args:
-t createprocess call: <t> CreateProcessWithTokenW, <u> CreateProcessAsUser, <*> try both
-p <program>: program to launch
-l <port>: COM server listen port
Optional args:
-m <ip>: COM server listen address (default 127.0.0.1)
-a <argument>: command line argument to pass to program (default NULL)
-k <ip>: RPC server ip address (default 127.0.0.1)
-n <port>: RPC server listen port (default 135)
-c <{clsid}>: CLSID (default BITS:{4991d34b-80a1-4291-83b6-3328366b9097})
-z only test CLSID and print token's user

หากผู้ใช้มีสิทธิพิเศษ SeImpersonate หรือ SeAssignPrimaryToken คุณจะเป็น ระบบ
แทบจะเป็นไปไม่ได้เลยที่จะป้องกันการใช้เซิร์ฟเวอร์ COM เหล่านี้ทั้งหมด คุณสามารถคิดที่จะปรับเปลี่ยนการอนุญาตของวัตถุเหล่านี้ผ่าน DCOMCNFG แต่ขอให้โชคดีนี่เป็นเรื่องที่ท้าทาย
ทางออกที่แท้จริงคือการปกป้องบัญชีที่ละเอียดอ่อนและแอปพลิเคชันที่ทำงานภายใต้บัญชี * SERVICE การหยุด DCOM จะยับยั้งการหาประโยชน์นี้อย่างแน่นอน แต่อาจมีผลกระทบร้ายแรงต่อระบบปฏิบัติการพื้นฐาน
มีงานสร้างอัตโนมัติ ไบนารีสามารถดาวน์โหลดได้จากส่วน Artifacts ที่นี่
ยังมีอยู่ใน Blackarch