linux下的shell反弹设计重定向,文件描述符等内容
01 linux的文件描述符
可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作。
当Linux启动的时候会默认打开三个文件描述符,分别是:
标准输入standard input 0 (默认设备键盘)
标准输出standard output 1(默认设备显示器)
错误输出:error output 2(默认设备显示器)
下面引用先知社区对文件描述符的脑涂:
文件所有输入输出都是由该进程所有打开的文件描述符控制的。(Linux一切皆文件,就连键盘显示器设备都是文件,因此他们的输入输出也是由文件描述符控制)
一条命令执行以前先会按照默认的情况进行绑定(也就是上面所说的 0,1,2),如果我们有时候需要让输出不显示在显示器上,而是输出到文件或者其他设备,那我们就需要重定向。
(1)输入重定向 < <<
(2)输出重定向 > >>
对>&这个符号的含义理解:
当>&后面接文件时,表示将标准输出和标准错误输出重定向至文件
当>&后面接文件描述符(0,1,2)时,表示将文件重定向至文件描述符(所代表的含义)
02 Linux bash反弹shell解析
反弹原因:网络环境(内网下短机器),防火墙受限(限制入站规则),权限维持(目标会更换域名,ip等)....