課程介紹:
在網(wǎng)絡(luò)工具中有“瑞士軍刀”美譽(yù)的Netcat闰蛔, 首次出現(xiàn)在1995年,這么多年過去了互聯(lián)網(wǎng)人士對它的喜愛是有增無減垦细。其實(shí)浅碾,Netcat是一個(gè)非常簡單的Unix工具,它的實(shí)際可運(yùn)行的名字叫nc从祝。非常棒的是襟己,Netcat可以與其他工具結(jié)合和重定向,因此牍陌,可以這樣說擎浴,Netcat是互聯(lián)網(wǎng)里短小精悍的多功能工具 ,通過它毒涧,你可以完成很多令人驚訝的事贮预,驚訝的程度就看你的想象力怎么樣了。
本系列課程將學(xué)習(xí)Netcat的一些基礎(chǔ)功能。包括Netcat的介紹仿吞,如何用Netcat跟朋友聊天滑频、掃描端口、傳輸文件唤冈、創(chuàng)建遠(yuǎn)程外殼峡迷、使兩臺(tái)電腦互連等等。
netcat是網(wǎng)絡(luò)工具中的瑞士軍刀你虹,它能通過TCP和UDP在網(wǎng)絡(luò)中讀寫數(shù)據(jù)绘搞。通過與其他工具結(jié)合和重定向,你可以在腳本中以多種方式使用它傅物。使用netcat命令所能完成的事情令人驚訝夯辖。
netcat所做的就是在兩臺(tái)電腦之間建立鏈接并返回兩個(gè)數(shù)據(jù)流,在這之后所能做的事就看你的想像力了董饰。你能建立一個(gè)服務(wù)器楼雹,傳輸文件,與朋友聊天尖阔,傳輸流媒體或者用它作為其它協(xié)議的獨(dú)立客戶端。
1榨咐、端口掃描
端口掃描經(jīng)常被系統(tǒng)管理員和黑客用來發(fā)現(xiàn)在一些機(jī)器上開放端口介却,幫助他們識(shí)別系統(tǒng)中的漏洞。
nc -z -v -n 192.168.1.108 20-200
-z? I/O(input或者output)模式块茁,掃描時(shí)使用齿坷,連接建立成功后立刻關(guān)閉連接,不進(jìn)行數(shù)據(jù)交換数焊,端口號可以是單個(gè)或者一個(gè)范圍的
-v? 顯示詳細(xì)信息永淌,使用-vv獲得更多信息
-n 以數(shù)字形式表示IP地址,不使用dns反向查詢IP地址的域名
這個(gè)命令會(huì)打印21到25 所有開放的端口佩耳。Banner是一個(gè)文本遂蛀,Banner是一個(gè)你連接的服務(wù)發(fā)送給你的文本信息。當(dāng)你試圖鑒別漏洞或者服務(wù)的類型和版本的時(shí)候干厚,Banner信息是非常有用的李滴。但是,并不是所有的服務(wù)都會(huì)發(fā)送banner蛮瞄。
一旦你發(fā)現(xiàn)開放的端口所坯,你可以容易的使用netcat 連接服務(wù)抓取他們的banner。
nc -v 192.168.1.108 21
netcat 命令會(huì)連接開放端口21并且打印運(yùn)行在這個(gè)端口上服務(wù)的banner信息挂捅。
2芹助、文本信息傳輸
假如你想和你的朋友聊聊,有很多的軟件和信息服務(wù)可以供你使用。但是状土,如果你沒有這么奢侈的配置无蜂,比如你在計(jì)算機(jī)實(shí)驗(yàn)室,所有的對外的連接都是被限制的声诸,你怎樣和整天坐在隔壁房間的朋友溝通那酱讶?不要郁悶了,netcat提供了這樣一種方法彼乌,你只需要?jiǎng)?chuàng)建一個(gè)Chat服務(wù)器泻肯,一個(gè)預(yù)先確定好的端口,這樣子他就可以聯(lián)系到你了慰照。
nc 192.168.1.108 520
sudo nc -l -p 520
nc命令在520端口啟動(dòng)了一個(gè)tcp 服務(wù)器灶挟,所有的標(biāo)準(zhǔn)輸出和輸入會(huì)輸出到該端口。輸出和輸入都在此shell中展示
不管你在機(jī)器B上鍵入什么都會(huì)出現(xiàn)在機(jī)器A上
3毒租、文件傳輸
大部分時(shí)間中稚铣,我們都在試圖通過網(wǎng)絡(luò)或者其他工具傳輸文件。有很多種方法墅垮,比如FTP,SCP,SMB等等惕医,但是當(dāng)你只是需要臨時(shí)或者一次傳輸文件,真的值得浪費(fèi)時(shí)間來安裝配置一個(gè)軟件到你的機(jī)器上嘛算色。假設(shè)抬伺,你想要傳一個(gè)文件file.txt 從A 到B。A或者B都可以作為服務(wù)器或者客戶端灾梦,以下峡钓,讓A作為服務(wù)器,B為客戶端若河。
發(fā)送方連接
nc -v 192.168.1.108 520? < sina.xml -q 1
sudo nc -lp 520 > sina.xml
這里我們創(chuàng)建了一個(gè)服務(wù)器在A上并且重定向nc的輸入為文件sina.xml能岩,那么當(dāng)任何成功連接到該端口,netcat會(huì)發(fā)送sina.xml的文件內(nèi)容萧福。
在客戶端我們重定向輸出到sina.xml拉鹃,當(dāng)B連接到A,A發(fā)送文件內(nèi)容鲫忍,B保存文件內(nèi)容到sina.xml
我們也可以相反的方法使用毛俏。像下面的我們發(fā)送文件從B到A,但是服務(wù)器創(chuàng)建在A上饲窿,這次我們僅需要重定向netcat的輸出并且重定向B的輸入文件煌寇。
4、傳輸目錄
發(fā)送一個(gè)文件很簡單逾雄,但是如果我們想要發(fā)送多個(gè)文件阀溶,或者整個(gè)目錄腻脏,一樣很簡單,只需要使用壓縮工具tar银锻,壓縮后發(fā)送壓縮包永品。
如果你想要通過網(wǎng)絡(luò)傳輸一個(gè)目錄從A到B。
tar -cvf - 1/ | nc -lp 520 -q 1
nc 192.168.1.177 520 | tar -xvf -
這里在A服務(wù)器上击纬,我們創(chuàng)建一個(gè)tar歸檔包并且通過-在控制臺(tái)重定向它鼎姐,然后使用管道,重定向給netcat更振,netcat可以通過網(wǎng)絡(luò)發(fā)送它炕桨。
在客戶端我們下載該壓縮包通過netcat 管道然后打開文件。
如果想要節(jié)省帶寬傳輸壓縮包肯腕,我們可以使用bzip2或者其他工具壓縮献宫。
5、遠(yuǎn)程控制
我們已經(jīng)用過遠(yuǎn)程shell-使用telnet和ssh实撒,但是如果這兩個(gè)命令沒有安裝并且我們沒有權(quán)限安裝他們姊途,我們也可以使用netcat創(chuàng)建遠(yuǎn)程shell。
假設(shè)你的netcat支持 -c -e 參數(shù)(默認(rèn) netcat)
nc -lp 520 -c bash
nc -nv 192.168.1.177 520
如果是windows的系統(tǒng)知态,需要把bash改成cmd即可
windows下面連接
nc -nvv 192.168.1.102 444
C:\>nc.exe -Lde cmd.exe -p 444