จากการที่ AI แพร่หลายและความเสี่ยงด้านความปลอดภัยในการใช้งาน ความท้าทายในการแฮ็กวันหยุด SANS ปี 2023 เป็นประสบการณ์ที่มีคุณค่าในการดำเนินตามวัตถุประสงค์ 21 ประการที่ทดสอบและขยายทักษะด้านความปลอดภัยทางไซเบอร์หลายประการ
ความท้าทายที่ดีที่สุดสำหรับฉันคือการตามล่าหาภาพหลอนของ AI ในรายงาน Pentest, เพิ่มสิทธิพิเศษบนระบบ Linux, ค้นหาสูตรโกงในเกม Game Boy, การใช้ Azure REST API เพื่อค้นหาซอร์สโค้ดของแอปฟังก์ชัน Azure และหาประโยชน์จากช่องโหว่ในท้ายที่สุด บริการใบรับรอง SSH ฝึกใช้ อิมแพ็คเก็ต ชุดเครื่องมือและ รับรอง เพื่อแสวงหาประโยชน์จากช่องโหว่ บริการใบรับรอง Active Directoryและใช้ประโยชน์จากช่องโหว่ SQL insert และ Java deserialization ในแอปอวกาศ
ด้านล่างนี้ ฉันแชร์เส้นทางที่ฉันเดินไปเพื่อจัดการกับความท้าทายที่โดดเด่นที่สุดบางส่วน
นักข่าว
ChatNPT ซึ่งเป็นโมเดลภาษาขนาดใหญ่ (LLM) ที่ใช้สำหรับการสร้างความท้าทายบางอย่าง ได้สร้าง รายงานการทดสอบการเจาะ เกี่ยวกับช่องโหว่ที่พบในเครือข่ายของ North Pole Systems ซึ่งบางส่วนเป็นส่วนหนึ่งของความท้าทายที่กำลังจะเกิดขึ้น อย่างไรก็ตาม ChatNPT ทำให้เกิดภาพหลอนในรายละเอียดบางส่วนในรายงาน เมื่อใช้ ChatGPT หรือ LLM อื่นๆ ที่ชื่นชอบ ภารกิจคือตั้งค่าสถานะส่วนต่างๆ ที่มีข้อมูลหลอนประสาท แนวทางของฉันคือการถามคำถามเฉพาะของ ChatGPT เกี่ยวกับเนื้อหาเพื่ออธิบายสิ่งที่ฉันไม่เข้าใจในตอนแรกและในที่สุดก็ค้นพบความผิดปกติ สามในเก้าส่วนมีข้อผิดพลาด
ตามที่ยืนยันโดย ChatGPT ส่วนนี้มีหมายเลขพอร์ตที่ไม่ถูกต้อง 88,555 ซึ่งสูงกว่าหมายเลขพอร์ตสูงสุดที่ถูกต้องที่ 65,535 มาก:
ที่นี่ฉันสังเกตเห็นทันทีว่า SEND ไม่ใช่วิธีการร้องขอ HTTP
ChatNPT สับสนหมายเลขเวอร์ชัน PHP ที่กล่าวถึงในส่วนที่แปดของรายงานว่าเป็นเวอร์ชันโปรโตคอล HTTP หรือเป็นข้อความที่เข้าใจผิดว่าควรเป็น "คำขอ HTTP HEAD" ในส่วนนี้ นอกจากนี้ การเปิดเผยการลงทะเบียน Windows หรือรหัสผลิตภัณฑ์ในส่วนหัวตำแหน่งถือเป็นคำแนะนำที่ไม่ดี
Linux PrivEsc
ในการท้าทายนี้ วัตถุประสงค์สุดท้ายคือการตอบคำถาม แต่คำถามนั้นถูกซ่อนอยู่ในไฟล์ปฏิบัติการที่ไม่สามารถเข้าถึงได้:
ในขณะที่มี วิธีการต่างๆ เพื่อเพิ่มสิทธิ์บนเครื่อง Linux ความท้าทายนี้อนุญาตให้เรียกใช้งานได้แบบกำหนดเอง สำเนาง่ายๆ โดยที่บิต SUID ถูกตั้งค่าให้ถูกใช้ในทางที่ผิด หากมีการตั้งค่าบิต SUID สำหรับเจ้าของไฟล์และเจ้าของตั้งค่าไว้ รากจากนั้นไฟล์นั้นจะถูกเรียกใช้งานด้วยสิทธิ์รูทเสมอ แม้แต่ผู้ใช้ที่ไม่ใช่รูทบนระบบก็ตาม ฉันใช้คำสั่งต่อไปนี้เพื่อค้นหาไฟล์ปกติทั้งระบบที่มีบิต SUID ที่ตั้งไว้สำหรับเจ้าของ โดยละทิ้งเอาต์พุตข้อผิดพลาดใดๆ:
สำเนาง่ายๆ ดูเหมือนจะเป็นเวอร์ชันมาตรฐานที่มีช่องโหว่แต่เรียบง่าย cp คุณประโยชน์. แท้จริงแล้วข้อความช่วยเหลือแนะนำสิ่งเดียวกัน:
การใช้งาน: simplecopy
แนวทางของฉันมีดังต่อไปนี้: สร้างข้อมูลสำหรับผู้ใช้ที่มีสิทธิ์ใช้งานรูท ผนวกข้อมูลนี้เข้ากับสำเนาของ / etc / passwd ไฟล์แล้วแทนที่อันเก่า passwd ไฟล์พร้อมสำเนา ต่อไปก็ใช้. su เพื่อเข้าสู่ระบบในฐานะผู้ใช้ใหม่
ด้วยการเข้าถึงรูทของระบบ ฉันสามารถค้นหาไฟล์ปฏิบัติการได้ runmetoanswer ใน /รากรันและเดาคำตอบ: ซานตา.
คำตอบยังได้รับในไฟล์ปรับแต่งด้วย /etc/runtoanswer.yamlแต่ไฟล์นี้สามารถอ่านได้ด้วยสิทธิ์รูทหรือโดยการใช้เท่านั้น สำเนาง่ายๆ เพื่อคัดลอกไปที่ /dev/stdout.
ตลับเกม: เล่ม 2 และเล่ม 3
ความท้าทายสองประการที่เกี่ยวข้องกับวิศวกรรมย้อนกลับแบบเบาของไฟล์ Game Boy ROM เกมแรกคือเกมที่มีวัตถุประสงค์เพื่อผ่านยาม เปิดพอร์ทัล และถอดรหัสคำตอบของคลื่นอากาศ เราได้รับเกมสองเวอร์ชันพร้อมกับคำใบ้ให้ดู diff ระหว่างพวกเขา. การคัดลอกไบต์ฐานสิบหกที่แตกต่างกันสองสามไบต์จากเวอร์ชันหนึ่งไปยังอีกเวอร์ชันหนึ่งก็เพียงพอแล้วที่จะเปิดเผยพอร์ทัล ซึ่งนำไปสู่ห้องที่มีวิทยุกระจายเสียงคำตอบเป็นรหัสมอร์ส:
รหัสมอร์ส |
ดา-ดา-ดิท |
ดี-ดา-ดิ-ดิท |
ดาดาดาดาดาดา |
ดีดาดิท |
ดา-ดี-ดา-ดา |
|
ระบุความประสงค์หรือขอข้อมูลเพิ่มเติม |
g |
l |
0 |
r |
y |
อย่างที่สองคือเกมที่คุณจะได้รับคะแนนจากการกระโดดเพื่อเก็บเหรียญ อย่างไรก็ตาม การได้รับมากกว่า 998 คะแนนจะทำให้คะแนนของคุณอยู่ที่ประมาณ 0 และภายใต้เงื่อนไขบางประการ ทำให้เกิดข้อความเกี่ยวกับข้อผิดพลาดล้น วัตถุประสงค์คือเพื่อแสดงขั้นลอยไปยังส่วนถัดไปของแผนที่ที่เก็บธงไว้ แต่ต้องใช้ความชำนาญในการกระโดด แต่ฉันกลับค้นพบวิธีการบินด้วยความช่วยเหลือจาก โปรแกรมจำลองเกมบอย BGB และการผสมผสานระหว่างฟังก์ชันค้นหาการโกงและการตรวจสอบ RAM ด้วยภาพระหว่างการเล่นเกมเพื่อค้นหาไบต์ฐานสิบหกที่ควบคุมตำแหน่ง y ของผู้เล่นบนแผนที่ โดยพื้นฐานแล้ว ฉันเดาเอาว่า เกมฉลาม รหัส.
ธงนั้นก็คือ !ทอม+เอลฟ์!.
ใบรับรอง SSHenanigans
แม้ว่าการใช้ใบรับรองแทนคู่คีย์สาธารณะและส่วนตัวจะช่วยเพิ่มความปลอดภัยในการตรวจสอบสิทธิ์ผ่าน SSH แต่บริการลงนามใบรับรอง SSH ที่กำหนดค่าไม่ถูกต้องอาจทำให้ผู้โจมตีสามารถรับใบรับรองอย่างผิดกฎหมายเพื่อตรวจสอบสิทธิ์ในฐานะผู้ใช้รายอื่นได้ ความท้าทายได้รับการตั้งค่าในลักษณะดังต่อไปนี้
An ฟังก์ชัน Azure แอปปรับใช้บน northpole-ssh-certs-fa.azurewebsites.net ส่งคืนใบรับรอง SSH ให้กับใครก็ตามที่จัดเตรียมรหัสสาธารณะ SSH ใบรับรองเหล่านี้สามารถใช้เพื่อตรวจสอบสิทธิ์ผ่าน SSH ได้ ssh-server-vm.santaworkshopgeeseislands.org ในฐานะผู้ใช้ หน้าจอ.
โฮสต์ที่โดเมนนี้คือเครื่องเสมือน Azure ดังนั้นหลังจากเข้าสู่ระบบในขั้นตอนแรกของฉันคือการรวบรวมข้อมูลจาก ข้อมูลเมตาของอินสแตนซ์ เนื่องจากจำเป็นสำหรับการเรียก Azure REST API ในภายหลัง โดยเฉพาะฉันต้องการรหัสการสมัครและชื่อกลุ่มทรัพยากร ฉันยังต้องการโทเค็นการเข้าถึงเพื่อใช้ API นี้ ซึ่งฉันสามารถได้รับมา โดยใช้ข้อมูลระบุตัวตนที่ได้รับการจัดการ. โทเค็นที่ได้รับนี้จะต้องใช้ในส่วนหัวการอนุญาต HTTP เมื่อทำการเรียกไปยัง Azure REST API
ณ จุดนี้ ฉันมีทุกสิ่งที่จำเป็นในการเรียก API รับการกำหนดค่าการควบคุมแหล่งที่มา ของแอปฟังก์ชัน Azure ฉันโทรออกและในบรรดาคุณสมบัติการกำหนดค่าฉันเห็น URL ไปยัง ซอร์สโค้ดของแอปบน GitHub.
การตรวจสอบซอร์สโค้ดพบว่าแอปยอมรับพารามิเตอร์ตัวที่สอง: หลัก. หาก HTTP POST ร้องขอไปยัง /api/create-cert ปลายทางไม่ส่ง ค่าสำหรับ หลักจากนั้นจะมีค่าเริ่มต้นเป็น เด็กซน ถูกส่งกลับ แต่ยังมีช่องโหว่อยู่ โดยใช้ เรอ สวีท ฉันสามารถสกัดกั้นคำขอ HTTP POST และแทรกค่าได้ ผู้ดูแลระบบ. ฉันรู้ที่จะขอ ผู้ดูแลระบบ เพราะเป็นอาจารย์ใหญ่ใน /etc/ssh/auth_principals/เศวตศิลา บนเครื่องเสมือนและฉันต้องการเข้าถึงโฮมไดเร็กตอรี่ของ Alabaster
ด้วยใบรับรอง SSH สำหรับผู้ดูแลระบบหลักในมือ ฉันลงชื่อเข้าใช้เครื่องเสมือนเดียวกันกับ เศวตศิลา และพบรายการสิ่งที่ต้องทำของ Alabaster ในโฮมไดเร็กตอรี่ของเขา รายการมีคำธง: ขนมปังขิง.
Active Directory
เริ่มต้นบนเครื่องเสมือนเดียวกันกับความท้าทายครั้งก่อน ความท้าทายนี้พิจารณาว่ามีการกำหนดค่าผิดพลาดอย่างไร บริการใบรับรองไดเรกทอรีที่ใช้งานอยู่ ผู้โจมตีสามารถนำไปใช้ในทางที่ผิดเพื่อตรวจสอบสิทธิ์เป็นผู้ใช้รายอื่น เช่น เศวตศิลา ฉันมีไดเร็กทอรีที่เต็มไปด้วย อิมแพ็คเก็ต เครื่องมือส่วนใหญ่ต้องการชื่อโดเมนและที่อยู่ IP ของเซิร์ฟเวอร์เป้าหมาย และชื่อผู้ใช้และรหัสผ่านสำหรับการเข้าสู่ระบบ – ข้อมูลที่ฉันยังไม่มี
ขั้นตอนแรกที่ดีคือการหาสิทธิ์ของฉันสำหรับ Azure REST API เนื่องจากไม่จำเป็นต้องเรียก API ทีละรายการเพียงเพื่อพบกับข้อความปฏิเสธการอนุญาตเท่านั้น ดังนั้น ฉัน แสดงรายการสิทธิ์ทั้งหมดสำหรับกลุ่มทรัพยากร ที่ฉันค้นพบในการท้าทายครั้งก่อน
เนื่องจากฉันเห็นว่าฉันมีสิทธิ์หลายประการในการอ่าน Key Vault ฉันจึงย้ายไปที่ แสดงรายการพวกเขา และพบสอง: ขั้วโลกเหนือ-it-kv และ ขั้วโลกเหนือ-ssh-certs-kv.
ถึงเวลาเปลี่ยน API จนถึงตอนนี้ฉันได้โทรไปยังปลายทางแล้ว การจัดการ. azure.com แต่บางส่วนของ Azure Key Vault เปิดอยู่ vault.azure.net และทรัพยากรนี้ต้องการโทเค็นการเข้าถึงของตัวเอง อีกครั้งที่ฉันใช้ของฉัน จัดการข้อมูลประจำตัวเพื่อรับโทเค็นการเข้าถึง แต่คราวนี้เปลี่ยนทรัพยากรเป็น vault.azure.net.
In ขั้วโลกเหนือ-it-kvผม พบชื่อแห่งความลับ. โดยใช้ชื่อนั้นว่า I ขอทราบคุณค่าของความลับนี้ซึ่งกลายเป็นสคริปต์ PowerShell สำหรับ การสร้างผู้ใช้ Active Directory ที่เรียกว่า เอลฟี่. ที่สำคัญ ตอนนี้ฉันมีข้อมูลทั้งหมดที่จำเป็นในการใช้ประโยชน์จากชุดเครื่องมือ Imppacket แล้ว
การใช้ GetADUsers.py เปิดเผยผู้ใช้รายอื่นในโดเมนที่อาจสนใจ: วอมบลีย์คิวบ์. ฉันยังสามารถเชื่อมต่อผ่าน SMB ไปยังเซิร์ฟเวอร์ Active Directory ได้โดยใช้ smbclient.py. ส่วนแบ่งไฟล์ที่สนใจประกอบด้วย super_secret_research ไดเร็กทอรี แต่ฉันไม่สามารถอ่านได้ เอลฟี่.
โชคดีที่ฉันสามารถเข้าถึงเครื่องมืออื่นได้: รับรอง. ใช้เพื่อค้นหาเทมเพลตใบรับรองที่กำหนดค่าไม่ถูกต้องสำหรับ Active Directory Certificate Services และนำไปใช้ในทางที่ผิด เครื่องมือนี้แสดงรายการเทมเพลตที่มีช่องโหว่หนึ่งรายการเนื่องจากอนุญาตให้ผู้ร้องขอใบรับรองสามารถจัดหาเทมเพลตได้ตามอำเภอใจ ชื่อทางเลือกหัวเรื่อง และใบรับรองที่ออกให้การรับรองความถูกต้องไคลเอนต์สำหรับชื่อที่ให้มา
หลังจากขอใบรับรองด้วย วอมบลีย์คิวบ์ เมื่อแทรกลงในฟิลด์ชื่อทางเลือกของหัวเรื่องแล้ว ฉันยังใช้ Certipy เพื่อรับแฮช NT ด้วย วอมบลีย์คิวบ์ โดยใช้ใบรับรองนั้น จากนั้นจึงส่งแฮชของ Wombley ไปที่ smbclient.pyฉันสามารถเชื่อมต่อผ่าน SMB ไปยังเซิร์ฟเวอร์ Active Directory ได้เช่น วอมบลีย์คิวบ์ และเข้าถึง super_secret_research ไดเร็กทอรีซึ่งมีคำแนะนำสำหรับความท้าทายถัดไป คำแนะนำสำหรับการเข้าสู่ดาวเทียมGroundStation.txt.
ลำโพงเข้าถึงประตู Space Island
เพื่อเข้าถึงความท้าทายในระบบอวกาศ ภาคพื้นดินจำเป็นต้องใช้ LLM เพื่อสร้างเสียงปลอมของ Wombley Cube ที่พูดข้อความรหัสผ่าน เมื่อพิจารณาจากไฟล์เสียงของวอมบลีย์ที่เล่าเรื่องราวและข้อความรหัสผ่าน จึงเป็นเรื่องเล็กน้อยที่จะใช้ โลโว ไอ เพื่อสร้างเสียงจำลองของ Wombley เพื่อพูดข้อความรหัสผ่านและรับรองความถูกต้องได้สำเร็จ
หากไม่มีการป้องกันเพิ่มเติม การรับรองความถูกต้องด้วยเสียงต้องเผชิญกับความท้าทายร้ายแรงในฐานะกลไกการรักษาความปลอดภัยในยุคของ LLM
การเข้าถึงกล้อง
หลังจากพูดข้อความรหัสผ่านแล้ว ฉันก็ขึ้นรถไฟที่พาฉันไปยังส่วนพื้นดินที่รับผิดชอบในการสื่อสารกับในเกม CubeSatซึ่งเป็นดาวเทียมขนาดเล็กประเภทหนึ่ง ในสถานีภาคพื้นดินเราได้รับ Wireguard การกำหนดค่าเพื่อตั้งค่าการเชื่อมต่อที่เข้ารหัสกับ CubeSat นี้
ซอฟต์แวร์บนดาวเทียมนี้สามารถใช้งานร่วมกับ กรอบงาน NanoSat MO (NMF) ซึ่งเป็นเฟรมเวิร์กซอฟต์แวร์ที่พัฒนาโดย European Space Agency สำหรับ CubeSats กรอบนี้มาพร้อมกับ SDK สำหรับการพัฒนาและทดสอบแอปอวกาศ นอกจากนี้ ยังมี Consumer Test Tool (CTT) ให้เป็นทั้งแอปภาคพื้นดินและเครื่องมือบรรทัดคำสั่ง เพื่อเชื่อมต่อกับหัวหน้างานภายในเครื่อง ซึ่งเป็นผู้จัดเตรียมซอฟต์แวร์ที่ดูแลการเริ่มและหยุดแอปอวกาศ ตลอดจนประสานงานงานอื่นๆ
ความท้าทายคือการหาวิธีสั่งให้แอปกล้องในตัวถ่ายภาพ จากนั้นจึงดึงสแนปช็อตกลับมา ฉันทำตามขั้นตอนต่อไปนี้
หลังจากบูตอินเทอร์เฟซ CTT ฉันป้อน URI ของหัวหน้างานเพื่อเชื่อมต่อกับหัวหน้างาน จากนั้นฉันตรวจสอบแอปที่มีอยู่ พบแอปกล้อง และเริ่มต้นใช้งาน แอปกล้องถ่ายรูปส่งคืน URI ซึ่งฉันใช้เชื่อมต่อ ต่อไป ฉันดำเนินการการกระทำ Base64SnapImage ซึ่งสั่งให้กล้องออนบอร์ดถ่ายภาพ
แอพกล้องยังมีบริการพารามิเตอร์ที่สามารถส่งคืนค่าได้สองค่า: จำนวนสแนปที่ถ่ายและสแนปช็อต JPG ที่เข้ารหัสใน base64 อย่างไรก็ตาม ดูเหมือนว่าอินเทอร์เฟซ CTT จะไม่มีวิธีดูภาพหรือคัดลอกค่าพารามิเตอร์โดยตรงจากอินเทอร์เฟซ แม้ว่าฉันจะเห็นว่ามีค่าที่ต้องการอยู่ก็ตาม ดังนั้นฉันจึงต้องการวิธีวงเวียนเพื่อให้ได้ภาพ
ฉันค้นพบว่าอินเทอร์เฟซ CTT มี เปิดใช้งานการสร้าง ปุ่มที่ทริกเกอร์การเผยแพร่ค่าพารามิเตอร์ตามกำหนดเวลาเป็นประจำ จากบรรทัดคำสั่ง CTT ฉันสามารถสมัครรับพารามิเตอร์ที่ต้องการ รับค่าเมื่อมีการเผยแพร่ และเปลี่ยนเส้นทางไปยังไฟล์
เนื่องจากฉันใช้ CTT ในคอนเทนเนอร์ Docker ฉันจึงคัดลอกไฟล์ไปยังระบบโฮสต์ของฉันด้วย นักเทียบท่า cpลบ cruft ออกจากเนื้อหาไฟล์ จากนั้น base64 ถอดรหัสรูปภาพเพื่อดูแฟล็ก: พิชิตเทศกาลวันหยุด!.
การเบี่ยงเบนขีปนาวุธ
ความท้าทายสุดท้ายคือการใช้ ระบบกำหนดเป้าหมายขีปนาวุธ แอพบน CubeSat ในเกมเพื่อเปลี่ยนเส้นทางขีปนาวุธจากโลกไปยังดวงอาทิตย์ แอพนี้ให้การกระทำเดียวเท่านั้น: การแก้ปัญหา. การรันดูเหมือนจะไม่ได้ผลอะไรมากยกเว้นการพิมพ์ SQL VERSION คำสั่งและเอาต์พุตราวกับว่ามันถูกรันโดยฐานข้อมูลที่แอพใช้:
เวอร์ชัน (): 11.2.2-MariaDB-1:11.2.2+maria~ubu2204
ฉันสงสัยทันทีว่ามีช่องโหว่การฉีด SQL เกิดขึ้นหรือไม่ อินเทอร์เฟซ CTT จัดให้มีฟิลด์เพื่อป้อนอาร์กิวเมนต์สำหรับ การแก้ปัญหา ดังนั้นฉันจึงลองฉีดคำสั่งอื่น:
; แสดงทุนสำหรับ CURRENT_USER();
เงินช่วยเหลือสำหรับ targeter@%: ให้สิทธิ์การใช้งานบน *.* ถึง `targeter`@`%` ระบุด้วยรหัสผ่าน '*41E2CFE844C8F1F375D5704992440920F11A11BA' |
เงินช่วยเหลือสำหรับ targeter@%: ให้สิทธิ์เลือก แทรกบน `missile_targeting_system`.`satellite_query` ถึง `targeter`@`%` |
เงินช่วยเหลือสำหรับ targeter@%: ให้สิทธิ์เลือกบน `missile_targeting_system`.`pointing_mode` ถึง `targeter`@`%` |
เงินช่วยเหลือสำหรับ targeter@%: ให้สิทธิ์เลือกบน `missile_targeting_system`.`การส่งข้อความ` ถึง `targeter`@`%` |
เงินช่วยเหลือสำหรับ targeter@%: ให้สิทธิ์เลือกใน `missile_targeting_system`.`target_coordinates` ถึง `targeter`@`%` |
เงินช่วยเหลือสำหรับ targeter@%: ให้สิทธิ์เลือกบน `missile_targeting_system`.`pointing_mode_to_str` ถึง `targeter`@`%` |
เอาล่ะ ถึงเวลาปล้นฐานข้อมูลแล้ว! ที่ pointing_mode และ pointing_mode_to_str ตารางที่ระบุว่าขีปนาวุธกำลังชี้ไปที่ใด:
; SELECT * จาก pointing_mode;
รหัส: 1 | numerical_mode: 0 |
; SELECT * จาก pointing_mode_to_str;
รหัส: 1 | numerical_mode: 0 | str_mode: โหมดจุดโลก | str_desc: เมื่อ pointing_mode เป็น 0 ระบบการกำหนดเป้าหมายจะใช้ target_coordinates กับ Earth |
รหัส: 2 | numerical_mode: 1 | str_mode: โหมดจุดดวงอาทิตย์ | str_desc: เมื่อ pointing_mode เป็น 1 ระบบการกำหนดเป้าหมายจะชี้ไปที่ดวงอาทิตย์ โดยไม่สนใจพิกัด |
จากข้อมูลนี้ผมเห็นว่าจำเป็นต้องเปลี่ยน ตัวเลข_โหมด ค่าใน pointing_mode ตารางที่ 1แต่ฉันไม่ได้รับอนุญาตให้อัปเดตตารางนั้น
ฉันได้รับอนุญาตให้แทรกแถวใหม่ลงใน ดาวเทียม_แบบสอบถาม ตาราง ซึ่งปัจจุบันมีหนึ่งแถวโดยมีค่าที่ยังไม่ทราบใน วัตถุ คอลัมน์และซอร์สโค้ดของคลาส Java ที่เรียกว่า SatelliteQueryFileFolderยูทิลิตี้ ใน ผล คอลัมน์.
ถึงจุดนี้เอาท์พุตจาก การแก้ปัญหา การกระทำสามารถดูได้ง่ายในบานหน้าต่างที่ด้านล่างของ บริการตัวเรียกใช้งานแอป แท็บที่จัดทำโดยหัวหน้างานในอินเทอร์เฟซ CTT อย่างไรก็ตาม ดูเหมือนว่าค่าออบเจ็กต์จะแสดงผลไม่ถูกต้องในบานหน้าต่าง ตามหลักการแล้ว เป็นการดีที่จะเห็นการถ่ายโอนข้อมูลฐานสิบหกของวัตถุ ซึ่งสามารถรับได้ด้วยความช่วยเหลือจาก Wireshark หรือโดยใช้ SQL HEX การทำงาน. สิ่งนี้เปิดเผยว่าฉันกำลังจัดการกับวัตถุ Java ที่ทำให้เป็นอนุกรม
หลังจาก กำลังอ่านอยู่ โปรโตคอลการทำให้เป็นอนุกรมวัตถุ Java ฉันจัดการเพื่อถอดรหัสไบต์ฐานสิบหก:
ไบต์ฐานสิบหก |
สัญลักษณ์/ความหมาย |
หมายเหตุ (ค่า ASCII ของไบต์ฐานสิบหกในแบบอักษร monospaced) |
Aced |
สตรีม_เมจิก |
เลขมหัศจรรย์. |
0005 |
STREAM_VERSION |
เวอร์ชันโปรโตคอลสตรีมคือ 2 |
73 |
TC_OBJECT |
จุดเริ่มต้นของวัตถุ |
72 |
TC_CLASSDESC |
จุดเริ่มต้นของคำจำกัดความของคลาส |
001F |
ความยาว |
ชื่อคลาสมีความยาว 31 ไบต์ |
536174656C6C697465517 |
ความคุ้มค่า |
ชื่อชั้นเรียนคือ SatelliteQueryFileFolderยูทิลิตี้. |
12D4F68D0EB392CB |
serialVersionUID |
ตัวระบุเฉพาะที่เกี่ยวข้องกับคลาสซีเรียลไลซ์นี้ |
02 |
SC_ซีเรียลไลซ์ได้ |
คลาสเป็นแบบซีเรียลไลซ์ได้ |
0003 |
สนามนับ |
ชั้นเรียนมีสามช่อง |
5A |
ชนิดข้อมูล – ค่า ASCII Z |
ฟิลด์แรกคือบูลีน |
0007 |
ความยาว |
ชื่อของฟิลด์นี้มีความยาว 7 ไบต์ |
69735175657279 |
Name |
ชื่อของฟิลด์นี้คือ isQuery. |
5A |
ชนิดข้อมูล – ค่า ASCII Z |
ฟิลด์ที่สองคือบูลีน |
0008 |
ความยาว |
ชื่อของฟิลด์นี้มีความยาว 8 ไบต์ |
6973557064617465 |
Name |
ชื่อของฟิลด์นี้คือ คืออัปเดต. |
4C |
ชนิดข้อมูล – ค่า ASCII L |
ฟิลด์ที่สามคือวัตถุ |
000F |
ความยาว |
ชื่อของฟิลด์นี้มีความยาว 15 ไบต์ |
706174684F72537 |
Name |
ชื่อของฟิลด์นี้คือ เส้นทางหรือคำสั่ง . |
74 |
TC_STRING |
ประเภทคลาสของวัตถุนี้ถูกกำหนดไว้ในสตริง |
0012 |
ความยาว |
สตริงนี้มีความยาว 18 ไบต์ |
4C6A6176612F6C616E |
ความคุ้มค่า |
ประเภทคลาสของวัตถุนี้คือ ชวา/lang/สตริง. |
78 |
TC_ENDBLOCKDATA |
จุดสิ้นสุดของคำจำกัดความของชั้นเรียน |
70 |
TC_NULL |
ไม่มีการกำหนดซูเปอร์คลาส |
00 |
ความคุ้มค่า |
ฟิลด์บูลีน isQuery มีค่า เท็จ. |
00 |
ความคุ้มค่า |
ฟิลด์บูลีน คืออัปเดต มีค่า เท็จ. |
74 |
TC_STRING |
ค่าของ เส้นทางหรือคำสั่ง ฟิลด์เป็นสตริง |
0029 |
ความยาว |
ค่าของ เส้นทางหรือคำสั่ง ฟิลด์มีความยาว 41 ไบต์ |
2F6F70742F536174656C6 |
ความคุ้มค่า |
ค่าของ เส้นทางหรือคำสั่ง ฟิลด์คือ /opt/SatelliteQueryFileFolderUtility.java |
การรับวัตถุนี้ผ่าน Wireshark จะส่งคืนหมายเลขเวทย์มนตร์ที่ไม่ถูกต้องและ serialVersionUIDแต่ไม่ใช่เมื่อใช้ฟังก์ชัน HEX
เพื่อทำความเข้าใจว่าอะไร. INSERT เข้าไปใน ดาวเทียม_แบบสอบถาม table จะทำอย่างไร ฉันแทรกวัตถุนี้ลงในแถวใหม่ของตารางและได้รับซอร์สโค้ด Java เดียวกันกลับมาใน ผล คอลัมน์. ที่จริงแล้วพฤติกรรมนี้สอดคล้องกับสิ่งที่ฉันเห็นในโค้ดนั้นว่าเป็น รับผลลัพธ์ ฟังก์ชั่นของ SatelliteQueryFileFolderยูทิลิตี้ วัตถุ.
ฟังก์ชันนี้ใช้เส้นทางการดำเนินการที่แตกต่างกัน ขึ้นอยู่กับค่าของฟิลด์ทั้งสามของออบเจ็กต์: isQuery, คืออัปเดตและ เส้นทางหรือคำสั่ง. ถ้าฉันsQuery และ คืออัปเดต เป็นเท็จ จากนั้นฟังก์ชันจะตรวจสอบว่า เส้นทางหรือคำสั่ง เป็นเส้นทางและไดเร็กทอรี หากเป็นเช่นนั้น ระบบจะส่งคืนรายการไฟล์ที่อยู่ในไดเร็กทอรี มิฉะนั้นจะถือว่ามีการจัดเตรียมไฟล์ไว้และพยายามส่งคืนเนื้อหาของไฟล์นั้น
ในทางกลับกัน หาก isQuery และ isUpdate เป็นจริง ฟังก์ชันจะดำเนินการเนื้อหาของ pathOrStatement เป็น SQL อัพเดท คำแถลง. สิ่งที่ฉันจำเป็นต้องดำเนินการคือ:
อัปเดต pointing_mode SET numerical_mode = 1;
ฉันเปลี่ยนไบต์ที่จำเป็น (เน้นด้านล่าง) ในวัตถุต่อเนื่องกันและฉีดคำสั่งที่ชนะ:
; แทรกลงใน satellite_query
(วัตถุ)
VALUES
(0xACED00057372001F536174656C6C697465517565727946696C65466F6C6465725574696C69747912D4F68D0EB392CB0200035A0007697351756572795A000869735570646174654C000F706174684F7253746174656D656E747400124C6A6176612F6C616E672F537472696E673B7870010174002C55504441544520706F696E74696E675F6D6F646520534554206E756D65726963616C5F6D6F6465203D20313B)
ปรับตัวขึ้น
นี่เป็นเพียงบางส่วนที่ครอบคลุมใน SANS Holiday Hack Challenge ปี 2023 มีอีกหลายคนที่มองเรื่องความปลอดภัยของ โทเค็นเว็บ JSON,ถอดรหัสรหัสผ่านด้วย hashcat,เสมือนการแคร็กของล็อคกระเป๋าเดินทางและ ล็อคแบบรวมแบบหมุน, การฉีด Python NaN, ใช้ ภาษาแบบสอบถาม Kusto for การล่าภัยคุกคาม, กำลังตรวจสอบ บันทึก DKIM และ SPF เพื่อช่วยระบุอีเมลที่เป็นอันตรายและมินิเกมที่สามารถแฮ็กได้
โดยรวมแล้ว ฉันมั่นใจว่าชุดความท้าทายที่สนุกสนานที่หลากหลายเช่นนี้จะสอนใครก็ตามที่พยายามจะเผชิญความท้าทายไม่ได้ และในขณะที่ฉันกำลังตั้งตารอการท้าทายในปีหน้าอยู่แล้ว ก็ขอขอบคุณผู้จัดงาน SANS Holiday Hack Challenge ที่ได้รวบรวมการท้าทายในปีนี้ไว้ด้วยกัน
สามารถอ่านไฮไลท์ของผมจากชาเลนจ์ปี 2022 ได้ที่ แตกเลย! ไฮไลท์จาก KringleCon 5: Golden Rings.
- เนื้อหาที่ขับเคลื่อนด้วย SEO และการเผยแพร่ประชาสัมพันธ์ รับการขยายวันนี้
- PlatoData.Network Vertical Generative Ai เพิ่มพลังให้กับตัวเอง เข้าถึงได้ที่นี่.
- เพลโตไอสตรีม. Web3 อัจฉริยะ ขยายความรู้ เข้าถึงได้ที่นี่.
- เพลโตESG. คาร์บอน, คลีนเทค, พลังงาน, สิ่งแวดล้อม แสงอาทิตย์, การจัดการของเสีย. เข้าถึงได้ที่นี่.
- เพลโตสุขภาพ เทคโนโลยีชีวภาพและข่าวกรองการทดลองทางคลินิก เข้าถึงได้ที่นี่.
- ที่มา: https://www.welivesecurity.com/en/cybersecurity/cracking-2023-sans-holiday-hack-challenge/
- :มี
- :เป็น
- :ไม่
- :ที่ไหน
- $ ขึ้น
- 1
- 11
- 15%
- 2022
- 2023
- 31
- 32
- 41
- 65
- 7
- 8
- a
- สามารถ
- เกี่ยวกับเรา
- ข้างบน
- การล่วงละเมิด
- ทำร้าย
- ยอมรับ
- เข้า
- ได้รับ
- ที่ได้มา
- การแสวงหา
- การกระทำ
- คล่องแคล่ว
- Active Directory
- นอกจากนี้
- เพิ่มเติม
- ที่อยู่
- ผู้ดูแลระบบ
- คำแนะนำ
- หลังจาก
- อีกครั้ง
- อายุ
- บริษัท ตัวแทน
- AI
- ทั้งหมด
- อนุญาต
- อนุญาตให้
- การอนุญาต
- ตาม
- แล้ว
- ด้วย
- ทางเลือก
- แม้ว่า
- เสมอ
- am
- ในหมู่
- an
- และ
- อื่น
- คำตอบ
- ใด
- ทุกคน
- API
- APIs
- app
- มีผลบังคับใช้
- เข้าใกล้
- ปพลิเคชัน
- เป็น
- พื้นที่
- อาร์กิวเมนต์
- รอบ
- AS
- ถาม
- ที่เกี่ยวข้อง
- ถือว่า
- At
- ความพยายามในการ
- เสียง
- รับรองความถูกต้อง
- ที่ถูกตรวจสอบ
- การยืนยันตัวตน
- การอนุญาต
- ใช้ได้
- ไป
- สีฟ้า
- กลับ
- ไม่ดี
- เป็นพื้น
- BE
- เพราะ
- รับ
- พฤติกรรม
- ด้านล่าง
- ที่ดีที่สุด
- บิต
- ทั้งสอง
- ด้านล่าง
- บรอดคาสติ้ง
- แต่
- ปุ่ม
- by
- โทรศัพท์
- ที่เรียกว่า
- โทร
- ห้อง
- CAN
- ไม่ได้
- ซึ่ง
- บาง
- ใบรับรอง
- ใบรับรอง
- ท้าทาย
- ความท้าทาย
- เปลี่ยนแปลง
- การเปลี่ยนแปลง
- ChatGPT
- ตรวจสอบแล้ว
- การตรวจสอบ
- การตรวจสอบ
- ชั้น
- ไคลเอนต์
- CloudFlare
- รหัส
- เหรียญ
- รวบรวม
- คอลัมน์
- การผสมผสาน
- มา
- การสื่อสาร
- เข้ากันได้
- เงื่อนไข
- องค์ประกอบ
- ยืนยัน
- สับสน
- เชื่อมต่อ
- การเชื่อมต่อ
- ผู้บริโภค
- ที่มีอยู่
- ภาชนะ
- เนื้อหา
- เนื้อหา
- ควบคุม
- การควบคุม
- ประสานงาน
- การทำสำเนา
- ได้อย่างถูกต้อง
- สอดคล้อง
- ได้
- ปกคลุม
- ร้าว
- กรอบ
- สร้าง
- การสร้าง
- ขณะนี้
- ประเพณี
- cybersecurity
- ฐานข้อมูล
- การซื้อขาย
- ค่าเริ่มต้น
- กำหนด
- คำนิยาม
- ทั้งนี้ขึ้นอยู่กับ
- นำไปใช้
- ที่ต้องการ
- รายละเอียด
- พัฒนา
- ที่กำลังพัฒนา
- DID
- ตาย
- ต่าง
- แตกต่าง
- โดยตรง
- ค้นพบ
- ค้นพบ
- do
- นักเทียบท่า
- ตู้คอนเทนเนอร์ Dock
- ทำ
- โดเมน
- ชื่อโดเมน
- ประตู
- ลง
- สอง
- กอง
- ในระหว่าง
- ได้รับ
- รายได้
- โลก
- อย่างง่ายดาย
- ทั้ง
- อีเมล
- เข้ารหัส
- ที่มีการเข้ารหัส
- ปลาย
- ปลายทาง
- ปลายทาง
- ชั้นเยี่ยม
- พอ
- เข้าสู่
- เข้า
- ทั้งหมด
- ความผิดพลาด
- ข้อผิดพลาด
- บานปลาย
- ในทวีปยุโรป
- องค์การอวกาศยุโรป
- แม้
- ทุกอย่าง
- ยกเว้น
- ดำเนินการ
- ดำเนินการ
- รัน
- การปฏิบัติ
- ประสบการณ์
- อธิบาย
- เอาเปรียบ
- ใบหน้า
- ความจริง
- ล้มเหลว
- เทียม
- เท็จ
- ไกล
- ที่มีคุณสมบัติ
- สองสาม
- สนาม
- สาขา
- รูป
- คิด
- เนื้อไม่มีมัน
- ไฟล์
- สุดท้าย
- หา
- ชื่อจริง
- ที่ลอย
- ตาม
- ดังต่อไปนี้
- สำหรับ
- ข้างหน้า
- พบ
- กรอบ
- ราคาเริ่มต้นที่
- เต็ม
- สนุก
- ฟังก์ชัน
- ได้รับ
- เกม
- เกมเพลย์
- เกม
- สร้าง
- สร้าง
- ได้รับ
- กำหนด
- ไป
- โกลเด้น
- ดี
- ให้
- การอนุญาต
- ทุน
- พื้น
- บัญชีกลุ่ม
- ยาม
- สับ
- มี
- มือ
- กัญชา
- มี
- หัว
- ช่วย
- โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม
- HEX
- ซ่อนเร้น
- ที่สูงที่สุด
- ไฮไลต์
- ไฮไลท์
- ของเขา
- วันหยุด
- หน้าแรก
- เจ้าภาพ
- สรุป ความน่าเชื่อถือของ Olymp Trade?
- ทำอย่างไร
- อย่างไรก็ตาม
- HTML
- ที่ http
- HTTPS
- การล่าสัตว์
- i
- ID
- ความนึกคิด
- ระบุ
- ระบุ
- แยกแยะ
- เอกลักษณ์
- if
- ภาพ
- ทันที
- ช่วยเพิ่ม
- in
- ในเกม
- ไม่สามารถเข้าถึงได้
- แสดงว่า
- ข้อมูล
- ข้อมูล
- แทน
- คำแนะนำการใช้
- อยากเรียนรู้
- อินเตอร์เฟซ
- เข้าไป
- ร่วมมือ
- IP
- ที่อยู่ IP
- เกาะ
- ทุนที่ออก
- IT
- ITS
- ชวา
- jpg
- คีย์
- กุญแจ
- ภาษา
- ใหญ่
- ต่อมา
- นำ
- ความยาว
- เลฟเวอเรจ
- ตั้งอยู่
- เบา
- Line
- ลินุกซ์
- รายการ
- จดทะเบียน
- ที่ตั้ง
- ล็อค
- เข้า
- การเข้าสู่ระบบ
- เข้าสู่ระบบ
- ดู
- มอง
- ที่ต้องการหา
- เครื่อง
- ทำ
- มายากล
- ทำ
- การทำ
- ที่เป็นอันตราย
- การจัดการ
- หลาย
- แผนที่
- อาจ..
- me
- กลไก
- พบ
- กล่าวถึง
- ข่าวสาร
- วิธี
- ไมโครซอฟท์
- โหมด
- แบบ
- มากที่สุด
- ย้าย
- มาก
- หลาย
- ต้อง
- my
- ชื่อ
- การนำทาง
- จำเป็น
- จำเป็นต้อง
- จำเป็น
- เครือข่าย
- ใหม่
- ถัดไป
- เก้า
- ไม่
- ไม่
- ทางทิศเหนือ
- โดดเด่น
- ตอนนี้
- nt
- จำนวน
- วัตถุ
- วัตถุประสงค์
- วัตถุประสงค์
- ได้รับ
- ที่ได้รับ
- of
- เสนอ
- on
- ออนบอร์ด
- ครั้งเดียว
- ONE
- เพียง
- or
- การจัดงาน
- อื่นๆ
- ผลิตภัณฑ์อื่นๆ
- มิฉะนั้น
- ออก
- เอาท์พุต
- เกิน
- ของตนเอง
- เจ้าของ
- คู่
- บานหน้าต่าง
- พารามิเตอร์
- ส่วนหนึ่ง
- ส่วน
- ที่ผ่านไป
- รหัสผ่าน
- รหัสผ่าน
- อดีต
- เส้นทาง
- รูปแบบไฟล์ PDF
- การอนุญาต
- สิทธิ์
- PHP
- ภาพ
- ชิ้น
- สถานที่
- เพลโต
- เพลโตดาต้าอินเทลลิเจนซ์
- เพลโตดาต้า
- เล่น
- ผู้เล่น
- จุด
- จุด
- พอร์ทัล
- โพสต์
- PowerShell
- นำเสนอ
- ก่อน
- หลัก
- พิมพ์
- สิทธิ์
- ผลิตภัณฑ์
- คุณสมบัติ
- โปรโตคอล
- ให้
- ให้
- ให้
- สาธารณะ
- คีย์สาธารณะ
- การตีพิมพ์
- การประกาศ
- วาง
- คำถาม
- คำถาม
- R
- วิทยุ
- แรม
- อ่าน
- การอ่าน
- รับ
- ที่ได้รับ
- เปลี่ยนเส้นทาง
- ลงทะเบียน
- ปกติ
- สม่ำเสมอ
- ลบออก
- การแสดงผล
- แทนที่
- รายงาน
- ขอ
- ขอ
- ต้องการ
- จำเป็นต้องใช้
- ต้อง
- ทรัพยากร
- รับผิดชอบ
- REST
- กลับ
- รับคืน
- เปิดเผย
- เปิดเผย
- เผยให้เห็น
- ย้อนกลับ
- ความเสี่ยง
- ห้อง
- ราก
- เข้าถึงราก
- แถว
- วิ่ง
- วิ่ง
- การป้องกัน
- เดียวกัน
- ดาวเทียม
- เห็น
- ที่กำหนดไว้
- ต้นฉบับ
- ค้นหา
- ค้นหา
- ที่สอง
- Section
- ส่วน
- ความปลอดภัย
- ความเสี่ยงด้านความปลอดภัย
- เห็น
- ดูเหมือน
- ส่วน
- เลือก
- ส่ง
- ชุด
- ร้ายแรง
- เซิร์ฟเวอร์
- บริการ
- บริการ
- ชุด
- หลาย
- Share
- น่า
- โชว์
- การลงชื่อ
- ง่าย
- ที่เรียบง่าย
- ทักษะ
- เล็ก
- SMB
- ภาพย่อ
- So
- ซอฟต์แวร์
- บาง
- แหล่ง
- รหัสแหล่งที่มา
- ช่องว่าง
- พูด
- การพูด
- โดยเฉพาะ
- เฉพาะ
- SQL
- ด้วย SQL Injection
- เริ่มต้น
- ข้อความที่เริ่ม
- ที่เริ่มต้น
- คำแถลง
- สถานี
- ขั้นตอน
- ขั้นตอน
- การหยุด
- เก็บไว้
- เรื่องราว
- กระแส
- เชือก
- หรือ
- สมัครเป็นสมาชิก
- การสมัครสมาชิก
- ประสบความสำเร็จ
- อย่างเช่น
- ชุด
- ดวงอาทิตย์
- ที่จัดมา
- จัดหาอุปกรณ์
- แน่ใจ
- สวิตซ์
- ระบบ
- ตาราง
- เอา
- นำ
- ใช้เวลา
- เป้า
- กำหนดเป้าหมาย
- งาน
- งาน
- บอก
- เทมเพลต
- แม่แบบ
- ทดสอบ
- การทดสอบ
- การทดสอบ
- ข้อความ
- ขอบคุณ
- ที่
- พื้นที่
- ข้อมูล
- ที่มา
- พวกเขา
- แล้วก็
- ที่นั่น
- ล้อยางขัดเหล่านี้ติดตั้งบนแกน XNUMX (มม.) ผลิตภัณฑ์นี้ถูกผลิตในหลายรูปทรง และหลากหลายเบอร์ความแน่นหนาของปริมาณอนุภาคขัดของมัน จะทำให้ท่านได้รับประสิทธิภาพสูงในการขัดและการใช้งานที่ยาวนาน
- ที่สาม
- นี้
- สาม
- ดังนั้น
- เวลา
- ชื่อหนังสือ
- ไปยัง
- ร่วมกัน
- โทเค็น
- เอา
- เครื่องมือ
- เครื่องมือ
- รถไฟ
- พยายาม
- เรียก
- จริง
- หัน
- สอง
- ชนิด
- ในที่สุด
- ภายใต้
- เข้าใจ
- เป็นเอกลักษณ์
- ไม่ทราบ
- จนกระทั่ง
- ที่กำลังมา
- บันทึก
- URI
- URL
- การใช้
- ใช้
- มือสอง
- ผู้ใช้งาน
- ผู้ใช้
- การใช้
- ประโยชน์
- ถูกต้อง
- ความคุ้มค่า
- ความคุ้มค่า
- หกคะเมน
- ห้องใต้ดิน
- รุ่น
- ผ่านทาง
- รายละเอียด
- เสมือน
- เครื่องเสมือน
- ภาพ
- เสียงพูด
- การตรวจสอบเสียง
- ช่องโหว่
- ความอ่อนแอ
- อ่อนแอ
- อยาก
- คือ
- ทาง..
- we
- เว็บ
- ดี
- คือ
- อะไร
- เมื่อ
- ว่า
- ที่
- ในขณะที่
- WHO
- วิกิพีเดีย
- ลม
- หน้าต่าง
- การชนะ
- กับ
- คำ
- จะ
- ยัง
- เธอ
- ของคุณ
- ลมทะเล