(+84) 236.3827111 ex. 402

Chủ đề OSCP (Port Redirection and SSH Tunneling)


18. Chuyển hướng cổng và đường hầm SSH

Trong Mô-đun Học tập này, chúng tôi sẽ đề cập đến các Đơn vị Học tập sau:

  • Chuyển tiếp cổng trên máy *NIX và Windows
  • Đường hầm SSH trên (và giữa) * Máy NIX và Windows

18.1. Tại sao chuyển hướng cổng và tạo đường hầm?

Đơn vị học tập này bao gồm các Mục tiêu Học tập sau:

  1. Hiểu sự khác biệt giữa các bố cục mạng phổ biến
  2. Xem xét tác động của các thiết bị an ninh mạng phổ biến
  3. Hiểu khi nào nên sử dụng kỹ thuật chuyển hướng cổng và tạo đường hầm

Hầu hết các môi trường mạng không (và không nên) phẳng.1Trong một mạng phẳng, tất cả các thiết bị đều có thể giao tiếp tự do với nhau. Có rất ít (hoặc không) nỗ lực để giới hạn quyền truy cập của mỗi thiết bị đối với các thiết bị khác trên cùng một thiết bị mạng, bất kể thiết bị có cần giao tiếp trong hoạt động bình thường.

Cấu trúc liên kết mạng phẳng thường được coi là thực hành bảo mật kém. Khi kẻ tấn công có quyền truy cập vào một máy chủ duy nhất, chúng có thể bắt đầu giao tiếp với mọi máy chủ khác. Từ đó, nó sẽ rất nhiều dễ dàng lây lan qua mạng và bắt đầu xâm phạm các mạng khác máy chủ.

Một loại mạng được thiết kế an toàn hơn được phân đoạn.2Loại mạng này sẽ được chia thành các mạng nhỏ hơn, mỗi mạng được gọi là mạng con.3 Mỗi subnet sẽ chứa một nhóm thiết bị có mục đích cụ thể và các thiết bị trên mạng con đó chỉ là được cấp quyền truy cập vào các mạng con và máy chủ khác khi thực sự cần thiết. Phân đoạn mạng hạn chế nghiêm trọng những kẻ tấn công, vì xâm phạm Máy chủ duy nhất không còn cho phép họ truy cập miễn phí vào mọi thiết bị khác trên mạng lưới.

Là một phần của quá trình phân đoạn mạng, hầu hết các mạng quản trị viên cũng sẽ thực hiện các biện pháp kiểm soát hạn chế luồng lưu lượng truy cập vào, ra và qua mạng của họ. Để thực thi điều này, Họ sẽ triển khai các công nghệ khác nhau trên toàn mạng.

Một trong những công nghệ phổ biến nhất được sử dụng cho việc này là Tường lửa.4 Tường lửa có thể được triển khai tại điểm cuối cấp độ phần mềm. Ví dụ, nhân Linux có tường lửa Các khả năng có thể được cấu hình với iptables5 bộ công cụ, trong khi Windows cung cấp Windows Defender tích hợp sẵn Tường lửa.6 Tường lửa cũng có thể được triển khai như các tính năng trong một phần của cơ sở hạ tầng mạng vật lý. Quản trị viên thậm chí có thể đặt tường lửa phần cứng độc lập trong mạng, lọc tất cả lưu lượng truy cập.

Tường lửa có thể thả các gói đến không mong muốn và ngăn chặn lưu lượng truy cập độc hại tiềm ẩn từ việc đi qua hoặc rời khỏi mạng. Tường lửa có thể ngăn tất cả trừ một số máy chủ được phép giao tiếp với một cổng trên một máy chủ đặc quyền. Họ cũng có thể chặn một số máy chủ hoặc mạng con truy cập internet rộng lớn hơn.

