靶機難度:初級 +
工具及漏洞信息#
- netdiscover
- nmap
- gobuster
- OpenNetAdmin 命令注入
- crunch 根據給定字符生成字典
- john 字典破解 hash
0x01 信息收集#
掃描靶機#
netdiscover
的-r
參數掃描192.168.1.0/16
或者路由器管理界面查看有線連接的設備得到靶機ip
nmap
掃描主機及端口信息:
nmap -sS -A -n -T4 -p- 192.168.1.3
靶機開放了22
、80
、10000
三個端口,看了80
端口發現是空白的,用curl
確認:
確實沒有內容,再看一下10000
端口:
是Webmin
,版本MiniServ 1.920
掃描目錄#
gobuster
掃描網站目錄:
gobuster dir -u http://192.168.1.3 -s 200,301,302,307,401,403 -t 100 -q -x .php,.txt,.html,.zip,.bak,.tar.gz -w /usr/share/wordlists/seclists/Discovery/Web-Content/raft-large-directories.txt
發現有robot.txt
和一個可疑401
目錄/reports
,訪問發現需要認證:
robots.txt
裡面發現目錄/ona
,與nmap
掃描吻合,訪問;
是openNetAdmin v18.1.1
(一個IP
網絡系統和主機管理系統)
信息收集總結#
目前收集到的主要信息如下:
- ssh 22 端口開放,是否考慮爆破
- Webmin MiniServ 1.920 10000 端口 是否存在可利用漏洞
- openNetAdmin v18.1.1 /ona 目錄 是否存在可利用漏洞
0x02 OpenNetAdmin 漏洞#
那就分別看看Webmin
和openNetAdmin
有沒有能利用的漏洞:
searchsploit
:
OK
,那我開啟msf
搜索模塊:
可以看到,msf
中並沒有我們剛才搜到的Unauthenticated RCE(Metasploit)
,openNetAdmin
甚至一個都沒有
那我們手動下載exploit-db
上的exploit
文件並移入msf
的exploit
數據庫:
/usr/share/metasploit-framework/modules/exploits/
重啟 Metasploit 就可以直接使用兩個 exp 了,先使用Webmin
的看一下:
竟然只支持Webmin<= 1.910
版本,那試下openNetAdmin
:
成功獲取到meterpreter
會話
0x03 普通用戶提權#
如果要從meterpreter
進入shell
記得用Python
獲取一個tty
,不然有些命令是無法執行的
python -c 'import pty; pty.spawn("/bin/bash")' # 有些沒有安裝Python2,所以需要換成python3 -c
我這裡先不進入,老規矩,查看下當前目錄、網站目錄、家目錄:
當前目錄沒啥,看下網站目錄:
在網站目錄,我們剛才不能訪問的/reports
子目錄中的.htaccess
文件中找到提示
在/var/www/.htpasswd
中找到如下提示:
douglas:$apr1$9fgG/hiM$BtsL9qpNHUlylaLxk81qY1
# To make things slightly less painful (a standard dictionary will likely fail),
# use the following character set for this 10 character password: aefhrt
給出了一個用戶名和密碼的hash
值,提示我們需要爆破,密碼位數為 10 位,包含aefhrt
這 6 個字符
用kali
自帶的工具crunch
生成密碼字典,crunch
可以根據我們指定的字符以及最大最小個數創建字典
Usage: crunch <min> <max> [options]
於是我使用crunch 10 10 aefhrt -o passwd
生成密碼字典:
再使用john
來爆破hash
:
echo '$apr1$9fgG/hiM$BtsL9qpNHUlylaLxk81qY1' > hash
john --wordlist=passwd hash
在經歷了漫長的等待之後得到密碼fatherrrrr
,於是我們使用douglas:
登錄ssh
:
douglas:fatherrrrr
ssh douglas@192.168.1.3
sudo -l
查看當前用戶的權限
發現可以以jen
的權限執行cp
命令,於是準備切換到jen
賬戶
0x04 提權 root#
ssh-keygen
生成密鑰,將公鑰拷貝到/home/jen/.ssh
目錄下,之後使用jen
賬戶登錄:
ssh-keygen -b 2048
cp /home/douglas/.ssh/id_rsa.pub /tmp/authorized_keys
這個時候我們來到/tmp
(臨時目錄)下給authorized_keys
這個文件一個可執行權限
使用sudo
以jen
用戶權限去執行 cp 命令,把剛剛生成的authorized_keys
移動到/home/jen/.ssh/
chmod 777 /tmp/authorized_keys
sudo -u jen /bin/cp /tmp/authorized_keys /home/jen/.ssh/
ssh jen@127.0.0.1
這裡登錄jen
賬戶的時候提示我們有一封郵件,在/var/mail/
中找到了這封名為jen
的郵件:
從郵件得知了用戶密碼Moss:Fire!Fire!
,SSH
鏈接登錄之~
moss:Fire!Fire!
ssh moss@192.168.1.3
切換到moss
賬戶後,又到了我熟悉的SUID
提權,用find
查看
find / -perm -u=s -type f 2>/dev/null
發現了SUID
權限的/home/moss/.games/upyourgame
,好像是個遊戲,去玩一下:
啥狗屁邏輯,就是刁難一下你,然後直接給了root
權限,最後在root
目錄成功拿到flag
:
本文完。
參考文章: