-: จนถึงตอนนี้ เราได้เห็นแล้วว่าเราสามารถใช้บริการด้วยรหัสผ่านเริ่มต้นหรือบริการที่ไม่ได้รับการกำหนดค่าอย่างถูกต้อง
หรือบริการที่มาพร้อมกับประตูหลังเพื่อเข้าถึงคอมพิวเตอร์เป้าหมายได้อย่างเต็มที่
เรายังเห็นวิธีการใช้งานพื้นฐาน Metasploit
โดยใช้, เพื่อเชื่อมต่อกับแบ็คดอร์ที่ติดตั้งบนบริการ
FTP
วันนี้เราจะมาดู Metasploit
ขั้นสูงและดูว่าเราใช้มันอย่างไรเพื่อเรียกใช้ช่องโหว่ที่มีอยู่ในบริการบางอย่าง
เป็นช่องโหว่ในการเรียกใช้โค้ดซึ่งจะทำให้เราเข้าถึงคอมพิวเตอร์เป้าหมายได้อย่างเต็มที่เช่นกัน
กลับไปที่ผลลัพธ์ของเราที่นี่ด้วย Nmap และเราจะทำแบบเดียวกับที่เราทำมาระยะหนึ่งแล้ว
เราคัดลอกชื่อบริการและดูว่ามีช่องโหว่หรือไม่
ดังนั้นสำหรับวันนี้เราจะมาดูพอร์ตนี้โดยเฉพาะ 139
ซึ่งมีเซิร์ฟเวอร์ Samba เวอร์ชัน 3 เอ็กซ์
ดังนั้น 3. อะไรก็ได้จริงๆ
เรากำลังพูดถึง Google เช่นเดียวกับที่เราทำในวิดีโอก่อนหน้านี้
และเราจะมองหา Samba 3
X ใช้ประโยชน์
อย่างที่คุณเห็นมีผลลัพธ์มากมาย
ที่เราสนใจ ที่มาจาก Rapid 7 เพราะอย่างที่ฉันบอกไปแล้วว่าคนเหล่านี้คือคนที่สร้าง
Metasploit ดังนั้นการหาประโยชน์ที่คุณเห็นในนั้นจึงสามารถใช้ผ่าน
Metasploit ได้
เรามีตัวอย่างสองตัวอย่างที่นี่
ตอนนี้ฉันได้ลองทั้งสองอย่างแล้ว
อันแรกใช้ไม่ได้ ดังนั้นจึงมีการลองผิดลองถูกอยู่บ้าง
และอันที่สองคือ Maps Script ของผู้ใช้
เป็นช่องโหว่ในการเรียกใช้คำสั่งดังที่คุณเห็นที่นี่
ดังนั้นชื่อของช่องโหว่คือสิ่งนี้
ดังนั้นมันจึงเหมือนกับที่เราใช้ก่อนหน้านี้กับ
backdoor ชั่วร้ายในบริการ FTP
นี่เป็นเพียงชื่ออื่นที่เราจะใช้
ดังนั้นฉันจะไปที่ Metasploit และฉันได้เรียกใช้คอนโซล
MSF แล้ว ดังนั้นคุณจะเห็นว่าคอนโซลกำลังทำงานที่นี่สำหรับฉัน
ดังนั้นฉันจะใช้มันเหมือนที่เคยทำเมื่อวานนี้
แล้วฉันจะใส่ชื่อของการหาประโยชน์ที่ฉันต้องการใช้
แล้วสิ่งต่อไปที่เรามักจะทำคือแสดงตัวเลือกเหมือนที่เราทำเมื่อวาน
ฉันจะทำการแสดงตัวเลือก
ดังนั้นการใช้ช่องโหว่เหล่านี้จึงค่อนข้างเหมือนกัน ความแตกต่างเพียงอย่างเดียวคือตัวเลือกที่คุณสามารถตั้งค่าสำหรับการใช้ประโยชน์แต่ละครั้ง
ดังนั้นคุณจึงใช้งานอยู่เสมอ จากนั้นคุณใส่ชื่อการหาประโยชน์ จากนั้นคุณจึงแสดงตัวเลือกเพื่อดูว่าคุณสามารถเปลี่ยนแปลงอะไรได้บ้างเพื่อทำงานกับช่องโหว่นี้
ดังนั้น ในอนาคต คุณอาจจะได้รับการหาประโยชน์ที่แตกต่างจากที่ฉันมีอยู่
ดังนั้นทุกครั้งที่คุณต้องการเรียกใช้การหาช่องโหว่
คุณจะใช้ชื่อการใช้ประโยชน์จากช่องโหว่ จากนั้นคุณจะแสดงตัวเลือกเพื่อดูตัวเลือกที่คุณต้องการกำหนดค่า แต่การใช้ช่องโหว่และการตั้งค่าตัวเลือกและการเรียกใช้จะเหมือนกันเสมอ
ฉันกำลังแสดงตัวอย่างให้คุณดู ซึ่งน่าจะครอบคลุมเกือบทุกอย่างที่คุณอยากทำในอนาคต
อีกครั้ง เราต้องตั้งค่า R-Host ซึ่งเป็น IP ของคอมพิวเตอร์เป้าหมาย
และเราจะทำแบบเดียวกับที่เคยทำ
อย่างที่ฉันพูดไป การตั้งค่าตัวเลือกจะเหมือนกันเสมอ
เราจะตั้งค่า R-HOST แล้วใส่
IP ของคอมพิวเตอร์เป้าหมายซึ่งก็คือ
10 20. 14. 204.
เหมือนกับที่เราทำก่อนหน้านี้ เราใช้ set
เพื่อตั้งค่าตัวเลือกซึ่งเป็น R-HOST
เราจะทำตัวเลือกการแสดงของเรา
และอย่างที่คุณเห็นตอนนี้ R-HOST ได้รับการตั้งค่าอย่างถูกต้องแล้ว
สิ่งที่เราต้องทำตอนนี้คือ นี่คือสิ่งที่แตกต่างจากการบรรยายครั้งก่อน
ในการบรรยายครั้งก่อน เราใช้แบ็คดอร์ที่ติดตั้งไว้ในคอมพิวเตอร์เป้าหมายแล้ว
สิ่งที่เราต้องทำคือเชื่อมต่อกับแบ็คดอร์ จากนั้นเราสามารถเรียกใช้คำสั่งใดๆ
ก็ได้ คำสั่ง Linux บนคอมพิวเตอร์เป้าหมาย
ในวิดีโอปัจจุบัน คอมพิวเตอร์เป้าหมายไม่มีแบ็คดอร์
แต่มีโปรแกรมปกติที่มีบัฟเฟอร์ล้นหรือช่องโหว่ในการเรียกใช้โค้ด
ดังนั้นโปรแกรมจึงไม่มีโค้ดใด ๆ ที่ช่วยให้เราสามารถรันคำสั่ง
Linux ได้ แต่มีข้อบกพร่องบางประการที่จะทำให้เราสามารถรันโค้ดเพียงเล็กน้อยได้
โค้ดเล็กๆ เหล่านี้เรียกว่าเพย์โหลด
สิ่งที่เราต้องทำคือสร้างเพย์โหลดแล้วรันบนคอมพิวเตอร์เป้าหมายโดยใช้ช่องโหว่ที่เราพบ
โค้ดชิ้นนั้นจะช่วยให้เราทำสิ่งต่างๆ ได้
ดังนั้น payload คือสิ่งที่ทำให้เราทำสิ่งต่าง ๆ ที่เป็นประโยชน์กับเราได้
ตอนนี้เพย์โหลดอาจทำให้เราทำคำสั่ง Linux และมีเพย์โหลดประเภทอื่นที่เราจะพิจารณาในอนาคต
ดังนั้น หากต้องการดูว่าเพย์โหลดที่คุณสามารถใช้กับช่องโหว่นี้
สิ่งที่คุณต้องทำคือเรียกใช้แสดงเพย์โหลด
และนี่คือเพย์โหลดของระบบปฏิบัติการประเภทต่าง ๆ ที่คุณสามารถใช้ได้
ตอนนี้ฉันจะพูดถึงเรื่องนี้อีกครั้ง ดังนั้นเพย์โหลดจึงเป็นโค้ดเล็กๆ
ที่จะถูกเรียกใช้งานบนคอมพิวเตอร์เป้าหมายทันทีที่ช่องโหว่นั้นถูกโจมตี
ดังนั้น เมื่อเราใช้ประโยชน์จากช่องโหว่นี้ โค้ดที่เราจะเลือกที่นี่จะถูกดำเนินการ
และขึ้นอยู่กับประเภทของเพย์โหลดที่เราเลือก เพย์โหลดนั้นจะทำบางสิ่งที่เป็นประโยชน์กับเรา
ดังนั้น ตอนนี้ คุณจะเห็นได้ว่าเพย์โหลดทั้งหมดเป็น cmd
ซึ่งย่อมาจาก command ดังนั้นพวกเขาจึงให้คุณรันคำสั่งบนคอมพิวเตอร์เป้าหมายได้
เช่นเดียวกับคำสั่งของ Linux
และทั้งหมดนั้นทำงานบน Unix เท่านั้นและก็ไม่เป็นไรเพราะเป้าหมายของเราคือ
Linux
และมีสองประเภทหลักคือมีเพย์โหลดที่ผูกไว้และมีเพย์โหลดย้อนกลับ
เพย์โหลดที่ผูกไว้ ทั้งหมดที่พวกเขาทำคือเปิดพอร์ตบนคอมพิวเตอร์เป้าหมาย
จากนั้นเราเชื่อมต่อกับพอร์ตนั้น
ในทางกลับกันพวกเขาทำตรงกันข้าม
ดังนั้นพวกเขาจึงเปิดพอร์ตในเครื่องของฉันแล้วเชื่อมต่อจากคอมพิวเตอร์เป้าหมายไปยังเครื่องของฉัน
สิ่งนี้มีประโยชน์เพราะการย้อนกลับทำให้เราข้ามไฟร์วอลล์ได้
ดังนั้นไฟร์วอลล์จะกรองการเชื่อมต่อใดๆ ที่ไปยังเครื่องเป้าหมาย
แต่ถ้าเครื่องเป้าหมายเชื่อมต่อกับฉันและฉันไม่มีไฟร์วอลล์
ฉันจะสามารถเลี่ยงผ่าน ไฟร์วอลล์
ดังนั้นฉันจะใช้ cmd Unix reverse หรือจริง
ๆ แล้วฉันจะใช้ cmd Unix reverse netcat
ส่วนสุดท้ายของเพย์โหลดเหล่านี้คือโปรแกรมและเครื่องมือลำดับภาษาที่จะใช้เพื่ออำนวยความสะดวกในการเชื่อมต่อ
ตัวอย่างเช่น เราจะเห็นว่ามี payloads ที่เขียนด้วย
perl ใน ruby หรือ python, php หรือใช้ netcat ซึ่งเป็นเครื่องมือที่ช่วยให้สามารถเชื่อมต่อระหว่างคอมพิวเตอร์ได้
นี่คือสิ่งที่ฉันจะใช้ และฉันจะใช้มันในลักษณะเดียวกับที่คุณใช้การหาประโยชน์
ฉันเลยจะบอกว่า ขอโทษจริงๆ ฉันจะใช้มันโดยใช้คำสั่ง
set
เช่นเดียวกับที่คุณใช้ set และ option
เราจะตั้งค่า payload เหมือนกับตัวเลือก เป็นชื่อ payload
ที่เราเพิ่งเลือก
ตอนนี้ฉันกำลังจะทำการแสดงตัวเลือกเพื่อดูว่ามีตัวเลือกอื่นๆ
ที่ฉันต้องตั้งค่าหรือไม่
และใช่ เนื่องจากเราเลือกเพย์โหลด ตอนนี้จึงมีตัวเลือกเพิ่มเติม
ดังนั้นจึงมีตัวเลือกที่เรียกว่า L-HOST
และเป็นที่อยู่สำหรับฟังซึ่งเป็นที่อยู่ของฉันเอง
ดังนั้นฉันจะได้ที่อยู่ IP ของตัวเองโดยใช้ if config.php
และที่อยู่ของฉันคือ 10 20. 14. 203.
ฉันจะปิดสิ่งนี้และฉันจะตั้งค่า
L-HOST
ดังนั้นจึงเหมือนกับที่เราตั้งค่า R-Host ก่อนหน้านี้
เราตั้งค่า L-HOST
ทำ 10.
20.
ดังนั้น ก่อนที่เราจะตั้งค่า R-HOST เพื่อตั้งค่าตัวเลือกนี้ ตอนนี้เรากำลังตั้งค่า
L-HOST เพื่อตั้งค่าตัวเลือกนี้โดยเฉพาะ
ดังนั้น set จึงง่ายมาก ตั้งค่า คุณใส่ชื่อตัวเลือกแล้วตามด้วยค่าที่คุณต้องการตั้ง
จากนั้นฉันจะแสดงตัวเลือก และตอนนี้ทุกอย่างดูเรียบร้อยดี
ดังนั้นเราจึงใช้ช่องโหว่นี้ R-HOST ถูกตั้งค่าเป็นสิ่งนี้
ซึ่งก็ใช้ได้
จากนั้น L-HOST ก็ถูกตั้งค่าเป็นสิ่งนี้ซึ่งสมบูรณ์แบบ
จากนั้นคุณสามารถตั้งค่าพอร์ตที่คุณจะฟังบนคอมพิวเตอร์เครื่องปัจจุบันของคุณ
คุณสามารถตั้งค่าเป็น 80 ได้หากต้องการ
นั่นคือพอร์ตที่เว็บเบราว์เซอร์ใช้
ดังนั้น หากคุณตั้งค่า L-PORT เป็น 80 คอมพิวเตอร์เป้าหมายจะพยายามเชื่อมต่อกับคุณโดยใช้พอร์ต
80 ซึ่งไม่เคยถูกกรองบนไฟร์วอลล์ เนื่องจากเป็นพอร์ตที่เว็บเบราว์เซอร์หรือเว็บเซิร์ฟเวอร์ใช้
ดังนั้นเมื่อใดก็ตามที่คุณเข้าถึงเว็บไซต์ คุณจะเข้าถึงพอร์ต 80
บนเว็บไซต์นั้นจริงๆ
ดังนั้นหากคุณเปิดพอร์ต 80 บนเครื่องของคุณและเป้าหมายเชื่อมต่อกับคุณที่
80 ไฟร์วอลล์จะคิดว่าเป้าหมายนั้นกำลังท่องอินเทอร์เน็ตเท่านั้น
ฉันจะไม่ทำอย่างนั้นตอนนี้เพราะฉันมีเว็บเซิร์ฟเวอร์ที่ทำงานบนพอร์ต
80 และจะขัดแย้งกัน
ดังนั้นฉันจะตั้งค่า L-PORT
เป็น 555 สำหรับตัวอย่างของคุณ เพื่อดูว่าคุณสามารถเปลี่ยนตัวเลือกใด
ๆ ก็ได้โดยใช้วิธีเดียวกับที่ตั้งค่าไว้ ชื่อตัวเลือก
แล้วก็ค่า
ผมจะแสดงตัวเลือกอีกครั้ง
และอย่างที่คุณเห็น มันถูกเปลี่ยนเป็น 5555 และฉันจะใช้ประโยชน์จากช่องโหว่นี้
อย่างที่คุณเห็น มันบอกฉันว่าช่วงที่หนึ่งเปิดขึ้นแล้ว
และการเชื่อมต่อระหว่างอุปกรณ์นี้กับอุปกรณ์นี้
ซึ่งเป็นเป้าหมายและอุปกรณ์ของฉัน
ฉันจะทำ pwd
หรือทำ id
คุณจะเห็นว่าฉันรูตดังนั้นฉันจึงทำ uname -a
คุณจะเห็นว่าฉันอยู่ในเครื่อง Metasploitable
และถ้าฉันทำ ls ฉันจะสามารถแสดงรายการไฟล์และอื่นๆ ได้
ฉันสามารถใช้คำสั่ง Linux ใดๆ ก็ได้ เช่นเดียวกับที่เราเคยทำในวิดีโออื่นๆ