DC-9
#信息收集
namp 扫描开放端口namp 10.0.2.6 -p-namp 10.0.2.6 -p22,80 -A根据端口开放情况,先看下80端口。
这里有员工名单,有17个用户名。后面可能用的上。
在网站manage中有个登录窗口,没有验证码校验,把刚刚获取的用户名用hydra尝试爆破。~没有成功~
hydra -P /usr/share/wordlists/rockyou.txt -L username 10.0.2.6 http-post-form "/manage.php:password=^PASS^&username=^USER^:F=Your Login Name or Password is invalid" -vV -f
#漏洞利用
用burp suite看下数据包,把可疑的包扔到sqlmap上跑下注入
sqlmap -r vulnhub/cd-9/sql2 --batch --level 3
在搜索的POST包中跑到一个注入
在Staff下的Users表中跑到admin的用户及MD5密码
在线查一下,要钱?不可能的。
换一个免费的。
登录之后感觉 “没有什么作用”。
查看了一下数据库权限,不是管理员。这基本没戏。
注入点没有搞头,回来登录后的一些页面做下文章。期间也扫了网站目录(没有能利用的点)。正挠头发时发现页面中有个文件不存在的提示
反手就是在后面加个参数?file=../../../../../../../etc/passwd居然真的是文件包含(仔细想想扫目录时好像有个/includes文件夹,仿佛在提醒我)
包含了半天也没有包含到能利用的文件(日志和配置文件都包含不到- -),卡太久了,就去看了下别人的wp,居然是knockd端口敲击技术。(大致是先访问指定的端口(7469,8475,9842)后,才能访问(22)端口)。看配置文件指定的端口。
用NC访问三个端口后,便能访问22端口了,之前22端口是过滤状态。
利用刚刚注入的另个表中跑的username和password用hydra爆破登录
跑出三个能正常登录的用户
[22][ssh] host: 10.0.2.7 login: chandlerb password: UrAG0D!
[22][ssh] host: 10.0.2.7 login: joeyt password: Passw0rd
[22][ssh] host: 10.0.2.7 login: janitor password: Ilovepeepee
登录上来就准备提权,在/opt/devstuff目录下看到有个名为test.py 的文件,有755权限。看了下里面的内容,是读一个文件的内容然后写到另个文件中,这权限够的话就能写入到passwd中进行提权。
大致的思路明白了,先实验一下。
很明显是没有权限写入的(这里需要以root权限运行这个脚本才能执行成功),那看看其他的账号有没有写入的。
在看其他两个用户时,janitor用户的家目录下有个隐藏的密码txt文件。
明显刚刚获取的三个用户都没能提权。这利用janitor获得的密码文件再用hydra爆破一波。这里要把线程调低一些,不然报错很多。成功获得新的用户fredf。在前面的员工信息页面显示他的职务是系统管理员。
[22][ssh] host: 10.0.2.7 login: fredf password: B4-Tru3-001
登录后sudo -l 就能看到他能执行一个二进制文件test。好像不是刚刚的那个py文件。
这里不管就照刚刚的test.py文件格式给他传参。要先构造一个"root"权限的用户。
openssl 能生成salt
openssl passwd -1 -salt '123456'
#写入到passwd的内容
z4yn:$1$123456$wOSEtcyiP2N/IfIl15W6Z0:0:0:root:/root:/bin/bash #密码123456
#root
写入成功后就直接su切换到用户。便提权成功