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在本机电脑可以帮我们达成的事。

 

  1. 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

 

  1. 测试HTTP Method

例如: 测试www.example.com 80 port 的 GET Method

 

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

 

若是要测试某网页资源是否存在,则只要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:

  1. 伪装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

 

  1. 监听Local主机

例如:监听本机的80 port

  • nc -l -p 80

 

  1. 传送测试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

 

  1. 开启本机的UDP Port接受远方送来的封包资料

例如: 想监测本机5050 udp port所接收的资料

  • nc -lu localhost 5050

 

2018年8月26日星期日

相关文章