Trình tường thuật: Lỗ hổng thực thi mã.
Loại lỗ hổng này cho phép chúng tôi thực
thi mã hệ điều hành trên máy chủ mục tiêu.
Vì vậy, nếu máy chủ đích sử dụng Windows, chúng
ta sẽ có thể thực thi lệnh Windows,
nếu nó sử dụng Linux, thì chúng ta sẽ có thể sử dụng các lệnh Linux.
Rõ ràng, đây là một vấn đề thực sự quan trọng, nó sẽ cho phép
chúng tôi làm bất cứ điều gì chúng tôi muốn
với mục tiêu, thực sự.
Chúng ta có thể tải lên
PHP shell, sử dụng lệnh wget hoặc tải lên payload, vi rút,
bất cứ thứ gì chúng
ta muốn bằng lệnh wget Linux.
Bạn chỉ cần đảm bảo rằng bạn đang tải nó
lên một tệp hoặc vào một thư mục mà bạn
được phép ghi nội dung vào đó.
Một cách khác để khai thác lỗ hổng này là chỉ
chạy các lệnh của hệ điều hành và nhận được một lá chắn ngược
dựa trên các lệnh này.
Vì vậy, vì chúng ta có thể chạy các lệnh của hệ điều
hành, chúng ta có thể sử dụng các ngôn ngữ
lập trình được hỗ trợ bởi hệ điều hành đó để thử và nhận được
kết nối ngược trên máy tính của chúng ta.
Vì vậy, trước hết, hãy giả sử rằng chúng tôi
đang duyệt ở đây,
và chúng tôi quản lý chúng tôi đang đi xung
quanh và sau đó chúng tôi đến một tab trong trang web nơi
nó cho phép bạn, chẳng hạn như thực
hiện ping.
Bây giờ những gì bạn nên làm là, bạn
nên luôn cố gắng thử nghiệm với bất kỳ tác phẩm đầu vào nào mà bạn thấy.
Hãy thử xem đầu vào đó hoạt động như thế nào
và bạn có thể đưa vào nó những
gì, bạn có thể làm gì để chạy mọi thứ.
Vì vậy, ví dụ, đầu vào này hoạt động cho
bạn biết nó sẽ thực hiện một ping.
Và, nếu bạn đặt một
IP, ví dụ, tôi sẽ đặt 10 20 14 203, đó là IP của
riêng tôi.
Chỉ để xem nó, để sử dụng nó như một người
bình thường, tôi sẽ gửi và nó sẽ tiếp tục ping nó cho
tôi và cho tôi kết quả ping.
Vì vậy, những gì trông giống như ở đây, nó
thực sự đang thực thi lệnh ping, trong các
hệ thống Linux.
Bây giờ, hãy xem liệu chúng ta có thể khai thác điều đó không.
Nếu nó thực sự đang thực hiện lệnh ping.
Vì vậy, những gì nó đang làm,
nó đang diễn ra và nó đang làm.
Vì vậy, chúng tôi đang gửi 10 20 14 203 dưới dạng ping.
Và sau đó nó sẽ chuyển đến máy
chủ web và máy chủ web đang thực hiện ping, 10 20 14 203.
Vì vậy, hãy xem liệu chúng ta có thể khai thác điều này không.
Chúng ta sẽ khai thác nó như thế nào?
Nó được lấy những gì chúng tôi đang nhập, ngay tại đây.
Và sau đó, nó đang thực hiện ping, điều đó.
Bây giờ, trong các lệnh dựa trên Linux và Unix,
bạn có thể sử dụng dấu này để thực hiện nhiều lệnh, trên
một dòng.
Vì vậy, nếu bạn làm điều này, chẳng hạn như trong thiết bị đầu cuối của riêng bạn, vì vậy,
tôi chỉ đi qua thiết bị đầu cuối của mình, tại đây.
Và tôi sẽ làm LS, đó là lệnh danh sách và sau đó PWD
là những gì danh sách, những gì hiển
thị thư mục làm việc của bạn.
Vì vậy, nếu tôi thực hiện một LS, theo sau là ký
hiệu này và sau đó thực hiện PWD, nó sẽ thực hiện cả hai lệnh.
Vì vậy, nó sẽ thực hiện điều này và sau đó nó sẽ hiển
thị thư mục làm việc ở đâu.
Vì vậy, chúng ta có thể làm điều tương tự với điều này và xem liệu nó
có phù hợp với chúng ta hay không.
Vì vậy, chúng tôi sẽ đặt IP, một IP phù hợp,
và sau đó tôi sẽ thực hiện PWD
và xem liệu nó có thực thi PWD cho tôi hay không.
Nếu đúng, thì đây là một
lỗ hổng thực thi mã và tôi có
thể thực thi bất cứ thứ gì tôi muốn trên máy chủ.
Vì vậy, hãy xem điều gì sẽ xảy ra.
Tôi đã dán cái này và tôi sẽ nhấn gửi.
Và như bạn có thể thấy, chúng tôi đã nhận được kết quả
ping, nhưng cuối cùng, chúng tôi đã nhận được
thư mục làm việc hiện tại của mình.
Vì vậy, lỗ hổng qua wwwdvwa của nó là một tệp thực thi.
Vì vậy, nó thực thi PWD mà tôi đã chèn vào.
Và điều đó có nghĩa là tôi có thể chèn bất kỳ lệnh nào
tôi muốn, vào đó và chúng sẽ được thực thi.
Vì vậy, tôi đã chèn một tệp tài nguyên
mà bạn có thể sử dụng để lấy kết nối ngược từ
máy tính đích.
Bây giờ, có một số cách,
một số lệnh sẽ cung cấp cho bạn
một kết nối ngược lại.
Tất cả các lệnh này phụ thuộc vào ngôn ngữ lập trình.
Vì vậy, ví dụ, chúng tôi có các lệnh trong PHP,
chúng tôi có các lệnh trong Ruby, bạn có các lệnh Pearl
và chúng tôi có một lệnh cho Bash.
Bash là ngôn ngữ và lệnh shell của Linux.
Vì vậy, tất cả các hệ điều hành Unix sẽ có thể thực
hiện các lệnh Bash.
Vì vậy, đó là một cách rất tốt để làm điều đó.
Vì vậy, hầu hết các hệ thống Unix, lệnh này sẽ
hoạt động trên hầu hết các hệ thống dựa trên Unix.
Vì vậy, đây sẽ là một cách thực sự tốt để làm điều đó.
Một lần nữa, hầu hết chúng sẽ có Python,
vì vậy, Python sẽ là một cách tốt.
Netcat, hầu hết trong số họ cũng có Netcat.
Vì vậy, Netcat là một cách tốt để làm điều đó.
Và, chúng tôi thực sự sẽ sử dụng Netcat trong video này.
Vì vậy, những gì tôi sẽ làm là, trước
tiên tôi sẽ lắng nghe các kết nối, giống
như chúng ta đã từng làm với Metasploit,
khi chúng ta từng làm multihandler.
Bạn thực sự có thể sử dụng một bộ xử lý đa năng cho
việc này và lắng nghe kết nối.
Chà, tôi sẽ đơn giản hơn và chỉ
cho bạn một cách mới.
Và, tôi sẽ sử dụng Netcat.
Vì vậy, Netcat.
Netcat chỉ là một công cụ cho phép
bạn nghe và kết nối các máy tính với nhau.
Vì vậy, tôi sẽ nghe trên cổng 80 80.
Vì vậy, Netcat là chương trình.
vv chỉ là để xem đầu ra dài dòng, vì vậy chúng ta
có thể thấy nhiều đầu ra, có gì sai sót,
chúng ta có thể xem nó.
Và, chúng tôi đang yêu cầu nó lắng
nghe, sử dụng tùy chọn L trên cổng 8080.
Vì vậy, tôi sẽ nhấn enter, và
đó là nói rằng chỉ cần lắng nghe trên cổng 8080, đó là tất
cả những gì nó sẽ làm.
Lệnh tiếp theo mà chúng tôi sẽ thực hiện là chúng
tôi sẽ cố gắng kết nối từ máy chủ web trở
lại máy tính của tôi, bằng cách sử dụng Netcat.
Vì vậy, chúng tôi giả sử máy chủ web có Netcat.
Chúng tôi sẽ thử nó và xem nó có hiệu quả không.
Vì vậy, lệnh rất đơn giản.
Đó là Netcat và chúng tôi đang yêu cầu nó sử dụng bin bash.
Và chúng tôi đang cấp cho nó IP của thiết bị của tôi.
Thiết bị tấn công của tôi, là 10 20 14.
Và, sau đó là cổng 8080.
Đó là nơi chúng tôi đang lắng nghe, ngay tại đây.
Vì vậy, tôi sẽ sao chép nó.
Và tôi sẽ thực hiện nó giống
như cách chúng
tôi đã sử dụng để thực hiện lệnh PWD.
Vì vậy, điều cuối cùng chúng tôi làm là, 10 20 14 203.
Và sau đó chúng tôi đã làm NKT.
Vì vậy, những gì
tôi sẽ làm bây giờ, tôi sẽ
xóa PWD và dán mã mà chúng tôi vừa tạo,
chúng tôi sẽ cố gắng kết nối từ máy chủ web trở
lại máy cally tới máy của kẻ tấn công.
Và, tôi sẽ đến đây.
Và, như bạn có thể thấy, chúng tôi đã
có một kết nối trở lại, với chúng tôi, từ 10 20 14 204.
Vì vậy, đó là máy tính bị hỏng.
Và, nếu chúng ta làm một NKT, bạn sẽ thấy rằng chúng ta có một lớp
vỏ ngược lại nếu chúng ta làm một LS.
Nếu chúng tôi tạo ID, bạn sẽ thấy rằng chúng tôi là wwwdata và bạn
có thể tự do (nhầm lẫn) bạn tên A, chỉ để xác nhận.
Rằng tôi đang ở trong Metasploitable và bạn có thể thấy rằng tôi
đang ở trong Metasploitable.
Và, tôi có thể chạy bất kỳ lệnh nào tôi muốn trên máy
tính mục tiêu.
Vì vậy, về cơ bản tôi có toàn quyền truy cập vào máy tính mục tiêu.