Hầu hết các tường lửa có xu hướng cho phép hoặc chặn lưu lượng truy cập phù hợp với một tập hợp của các quy tắc dựa trên địa chỉ IP và số cổng, vì vậy chức năng bị hạn chế. Tuy nhiên, đôi khi chi tiết hơn kiểm soát là bắt buộc. Kiểm tra gói sâu7 giám sát nội dung lưu lượng đến và đi và kết thúc nó dựa trên một bộ quy tắc.

Các ranh giới được đặt ra bởi quản trị viên mạng là được thiết kế để ngăn chặn sự di chuyển tùy ý của dữ liệu vào, ra khỏi và trên toàn mạng. Nhưng, với tư cách là một kẻ tấn công, đây chính xác là ranh giới chúng ta cần phải vượt qua. Chúng ta sẽ cần phát triển các chiến lược có thể giúp chúng tôi khắc phục các hạn chế mạng khi chúng tôi tìm thấy chúng.

Chuyển hướng cổng (một thuật ngữ chúng tôi đang sử dụng để mô tả Các loại chuyển tiếp cổng khác nhau8) và đào hầm9 là cả hai chiến lược mà chúng ta có thể sử dụng để vượt qua những ranh giới này. Chuyển hướng cổng có nghĩa là sửa đổi luồng dữ liệu để các gói tin được gửi đến một ổ cắm sẽ được lấy và chuyển sang một ổ cắm khác. Đường hầm có nghĩa là đóng gói10 một loại luồng dữ liệu trong một loại khác, ví dụ: vận chuyển lưu lượng Giao thức truyền siêu văn bản (HTTP) trong kết nối Secure Shell (SSH) (vì vậy từ góc độ bên ngoài, chỉ có SSH giao thông sẽ hiển thị).

Trong Mô-đun này, chúng tôi sẽ giới thiệu chuyển hướng cổng và tạo đường hầm kỹ thuật thông qua các ví dụ thực tế. Chúng tôi sẽ dễ dàng hơn bằng cách bắt đầu với các kỹ thuật có độ phức tạp thấp nhất và tăng độ phức tạp khi chúng tôi Từng bước hướng tới môi trường mạng cứng hơn. Mỗi kỹ thuật mới sẽ được áp dụng cho một cấu hình mạng mới hơi khác so với trước đó. Đường hầm duy nhất mà chúng tôi đề cập trong Mô-đun cụ thể này là đường hầm SSH, nhưng chúng tôi sẽ đề cập nhiều hơn các phương thức nâng cao trong Mô-đun sau này.

Các cấu trúc liên kết logic11 chúng tôi tạo ra trong khi chuỗi Những chiến lược này có thể khó tiêu hóa lúc đầu. Chúng tôi sẽ làm cho giao thông di chuyển theo những cách ban đầu có thể không trực quan. Chúng ta nên dành thời gian để hiểu đầy đủ từng kỹ thuật trước tiến tới tiếp theo. Vào cuối Mô-đun này, chúng ta sẽ có tất cả các công cụ cần thiết để thao tác luồng lưu lượng truy cập trong bất kỳ mạng nhất định nào với độ chính xác phẫu thuật.

1(Wikipedia, 2022), https://en.wikipedia.org/wiki/Flat_network 

2(Wikipedia, 2022), https://en.wikipedia.org/wiki/Network_segmentation 

3(Wikipedia, 2022), https://en.wikipedia.org/wiki/Subnetwork 

4(Wikipedia, 2022), https://en.wikipedia.org/wiki/Firewall_(máy tính) 

5(Wikipedia, 2022), https://en.wikipedia.org/wiki/Iptables 

6(Microsoft, 2022), https://learn.microsoft.com/en-us/windows/security/threat-protection/windows-firewall/windows-firewall-with-advanced-security 

7(Wikipedia, 2022), https://en.wikipedia.org/wiki/Deep_packet_inspection 

8(Wikipedia, 2019), https://en.wikipedia.org/wiki/Port_forwarding 

9(Wikipedia, 2019), https://en.wikipedia.org/wiki/Tunneling_protocol 

