การแฮ็กรหัสผ่านที่ซ่อนอยู่ด้วย Smbexec

การแฮ็กรหัสผ่านที่ซ่อนอยู่ด้วย Smbexec

เราเขียนเป็นประจำเกี่ยวกับวิธีที่แฮกเกอร์พึ่งพาการหาประโยชน์ วิธีการแฮ็กโดยไม่มีรหัสที่เป็นอันตรายเพื่อหลีกเลี่ยงการตรวจจับ พวกเขาอย่างแท้จริง "เอาตัวรอดบนทุ่งหญ้า"โดยใช้เครื่องมือ Windows มาตรฐาน ดังนั้นจึงข้ามโปรแกรมป้องกันไวรัสและยูทิลิตี้อื่น ๆ เพื่อตรวจจับกิจกรรมที่เป็นอันตราย ตอนนี้เราในฐานะผู้พิทักษ์ถูกบังคับให้จัดการกับผลที่ตามมาอันไม่พึงประสงค์ของเทคนิคการแฮ็กที่ชาญฉลาดดังกล่าว: พนักงานที่มีตำแหน่งที่ดีสามารถใช้แนวทางเดียวกันในการขโมยข้อมูลอย่างซ่อนเร้น (ทรัพย์สินทางปัญญาของบริษัท หมายเลขบัตรเครดิต) และถ้าเขาไม่เร่งรีบแต่ทำงานช้าๆ และเงียบๆ ก็จะเป็นเรื่องยากมาก - แต่ก็ยังเป็นไปได้ถ้าเขาใช้แนวทางที่ถูกต้องและเหมาะสม เครื่องมือ, — เพื่อระบุกิจกรรมดังกล่าว

ในทางกลับกัน ฉันไม่ต้องการที่จะทำลายล้างพนักงาน เพราะไม่มีใครอยากทำงานในสภาพแวดล้อมทางธุรกิจที่หลุดออกมาจากงานของ Orwell ในปี 1984 โชคดีที่มีขั้นตอนการปฏิบัติและเคล็ดลับชีวิตมากมายที่สามารถทำให้ชีวิตคนวงในยากขึ้นได้ เราจะพิจารณา วิธีการโจมตีแบบซ่อนเร้นใช้โดยแฮกเกอร์โดยพนักงานที่มีพื้นฐานด้านเทคนิค และอีกเล็กน้อยเราจะหารือเกี่ยวกับทางเลือกในการลดความเสี่ยงดังกล่าว - เราจะศึกษาทั้งทางเลือกด้านเทคนิคและองค์กร

เกิดอะไรขึ้นกับ PsExec?

Edward Snowden ไม่ว่าถูกหรือผิด ได้กลายเป็นสัญลักษณ์ของการขโมยข้อมูลภายใน ยังไงก็อย่าลืมเข้าไปดูกันนะครับ บันทึกนี้ เกี่ยวกับคนวงในคนอื่นๆ ที่สมควรได้รับสถานะชื่อเสียงเช่นกัน ประเด็นสำคัญประการหนึ่งที่ควรเน้นย้ำเกี่ยวกับวิธีการที่สโนว์เดนใช้ก็คือเขา ตามความรู้ที่ดีที่สุดของเรา ไม่ได้ติดตั้ง ไม่มีซอฟต์แวร์ที่เป็นอันตรายภายนอก!

แต่ Snowden กลับใช้วิศวกรรมสังคมเล็กน้อยและใช้ตำแหน่งของเขาในฐานะผู้ดูแลระบบเพื่อรวบรวมรหัสผ่านและสร้างข้อมูลประจำตัว ไม่มีอะไรซับซ้อน - ไม่มี มิมิคาทซ์, การโจมตี คน-in-the-กลาง หรือ เมตาสเปลต.

พนักงานในองค์กรไม่ได้อยู่ในจุดยืนที่เป็นเอกลักษณ์ของ Snowden เสมอไป แต่มีบทเรียนจำนวนหนึ่งที่ต้องเรียนรู้จากแนวคิด "การเอาชีวิตรอดด้วยการแทะเล็มหญ้า" ที่ต้องระวัง - การไม่มีส่วนร่วมในกิจกรรมที่เป็นอันตรายใดๆ ที่สามารถตรวจพบได้ และโดยเฉพาะอย่างยิ่ง ระมัดระวังการใช้ข้อมูลประจำตัว จำความคิดนี้ไว้

