CTF 100 – Part 1: OpenVPN, Nmap và chinh phục level 1 & 2 TryHackMe

Xin chào, tiếp nối series CTF 100, hôm nay chúng ta sẽ thực hành kết nối với TryHackMe server bằng OpenVPN và sử dụng Nmap để chinh phục level 1 và 2 của TryHackMe.

Nội dung:

  1. Kết nối TryHackMe server
  2. Nmap căn bản
  3. Level 1 TryHackMe
  4. Level 2 TryHackMe

1 – Kết nối TryHackMe server

B1: Khởi động Kali Linux bằng account kali – password kali và mở trình duyệt web

B2: Đăng nhập vào tài khoản TryHackMe vào phần Access

B3: Click Regenerate để tạo file openvpn, sau đó click Download My Configuration File

B4: Save file

B5: Gõ các lệnh sau:

sudo su (password: kali)

ls

cd Downloads

ls

openvpn + file.ovpn (Ví dụ file download của mình là tuhocinfosec.ovpn lệnh sẽ là openvpn tuhocinfosec.ovpn)

B6: Nếu bạn thấy dòng Initialization Sequence Completed, nghĩa là bạn đã kết nối server TryHackMe bằng VPN thành công

Lưu ý: Cửa sổ này phải luôn luôn mở trong quá trình làm lab, tắt cửa sổ này đồng nghĩa với việc ngắt kết nối với TryHackMe

B7: Kiểm tra lại kết nối bằng cách vào TryHackMe, click icon vòng tròn (refresh), nếu thấy dấu check mark màu xanh kế bên connected, nghĩa là bạn đã kết nối thành công.

B8: Các bạn vào mục Hacktivities gõ ctf 100, bạn sẽ thấy room CTF 100, nơi chúng ta sẽ thực hành. Các bạn double click để vào phòng.

Lưu ý: Vì người tạo ra CTF 100 đã giới hạn quyền truy cập CTF 100 với người dùng mới, nên mình đã clone lại CTF 100 và mở riêng cho những bạn truy cập bằng link bên dưới.

Link truy cập CTF 100: tryhackme.com/jr/ctf100w1

2 – Nmap căn bản

Trước khi tiếp tục chúng ta sẽ tìm hiểu sơ lược về Nmap. Một cách cơ bản, Nmap là một công cụ miễn phí, mã nguồn mở với nhiều tính năng mạnh mẽ dùng để scan ports, services nào đang được mở và chạy trên máy mục tiêu, hệ điều hành máy nạn nhân đang chạy, những lỗ hổng mà máy nạn nhân có, etc.

Trên máy Kali Linux, chúng ta mở terminal bằng phím tắt Ctrl + Alt +T và gõ lệnh

nmap –help

Các tính năng chính của Nmap sẽ hiện ra kèm với cách sử dụng.

Trong CTF 100 chúng ta sẽ chủ yếu sử dụng lệnh Nmap sau:

nmap -v -Pn -T5 -sV <ip_address>

– v: cập nhật quá trình thực thi lệnh theo thời gian thực

– Pn: (mình hay gọi là Ping not cho dễ nhớ) thông thường để xác định xem máy mục tiêu có đang chạy hay không, chúng ta sẽ dùng lệnh ping, tuy nhiên trong trường hợp này, chúng ta đã biết máy mục tiêu đang chạy, nên chúng ta sẽ bỏ qua bướt ping này bằng -Pn

– T5: scan mục tiêu với tốc độ scan nhanh nhất, chỉ nên dùng T5 nếu tốc độ mạng nhà bạn rất nhanh đồng thời bạn sẵn sàng bỏ qua tính chính xác của thông tin thu được.

-sV : Hiện services đang dùng port cũng như version của services.

3 – Level 1 TryHackMe

B1: Click Deploy để mở máy

B2: Khi bạn thấy thông báo này nghĩa là máy đã mở

B3: Khi máy đã mở, địa chỉ mạng (IP address) của máy sẽ hiện ra.

B4: Tiến hàng scan máy mục tiêu bằng lệnh:

sudo su (password kali)

nmap -v -Pn -T5 -sV 10.10.3.105

B5: Đợi lệnh thực thi xong chúng ta có kết quả sau:

Kèm dòng: “2 services unrecognized despite returning data” (không nhận ra dịch vụ đang chạy)

B6: Dựa vào gợi ý chúng ta biết ở level 1, mục tiêu của chúng ta là port 3333 tcp

B7: Chúng ta sẽ thử kết nối tới port 3333 bằng giao thức telnet với lệnh sau

telnet 10.10.3.105 3333

