nc瑞士军刀
定义:
nc是netcat的简写,是一个功能强大的网络工具,有网络安全界“瑞士军刀”的美称,可以通过TCP/UDP协议读写,是一个好用稳定的连接系统后门的工具,同时也是一个网络调试和开发工具。
参数:
-l 开启监听
-p 指定端口
-t 以telnet形式应答
-e 程序重定向,指定程序的输入(stdin)、输出(stdout)和错误(stderr)全部绑定到当前网络连接,实现交互式命令行控制。
-n 以数字形式标识IP
-v 显示执行命令过程
-z 不进行交互,直接显示结果
-u 使用UDP协议传输
-w 设置超时时间
-d 后台运行
基础使用,进行简单聊天
使用windows,进入netcat的目录,在目录栏输入cmd,开两个这样的cmd,一个充当服务器,一个充当客户端。
nc绑定到本机5533端口,进入被动监听状态,不会主动发起连接,等待客户端连接。相当于不会打电话,只会接电话。
客户端向服务器IP的5533端口发起TCP连接,因为服务器正在监听,双方可以建立连接,可以互相发送数据。相当于客户端向服务器打电话,服务器一直在等电话,当客户端一打就可以建立连接。
客户端向服务器发送nihao的信息,服务器接收。
服务器向客户端发送woyehao,客户端也可以接收。
正向返回shell
正向返回Shell定义:一种由控制端主动连接被控端并获得被控端的shell控制权的技术。
特点是目标机器主动外联,将自身命令行权限如bash或cmd.exe通过TCP/UDP连接返回给攻击者。
服务器(控制端、攻击者)在本地监听5533端口,并将传入的连接直接绑定到系统的cmd.exe,允许远程用户通过该端口会得一个交互式命令行控制权限。
客户端连接5533端口,将会启动服务器的cmd.exe,客户端会获得服务器cmd.exe的控制权。
客户端输入dir,出现文件目录,此时显示的是服务器的文件目录。
当客户端输入exit时,服务器退出,这就说明客户端控制服务器的shell权限。
文件传输
文件传输,通过nc可以实现客户端传服务器、服务器传客户端两种。
1.客户端传服务器
服务器本地监听5533端口,将接收到的所有数据写入out.txt文件中。
客户端连接服务器IP的5533端口,并将a.txt文件传给服务器。
在目录下可以看到out.txt文件。
2.服务器传客户端
服务器以TCP的方式开启监听,并将out.txt传给将要连接的客户端。
客户端连接5533端口,并将服务器上传的数据写入到out1.txt文件中。
最后结果展示:
信息探测
我们是用kali进行nc探测,打开phpstudy,我们看到端口80、3306。
探测本机的端口情况,先查看本机的ip地址。cmd——>ipconfig。
端口扫描
打开kali的终端,输入nc -n -v -w1 -z 本机IP 1-3307,现在就可以看到开放的端口。
打印Banner
执行echo "" |nc -n -v -w1 本机IP 1-1000
banner是横幅信息,是网络服务在建立连接时返回的欢迎信息或服务标识,通常包含软件名称、版本号、操作系统信息和其他配置信息,也会有html对于web服务。
反弹shell
定义:控制端监听某TCP/UDP端口,被控端发起请求到该端口,并将命令行的权限转发给控制端。
windows 2012充当被控端与宿主机充当控制端,进行测试。
宿主机以TCP的方式进行5566监听。
Win2012连接宿主机ip连接5566端口,并将cmd权限转给宿主机。
这样宿主机就可以查看win2012的信息。