gcpwn เป็นเครื่องมือที่สร้างขึ้นเองในขณะที่พยายามเรียนรู้ GCP และใช้ประโยชน์จากไลบรารีไคลเอ็นต์ GRPC รุ่นใหม่ ประกอบด้วยโมดูลการแจงนับจำนวนมากที่ฉันเขียนและโมดูลการหาประโยชน์ซึ่งใช้ประโยชน์จากการวิจัยที่ทำโดยผู้อื่นในพื้นที่ (เช่น Rhino Security) พร้อมด้วยเครื่องมือสแตนด์อโลนที่รู้จักบางส่วนที่มีอยู่ เช่น GCPBucketBrute ในความพยายามที่จะทำให้เครื่องมือดังกล่าวเป็นร้านค้าครบวงจรสำหรับการทดสอบ GCP . แม้ว่าสคริปต์การหาประโยชน์อื่นๆ โดยทั่วไปจะใช้เพียงครั้งเดียว แต่ GCPwn จะจัดเก็บทั้งข้อมูลและการอนุญาตในขณะที่คุณเรียกใช้ผ่านโมดูล ที่จัดระเบียบข้อมูลสำหรับคุณ และนำกลับมาใช้ใหม่เพื่อทำให้ชีวิตของคุณง่ายขึ้นในแง่ของการอนุญาตการทดสอบ/การติดตาม
ผู้แต่ง: Scott Weston (@webbinroot), NetSPI
การพึ่งพาที่จำเป็น: ดู Requirements.txt + คู่มือการติดตั้ง Wiki
หมายเหตุการพึ่งพา: ทดสอบบน Kali Linux เป็นหลัก; การติดตั้ง Docker สามารถทำได้ผ่าน Dockerfile
เครื่องมือนี้มีไว้สำหรับ Pentester ผู้ที่เพิ่งเรียนรู้การรักษาความปลอดภัยของ GCP และนักวิจัยด้านความปลอดภัยโดยทั่วไปเป็นหลัก
สำหรับเพนเทสเตอร์ ดังที่แสดงไว้ด้านบน เครื่องมือจะทำให้สคริปต์จำนวนมากที่คุณเรียกใช้ตามปกติเป็นอัตโนมัติ และจัดเก็บข้อมูลเพื่อทำให้โมดูลการหาประโยชน์กลายเป็นเรื่องเล็กน้อยในการดำเนินการ
สำหรับผู้ที่เพิ่งเรียนรู้การรักษาความปลอดภัยของ GCP เครื่องมือจะได้รับการตั้งค่าในลักษณะที่ง่ายต่อการเพิ่มโมดูลของคุณเองผ่านคำขอ Pull เมื่อคุณเจาะลึกเข้าไปในบริการแต่ละรายการ
สำหรับนักวิจัยด้านความปลอดภัย เครื่องมือนี้ช่วยให้คุณเรียกใช้ผ่านการเรียก GCP API จำนวนมากได้ และฉันจะบันทึกวิธีการพร็อกซีเครื่องมือในเบื้องหลังผ่านเครื่องมือในเครื่อง เช่น Burp Suite ดังนั้นการรัน enum_all
ด้วยการบันทึก burp suite คำขอทั้งหมดจะทำให้คุณมองเห็นจุดสิ้นสุด API ที่แตกต่างกันทั้งหมดในไลบรารี Python ที่แตกต่างกันทั้งหมดด้วยคำสั่งเดียว อย่างน้อยก็เป็นความหวัง ฉันได้มันบางส่วนที่ทำงานกับตัวแปร env ได้ หากมีใครสามารถถอดรหัสโค้ดให้เสร็จได้ :)
ตรวจสอบวิกิที่ https://github.com/NetSPI/gcpwn/wiki สำหรับ:
คำแนะนำในการติดตั้งและการตั้งค่าโฟลเดอร์ : วิธีการตั้งค่าเครื่องมือสำหรับการใช้งานครั้งแรกและโฟลเดอร์เริ่มต้นที่ใช้
การจัดการการรับรองความถูกต้องและข้อมูลโทเค็น : โหลดข้อมูลรับรองผู้ใช้และ/หรือบริการเพื่อรับการตั้งค่าเครดิต
การจัดการโครงการและการดึงข้อมูลทรัพยากร : วิธีจัดการรหัสโครงการและวิธีการดึงข้อมูลที่ระบุจากตาราง SQLite
คู่มือโมดูล : วิธีเรียกโมดูล + เจาะลึกแต่ละโมดูล
การสร้างโมดูล : วิธีเพิ่มโมดูลของคุณเองผ่านคำขอดึง (กำลังดำเนินการ - วันที่เป้าหมาย 9/15/2024)
Research Head Scratchers : หัวข้อวิจัย/คำถามเปิด (กำลังดำเนินการ - เป้าหมายวันที่ 9/22/2567)
เครื่องมือจะตั้งค่าเริ่มต้นอัตโนมัติเป็น "table" stdout เครื่องมือรองรับตาราง, txt และ csv หากคุณประสบปัญหากับตาราง สามารถเปลี่ยนการกำหนดค่าส่วนกลางได้ดังนี้:
# See global configs global_configs # Set global configs for preferred output global_configs set std-output txt
หรือคุณสามารถส่งผ่าน --txt
, --table
และ/หรือ --csv
โดยแต่ละ modules run
คำสั่งเพื่อเปลี่ยน stdoutput
modules run enum_buckets --txt
ข้อมูลที่ระบุจะจัดเก็บไว้ในตารางในเครื่องใน GCPwn หากต้องการดูการรันเอาต์พุตของตาราง
# See all tables data tables # See all table columns data tables--columns # Get all data back and export to CSV file data --columns column1,column2 --csv [OUTPUT_FILE]
เรียกใช้โมดูล enum_all
ตามด้วย creds info
เพื่อดูสิทธิ์ที่แจกแจงใหม่ จากนั้นโมดูล process_iam_bindings
จะให้ข้อมูลสรุปการเชื่อมโยงนโยบาย TXT/CSV แก่คุณ หากสามารถระบุได้ และ analyze_vulns
จะพยายามตั้งค่าสถานะบทบาท/สิทธิ์ที่ไม่ถูกต้อง ดูธงทั่วไปด้านล่าง
แจกแจงทุกอย่าง (เลือกหนึ่งที่เหมาะสมที่สุด)
# Quickest: Run all enumeration modules + testIAM Permissions modules run enum_all --iam # Longer: Run all enumeration modules + testIAM Permissions including ~9000 for projects/folder/org modules run enum_all --iam --all-permissions # Longer + Downloads: Run all enumeration modules + testIAM Permissions including ~9000 for projects/folder/org + download everyting modules run enum_all --iam --all-permissions --download
นำการเชื่อมโยงนโยบาย IAM ทั้งหมดจาก enum_all หรือโมดูลอื่นๆ ด้านบนแล้วส่งคืนการวิเคราะห์สรุป/vuln
# Review Permissions User Has Thus Far creds info # Return Policy Summary from IAM Bindings if Applicable modules run process_iam_bindings [--txt] [--csv] # Analyze IAM Bindings + Other Items (like allUsers) if Applicable modules run analyze_vulns [--txt] [--csv]
fwd:cloudsec 2024: https://www.youtube.com/watch?v=opvv9h3Qe0s ("GCPwn: เครื่องมือทดสอบสำหรับ GCP - Scott Weston")
Defcon 32 หมู่บ้านคลาวด์: https://www.youtube.com/watch?v=rxXyYo1n9cw
https://www.netspi.com/blog/technical-blog/cloud-pentesting/introduction-to-gcpwn-part-1/
ฉันจะคอยดูประเด็น/มองหาสิ่งใหม่ๆ เจ๋งๆ ที่ว่าฉันมีงานรายวัน ดังนั้นให้เวลาฉันอย่างน้อย 24 ชั่วโมงหรืออะไรก็ได้ :)
หากเป็นปัญหาเล็กๆ ควรเลือกใช้แท็บปัญหาผ่านปัญหาเพื่อการแก้ไขอย่างรวดเร็ว
สร้างขึ้นบนไหล่ของยักษ์ใหญ่ เครดิตสำหรับโค้ดและแนวคิด/การวิจัยบางส่วนได้รับแรงบันดาลใจจาก:
ความปลอดภัยของแรด (https://rhinosecuritylabs.com/gcp/privilege-escalation-google-cloud-platform-part-1/)
GCPBucketBrute (https://github.com/RhinoSecurityLabs/GCPBucketBrute)
เอกสาร Google มากมาย (https://cloud.google.com/python/docs/reference)