Vulnhub DC-1 Walkthrough
前言
昨晚上睡觉之前连夜下载的一堆靶场,全是 DC 系列的,不出意外地话,接下来的好多好多天,我更新的都是这个系列的靶场了,一共是九个,我应该是一周会上新三个。太多了实在是没时间去做,哈哈,好,就这么说定了,一周三个。吟诗一首吧:
紫菊初生朱槿坠。
月好风清,
渐有中秋意。
更漏乍长天似水。
银屏展尽遥山翠。
绣幕卷波香引穗。
急管繁弦,
共庆人间瑞。
满酌玉杯萦舞袂。
南春祝寿千千岁。
这个靶场的通关方式和以往的都不太一样,这个使用到了 msfconsole
,一个非常牛逼的攻击包。
信息收集
IP 信息
当然还是使用我们的 netdiscover
啦,不然的话用 arp-scan
也行。
netdiscover | arp-scan -l |
---|---|
好,IP 地址已经获取到了,结果就是 10.0.2.7
端口扫描
nmap -A 10.0.2.7 -p-
Starting Nmap 7.92 ( https://nmap.org ) at 2022-05-19 23:12 EDT
Nmap scan report for bogon (10.0.2.7)
Host is up (0.00073s latency).
Not shown: 65531 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.0p1 Debian 4+deb7u7 (protocol 2.0)
| ssh-hostkey:
| 1024 c4:d6:59:e6:77:4c:22:7a:96:16:60:67:8b:42:48:8f (DSA)
| 2048 11:82:fe:53:4e:dc:5b:32:7f:44:64:82:75:7d:d0:a0 (RSA)
|_ 256 3d:aa:98:5c:87:af:ea:84:b8:23:68:8d:b9:05:5f:d8 (ECDSA)
80/tcp open http Apache httpd 2.2.22 ((Debian))
| 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-title: Welcome to Drupal Site | Drupal Site
|_http-generator: Drupal 7 (http://drupal.org)
|_http-server-header: Apache/2.2.22 (Debian)
111/tcp open rpcbind 2-4 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2,3,4 111/tcp rpcbind
| 100000 2,3,4 111/udp rpcbind
| 100000 3,4 111/tcp6 rpcbind
| 100000 3,4 111/udp6 rpcbind
| 100024 1 35791/tcp status
| 100024 1 41558/udp6 status
| 100024 1 45244/udp status
|_ 100024 1 50722/tcp6 status
35791/tcp open status 1 (RPC #100024)
MAC Address: 08:00:27:89:DA:D7 (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 3.X
OS CPE: cpe:/o:linux:linux_kernel:3
OS details: Linux 3.2 - 3.16
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
TRACEROUTE
HOP RTT ADDRESS
1 0.73 ms bogon (10.0.2.7)
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 21.93 seconds
可以看出,目标主机一共开放了四个端口,分别是 22/80/111/35791
分别是 ssh/http/rpcbind/不知道
四个服务。
枚举 HTTP
- 首先看一下网页有什么内容,以及源代码有什么信息。
然而并没有什么有价值的信息,所以下一步就是进行目录扫描,查看是否有什么有价值的信息。
- 使用工具进行目录扫描
dirb | nikto | gobuster |
---|---|---|
都没有获得什么有用的信息,我再去看看另外的俩端口,至于为什么在 web
界面我没有使用其他的技术,比如说注入什么的,因为我猜测这个靶场的解法很可能不是这样的,所以就没用,而是一步一步走下来。图我就不放了,经过测试另外的两个端口不是 web
服务,所以说这个路子不是很好走。至此 HTTP
的枚举失败。
MSFCONSOLE
这个时候就换一种思路,就是说他的这个网站的 CMS
有没有什么可以利用的点呢。就像之前爆出来的什么 帝国/织梦
的漏洞,所以这里也测试一下,首先探测一下是什么 CMS
whatweb 10.0.2.7
http://10.0.2.7 [200 OK] Apache[2.2.22], Content-Language[en], Country[RESERVED][ZZ], Drupal, HTTPServer[Debian Linux][Apache/2.2.22 (Debian)], IP[10.0.2.7], JQuery, MetaGenerator[Drupal 7 (http://drupal.org)], PHP[5.4.45-0+deb7u14], PasswordField[pass], Script[text/javascript], Title[Welcome to Drupal Site | Drupal Site], UncommonHeaders[x-generator], X-Powered-By[PHP/5.4.45-0+deb7u14]
好!这个已经是识别出来了,所以现在去 msfconsole
搜索一下。
- 打开
msfconsole
- 然后搜索
Drupal
- 测试哪一个模块可以使用。发现第二个可以。
- 设置好相关参数。并运行。
发现已经成功的反弹 shell 登陆了目标主机。并且获得了第一个 flag-1。
提权
还是老样子运行那个脚本,至于是哪一个在之前的博客里面可以找到,名字的话就叫 linpeas.sh
网上应该也能下载到。
可以看到这里是有可以利用的 SUID
的提权方式的,详情见下图。
另一种方式
其实像是上面那样的提权方式未免实在是有些太粗暴了,是吧,咱们是来练习技术的,当然不能直截了当的这么粗暴的是吧。咱们还是要按照作者的思路走一下,刚刚咱们没有看 flag-1 里面的内容,现在就去看一下哈。
Every good CMS needs a config file - and so do you.
这句话其实就是提示我们可以去搜一下他的默认的配置文件,可能有新的惊喜。
通过这个文件里面的内容,我得到了第二个flag。其中有一些提示,说暴力和字典攻击不是唯一的解法,那就是一定有其他的方法。最后一句话,你会用这证书做什么?证书,那要留意一下了。
先随便浏览一下数据库有什么重要的信息。然后在数据库中发现了一个叫做 users
的表,记录了用户名和密码。
但是这里的密码是一串密文 ,既然作者说了暴力不是唯一的解法,所以我就放弃了使用 john
跑一下的想法,这里就有一个思路,就是能不能我们自己构造一个密文替换上去,但是规则是什么?我是不知道的,那我就在系统中搜一下,我相信一定是存在的。搜一下系统里面有没有什么名字带有 hash
的文件。
看了一下,脚本的用法就一个参数,就是后面想加密的密码。加密一下 123456 试一下。
咱们去数据库替换一下子。声明一下,那个 hash 值最后一位是个 .
我忘了加上,以至于登不上,找了好久才发现问题。
成功找到了 flag3。
说是有特殊权限的将会帮助我们找到密码,但是你需要执行这命令才会确定如何获得 shadow 的文件内容。先去看一下 passwd 文件是否有什么有效信息。
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
Debian-exim:x:101:104::/var/spool/exim4:/bin/false
statd:x:102:65534::/var/lib/nfs:/bin/false
messagebus:x:103:107::/var/run/dbus:/bin/false
sshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin
mysql:x:105:109:MySQL Server,,,:/nonexistent:/bin/false
flag4:x:1001:1001:Flag4,,,:/home/flag4:/bin/bash
发现了一个 flag4,去他的家目录看一下,发现了第四个 flag 文件。
www-data@DC-1:/home/flag4$ ls -al
ls -al
total 28
drwxr-xr-x 2 flag4 flag4 4096 Feb 19 2019 .
drwxr-xr-x 3 root root 4096 Feb 19 2019 ..
-rw------- 1 flag4 flag4 28 Feb 19 2019 .bash_history
-rw-r--r-- 1 flag4 flag4 220 Feb 19 2019 .bash_logout
-rw-r--r-- 1 flag4 flag4 3392 Feb 19 2019 .bashrc
-rw-r--r-- 1 flag4 flag4 675 Feb 19 2019 .profile
-rw-r--r-- 1 flag4 flag4 125 Feb 19 2019 flag4.txt
www-data@DC-1:/home/flag4$ cat flag4.txt
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?
www-data@DC-1:/home/flag4$
最后一步就是找特殊权限了,上面已经找到了,就是那个 find
,怎么利用,上面也已经写了,可以去上面看看。好了,教程到此结束!happy hacking.