zoukankan      html  css  js  c++  java
  • VulnHub::DC-1

    实验环境

    DC-1_1

    一共有五个flag,有多种方法去提权,我们最终目标是去拿到/root的flag。总的来说,难度不高,适合新人练手

    渗透过程

    0x01 信息搜集

    由于不知道靶机IP地址,进行D段扫描,获得靶机IP地址。

    DC-1_2

    进行端口扫描:

    nmap命令

    -sS: 半开扫描,记入系统日志风险小

    -sP:扫描端口前,先使用ping扫描,保证主机存活

    -A: 全面系统检测,启用脚本检测和扫描

    DC-1_3

    主机开放了22(SSH),80(HTTP),111(RPCBInd),45684端口。

    直接访问web服务,是一个Drupal搭建的站。

    DC-1_4

    0x02 开打

    flag1

    使用AWVS进行扫描,得到该页面存在Drupal的一个漏洞CVE-2018-7600

    DC-1_5

    使用msf尝试利用此漏洞:

    DC-1_6

    获得shell

    DC-1_7

    在 /var/www/ 下有个flag1.txt,提示我们去看配置文件

    flag2

    利用Python模拟tty使目录更易于辨认:

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

    drupal的配置文件是 /sites/default/settings.php ,主要是数据库连接配置

    DC-1_8

    我们发现了flag2以及数据库账号密码

    DC-1_9

    flag3

    登上数据,查看数据库中的信息。

    DC-1_12

    发现账号,和经过加密的密码,flag2中给的提示暴力破解不是唯一的方法

    思路一:恢复密码

    搜索了一下,Drupal 7已不再采用Drupal 6和5时代的简单的MD5加密了。据某个帖子说是因为现在有一个在线的MD5数据库,可以查到很多MD5码的原文,因此Drupal 7的开发者认为不能再继续采用这种极不安全的方法了,因此Drupal 7采用了新型的Hash加密方法来确保密码安全。新型加密方法是“加了盐(Salt)“的MD5码,简单理解就是并不会直接将password进行MD5加密,而会和用户名或其它随机字符串组合在一起后再MD5加密。

    查到的资料表示:在Drupal 7的安装目录中的scripts目录下,有一些Drupal 7开发者准备好的PHP脚本,可以执行一些高级操作。其中有一个脚本名为:password-hash.sh,它的功能是传入一个密码(字符串),即返回加密后的密码字符串。

    或者打开Google或者百度搜索该cms框架忘记密码的解决办法,就可以看到别人做好的明文和密文,可以拿来直接用,也有文章直接说明它是如何加密的

    如何重置Drupal 7的用户密码

    DC-1_10

    生成密码字符串

    DC-1_11

    对原密码进行替换。

    登录web服务,得到flag3

    思路二:查找可利用漏洞,添加新管理员账户

    使用searchsploit查找可用漏洞:

    DC-1_14

    利用CVE-2014-3704exp

    DC-1_15

    添加新管理员用户admin1

    DC-1_16

    登录成功

    DC-1_13

    flag4

    flag3的提示提到了权限,于是想到先查看用户列表。

    DC-1_17

    发现flag4用户

    切换到falg4的家目录,发现flag4.txt

    DC-1_18

    flag5

    flag4提示flag in root

    DC-1_19

    发现最终flag,但是无权限打开,flag3中提醒了“-exec”,猜测需要提权。

    使用find可以获取root权限

    DC-1_20

    DC-1_21

    附录1 SUID提权

    0x01 SUID

    什么是suid?通俗的理解为其他用户执行这个程序的时候可以用该程序所有者/组的权限。

    0x02 SUID提权

    那么什么是suid提权呢?我理解的就是有个文件,它有s标志,并且他输入root,那么我们运行这个程序就可以有了root的权限,并且这个程序还得能执行命令,不然没什么用处,那么我们就能从普通用户提升到了root权限了。

    0x03 常见的可用于suid提权的命令

    Nmap
    Vim
    find
    Bash
    More
    Less
    Nano
    cp
    

    0x04 查找符合条件的文件

    以下命令可以发现系统上运行的所有SUID可执行文件。具体来说,命令将尝试查找具有root权限的SUID的文件。

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

    附录2 find命令

    0x01 描述

    find命令 用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

    0x02 语法

    find(选项)(参数)
    
    -exec<执行指令>:假设find指令的回传值为True,就执行该指令;
    -perm<权限数值>:查找符合指定的权限数值的文件或目录;
    

    0x03 实例

    借助-exec选项与其他命令结合使用

    找出当前目录下所有root的文件,并把所有权更改为用户tom

    find .-type f -user root -exec chown tom {} ;
    

    上例中, {} 用于与 -exec 选项结合使用来匹配所有文件,然后会被替换为相应的文件名。

    找出自己家目录下所有的.txt文件并删除

    find $HOME/. -name "*.txt" -ok rm {} ;
    

    上例中, -ok-exec 行为一样,不过它会给出提示,是否执行相应的操作。

  • 相关阅读:
    雪花降落CADisplayLink
    图片分离--分成两片
    判断是否输入表情符号
    字符串过滤
    UICollectionView Layout自定义 Layout布局
    本地化 NSLocal
    CAAnimation动画--(旋转/缩放/移动/闪烁)
    摇一摇
    监听键盘升降
    ❄️ 雪花降落
  • 原文地址:https://www.cnblogs.com/chalan630/p/12639911.html
Copyright © 2011-2022 走看看