เปเซก และลูกพี่ลูกน้องของเขา crackmapexec สร้างความประทับใจให้กับเพนเทสเตอร์ แฮกเกอร์ และบล็อกเกอร์ด้านความปลอดภัยทางไซเบอร์จำนวนนับไม่ถ้วน และเมื่อรวมกับ mimikatz แล้ว psexec จะช่วยให้ผู้โจมตีสามารถเคลื่อนที่ภายในเครือข่ายได้โดยไม่จำเป็นต้องรู้รหัสผ่านเคลียร์เท็กซ์

Mimikatz สกัดกั้นแฮช NTLM จากกระบวนการ LSASS จากนั้นส่งโทเค็นหรือข้อมูลประจำตัว - ที่เรียกว่า การโจมตี "ผ่านแฮช" – ใน psexec ช่วยให้ผู้โจมตีสามารถเข้าสู่เซิร์ฟเวอร์อื่นได้ ของอีก ผู้ใช้ และทุกครั้งที่ย้ายไปยังเซิร์ฟเวอร์ใหม่ ผู้โจมตีจะรวบรวมข้อมูลประจำตัวเพิ่มเติม ขยายขอบเขตความสามารถในการค้นหาเนื้อหาที่มีอยู่

เมื่อฉันเริ่มทำงานกับ psexec ครั้งแรก มันดูมหัศจรรย์สำหรับฉัน ขอบคุณ มาร์ก รุสซิโนวิชผู้พัฒนา psexec ที่ยอดเยี่ยม - แต่ฉันก็รู้เกี่ยวกับเขาด้วย เสียงดัง ส่วนประกอบ เขาไม่เคยเป็นความลับ!

ข้อเท็จจริงที่น่าสนใจประการแรกเกี่ยวกับ psexec คือมันใช้ความซับซ้อนอย่างมาก โปรโตคอลไฟล์เครือข่าย SMB จากไมโครซอฟต์ เมื่อใช้ SMB psexec จะถ่ายโอนข้อมูลจำนวนเล็กน้อย ไบนารี ไปยังระบบเป้าหมาย โดยวางไว้ในโฟลเดอร์ C:Windows

ถัดไป psexec สร้างบริการ Windows โดยใช้ไบนารีที่คัดลอกและรันภายใต้ชื่อ PSEXECSVC ที่ "ไม่คาดคิด" อย่างยิ่ง ในเวลาเดียวกัน คุณสามารถเห็นทั้งหมดนี้ได้จริงเหมือนกับที่ฉันทำ โดยดูจากเครื่องระยะไกล (ดูด้านล่าง)

การแฮ็กรหัสผ่านที่ซ่อนอยู่ด้วย Smbexec

บัตรโทรศัพท์ของ Psexec: บริการ "PSEXECSVC" มันเรียกใช้ไฟล์ไบนารี่ที่วางผ่าน SMB ในโฟลเดอร์ C: Windows

ในขั้นตอนสุดท้าย ไฟล์ไบนารีที่คัดลอกจะเปิดขึ้น การเชื่อมต่อ RPC ไปยังเซิร์ฟเวอร์เป้าหมายแล้วยอมรับคำสั่งควบคุม (ผ่านเชลล์ cmd ของ Windows ตามค่าเริ่มต้น) เรียกใช้คำสั่งเหล่านั้นและเปลี่ยนเส้นทางอินพุตและเอาท์พุตไปยังเครื่องที่บ้านของผู้โจมตี ในกรณีนี้ ผู้โจมตีจะเห็นบรรทัดคำสั่งพื้นฐาน เหมือนกับว่าเขาเชื่อมต่อโดยตรง

ส่วนประกอบมากมายและกระบวนการที่มีเสียงดังมาก!

โครงสร้างภายในที่ซับซ้อนของ psexec อธิบายข้อความที่ทำให้ฉันงงระหว่างการทดสอบครั้งแรกเมื่อหลายปีก่อน: “กำลังเริ่ม PSEXECSVC...” ตามด้วยการหยุดชั่วคราวก่อนที่พรอมต์คำสั่งจะปรากฏขึ้น

การแฮ็กรหัสผ่านที่ซ่อนอยู่ด้วย Smbexec

Psexec ของ Imppacket แสดงให้เห็นสิ่งที่เกิดขึ้นภายใต้ประทุนจริงๆ

ไม่น่าแปลกใจ: psexec ทำงานจำนวนมากภายใต้ประทุน หากคุณสนใจคำอธิบายโดยละเอียดเพิ่มเติม โปรดดูที่นี่ โดยสิ่งนี้ คำอธิบายที่ยอดเยี่ยม

เห็นได้ชัดว่าเมื่อใช้เป็นเครื่องมือในการบริหารระบบซึ่งก็คือ วัตถุประสงค์เดิม psexec ไม่มีอะไรผิดปกติกับ "เสียงพึมพำ" ของกลไก Windows เหล่านี้ทั้งหมด อย่างไรก็ตาม สำหรับผู้โจมตี psexec จะสร้างภาวะแทรกซ้อน และสำหรับคนวงในที่ระมัดระวังและมีไหวพริบเช่น Snowden psexec หรือโปรแกรมอรรถประโยชน์ที่คล้ายกันอาจมีความเสี่ยงมากเกินไป

และแล้วก็มาถึง Smbexec

SMB เป็นวิธีที่ชาญฉลาดและเป็นความลับในการถ่ายโอนไฟล์ระหว่างเซิร์ฟเวอร์ และแฮกเกอร์ได้แทรกซึมเข้าไปใน SMB โดยตรงมานานหลายศตวรรษ ฉันคิดว่าทุกคนรู้อยู่แล้วว่ามันไม่คุ้มค่า เปิดขึ้น SMB พอร์ต 445 และ 139 ไปยังอินเทอร์เน็ตใช่ไหม

ที่ Defcon 2013, Eric Millman (brav0hax) นำเสนอ smbexecเพื่อให้ผู้ทดสอบสามารถลองใช้การแฮ็ก SMB แบบซ่อนตัวได้ ฉันไม่รู้เรื่องราวทั้งหมด แต่แล้ว Impacket ก็ปรับปรุง smbexec ต่อไป ที่จริงแล้ว สำหรับการทดสอบของฉัน ฉันดาวน์โหลดสคริปต์จาก Impacket ใน Python มา Github.

ต่างจาก psexec, smbexec หลีกเลี่ยง ถ่ายโอนไฟล์ไบนารี่ที่อาจตรวจพบไปยังเครื่องเป้าหมาย แต่ยูทิลิตี้นี้ใช้งานได้ตั้งแต่ทุ่งหญ้าจนถึงการเปิดตัว ท้องถิ่น บรรทัดคำสั่งของ Windows

ทำหน้าที่ดังนี้: ส่งคำสั่งจากเครื่องโจมตีผ่าน SMB ไปยังไฟล์อินพุตพิเศษ จากนั้นสร้างและรันบรรทัดคำสั่งที่ซับซ้อน (เช่น บริการ Windows) ซึ่งผู้ใช้ Linux ดูเหมือนจะคุ้นเคย กล่าวโดยย่อ: มันเปิดตัวเชลล์ Windows cmd ดั้งเดิม เปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์อื่น จากนั้นส่งผ่าน SMB กลับไปยังเครื่องของผู้โจมตี

วิธีที่ดีที่สุดในการทำความเข้าใจสิ่งนี้คือการดูบรรทัดคำสั่ง ซึ่งฉันสามารถเข้าใจได้จากบันทึกเหตุการณ์ (ดูด้านล่าง)

การแฮ็กรหัสผ่านที่ซ่อนอยู่ด้วย Smbexec

นี่ไม่ใช่วิธีที่ดีที่สุดในการเปลี่ยนเส้นทาง I/O ใช่หรือไม่ อย่างไรก็ตาม การสร้างบริการมีเหตุการณ์ ID 7045

