使用nc命令传输文件
nc传输文件是指使用网络工具nc(netcat 网络工具中的瑞士军刀)来进行文件传输。nc是一种网络工具,可以在不同的计算机之间建立TCP或UDP连接,并进行数据传输。通过nc传输文件,可以在不同计算机之间快速、安全地传输文件。
安装:yum install -y nc
-l 监听模式,即服务端
-p 指定监听的端口
-n 后面参数解释为IP,不是域名
-u UDP模式,默认为TCP协议
【命令行数据传输】
服务端:nc -l -p 10000
开启监听后,等待客户端连接,当第一个客户端连接成功后,nc将不再监听,也即监听端口被释放了,可以换个窗口使用nc -l -p 10000验证。
建立连接前,用户输入的数据会被缓存(输入回车才会真正缓存)。
建立连接后,会直接将缓存数据发送给客户端。
建立连接后,用户输入的数据(使用回车键结束),会被发送给客户端,包含换行符。
建立连接后,客户端的数据会直接显示到屏幕。
客户端关闭后,nc程序将退出。
客户端:nc -n 192.168.1.100 10000
若连接失败,直接退出,返回1。
连接成功,用户输入的数据(使用回车键结束),会被发送给服务端,包含换行符。
建立连接后,服务端的数据会直接显示到屏幕。
服务端关闭后,nc程序将退出。
【文件传输】
不论文本还是二进制文件都可以使用管道和重定向符号,可以实现使用nc来发送和接收文件。无论是服务端发文件,还是客户端发文件,文件发送完毕,nc即退出,相应的接收端也会退出。
服务端向客户端发送文件
服务端:cat aa.txt | nc -l -p 10000
或nc -l -p 10000 < aa.txt
客户端:nc -n 192.168.1.100 10000 > aa.txt
客户端向服务端发送文件
客户端:
`cat aa.txt | nc -n 192.168.1.100 10000
或nc -n 192.168.1.100 10000 < aa.txt
服务端:nc -l -p 10000 > aa.txt
【数据转发】
nc命令可以使用管道连接起来,实现数据转发的效果。转发端可以是两个服务端,也可以是两个客户端,或者是混合,但用户需保证,必须先创建服务端才能连接对应的客户端。
单向数据中转
中转端(先执行):nc -l -p 10000 | nc -l -p 10001
客户端1(发送数据或文件):nc -n 192.168.1.100 10000
或 cat 1.txt | nc -n 192.168.1.10000
客户端2(接收数据或文件)nc -n 192.168.1.100 10001
或 nc -n 192.168.1.10001 > 2.txt
双向数据转发
下面的环境中,在客户端1输入的数据会在客户端2上显示,在客户端2上输入的数据会在客户端1上显示。数据都是先抵达中转端,然后通过管道重定向数据。
客户端1(先执行):nc -l -p 10000
中转端:mkfifo a.fifo
cat a.fifo | nc -n 192.168.1.100 10000 | nc -l -p 10001 > a.fifo
客户端2:nc -n 192.168.1.100 10001
【端口扫描】
nc -z -v -n 172.31.100.7 21-25
可以运行在TCP或者UDP模式,默认是TCP,-u参数调整为udp.
v 参数指使用冗余选项(即详细输出)
n 参数告诉 netcat 不要使用DNS反向查询IP地址的域名
这个命令会打印21到25 所有开放的端口。Banner是一个文本,Banner是一个你连接的服务发送给你的文本信息。当你试图鉴别漏洞或者服务的类型和版本的时候,Banner信息是非常有用的。但是,并不是所有的服务都会发送banner。
一旦你发现开放的端口,你可以容易的使用netcat 连接服务抓取他们的banner。nc -v 172.31.100.7 21
netcat 命令会连接开放端口21并且打印运行在这个端口上服务的banner信息
【聊天】