Bhunter - hack các nút botnet

Các nhà phân tích virus và nhà nghiên cứu bảo mật máy tính đang chạy đua để thu thập càng nhiều mẫu botnet mới càng tốt. Họ sử dụng honeypots cho mục đích riêng của họ... Nhưng nếu bạn muốn quan sát phần mềm độc hại trong điều kiện thực tế thì sao? Đặt máy chủ hoặc bộ định tuyến của bạn gặp rủi ro? Nếu không có thiết bị phù hợp thì sao? Chính những câu hỏi này đã thôi thúc tôi tạo ra bhunter, một công cụ để truy cập vào các nút botnet.

Bhunter - hack các nút botnet

ý tưởng trung tâm

Có nhiều cách để phát tán phần mềm độc hại nhằm mở rộng mạng botnet: từ lừa đảo đến khai thác lỗ hổng 0 ngày. Nhưng phương pháp phổ biến nhất vẫn là ép buộc mật khẩu SSH.

Ý tưởng rất đơn giản. Nếu một số nút botnet đang cố gắng ép buộc mật khẩu cho máy chủ của bạn thì rất có thể chính nút này đã bị chiếm bởi các mật khẩu đơn giản bắt buộc. Điều này có nghĩa là để có được quyền truy cập vào nó, bạn chỉ cần đáp lại.

Đây chính xác là cách bhunter hoạt động. Nghe cổng 22 (dịch vụ SSH) và thu thập tất cả thông tin đăng nhập và mật khẩu mà họ cố gắng kết nối với cổng đó. Sau đó, sử dụng mật khẩu đã thu thập được, nó cố gắng kết nối với các nút tấn công.

Thuật toán công việc

Chương trình có thể được chia thành 2 phần chính, hoạt động theo các luồng riêng biệt. Đầu tiên là mật ong. Xử lý các lần thử đăng nhập, thu thập thông tin đăng nhập và mật khẩu duy nhất (trong trường hợp này, cặp thông tin đăng nhập + mật khẩu được coi là một tổng thể duy nhất) đồng thời thêm các địa chỉ IP đã cố gắng kết nối với hàng đợi để tấn công thêm.

Phần thứ hai chịu trách nhiệm trực tiếp cho cuộc tấn công. Hơn nữa, cuộc tấn công được thực hiện theo hai chế độ: BurstAttack (tấn công bùng nổ) - thông tin đăng nhập và mật khẩu bạo lực từ danh sách chung và SingleShotAttack (tấn công một phát) - mật khẩu bạo lực đã được nút bị tấn công sử dụng nhưng chưa được thêm vào danh sách chung.

Để có ít nhất một số cơ sở dữ liệu về thông tin đăng nhập và mật khẩu ngay sau khi khởi chạy, bhunter được khởi tạo với một danh sách từ tệp /etc/bhunter/defaultLoginPairs.

Giao diện

Có một số cách để khởi chạy bhunter:

Cũng giống như một đội

sudo bhunter

Với lần ra mắt này, có thể kiểm soát bhunter thông qua menu văn bản của nó: thêm thông tin đăng nhập và mật khẩu cho một cuộc tấn công, xuất cơ sở dữ liệu về thông tin đăng nhập và mật khẩu, chỉ định mục tiêu cho một cuộc tấn công. Tất cả các nút bị tấn công có thể được nhìn thấy trong tệp /var/log/bhunter/hacked.log

Sử dụng tmux

sudo bhunter-ts # команда запуска bhunter через tmux  
sudo tmux attach -t bhunter # подключаемся к сессии, в которой запущен bhunter

Tmux là một bộ ghép kênh đầu cuối, một công cụ rất tiện lợi. Cho phép bạn tạo một số cửa sổ trong một thiết bị đầu cuối và chia các cửa sổ thành các bảng. Sử dụng nó, bạn có thể thoát khỏi thiết bị đầu cuối và sau đó đăng nhập mà không làm gián đoạn các tiến trình đang chạy.

Tập lệnh bhunter-ts tạo phiên tmux và chia cửa sổ thành ba bảng. Cái đầu tiên, lớn nhất, chứa một menu văn bản. Phía trên bên phải chứa nhật ký honeypot, tại đây bạn có thể xem thông báo về những lần thử đăng nhập vào honeypot. Bảng phía dưới bên phải hiển thị thông tin về tiến trình tấn công vào các nút botnet và về các vụ hack thành công.