เช่นเดียวกับ psexec มันยังสร้างบริการที่ทำงานได้ทั้งหมด ยกเว้นบริการหลังจากนั้น ลบออก – ใช้เพียงครั้งเดียวในการรันคำสั่งแล้วหายไป! เจ้าหน้าที่รักษาความปลอดภัยข้อมูลที่ตรวจสอบเครื่องของเหยื่อจะไม่สามารถตรวจจับได้ ชัดเจน ตัวบ่งชี้การโจมตี: ไม่มีการเปิดไฟล์ที่เป็นอันตราย ไม่มีการติดตั้งบริการถาวร และไม่มีหลักฐานว่ามีการใช้งาน RPC เนื่องจาก SMB เป็นวิธีเดียวในการถ่ายโอนข้อมูล ฉลาดหลักแหลม!

จากฝั่งผู้โจมตี "pseudo-shell" จะใช้งานได้โดยมีความล่าช้าระหว่างการส่งคำสั่งและรับการตอบกลับ แต่นี่ก็เพียงพอแล้วสำหรับผู้โจมตี - ไม่ว่าจะเป็นแฮ็กเกอร์ภายในหรือภายนอกที่มีฐานที่มั่นอยู่แล้ว - ที่จะเริ่มค้นหาเนื้อหาที่น่าสนใจ

การแฮ็กรหัสผ่านที่ซ่อนอยู่ด้วย Smbexec

เพื่อส่งออกข้อมูลจากเครื่องเป้าหมายไปยังเครื่องของผู้โจมตี จะใช้ smbclient. ใช่ มันเป็นแซมบ้าคนเดียวกัน ประโยชน์แต่แปลงเป็นสคริปต์ Python โดย Impacket เท่านั้น ในความเป็นจริง smbclient อนุญาตให้คุณโฮสต์การถ่ายโอน FTP ผ่าน SMB อย่างซ่อนเร้น

ลองย้อนกลับไปคิดดูว่าสิ่งนี้สามารถทำอะไรให้กับพนักงานได้บ้าง ในสถานการณ์สมมติของฉัน สมมติว่าบล็อกเกอร์ นักวิเคราะห์ทางการเงิน หรือที่ปรึกษาด้านความปลอดภัยที่ได้รับค่าจ้างสูงได้รับอนุญาตให้ใช้แล็ปท็อปส่วนตัวในการทำงาน ผลจากกระบวนการมหัศจรรย์บางอย่าง ทำให้เธอขุ่นเคืองกับบริษัทและ “ทำเรื่องเลวร้ายไปหมด” ขึ้นอยู่กับระบบปฏิบัติการแล็ปท็อป จะใช้เวอร์ชัน Python จาก Impact หรือเวอร์ชัน Windows ของ smbexec หรือ smbclient เป็นไฟล์ .exe

เช่นเดียวกับสโนว์เดน เธอค้นพบรหัสผ่านของผู้ใช้รายอื่นโดยการมองข้ามไหล่ของเธอ หรือเธอโชคดีและบังเอิญเจอไฟล์ข้อความที่มีรหัสผ่าน และด้วยความช่วยเหลือจากข้อมูลประจำตัวเหล่านี้ เธอจึงเริ่มเจาะลึกระบบด้วยสิทธิพิเศษระดับใหม่

การแฮ็ก DCC: เราไม่ต้องการ Mimikatz ที่ "โง่" เลย

ในโพสต์ก่อนหน้าของฉันเกี่ยวกับ Pentesting ฉันใช้ mimikatz บ่อยมาก นี่เป็นเครื่องมือที่ยอดเยี่ยมสำหรับการสกัดกั้นข้อมูลประจำตัว - แฮช NTLM และแม้แต่รหัสผ่านข้อความที่ชัดเจนที่ซ่อนอยู่ในแล็ปท็อปที่รอการใช้งาน
เวลามีการเปลี่ยนแปลง เครื่องมือตรวจสอบได้รับการปรับปรุงให้ดีขึ้นในการตรวจจับและบล็อก mimikatz ขณะนี้ผู้ดูแลระบบความปลอดภัยของข้อมูลยังมีทางเลือกเพิ่มเติมในการลดความเสี่ยงที่เกี่ยวข้องกับการโจมตีผ่านแฮช (PtH)
แล้วพนักงานที่ฉลาดควรทำอย่างไรเพื่อรวบรวมข้อมูลประจำตัวเพิ่มเติมโดยไม่ต้องใช้ mimikatz?

