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 不换行输出