Ưu điểm của phương pháp này so với phương pháp đầu tiên là chúng ta có thể đóng thiết bị đầu cuối một cách an toàn và quay lại nó sau mà không cần phải dừng công việc của nó. Đối với những người ít quen thuộc với tmux, tôi đề nghị tờ cheat này.

Như một dịch vụ

systemctl enable bhunter
systemctl start bhunter

Trong trường hợp này, chúng tôi kích hoạt tính năng tự khởi động bhunter khi khởi động hệ thống. Trong phương pháp này, sự tương tác với bhunter không được cung cấp và danh sách các nút bị tấn công có thể được lấy từ /var/log/bhunter/hacked.log

Tính hiệu quả

Trong khi làm việc trên bhunter, tôi đã tìm được và có quyền truy cập vào các thiết bị hoàn toàn khác nhau: Raspberry Pi, bộ định tuyến (đặc biệt là Mikrotik), máy chủ web và từng là một trang trại khai thác (không may là truy cập vào ban ngày nên không có gì thú vị cả). câu chuyện ). Đây là ảnh chụp màn hình của chương trình, hiển thị danh sách các nút bị tấn công sau vài ngày làm việc:

Bhunter - hack các nút botnet

Thật không may, hiệu quả của công cụ này không đạt được mong đợi của tôi: bhunter có thể thử mật khẩu các nút trong vài ngày mà không thành công và có thể hack một số mục tiêu trong vài giờ. Nhưng điều này là đủ cho một lượng lớn các mẫu botnet mới thường xuyên.

Hiệu quả bị ảnh hưởng bởi các thông số như: quốc gia đặt máy chủ có bhunter, lưu trữ và phạm vi địa chỉ IP được phân bổ. Theo kinh nghiệm của tôi, có một trường hợp tôi thuê hai máy chủ ảo từ một nhà cung cấp dịch vụ lưu trữ và một trong số chúng bị botnet tấn công thường xuyên hơn 2 lần.

Những lỗi mà tôi chưa sửa được

Khi tấn công các máy chủ bị nhiễm, trong một số trường hợp không thể xác định rõ ràng mật khẩu có đúng hay không. Những trường hợp như vậy được ghi vào tệp /var/log/debug.log.

Mô-đun Paramiko, được sử dụng để hoạt động với SSH, đôi khi hoạt động không chính xác: nó liên tục chờ đợi phản hồi từ máy chủ khi cố gắng kết nối với nó. Tôi đã thử nghiệm với bộ hẹn giờ nhưng không nhận được kết quả như mong muốn

Cần phải làm gì nữa?

Tên dịch vụ

Theo RFC-4253, máy khách và máy chủ trao đổi tên của các dịch vụ triển khai giao thức SSH trước khi cài đặt. Tên này có trong trường “TÊN DỊCH VỤ”, có cả trong yêu cầu từ phía máy khách và trong phản hồi từ phía máy chủ. Trường này là một chuỗi và giá trị của nó có thể được tìm thấy bằng cách sử dụng wireshark hoặc nmap. Đây là một ví dụ cho OpenSSH:

$ nmap -p 22 ***.**.***.** -sV
Starting Nmap ...
PORT   STATE SERVICE VERSION
22/tcp open  ssh     <b>OpenSSH 7.9p1 Debian 10+deb10u2</b> (protocol 2.0)
Nmap done: 1 IP address (1 host up) scanned in 0.47 seconds

Tuy nhiên, trong trường hợp của Paramiko, trường này chứa một chuỗi như “Paramiko Python sshd 2.4.2”, có thể xua đuổi các botnet được thiết kế để “tránh” bẫy. Vì vậy, tôi nghĩ cần phải thay thế dòng này bằng một dòng nào đó trung tính hơn.

Các vectơ khác

SSH không phải là phương tiện quản lý từ xa duy nhất. Ngoài ra còn có telnet, rdp. Thật đáng để xem xét kỹ hơn về chúng.

sự mở rộng

Sẽ thật tuyệt nếu có một số bẫy ở các quốc gia khác nhau và thu thập tập trung thông tin đăng nhập, mật khẩu và các nút bị tấn công từ chúng vào cơ sở dữ liệu chung

Tôi có thể tải xuống ở đâu?

Tại thời điểm viết bài, chỉ có phiên bản thử nghiệm sẵn sàng, có thể tải xuống từ kho lưu trữ trên Github.

Nguồn: www.habr.com

Thêm một lời nhận xét