ชุดของ Imppacket มียูทิลิตี้ที่เรียกว่า การถ่ายโอนข้อมูลลับซึ่งดึงข้อมูลรับรองจาก Domain Credential Cache หรือเรียกสั้นๆ ว่า DCC ความเข้าใจของฉันคือหากผู้ใช้โดเมนเข้าสู่ระบบเซิร์ฟเวอร์แต่ตัวควบคุมโดเมนไม่พร้อมใช้งาน DCC จะอนุญาตให้เซิร์ฟเวอร์ตรวจสอบสิทธิ์ผู้ใช้ อย่างไรก็ตาม Secretsdump ช่วยให้คุณสามารถดัมพ์แฮชเหล่านี้ทั้งหมดได้ หากมี

แฮช DCC คือ ไม่ใช่แฮช NTML และ ไม่สามารถใช้สำหรับการโจมตี PtH ได้.

คุณสามารถลองแฮ็คพวกมันเพื่อรับรหัสผ่านเดิมได้ อย่างไรก็ตาม Microsoft มีความชาญฉลาดมากขึ้นด้วย DCC และแฮช DCC กลายเป็นเรื่องยากมากที่จะถอดรหัส ใช่ฉันมี hashcat, "เครื่องเดารหัสผ่านที่เร็วที่สุดในโลก" แต่ต้องใช้ GPU เพื่อให้ทำงานได้อย่างมีประสิทธิภาพ

เรามาลองคิดแบบสโนว์เดนกันดีกว่า พนักงานสามารถทำวิศวกรรมสังคมแบบเห็นหน้ากัน และอาจค้นหาข้อมูลบางอย่างเกี่ยวกับบุคคลที่เธอต้องการถอดรหัสรหัสผ่าน ตัวอย่างเช่น ค้นหาว่าบัญชีออนไลน์ของบุคคลนั้นเคยถูกแฮ็กหรือไม่ และตรวจสอบรหัสผ่านแบบข้อความที่ชัดเจนเพื่อหาเบาะแสใดๆ

และนี่คือสถานการณ์ที่ฉันตัดสินใจทำ สมมติว่าคนในรู้ว่า Cruella เจ้านายของเขาถูกแฮ็กหลายครั้งจากแหล่งข้อมูลบนเว็บต่างๆ หลังจากวิเคราะห์รหัสผ่านเหล่านี้หลายรายการ เขาก็พบว่า Cruella ชอบใช้รูปแบบของชื่อทีมเบสบอล "Yankees" ตามด้วยปีปัจจุบัน - "Yankees2015"

หากคุณกำลังพยายามทำซ้ำที่บ้าน คุณสามารถดาวน์โหลดไฟล์ "C" ขนาดเล็ก รหัสซึ่งใช้อัลกอริธึมการแฮชของ DCC และคอมไพล์มัน John the Ripperยังไงก็ตามได้เพิ่มการรองรับ DCC ดังนั้นจึงสามารถใช้งานได้เช่นกัน สมมติว่าคนวงในไม่ต้องการรบกวนการเรียนรู้ John the Ripper และชอบเรียกใช้ "gcc" บนโค้ด C ดั้งเดิม

โดยแกล้งทำเป็นเป็นคนวงใน ฉันลองใช้การผสมผสานหลายๆ แบบและในที่สุดก็สามารถค้นพบได้ว่ารหัสผ่านของ Cruella คือ "Yankees2019" (ดูด้านล่าง) ภารกิจเสร็จสิ้น!

การแฮ็กรหัสผ่านที่ซ่อนอยู่ด้วย Smbexec

วิศวกรรมสังคมเล็กๆ น้อยๆ การทำนายดวงชะตา และ Maltego เพียงเล็กน้อย คุณก็พร้อมที่จะถอดรหัสแฮช DCC แล้ว

ฉันขอแนะนำให้เราจบที่นี่ เราจะกลับมาที่หัวข้อนี้ในโพสต์อื่นๆ และดูวิธีการโจมตีที่ช้าและซ่อนเร้นยิ่งขึ้นไปอีก โดยยังคงสร้างชุดยูทิลิตี้ที่ยอดเยี่ยมของ Imppacket ต่อไป

ที่มา: will.com

เพิ่มความคิดเห็น