Về giao thức telnet: telnet là một giao thức lâu đời được sử dụng để kết nối với máy chủ thông qua một port đang open. Thông qua telnet, chúng ta có thể kiểm tra xem, chúng ta có thể kết nối với máy chủ bằng port đã mở hay không.

Trong quản trị mạng, giao thức telnet chỉ được sử dụng với những thiết bị mạng đời đầu của thời đại Internet do tính thiếu an toàn của nó. Cụ thể, thông tin được truyền qua telnet không được mã hóa mà được thể hiện ở dạng ký tự bình thường. Ví dụ bạn dùng telnet để kết nối với máy chủ bằng account: admin – password: admin. Hacker hoàn toàn dễ dàng xem được thông tin này vì nó không được mã hóa.

B8: Qua telnet chúng ta thấy được thông tin sau

B9: Chúng ta dùng phím tắt ctrl + alt +t mở một cửa sổ mới rồi gõ lệnh sau để lấy địa chỉ mạng

sudo su (password kali)

ifconfig

Chúng ta sẽ lấy địa chỉ mạng của tun0 (VPN tunnel 0).

Lí do: eth0 là địa chỉ card mạng, máy chủ của TryHackMe không thể hiểu địa chỉ này vì địa chỉ không thể dùng để kết nối với máy chủ. lo là địa chỉ mạng của loopback không thể sử dụng.

B10: Nhập địa chỉ mạng của tun0, chúng ta sẽ lấy được flag cho level 1. (Mình sẽ che flag lại để các bạn dễ luyện tập, cũng như đề nghị các bạn đã làm thành công không share flag nhé. Flag hoàn toàn giống nhau và chỉ cần nhập vào ô kiểm tra là biết đúng hay sai ngay nên không cần phải kiểm tra kết quả với nhau đâu.)

B11: Nhập flag vào ô #1 và bấm submit, nếu kết quả đúng, bạn sẽ thấy hiện lên ô Correct Answer

4 – Level 2 TryHackMe

B1: Dựa vào kết quả của level 1, chúng ta biết được 5 ports nữa đã mở, port có 4 số và bắt đầu bằng 3, như vậy chúng ta sẽ thay đổi lệnh Nmap thành

nmap -v -Pn -T5 -p3000-3999 10.10.188.41

-p3000-3999: Scan từ port 3000 đến 3999

Các bạn cũng có thể sử dụng lại lệnh ở level 1

nmap -v -Pn -T5 -sV <ip_address>

Nhưng vì ở đây, mình đã biết đối tượng nằm ở khoản nào, nên thay vì scan tất cả các port, mình sẽ chỉ tập trung các port từ 3000 đến 3999 thôi .

(Chú ý: Địa chỉ IP của mình sẽ khác ở level 1 do TryHackMe bị lỗi, buộc mình phải tắt máy và khởi động lại)

B2: Vì chúng ta đã tấn công port 3333 rồi, nên chúng ta sẽ thử đến port 3343. Kinh nghiệm khi làm lab là chúng ta phải nghiên cứu và thử tất công tất cả các port và service đang chạy nhé các bạn.

B3: Chúng ta thử telnet port 3343 với lệnh

telnet 10.10.188.41 3343

Thử thách là hãy crack đoạn mã được đưa ra. Thông thường nếu bạn gặp một đoạn thông tin không đọc được thế này, nghĩa là nó đã được mã hóa bằng một thuật toán nào đó.

Chúng ta sẽ dùng công cụ sau để crack được code trên.

B4: Chúng ta sẽ copy/paste đoạn mã cần crack vào ô message đồng thời sẽ thử từng method một.

Chúng ta sẽ bỏ qua các method không phù và bắt đầu từ ROT13 (lí do tại sao, mình sẽ để lại cho các bạn tự tìm hiểu nhé). Chúng ta sẽ thử cho đến khi nào đoạn code của chúng ta được decode thành văn bản đọc được thì thôi.

B5: Sau khi đã có được đoạn decode đọc được, chúng ta chỉ cần copy/paste vào terminal là sẽ nhận được cờ cho level 2.

B6: Sau khi có được cờ, các bạn chỉ cần copy/paste vào ô #2 và bấm submit là xong


Chúc các bạn nhiều sức khỏe,

Vincent Nguyễn

3 thoughts on “CTF 100 – Part 1: OpenVPN, Nmap và chinh phục level 1 & 2 TryHackMe”

    1. Bạn cần hiểu về networking, cryptography (mật mã), cũng như cách sử dụng và cách hoạt động của các tools như Nmap. Điều này rất dễ, bạn có thể lên Google search là ra ngay.

      Like

Leave a reply to nguyenhoang Cancel reply