nc全稱爲netcat,目的是在兩臺機器之間創建tcp或udp鏈接,而後相互發送數據。shell
好比當須要往服務器某個端口發送某個指令時,能夠用:服務器
echo "cmd" | nc host porttcp
這裏容易碰到一個問題,即通常服務器識別的命令都是以回車換行爲做爲結束標識的,若是碰到這種狀況須要在命令後面加上\r\n,即:指針
echo -e "cmd\r\n" | nc host portip
有時候發送的命令是從文件中讀取的,這時容易忘了回車換行,就出現了這個問題。路由
nc的參數說明以下:字符串
參數get |
說明cmd |
-Cit |
相似-L選項,一直不斷鏈接[1.13版本新加的功能] |
-d |
後臺執行 |
-e prog |
程序重定向,一旦鏈接,就執行 [危險!!] |
-g gateway |
源路由跳數,最大值爲8(source-routing hop point[s],up to 8) |
-G num |
源路由指針:4,8,12,... (source-routing pointer: 4,8,12,...) |
-h |
幫助信息 |
-i secs |
延時的間隔 |
-l |
監聽模式,用於入站鏈接 |
-n |
指定數字的IP地址,不能用hostname |
-o file |
記錄16進制的傳輸 |
-p port |
本地端口號 |
-r |
任意指定本地及遠程端口 |
-s addr |
本地源地址 |
-u |
UDP模式,[netcat-1.15能夠:遠程nc -ulp port -e cmd.exe,本地nc -u ip port鏈接,獲得一個shell.] |
-v |
詳細輸出——用兩個-v可獲得更詳細的內容 |
-w secs |
指定超時的時間 |
-z |
將輸入輸出關掉——用於掃描時 |
echo命令也有兩個參數 -e, -n:
-e:激活轉義字符。使用-e選項時,若字符串中出現如下字符,則特別加以處理,而不會將它當成通常文字輸出:
•\a 發出警告聲;
•\b 刪除前一個字符;
•\c 最後不加上換行符號;
•\f 換行但光標仍舊停留在原來的位置;
•\n 換行且光標移至行首;
•\r 光標移至行首,但不換行;
•\t 插入tab;
•\v 與\f相同;
•\\ 插入\字符;
•\nnn 插入nnn(八進制)所表明的ASCII字符;
-n 不換行輸出