【原理基础】
NetCat,具有网络军刀之称,它小巧精悍且功能强大,说它小巧精悍,是因为他的软件大小现在已经压缩到只有十几KB,而且在功能上丝毫不减。如果没有提供命令行参数,NetCat会提示你从标准输入来输入命令参数,然后NetCat会在内部解析输入。用这种办法输入命令式参数,可以用来防止借助 “ps”来查看你的命令行参数。
主机参数可以是一个名字或一个IP地址。如果-n出现,则它接受IP地址,而不再对计算机的名字或域名进行解析。如果没有-n,但加上-v,则NetCat可进行正/反向域名解析,并警告the all-too-common problem of mismatched name in DNS。这会耗费稍多一点时间,但在某些情况下会有用处。如,你想知道某个IP的主机名,NetCat可省却你手工查找的时间。
要建立对外的连接,必须提供一个端口号,可以是个数字,也可以/etc/services列表中的端口服务名。当-n出现时,则只有数字形式的端口可以接收。
【参数说明】
-d 后台模式
-e prog 程序重定向,一旦连接,就执行[危险!!]
-g gateway source-routing hop point[s], up to 8
-G num source-routing pointer: 4, 8, 12, ...
-h 帮助信息
-i secs 延时的间隔
-l 监听模式,用于入站连接
-L 连接关闭后,仍然继续监听
-n 指定数字的IP地址,不能用hostname
-o file 记录16进制的传输
-p port 本地端口号
-r 随机本地及远程端口
-s addr 本地源地址
-t 使用TELNET交互方式
-u UDP模式
-v 详细输出——用两个-v可得到更详细的内容
-w secs timeout的时间
-z 将输入输出关掉——用于扫描时
-v参数,可以将一些关于连接建立信息输出到标准错误。-v参数多出现几次,则显示的信息会更多一些。如果-v参数没有出现,则NetCat将默默地工作,至到出现错误为止。
-w参数后跟一个时间值,用以指定建立链接时的等待时间,-w如果多次出现,则后面的值将取代前面的设置。-w还用来设置连接非活动时间,当标准输入结束以后,如果等待
指定的一段时间后仍没有数据返回,则NetCat会再试一次,然后关闭连接并退出。
-u,当-u参数出现时,用UDP建立连接。用-o logfile参数,可以将连接上往来传输的数据以16进制的形式记录到logfile中(每行的左半部分是16进制显示,右半部分为ascii显示)。其中,每行的第一个字符为””,分别表示接收的数据或发送的数据。
-p可以绑定任何端口。Root用户可以绑定保留的1024以内的端口。如果不用-p指定端口,则使用系统给定的未使用的端口。(-p功能在客户端状态也可以使用,-s功能并不是在所有的平台上都可用)
-l参数可以使NetCat以服务器状态运行。”nc -l -p 1234 [remote hostname] [remote port]”可以用来指定入连的主机和端口,如果申请连接的主机或端口不符指定,则会断开连接。
当编译时置-DGAPING_SECURITY_HOLE,则-e参数被NetCat支持。-e后面跟一可执行程序的名称,当一个连接(入或出)被建立时,这个程序被运行。尤其当NetCat以服务器端。