网路瑞士刀 NetCat 简单用法
NetCat 是一网路Telnet工具,其程式名称为nc( windows下为nc.exe),素有网路瑞士军刀之称,由于可以拿来作一些网路伺服器侦测等任务,也可以远端透过nc来执行shell command,所以一般被防毒软体视作后门程式。
基本参数
-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 将输入输出关掉--用于扫瞄时
端口的表示方法可写为M-N的范围格式。
常见应用
这边常见应用并不包含需要远端电脑也安装nc的用法,因为这一般是hacker试图需要透过nc在远端shell控制电脑以取得远端电脑资源,这涉及到如何将nc上传到远端电脑的手法,在此我们只谈一些nc在本机电脑可以帮我们达成的事。
- Port Scanning
例如:扫描 10.102.63.38 的 tcp port from 20 to 500
- nc -z 10.102.63.38 20-500
但一般这样扫port很容易被IDS察觉,所以我们可以作一些伪装增加扫port成功机率。
例如:扫描 10.102.63.38 的 tcp port from 20 to 500,但必需每隔20秒随机扫一个port
- nc -v -z -r -i 30 10.102.63.38 20-500
- -i <Seconds>: interval in seconds. -r: random scanning. -v: shown info.
若要扫描UDP port,则只要使用 -u 参数。
例如:扫描 10.102.63.38 的 udp port from 20 to 500
- nc -z -u 10.102.63.38 20-500
- 测试HTTP Method
例如: 测试www.example.com 80 port 的 GET Method
- nc -v example.com 80
- GET /
HTTP 1.1 共支援 8 种HTTP Method:
安全可使用的Method: GET, POST
不安全且不建议使用: HEAD, TRACE, OPTIONS, CONNECT, PUT, DELETE.
其中 OPTIONS 可以用来取得Web Server所允许的HTTP Method有哪些,故该Method 应该被禁止。
若是要指定HTTP Version,可以再加上HTTP Version,但是要记住得在后面附上\r\n\r\n两个换行符号,否则极可能会收到Request Time Out.
例如: 测试www.example.com 80 port 的 HTTP/1.1 GET Method
- nc -v example.com 80
- GET / HTTP/1.1\r\n\r\n
若是要测试某网页资源是否存在,则只要GET /<Resource Location> 即可获得该资源内容或得到404 Not Found.
例如:取得10.1.100.212 80 port的MinionAPI application底下的Monitor.ashx内容( 等同与用browser 访问该资源)
- nc 10.1.100.212 80
- GET /MinionAPI/Monitor.ashx?Monitor=L4
- Result:
- 伪装IP
NetCat 可以伪照到达目标机器的过程中所有中继节点IP,只要透过 -g 参数
即可伪造IP,而且可以做到multiple fake IP, 只要多使用几次 -g 就可以,但可以伪造的IP有限制,预设最多为8个。
例如:伪造访问10.1.100.212 ip 透过4个假节点。
- nc –g 10.10.40.51 –g 10.10.115.80 –g 10.10.27.34 –g 10.10.9.9 1.1.1 80
- 监听Local主机
例如:监听本机的80 port
- nc -l -p 80
- 传送测试UDP的封包
例如:一秒内传送一个字串’Test UDP String’到10.1.100.202 Server的UDP Port 5050
- echo -n " Test UDP String " | nc -u -w 1 192.168.1.8 5050
- 开启本机的UDP Port接受远方送来的封包资料
例如: 想监测本机5050 udp port所接收的资料
- nc -lu localhost 5050
2018年8月26日星期日