10(Wikipedia, 2022), https://en.wikipedia.org/wiki/Encapsulation_(mạng) 

11(Wikipedia, 2022), https://en.wikipedia.org/wiki/Network_topology 

18.2. Chuyển tiếp cổng với các công cụ Linux

Đơn vị học tập này bao gồm các Mục tiêu Học tập sau:

  1. Hiểu chuyển tiếp cổng là gì
  2. Tìm hiểu thời điểm sử dụng kỹ thuật chuyển tiếp cổng
  3. Sử dụng Socat để thiết lập chuyển tiếp cổng trong Linux

Chuyển tiếp cổng là kỹ thuật cơ bản nhất mà chúng tôi sẽ xem xét trong Mô-đun này. Nó cũng là một kỹ thuật được sử dụng rất phổ biến trong mạng đa năng. Khi chuyển tiếp cổng, chúng tôi cấu hình một máy chủ để lắng nghe trên một cổng và chuyển tiếp tất cả các gói nhận được trên cổng đó đến một điểm đến khác.

Trong điều kiện mạng bình thường, quản trị viên mạng có thể tạo một cổng chuyển tiếp để cho phép truy cập vào máy chủ web phía sau tường lửa. Trong trong trường hợp đó, họ sẽ định cấu hình tường lửa để lắng nghe trên một cổng nhất định trên một giao diện và chuyển tất cả các gói đến máy chủ web đằng sau nó.

Nhiều bộ định tuyến gia đình cũng cung cấp chức năng chuyển tiếp cổng. Những có thể được định cấu hình để nghe trên một cổng ở phía Internet của bộ định tuyến, sau đó chuyển tiếp kết nối từ cổng đó sang thiết bị khác trong mạng gia đình.

Nhưng làm thế nào chúng ta có thể sử dụng chuyển tiếp cổng như một phần của chuỗi tấn công? Trong Phần tiếp theo, chúng ta sẽ xem xét một kịch bản đơn giản.

18.2.1. Một Kịch Bản Chuyển Tiếp Cổng Đơn Giản

Hãy xem xét một kịch bản chuyển tiếp cổng. Trong quá trình đánh giá, chúng tôi tìm máy chủ web Linux chạy phiên bản Confluence1dễ bị CVE-2022-26134:2Xác thực trước sự cố thực thi mã từ xa. Chúng ta có thể khai thác lỗ hổng này và Nhận một vỏ đảo ngược từ máy chủ.

Trong quá trình liệt kê của chúng tôi, chúng tôi thấy rằng máy chủ này có hai mạng giao diện: một được gắn vào cùng một mạng máy Kali của chúng tôi cũng đang bật (cho phép chúng tôi định tuyến trực tiếp đến nó), và một mạng khác trên một mạng con nội bộ. Trong cấu hình Hợp lưu , chúng tôi cũng tìm thông tin đăng nhập và địa chỉ IP và cổng cho PostgreSQL3 trên một máy chủ trong đó mạng con nội bộ. Chúng tôi muốn sử dụng các thông tin đăng nhập này để có quyền truy cập vào cơ sở dữ liệu và liệt kê thêm.

Sơ đồ dưới đây cho thấy bố cục mạng, như chúng ta hiểu như vậy xa.

 

Hình 1: Bố cục mạng từ quan điểm của chúng tôi cho đến nay

Một trong những điều đầu tiên cần chú ý về sơ đồ này là có là hai mạng được đặt tên: Mạng diện rộng (WAN)4 trên cánh tả và Khu phi quân sự (DMZ)5 ở bên phải. Kali của chúng tôi máy nằm trong WAN, máy chủ cơ sở dữ liệu PostgreSQL PGDATABASE01 là trong DMZ và máy chủ Confluence CONFLUENCE01 nằm giữa cả hai.

