netcat 使用
1.前言
1.1聲明
文章中的文字可能存在語法錯誤以及標點錯誤,請諒解;
如果在文章中發現代碼錯誤或其它問題請告知,感謝!
2.netcat的使用
2.1netcat介紹
netccat是一個通過TCP/UDP在網絡中進行讀寫數據工具(命令),被稱為“瑞士軍刀”,主要用于調試領域、傳輸領域甚至黑客攻擊領域。利用該工具,可以將網絡中一端的數據完整的發送至另一臺主機終端顯示或存儲,常見的應用為文件傳輸、與好友即時通信、傳輸流媒體或者作為用來驗證服務器的獨立的客戶端。當然,也可以在腳本中使用該工具。
2.2netcat常用功能
2.2.1端口掃描
1.查看某IP端口開放狀態
命令:netcat -v ip port
實例1:netcat -v www.baidu.com 90
通過查看百度的90端口,可以發現該端口為閉合狀態。
實例2:netcat -v www.baidu.com 80
通過查看百度的80端口,可以發現該端口為開放狀態。
2.查看某IP的端口段(注意掃描速度會很慢)
命令:netcat -v ip port1-port2
實例:netcat -v www.baidu.com 78-82
2.2.2即時通信
netcat可以作為簡單的聊天工具使用,這個功能在只能連接局域網的網絡環境中特別方便。
假設現在有兩臺主機A和B,A想要和B進行簡單的信息通信,那么可以指定其中一臺主機作為server,綁定自己的一個端口作為通信端口(例如將主機A作為server,將其10000作為自己的通信端口)。
命令:netcat -l port
實例:netcat -l 10000
然后將主機B作為客戶端去連接主機A的1000端口(前提是要知道主機A的IP地址)
命令:netcat server_ip port
實例:netcat 192.168.237.131 10000
在server端和client端都搭建好了以后,就可以互相進行即時通信
注意在使用netcat進行即時通信的時候,要首先搭建server端然后搭建client端。
2.2.3文件傳輸
在兩臺主機之間傳送文件除了可以使用ftp軟件,也可以使用netcat進行文件傳輸。
2.2.3.1單個文件傳輸
假設現在有兩臺主機A和B,A想要和B進行文件傳送,那么可以指定其中一臺主機作為server,綁定自己的一個端口作為通信端口(例如將主機A作為server,將其10000作為自己的傳送端口)
命令:netcat -l port < file
實例:首先使用“cd”命令進入傳送文件所在目錄,然后輸入:netcat -l 1000 < test.txt
然后在主機B中接收文件
命令:netcat -n server_ip port > file
實例:首先使用“cd”命令進入想要保存文件的目錄,然后輸入:netcat -n 192.168.237.131 10000 >receive.txt(注意接收文件名可以和傳送文件的文件名不一樣)
這樣作為server端的主機中的文件就傳送至client端,但是每次只能傳送一個文件。
2.2.3.2多個文件傳輸
若我們要發送多個文件或者整個目錄,也可以實現,此時需要一個tar壓縮工具。
在主機A進行發送:
命令:tar -cvf - server_dir_name | netcat -l port
實例:首先使用“cd”命令進入傳送文件夾所在目錄(/home/dlri/Desktop/Tests/),然后輸入tar -cvf - /home/dlri/Desktop/Tests/ | netcat -l 10000
然后在主機B指定位置接收:
命令:netcat -n server_ip port | tar -xvf -
實例:首先使用“cd”命令進入想要保存文件的目錄,然后輸入netcat -n 192.168.237.132 10000 | tar -xvf -
當然,可以使用bzip2或其他壓縮工具進行壓縮傳送。
2.2.4視頻流傳輸
主機A作為server,將視頻發至指定端口:
命令:cat video.avi | netcat -l port
實例:首先使用“cd”命令進入想要保存文件的目錄,然后輸入:cat a.avi | netcat -l 10000
主機B作為client,接收視頻:
命令:netcat server_ip port | mplayer -vo x11 -cache 3000 -
實例:netcat 192.168.237.132 1000 | mplayer -vo x11 -cache 3000 -
2.2.5指定源端口
在2.2.2中,client接收使用的隨機端口接收server端的數據,要想使用特定端口接收數據可以使用參數“-p”來指定
命令:netcat server_ip port1 -p port2
實例:netcat 192.168.237.131 10000 -p 1234
注意使用1024以內的端口需要root權限。
2.2.6指定源地址
在2.2.3中,client使用一個網卡接收文件,當client有多塊網卡的時候,可以通過參數“-s”指定接收文件的網卡。
命令:netcat server_ip port -s client_ip > file
實例:netcat 192.168.237.131 10000 -s 192.168.237.132 > receive.txt
2.2.7創建遠程shell
常見的netcat分為GNU和OPENBSD版本,Ubuntu14.04自帶OPENBSD版本,若想使用netcat創建遠程shell,則要下載安裝GNU版本。
下載地址:http://netcat.sourceforge.net/
解壓:
下載完成后,將netcat tar包解壓至指定文件夾中,例如解壓至/opt: tar -zxvf netcat-0.7.1.tar.gz -C /opt
編譯安裝:
進入解壓后的文件夾,依次輸入:
./configure
make
sudo make install
安裝完成。
因為Ubuntu已經安裝了netcat,所以出現了重名,安裝完后輸入:/usr/local/bin/netcat -h,若出現紅框所標識的內容,則表示安裝成功。
現將主機A作為server:
命令:/usr/local/bin/netcat -l -p port -e /bin/bash
實例:/usr/local/bin/netcat -l -p 10000 -e /bin/bash
主機B作為client:
命令:/usr/local/bin/netcat server_ip port
實例:/usr/local/bin/netcat 192.168.237.132 10000
然后主機B就能登陸到主機A的shell:
在主機B使用“ls -l”命令查看到的內容:
在主機A使用“ls -l”命令查看到的內容:
需要注意的是,黑客可能會利用這個功能來進行遠程控制(被控制的主機被稱為“肉雞”)。
本文來自 wangqingchuan92 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/wangqingchuan92/article/details/79666885?utm_source=copy
總結
- 上一篇: 代码质量与规范,那些年你欠下的技术债
- 下一篇: 【跃迁之路】【597天】程序员高效学习方