当前位置: 首页 > article >正文

VulnHub-DC-1靶机

主机发现

这是一台vulnhub靶场上的一个很友好的新手靶机,easy难度。

arp-scan -l

这里我是直接sudo su 用root权限了,所以,没有root的需要在前面添加sudo来探测,不然会提示权限不够。

以root超级管理员权限执行,探测本地主机网络,发现靶机ip:192.168.31.130

nmap扫描

 nmap 192.168.31.130


直接扫描ip地址也是可以出来的,但是可以参考红队笔记的写法会更好。

 nmap -sT --min-rate 10000 -p- 192.168.31.130 -oA nmapscan/ports 

端口扫描

nmap -sT探测扫描tcp端口,--min-rate 以最低10000的速率 -p- 扫描全部端口 -oA 以全格式打印输出到nmapscan目录下的ports文件中。

 

这样严谨的扫描手法,结果会探测出更多有用的信息,发现开放22,80,111,还有一个比简单扫描多扫出来一个未知端口54879

这里我们再次添加几个扫描参数,扫描更全面的靶机信息

nmap -sT -sV -A --min-rate 10000 -p- 192.168.31.130

-sV:探测服务版本信息

-A:启用操作系统检测、版本检测、脚本扫描和traceroute


打开web页面就看到Drupal site 大致推测用的是Drupal框架,我们用wappalyzer查看一下发现就是,Drupal 7的框架。

wappalyzer是一个网络分析工具,它可以分析这个网站是由哪些框架写的,是什么系统,什么与语言写的等等。

msfconsole漏洞利用

可以打开msfconsole搜索一下Drupal 7对应的漏洞

紫色标注出来的就是有关Drupal的漏洞,这里我们可以利用序列号1的漏洞,它是一个远程代码执行漏洞,允许未经过身份验证的攻击者执行任意代码(Drupalgeddon 2(CVE-2018-7600))

选择这个漏洞之后可以查看具体的配置信息

(meterpreter具体介绍:Meterpreter 是 Metasploit 框架中的一个强大后渗透工具,提供了多种功能,允许攻击者在成功利用目标系统后进行深入操作。以下是 Meterpreter 的一些主要功能和命令。)

flag1

set rhosts 192.168.31.130

设置靶机的ip地址,run运行之后就进入了一个名字为,meterpreter的界面,ls -al 查看一下所有文件以及权限,文件大小等信息,看到flag1.txt,查看一下。描述的是

那就根据他的配置文件查看具体有用的信息,说是在sites目录下的default目录下的setting。php文件

进入目录查找到mysql数据库的配置信息,数据库,用户名,密码。

flag2

flag2
 * Brute force and dictionary attacks aren't the
 * only ways to gain access (and you WILL need access).
 * What can you do with these credentials?

提示我们说爆破和攻击不是唯一的,告诉我们还有其他的方式。

 'database' => 'drupaldb',
      'username' => 'dbuser',
      'password' => 'R0ck3t',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => '',

似乎忘记写一个shell来交互了,不然是没办法登录mysql的,先进入shell,再用python写一个交互的shell,其实可以在进入meterpreter的时候就进的,我忘了。

import pty :导入pty模块创建伪终端

.spawn:调用里面的命令,最后就得到一个交互的bash shell

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

有一个user表,查看一下内容,发现两个用户的密码是被加密了的。

新学到了一种直观的查看方式,\G  将结构旋转90度 更好查看了。非常不错我觉得。

看到密码是某种hash加密,里面或许也存在加密文件,找一找password文件

find . -name "password*"
查找根目录下名字为password的所有文件,看到一个后缀是.sh的文件,我们判断大概就是加密文件,查看一下发现是php编写的,可以用php用这个脚本生成有一个新的密码。

php /var/www/scripts/password-hash.sh 111111

看到已经生成新的加密,接下来重新进入数据库update更新一下admin用户的密码

update users set pass="$S$DMtniYPEFkZ9sRq9jSAyFAFSHrMUX8ozneckFWOBMa4m.K1rar2g" where name="admin";

flag3 

对比原图,确认密码加密更新,接下来进入登录页面登录进去

用户:admin

密码:111111

content下看到了flag3,并且flag给提示,这很有可能是下一个flag的提示。

 

可以查看一下/etc/passwd.发现末尾有一个flag4在家目录里面,并且等到下一个flag的提示(前两条是手快打的错误命令)

flag4

进入root目录发现并没有权限,需要提权(第二条命令没有没有空格,打错了,可以忽略掉)

 suid提权

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

find 查找 / 根目录下所有的文件 查找 -perm -u=s 所有user用户拥有的文件,并且这些文件设置了用户可以执行的特殊权限(suid)文件,-ytpe f 2 >/dev/null 指定搜索文件,将错误输出重定向到/dev/null,这是一个特殊的设备文件,它会丢弃所有写入其中的数据。这样做的目的是为了隐藏命令执行过程中可能出现的错误信息。

find ./misc -exec "/bin/sh" \;
  • find:这是命令的名称,用于在文件系统中搜索文件。
  • ./misc:这表示搜索的起始目录是当前目录下的 misc 子目录。
  • -exec:这是 find 命令的一个选项,它允许对搜索结果执行一个指定的命令。
  • "/bin/sh":这是要执行的命令,这里指定的是 /bin/sh,即Bourne shell,一种常用的shell。
  • \;:这是 -exec 选项的结束标记。在 -exec 命令中,你需要使用反斜杠 \ 来转义分号 ;,以避免它被shell解释为命令的结束。

 flag5

最后root的flag我们也已经拿到了。


http://www.kler.cn/news/355610.html

相关文章:

  • docker 资源限制+调优详解
  • Golang 并发编程:通道(Channel)的详细用法
  • Java | Leetcode Java题解之第493题翻转对
  • Midjourney中文版:开启AI绘画新时代
  • 基于SSM出租车管理系统的设计
  • nodejs 实现linux 磁盘挂载 磁盘健康检测(smartmontools) 系统内存cpu性能监控
  • windows C++-有效使用PPL(三)
  • 力扣 简单 141.环形链表
  • Miniconda管理虚拟环境【Python环境配置】
  • 【JS、数组】flat的基本用法
  • 开源vGPU方案 HAMi实现细粒度GPU切分——筑梦之路
  • 观测云 AI 助手上线:智能运维,从此触手可及!
  • 使用软件模拟按键显示屏,上下左右确认取消按键,来修改IP端口号等参数。
  • Hi3061M——VL53L0X激光测距(IIC)(同样适用于其他MCU)2
  • rk3588 opencv 的使用
  • Android 编译时出现Android resource linking failed.without required default value.
  • perl读取目录,写入文件
  • 高校企业数据可视化平台功能介绍/特色功能
  • 骑砍霸主MOD天芒传奇Ⅱ·前传-序章
  • 压缩感知解谱