Bây giờ chúng ta đã học cách truy cập vào máy mục tiêu của mình. Trong phần này, chúng ta sẽ tìm hiểu một số điều có thể thực hiện sau khi chúng ta đã có quyền truy cập vào máy tính. Chúng tôi sẽ xem xét những gì chúng tôi làm với máy tính mục tiêu bất kể chúng tôi có quyền truy cập vào nó như thế nào.
Trong phần trước, khi chúng tôi nhận được một phiên Meterpreter ngược từ mục tiêu của mình, chúng tôi luôn dừng lại. Nhưng trong phần này, chúng ta sẽ bắt đầu với phiên Meterpreter. Chúng tôi sẽ tìm hiểu, những gì chúng tôi có thể làm sau khi có được quyền truy cập. Chúng ta sẽ thảo luận về cách duy trì quyền truy cập vào máy tính mục tiêu ngay cả khi máy tính mục tiêu khởi động lại hoặc người dùng gỡ cài đặt các chương trình dễ bị tấn công.
Các bài viết liên quan:
Chúng ta sẽ xem xét cách tải tệp xuống, đọc tệp, tải tệp lên, mở webcam, khởi động keylogger để đăng ký tổ hợp phím, v.v. Chúng ta cũng sẽ xem xét cách sử dụng một máy tính đích làm trục quay để khai thác tất cả các máy tính trên cùng một mạng. Trong phần này, tất cả những điều chúng ta sẽ làm sẽ tập trung vào sau khi chúng ta đã khai thác các lỗ hổng của mục tiêu và đã có quyền truy cập vào nó.
Trong phần này, chúng tôi sẽ đề cập đến các chủ đề sau:
Trong phần này, chúng ta sẽ tìm hiểu về cách tương tác với Meterpreter của Metasploit. Trong Linux, lệnh trợ giúp được sử dụng để lấy thông tin về một lệnh cụ thể. Vì vậy, điều đầu tiên chúng ta sẽ làm là chạy lệnh trợ giúp, để có được một danh sách lớn tất cả các lệnh mà chúng ta có thể chạy. Nó cũng cho chúng ta biết mô tả về những gì mỗi lệnh thực hiện, như được hiển thị trong ảnh chụp màn hình sau:
Điều đầu tiên mà chúng tôi sẽ làm nổi bật là lệnh nền, như được hiển thị trong ảnh chụp màn hình sau:
Về cơ bản, lệnh nền được sử dụng để làm nền cho phiên hiện tại mà không cần chấm dứt nó. Lệnh này rất giống với việc thu nhỏ một cửa sổ. Vì vậy, sau khi chạy lệnh nền, chúng ta có thể quay lại Metasploit và chạy các lệnh khác để khai thác sâu hơn máy mục tiêu, duy trì kết nối với máy tính vừa hack. Chúng tôi sẽ sử dụng lệnh session -l, để xem danh sách tất cả các máy tính và phiên mà chúng tôi đang sử dụng. Trong ảnh chụp màn hình sau, chúng ta có thể thấy rằng chúng ta vẫn có phiên Meterpreter và nó nằm giữa thiết bị của chúng ta, là 10.0.2.15 và thiết bị đích, là 10.0.2.5:
Nếu chúng ta muốn quay lại phiên trước để chạy lại Metasploit, chúng ta phải chạy lệnh phiên với -i (cho tương tác), sau đó đặt ID, là 2, như được hiển thị trong ảnh chụp màn hình sau:
Một lệnh khác mà chúng ta sẽ chạy bất cứ khi nào chúng ta xâm nhập vào hệ thống là lệnh sysinfo. Lệnh sysinfo hiển thị cho chúng ta thông tin về máy tính mục tiêu. Trong ảnh chụp màn hình sau, chúng ta có thể thấy rằng nó hiển thị cho chúng ta tên máy tính, hệ điều hành và kiến trúc của nó. Chúng ta cũng có thể thấy trong ảnh chụp màn hình sau rằng đó là một máy tính 64-bit, vì vậy nếu chúng ta muốn chạy các tệp thực thi trên máy mục tiêu trong tương lai, chúng tôi biết rằng chúng tôi sẽ tạo tệp thực thi 64-bit:
Chúng ta có thể thấy rằng nó sử dụng ngôn ngữ tiếng Anh, nhóm làm việc mà máy tính đang làm việc và ID người dùng đã đăng nhập. Chúng ta cũng có thể thấy phiên bản của Meterpreter đang chạy trên máy đích và nó thực sự là 32-bit phiên bản.
Một lệnh hữu ích khác để thu thập thông tin là ipconfig. Lệnh ipconfig hiển thị cho chúng ta tất cả các giao diện được kết nối với máy tính mục tiêu, như thể hiện trong ảnh chụp màn hình sau:
Trong ảnh chụp màn hình ở trên, chúng ta có thể thấy Giao diện 1, địa chỉ MAC, địa chỉ IP và thậm chí cả địa chỉ IPv4, được kết nối với nhiều mạng. Chúng tôi cũng có thể xem tất cả các giao diện và cách tương tác với chúng.
Một lệnh hữu ích khác được sử dụng để thu thập thông tin là lệnh ps. Lệnh ps liệt kê tất cả các tiến trình đang chạy trên máy tính Target. Các quy trình này có thể là quy trình nền hoặc chương trình thực tế đang chạy ở nền trước dưới dạng chương trình Windows hoặc GUI. Trong ảnh chụp màn hình sau, chúng ta sẽ thấy danh sách tất cả các quy trình đang chạy, cùng với tên và ID hoặc PID của mỗi quy trình:
Một quá trình thú vị là explorer.exe. Nó là một giao diện đồ họa của Windows. Trong ảnh chụp màn hình trước, chúng ta có thể thấy rằng nó đang chạy trên PID 4744, như được hiển thị trong ảnh chụp màn hình sau:
Khi chúng tôi xâm nhập vào hệ thống, bạn nên chuyển quy trình mà người đó đang thực hiện sang một quy trình an toàn hơn. Ví dụ, một process explorer.exe là giao diện đồ họa của Windows và tiến trình này luôn chạy, miễn là người dùng đang sử dụng thiết bị của họ. Điều này có nghĩa là quá trình này an toàn hơn nhiều so với quá trình mà chúng tôi có được quyền truy cập vào máy tính. Ví dụ: nếu chúng tôi có được quyền truy cập thông qua một chương trình hoặc tệp thực thi, chúng tôi sẽ mất quy trình khi người đó đóng chương trình đó. Một phương pháp tốt hơn là chuyển sang một quy trình ít có khả năng bị chấm dứt hoặc đóng. Để làm điều này, chúng tôi sẽ sử dụng lệnh di chuyển, lệnh này sẽ chuyển phiên hiện tại của chúng tôi sang một quy trình khác. Chúng tôi sẽ sử dụng một process explorer.exe, vì nó an toàn.
Chúng tôi sẽ sử dụng lệnh di chuyển 4744, trong đó 4744 là PID của quá trình explorer.exe. Lệnh như sau:
Tại thời điểm đó, Meterpreter đang chạy từ tiến trình explorer.exe. Bây giờ nếu chúng ta đi đến Trình quản lý tác vụ trên máy mục tiêu và chạy Trình quản lý tài nguyên, sau đó chuyển đến tab Mạng và chuyển đến Kết nối TCP, chúng ta có thể thấy rằng kết nối trên cổng 8080 đến từ quá trình explorer.exe, như thể hiện trong ảnh chụp màn hình sau:
Vì vậy, đối với máy mục tiêu, nó không đến từ một backdoor, tải trọng của chúng tôi, một tệp độc hại, nó đang chạy qua explorer.exe, điều này không đáng ngờ đối với máy mục tiêu. Bây giờ, nếu chúng tôi thấy Chrome hoặc Firefox, chúng tôi có thể di chuyển sang các quy trình đó. Và, nếu chúng tôi đang sử dụng cổng 8080 hoặc 80 để kết nối, nó sẽ trông ít đáng ngờ hơn, bởi vì máy chủ web sử dụng cổng 8080 hoặc 80, vì vậy nó là phiên bản tự nhiên để có một kết nối thông qua chúng.
Các lệnh Filesystem
Bây giờ, chúng ta sẽ xem xét thêm một số lệnh cho phép chúng ta tải lên, tải xuống, liệt kê, đọc, điều hướng và thực thi các tệp trên máy mục tiêu. Chúng tôi có một phiên đang chạy là Meterpreter, và điều đầu tiên chúng tôi sẽ làm là chạy lệnh pwd để lấy thư mục làm việc hiện tại của chúng tôi. Lệnh này sẽ đưa chúng ta đến vị trí C: \ Users. Bây giờ, chúng ta sẽ chạy lệnh ls để liệt kê tất cả các tệp và thư mục, như được hiển thị trong ảnh chụp màn hình sau:
Giả sử chúng ta muốn điều hướng đến thư mục IEUser. Để làm điều này, chúng tôi sẽ chạy lệnh cd IEUser. Nếu chúng ta chạy pwd, chúng ta có thể thấy rằng chúng ta sẽ ở trong thư mục C: \ Users \ IEUser. Sau đó, chúng tôi sẽ đi đến thư mục Tải xuống và chạy lệnh ls để liệt kê các tệp, như được hiển thị trong ảnh chụp màn hình sau:
Trong ảnh chụp màn hình ở trên, chúng ta có thể thấy tệp mật khẩu.txt, có vẻ như là một tệp thú vị. Nếu chúng ta muốn đọc tệp này, chúng ta có thể chạy lệnh password.txt. Trong ảnh chụp màn hình sau, chúng ta có thể thấy nội dung của tệp:
Nếu chúng tôi kiểm tra tệp này, chúng tôi sẽ thấy rằng đầu ra mà chúng tôi nhận được từ lệnh cat khớp với nội dung của tệp.
Giả sử rằng chúng tôi muốn giữ tệp này để sử dụng sau này. Chúng tôi sẽ tải xuống bằng cách sử dụng lệnh tải xuống và tên tệp, đó là password.txt. Lệnh như sau:
Khi chúng tôi khởi chạy lệnh, tệp sẽ được tải xuống. Nếu chúng tôi truy cập thư mục gốc của mình, chúng tôi sẽ có thể thấy tệp có tên là password.txt, như được hiển thị trong ảnh chụp màn hình sau:
Bây giờ, giả sử rằng chúng ta có một Trojan, Keylogger, vi-rút hoặc một backdoor mà chúng ta muốn tải lên máy tính mục tiêu. Nếu chúng ta vào thư mục gốc của mình, chúng ta có thể thấy rất nhiều tệp, bao gồm cả backdoored-calc.exe. Chúng tôi sẽ tải lên tệp đó bằng lệnh tải lên, cùng với tên tệp là backdoored-calc.exe. Lệnh như sau:
Bây giờ, chúng ta sẽ chạy lệnh ls để xem danh sách các tập tin. Trong ảnh chụp màn hình sau, chúng ta có thể thấy một tệp mới có tên là backdoored-calc.exe:
Chúng ta sẽ chạy lệnh execute để thực thi tệp đã tải lên trên máy tính mục tiêu, sau đó chỉ định tùy chọn -f với tên tệp mà chúng ta muốn thực thi là backdoored-calc.exe. Khi chúng tôi thực thi nó, chúng tôi sẽ thấy rằng quá trình 3324 đã được tạo, vì vậy backdoor của chúng tôi đã được thực thi:
Bây giờ, nếu backdoored-cal.exe là một vi-rút, nó sẽ làm những gì nó phải làm.
Một tính năng khác mà chúng ta sẽ thảo luận là lệnh shell. Nó chuyển đổi phiên Meterpreter hoặc Metasploit hiện tại thành một trình bao hệ điều hành. Nếu chúng ta chạy lệnh shell, chúng ta sẽ nhận được một dòng lệnh Windows, nơi chúng ta có thể thực hiện các lệnh Windows. Trong ảnh chụp màn hình sau, chúng ta có thể thấy rằng nó nằm trên một kênh khác và chúng ta có thể chạy bất kỳ lệnh Windows nào mà chúng ta muốn thông qua nó. Vì vậy, chúng ta có thể chạy lệnh dir để liệt kê tất cả các thư mục và chúng ta có thể sử dụng bất kỳ lệnh Windows nào khác, giống hệt như chạy các lệnh thông qua Command Prompt:
Chúng ta sẽ chạy lệnh trợ giúp, sau đó vào phần hệ thống tệp, chúng ta sẽ thấy rằng chúng ta có thể tải xuống, chỉnh sửa, xóa tệp, xóa tệp, đổi tên tệp, tìm kiếm tệp, di chuyển tệp sang tệp khác, v.v. Ảnh chụp màn hình sau đây cho thấy lệnh chính mà chúng ta có thể sử dụng để quản lý hệ thống tệp trên máy tính mục tiêu, như sau:
Cách duy trì quyền truy cập
Trong phần trước, chúng ta đã thấy rằng khi người dùng mục tiêu khởi động lại máy tính, chúng ta sẽ mất kết nối. Chúng tôi đã sử dụng một cửa sau bình thường, đó là lý do tại sao, khi máy tính khởi động lại, cửa hậu của chúng tôi sẽ bị chấm dứt, quá trình sẽ bị chấm dứt và chúng tôi sẽ mất kết nối. Nhưng trong phần này, chúng ta sẽ thảo luận về các phương pháp cho phép chúng ta duy trì quyền truy cập vào máy tính mục tiêu. Chúng tôi sẽ sử dụng một backdoor không phát hiện được Meterpreter ngược HTTP bình thường mà chúng tôi đã tạo trước đó. Chúng tôi sẽ đưa nó vào làm một dịch vụ để nó sẽ chạy mỗi khi người dùng mục tiêu chạy máy tính của họ và nó sẽ cố gắng kết nối lại với chúng tôi trong những khoảng thời gian nhất định. Để làm điều này, chúng tôi sẽ chạy lệnh nền và tương tác với phiên ở số 2.
Chúng tôi sẽ chạy một mô-đun bằng cách sử dụng lệnh khai thác / windows / cục bộ / kiên trì. Nó giống như một mô-đun nhiều trình xử lý đi kèm với Metasploit. Sau lệnh này, chúng tôi sẽ chạy lệnh hiển thị tùy chọn để xem những gì chúng tôi cần cấu hình, như được hiển thị trong ảnh chụp màn hình sau:
Điều đầu tiên mà chúng ta sẽ xem xét DELAY, đó là số giây trong đó mục tiêu sẽ cố gắng kết nối lại với chúng ta. Nó được đặt là 10, nghĩa là cứ sau 10 giây, máy tính mục tiêu sẽ cố gắng kết nối lại với chúng tôi. Bây giờ, chúng ta sẽ thiết lập EXE_NAME. Đó là tên sẽ hiển thị trong các quá trình mà kết nối đang phản hồi lại từ đó. Chúng tôi sẽ đặt EXE_NAME thành Browse.exe để làm cho nó ít bị phát hiện hơn. Lệnh như sau:
PATH nơi backdoor hoặc payload sẽ được cài đặt và nó sẽ giữ nguyên. REG_NAME là mục đăng ký và nó cũng sẽ giữ nguyên. SESSION chỉ định phiên, nếu chúng ta chạy lệnh session -l, nó sẽ liệt kê các phiên có sẵn, như được hiển thị trong ảnh chụp màn hình sau:
Bây giờ chúng ta sẽ đặt SESSION là 2 bằng lệnh sau:
STARTUP sẽ được để lại với tư cách là NGƯỜI DÙNG, đối với các đặc quyền của người dùng. Bây giờ, chúng ta sẽ chạy các tùy chọn hiển thị. Trong ảnh chụp màn hình sau, chúng ta có thể thấy rằng browser.exe và phiên số 2 được đặt đúng cách:
Bây giờ, chúng ta sẽ chỉ định trọng tải sẽ được đưa vào như một dịch vụ. Để làm điều này, chúng tôi sẽ chạy lệnh show advanced và nó sẽ hiển thị cho chúng tôi các tùy chọn nâng cao mà chúng tôi có thể thiết lập cho mô-đun cụ thể này. Trong ảnh chụp màn hình sau, chúng tôi quan tâm đến EXE :: Custom, cho biết rằng chúng tôi sẽ sử dụng .exe tùy chỉnh để chạy và đưa vào máy tính mục tiêu như một dịch vụ:
Chúng tôi sẽ đặt EXE :: Custom thành /var/www/html/backdoor.exe, để chúng tôi có thể chạy backdoor được lưu trữ trong /var/www/html/backdoor.exe. Lệnh như sau:
Bây giờ, chúng tôi sẽ chạy lệnh hiển thị nâng cao và thấy rằng nó đã được thiết lập đúng cách, như được hiển thị trong ảnh chụp màn hình sau:
Bây giờ, chúng ta sẽ chạy lệnh khai thác. Nó sẽ tải /var/www/html/backdoor.exe lên máy tính mục tiêu, sử dụng phiên mà chúng tôi đã chỉ định, đó là 2. Trong ảnh chụp màn hình sau, chúng ta có thể thấy rằng nó đã được tải lên và cài đặt:
Nếu chúng ta không muốn backdoor trên máy tính mục tiêu nữa, chúng ta có thể sử dụng tệp tài nguyên để xóa nó. Chúng tôi có thể lưu trữ tệp RC như được hiển thị trong ảnh chụp màn hình trước đó vào Leafpad để chúng tôi có thể chạy nó trong tương lai và xóa cửa hậu của chúng tôi.
Nếu chúng ta chạy lệnh session -l, nó sẽ hiển thị các phiên có sẵn và chúng ta có thể tương tác với nó. Sử dụng lệnh session -k, chúng ta có thể kết thúc phiên đó.
Bây giờ, nếu chúng ta chạy lệnh list, chúng ta sẽ thấy rằng chúng ta không có kết nối với máy tính đích. Sử dụng trình xử lý đa khai thác của chúng tôi, chúng tôi có thể lắng nghe kết nối đến.
Nếu chúng tôi chạy khai thác và máy tính bị tấn công đã được khởi động, chúng tôi sẽ nhận được kết nối ngay lập tức, vì mục tiêu của chúng tôi đã được đưa vào máy tính mục tiêu trên cổng 8080 trên reverse_http. Bây giờ để chắc chắn, chúng ta sẽ khởi động máy Window của mình. Để đảm bảo rằng chúng ta sẽ luôn có kết nối với nó, chúng ta sẽ khởi động lại máy tính Windows mục tiêu. Cứ sau 10 giây, máy Kali của chúng tôi sẽ cố gắng kết nối trở lại với nó, bất kể máy Windows bị tắt hoặc khởi động lại bao nhiêu lần. Bây giờ chúng tôi sẽ chạy trình xử lý Meterpreter của mình và chờ kết nối. Và sau đó chạy lệnh khai thác để lắng nghe, sẽ mất tối đa 10 giây để lấy lại kết nối. Trong ảnh chụp màn hình sau, chúng ta có thể thấy rằng chúng ta đã nhận được kết nối với máy tính mục tiêu và bây giờ chúng ta có toàn quyền truy cập vào máy tính đó: