ผู้บรรยาย: ช่องโหว่ในการเรียกใช้โค้ด
ช่องโหว่ประเภทนี้ทำให้เราสามารถรันโค้ดระบบปฏิบัติการบนเซิร์ฟเวอร์เป้าหมายได้
ดังนั้น หากเซิร์ฟเวอร์เป้าหมายใช้ Windows
เราจะสามารถรันคำสั่ง Windows ได้
หากเซิร์ฟเวอร์นั้นใช้ Linux เราจะสามารถใช้คำสั่ง Linux ได้
เห็นได้ชัดว่านี่เป็นปัญหาที่สำคัญจริงๆ ซึ่งจะทำให้เราสามารถทำทุกอย่างที่ต้องการกับเป้าหมายได้จริงๆ
เราสามารถอัปโหลดเชลล์
PHP โดยใช้คำสั่ง wget หรืออัปโหลดเพย์โหลด ไวรัส อะไรก็ได้ที่เราต้องการ
โดยใช้คำสั่ง wget Linux
คุณเพียงแค่ต้องแน่ใจว่าคุณกำลังอัปโหลดไปยังไฟล์หรือไดเร็กทอรี
ซึ่งคุณได้รับอนุญาตให้เขียนสิ่งต่างๆ
ลงไปได้
อีกวิธีหนึ่งในการใช้ประโยชน์จากช่องโหว่นี้คือ
เรียกใช้คำสั่ง OS และรับเกราะป้องกันแบบย้อนกลับตามคำสั่งเหล่านี้
ดังนั้น เนื่องจากเราสามารถเรียกใช้คำสั่งของระบบปฏิบัติการ
เราจึงสามารถใช้ภาษาโปรแกรมที่สนับสนุนโดยระบบปฏิบัติการนั้นเพื่อลองเชื่อมต่อแบบย้อนกลับบนคอมพิวเตอร์ของเรา
อย่างแรกเลย สมมติว่าเรากำลังเรียกดูที่นี่
และเราจัดการได้ และจากนั้นเราก็ไปที่แท็บในเว็บไซต์ที่อนุญาตให้คุณทำ เช่น
ปิง
ตอนนี้สิ่งที่คุณควรทำคือ
คุณควรพยายามทดลองกับผลงานที่คุณเห็นเสมอ
ลองดูว่าอินพุตนั้นทำงานอย่างไร และคุณสามารถฉีดอะไรเข้าไปได้บ้าง
คุณทำอะไรได้บ้างเพื่อให้ทำงาน
ตัวอย่างเช่น อินพุตนี้ใช้งานได้กำลังบอกคุณว่าจะทำ
ping
และถ้าคุณใส่ IP
เช่น ฉันจะใส่ 10 20 14 203 ซึ่งเป็น IP
ของฉันเอง
เพียงเพื่อดูมัน เพื่อใช้เป็นคนปกติ ฉันจะทำการส่งและมันจะไปข้างหน้าและ
ping ให้ฉันและให้ผลลัพธ์ ping แก่ฉัน
ดังนั้น สิ่งที่ดูเหมือนที่นี่
เป็นการรันคำสั่ง ping จริง ๆ ในระบบ
Linux
ทีนี้ลองดูว่าเราสามารถใช้ประโยชน์จากมันได้หรือไม่
ถ้ามันรันคำสั่ง ping จริงๆ
ดังนั้น สิ่งที่กำลังทำอยู่ คือ
กำลังไป และกำลังดำเนินการอยู่
เราจะส่ง 10 20 14 203 เป็นค่าปิง
จากนั้นไปที่เว็บเซิร์ฟเวอร์และเว็บเซิร์ฟเวอร์กำลังทำการ
ping, 10 20 14 203
ลองดูว่าเราสามารถใช้ประโยชน์จากสิ่งนี้ได้หรือไม่
เราจะใช้ประโยชน์จากมันได้อย่างไร?
มันใช้สิ่งที่เรากำลังป้อนตรงนี้
แล้วมันก็ทำการปิงนั่นล่ะ
ตอนนี้ ในคำสั่งที่ใช้ Linux และ Unix คุณสามารถใช้
the, เครื่องหมายนี้เพื่อดำเนินการหลายคำสั่งในบรรทัดเดียว
ดังนั้น หากคุณทำเช่นนี้ ตัวอย่างเช่น ในเทอร์มินัลของคุณเอง
ฉันจะผ่านเทอร์มินัลของฉันที่นี่
และฉันกำลังจะทำ LS ซึ่งเป็นคำสั่ง list จากนั้น
PWD คือรายการอะไร จะแสดงไดเร็กทอรีการทำงานของคุณ
ดังนั้น ถ้าฉันทำ LS ตามด้วยเครื่องหมายนี้
และจากนั้นทำ PWD มันจะรันคำสั่งทั้งสอง
ดังนั้น มันจะทำสิ่งนี้ จากนั้นจะแสดงตำแหน่งไดเร็กทอรีการทำงาน
ดังนั้นเราจึงสามารถทำสิ่งเดียวกันกับสิ่งนี้และดูว่าเหมาะกับเราหรือไม่
ดังนั้น เราจะใส่ IP ซึ่งเป็น IP ที่ถูกต้อง
จากนั้นฉันจะทำ PWD และดูว่ามันจะดำเนินการ
PWD ให้ฉันหรือไม่
ถ้าเป็นเช่นนั้น แสดงว่าเป็นช่องโหว่ในการเรียกใช้โค้ด
และฉันสามารถดำเนินการทุกอย่างที่ฉันต้องการบนเซิร์ฟเวอร์ได้
มาดูกันว่าจะมีอะไรเกิดขึ้นบ้าง
ฉันวางสิ่งนี้และฉันจะกดส่ง
และอย่างที่คุณเห็น เราได้ผลลัพธ์ ping
แต่ในตอนท้าย เราได้ไดเร็กทอรีการทำงานปัจจุบันของเรา
ดังนั้นช่องโหว่ผ่าน wwwdvwa จึงเป็นผู้บริหาร
ดังนั้น มันจึงดำเนินการ PWD ที่ฉันใส่เข้าไป
และนั่นหมายความว่าฉันสามารถแทรกคำสั่งใดๆ ที่ฉันต้องการ
เข้าไปที่นั่น และคำสั่งเหล่านั้นจะถูกดำเนินการ
ฉันได้แทรกไฟล์ทรัพยากรที่คุณสามารถใช้เพื่อเชื่อมต่อย้อนกลับจากคอมพิวเตอร์เป้าหมาย
มีหลายวิธี คำสั่งต่างๆ
ที่จะให้การเชื่อมต่อย้อนกลับแก่คุณ
คำสั่งทั้งหมดเหล่านี้ขึ้นอยู่กับภาษาการเขียนโปรแกรม
ตัวอย่างเช่น เรามีคำสั่งใน PHP เรามีคำสั่งใน
Ruby คุณมีคำสั่ง Pearl และเรามีคำสั่งสำหรับ
Bash
Bash คือคำสั่งและภาษาของเชลล์ Linux
ดังนั้นระบบปฏิบัติการ Unix ทั้งหมดจะสามารถรันคำสั่ง
Bash ได้
นั่นเป็นวิธีที่ดีมากในการทำ
ดังนั้น ระบบ Unix ส่วนใหญ่ คำสั่งนี้ควรทำงานบนระบบที่ใช้
Unix ส่วนใหญ่
ดังนั้น นี่จะเป็นวิธีที่ดีจริงๆ ในการทำ
อีกครั้ง ส่วนใหญ่จะมี Python ดังนั้น
Python จะเป็นวิธีที่ดี
Netcat ส่วนใหญ่ก็มี Netcat เช่นกัน
ดังนั้น Netcat จึงเป็นวิธีที่ดีในการทำเช่นนั้น
และเราจะใช้ Netcat ในวิดีโอนี้จริงๆ
สิ่งที่ฉันจะทำคือ อันดับแรก
ฉันจะฟังการเชื่อมต่อ เหมือนที่เราเคยทำกับ
Metasploit เมื่อเราเคยทำ multihandler
คุณสามารถใช้ multihandler สำหรับสิ่งนี้และฟังการเชื่อมต่อ
ฉันแค่จะทำให้ง่ายขึ้นและแสดงวิธีใหม่ให้คุณดู
และฉันจะใช้ Netcat
ดังนั้น Netcat
Netcat เป็นเพียงเครื่องมือที่ให้คุณฟังและเชื่อมต่อคอมพิวเตอร์เข้าด้วยกัน
ดังนั้นฉันจะฟังที่พอร์ต 80 80
ดังนั้น Netcat จึงเป็นโปรแกรม
vv เป็นเพียงการดูเอาต์พุตแบบละเอียด ดังนั้นเราจึงเห็นเอาต์พุตจำนวนมาก
มีอะไรผิดปกติ เราเห็นได้
และเรากำลังบอกให้ฟัง โดยใช้ตัวเลือก
L บนพอร์ต 8080
ดังนั้นฉันจะกด Enter
และนั่นก็บอกว่าแค่ฟังพอร์ต 8080 นั่นคือทั้งหมดที่จะทำ
คำสั่งต่อไปที่เราจะทำคือ เราจะพยายามเชื่อมต่อจากเว็บเซิร์ฟเวอร์กลับไปที่คอมพิวเตอร์ของฉัน
โดยใช้ Netcat เช่นกัน
ดังนั้นเราจึงสมมติว่าเว็บเซิร์ฟเวอร์มี Netcat
เราจะลองดูและดูว่าได้ผลหรือไม่
ดังนั้นคำสั่งจึงง่ายมาก
มันคือ Netcat และเรากำลังบอกให้ใช้ bin bash
และเรากำลังให้ IP ของอุปกรณ์ของฉัน
อุปกรณ์โจมตีของฉัน ซึ่งก็คือ 10 20 14
แล้วก็พอร์ต 8080
ที่เรากำลังฟังอยู่นี่
ดังนั้นฉันจะคัดลอกสิ่งนั้น
และฉันกำลังจะรันมันแบบเดียวกับที่เราเคยรันคำสั่ง
PWD
สิ่งสุดท้ายที่เราทำคือ 10 20 14 203
แล้วเราก็ทำ PWD
สิ่งที่ฉันจะทำตอนนี้
ฉันจะลบ PWD และวางโค้ดที่เราเพิ่งสร้างขึ้น
ซึ่งเราจะพยายามเชื่อมต่อจากเว็บเซิร์ฟเวอร์กลับไปยังเครื่องที่โทรมไปยังเครื่องโจมตี
และฉันจะมาที่นี่
และอย่างที่คุณเห็น เราได้รับการเชื่อมต่อกลับมาจาก
ถึงเรา จาก 10 20 14 204
นั่นคือคอมพิวเตอร์ที่ถูกระงับ
และถ้าเราทำ PWD คุณจะเห็นว่าเรามี reverse
shell หากเราทำ LS
หากเราทำ ID คุณจะเห็นว่าเราคือ wwwdata และคุณสามารถ
(พึมพำ) คุณชื่อ A ได้ เพียงเพื่อยืนยัน
ว่าฉันอยู่ใน Metasploitable และคุณจะเห็นว่าฉันอยู่ใน
Metasploitable
และฉันสามารถเรียกใช้คำสั่งใดๆ ที่ฉันต้องการบนคอมพิวเตอร์เป้าหมายได้
โดยพื้นฐานแล้วฉันสามารถเข้าถึงคอมพิวเตอร์เป้าหมายได้อย่างเต็มที่