WAN là một mạng lớn và rộng lớn. Một số người tham khảo internet công cộng là mạng WAN lớn nhất trên thế giới và một số lớn hơn các tổ chức sẽ gọi mạng nội bộ lớn của họ là WAN, hoặc WAN nội bộ. Trong trường hợp này, vì chúng ta đang mô phỏng một cuộc tấn công từ một mạng bên ngoài, WAN đại diện cho một công ty lớn nội bộ mạng, hoặc chính internet.

Trong suốt các bài tập trong Mô-đun này, máy Kali của chúng tôi sẽ nằm trong WAN. Chúng tôi sẽ chỉ có thể định tuyến trực tiếp từ Kali cho các máy chủ cũng có trên WAN.

DMZ là một mạng chứa các thiết bị có thể tiếp xúc nhiều hơn với mạng lưới rộng hơn, ít đáng tin cậy hơn. DMZ giúp tạo vùng đệm giữa trên mạng rộng hơn, ít tin cậy hơn và các máy chủ nội bộ. Trong theo cách đó, nó phục vụ một chức năng tương tự như một phi quân sự trong thế giới thực khu vực.6 Trong trường hợp này, DMZ là mạng đệm giữa WAN và bất kỳ mạng nội bộ nào khác mà chúng tôi có thể tìm.

CONFLUENCE01 đang vượt qua cả WAN và DMZ để minh họa điều đó Nó có thể giao tiếp trên cả hai mạng. CONFLUENCE01 cũng là nghe trên cổng TCP 8090, được minh họa bằng "ổ cắm mở" được đính kèm vào biểu tượng.

PGDATABASE01 nằm trong ranh giới mạng DMZ - nó không vượt qua WAN / DMZ. Máy Kali của chúng tôi không nằm trong DMZ, vì vậy chúng tôi không thể trực tiếp tuyến đường đến PGDATABASE01. PGDATABASE01 cũng có một "ổ cắm mở" được đính kèm cho thấy có thứ gì đó đang lắng nghe trên cổng TCP 5432 (đây có thể là một máy chủ PostgreSQL, vì cổng mặc định là 5432).

Vì điều duy nhất chúng ta biết về PGDATABASE01 cho đến nay là nó tồn tại, chúng tôi vẫn chưa biết liệu nó có được gắn với bất kỳ mạng nào khác hay không. Nếu Sau này chúng tôi thấy rằng PGDATABASE01 được gắn với các mạng khác, chúng tôi sẽ Mở rộng sơ đồ mạng của chúng tôi.

Với thông tin đăng nhập mà chúng tôi tìm thấy trên CONFLUENCE01, chúng tôi muốn cố gắng kết nối với cổng PostgreSQL này trên PGDATABASE01 từ máy Kali của chúng tôi.

Trước khi đi vào chi tiết hơn, hãy thiết lập môi trường phòng thí nghiệm của chúng ta để Tạo lại kịch bản mà chúng tôi đã mô tả cho đến nay.

Ở cuối phần Giao nhận cổng với Socat của phần này Learning Unit, một nhóm máy ảo được cung cấp có thể được sử dụng để theo dõi cùng với các phần sau. Các máy ảo này được cung cấp để bạn có thể Có được kinh nghiệm thực tế với tất cả các kỹ thuật mà chúng tôi đề cập. Bạn có thể bắt đầu nhóm máy ảo tại bất kỳ thời điểm nào và theo dõi theo bất kỳ tốc độ nào cảm thấy thoải mái.

1 (Atlassian, 2022). https://www.atlassian.com/software/confluence 

2 (Atlassian, 2022), https://confluence.atlassian.com/doc/confluence-security-advisory-2022-06-02-1130377146.html 

3 (PostgreSQL, 2022), https://www.postgresql.org/ 

4 (Wikipedia, 2022), https://en.wikipedia.org/wiki/Wide_area_network 

5 (Wikipedia, 2022), https://en.wikipedia.org/wiki/DMZ_(máy tính) 

6 (Wikipedia, 2022), https://en.wikipedia.org/wiki/Demilitarized_zone 

(Còn tiếp...)︎