Vulnhub系列:DC-1
第一次尝试写
Description
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.
找出5个flag
信息收集
使用nmap 扫自己vm8的ip地址范围
发现目标地址为192.168.157.129
扫下目标ip的端口和服务哪些是开启的
它ssh的22还有http的80端口开启。服务器为linux。http服务是apache 2.2.22
没有密码怎么进入呢,发现Drupal cms。那么有可能存在cms漏洞。
渗透:
启动msfconsole进去搜索有没有与Drupal有关的漏洞利用方式
有!然后我们看各自后面的描述选取适合的,我选择了
use exploit/multi/http/drupal_drupageddon
设定好目标ip地址执行
Getshell成功
Getshell后首先肯定是使用python命令获取正常的tty,不然有可能有些命令无法使用。
我单纯就查看当前目录下有什么文件就找到第一个flag了
查看文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200109211501616.png
每一个好的CMS需要一个配置文件 - 等你。
应该指示第二个flag的位置。那么我们应该要去找这个配置文件。
通过百度加谷歌的强大搜索能力找到cms的配置文件基本在网站根目录下的site/defaultx下的setting.php文件中。
查看
蛮力和字典攻击是不唯一途径获得(和你将需要访问)。您可以使用这些凭证做什么?
那么我们可以利用下面提供的数据库信息进行数据库操作。
发现是有use和加密的password但没事。在找配置文件时,我还发现了Drupal对数据库加密的脚本。利用它加密密码获取新的hash值,然后再mysql更改掉admin的密码。
登录成功后在find content中发现第三个flag
点开看,他提示
特别PERMS将有助于find passwd文件 - 但你需要-exec该命令在shadow的中如何获得什么passwd。
提权:
一开始看不懂什么意思,百度了下相关的提示词的合并使用的作用,大概因为shadow文件需要权限才能查看,提示采用find命令来进行提权。日常百度find特殊提权,找到
查看shadow发现第四个flag
但被加密了需要破解。加密为SHA-512.去查看相关/etc/shadow有什么功能和详细内容解密,发现可以用John the Ripper破解密码
ssh连接进去打开flag4.txt发现提示,同样方法找到In root 上?
在查询相关/etc/shadow发现也看到/etc/passwd也是用同样方法破解加密,要不尝试看下/etc/passwd
也不对,这个地址跟ssh连接进去的默认目录一致,the flag in root!原来想错方向了。
找到了这最后一个flag
工具、知识点和漏洞:
Drupalgeddon sql注入
/etc/shadow
这文件存储的是/etc/passwd的密码、存放安全用户信息。
1是用户名,
2是密码, 密码格式设置为
i
d
id
idsalt$hashed
1
1
1是MD5加密
2
a
2a
2a是Blowfish加密
2
y
2y
2y是Blowfish加密
5
5
5是SHA-256加密
6
6
6是SHA-512加密
3是最后更新密码时间
4是密码使用最短时间
5是密码使用最长时间
6是密码警告时间
7是密码无效
8是密码过期
后面几个需要自行修改,否则默认。
/etc/passwd
它是存文本文件,它包含系统所有账户信息,只有超级用户才有写和访问。
系统用户无法用来登录系统,但也不能删除,因为一旦删除,依赖这些用户运行的服务或程序就不能正常执行,会导致系统问题。
每个用户占一行用:分隔成七个字段。
密码存储在/ etc / passwd文件中,密码所以这里只显示x。
Find-exec命令提权
只有root用户才能对该目录进行操作,而其他用户没有权限去查看。当普通用户需要修改自己的密码的时候,可以使用passwd指令。Passwd指令在/bin/passwd下面,当我梦使用这个命令去执行,就可以去修改/etc/shadow里面的加密密码了。这里我们需要用到suid。因为suid的作用是让执行该命令的用户以该命令拥有者即root的权限去执行。这样就可以去修改/etc/passwd这类需要root权限的文件了。
以下命令将尝试查找具有root权限的SUID的文件,不同系统适用于不同的命令,一个一个试
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000-print2>/dev/null
find / -user root -perm -4000-exec ls -ldb {} ;
python -c ‘import pty; pty.spawn("/bin/bash")’
用Python伪造一个终端,使用pty的spawn方法调用”/bin/bash”获取一个正常的tty,否则有些命令可能无法执行。Python pty模块的spawn 是通过 fork 方式实现,然后子进程执行具体的命令,然后父进程去获取终端的输出,强调获取数据。/bin/bash我自己感觉就像window的cmd。
工具:
Nmap
用于快速扫描大型网络,包括主机的探测与发现、开放的端口情况、操作系统与应用服务指纹识别、waf识别以及常见的安全漏洞。还支持探测脚本的编写。
Metasploit
具有强大的功能和集成渗透能力,以及社区中存在大量渗透攻击模块资源。有信息收集功能
hydra
爆破神器,对多种服务的账号和密码进行爆破。
参考:
CVE-2014-3704:https://www.securityfocus.com/bid/70595/discuss
/etc/passwd:https://www.cyberciti.biz/faq/understanding-etcpasswd-file-format/
/etc/shadow:https://www.cyberciti.biz/faq/understanding-etcshadow-file/
DC-1: https://blog.csdn.net/weixin_41038469/article/details/88409725
Suid: https://blog.csdn.net/qq_36119192/article/details/84872644