• 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 行为一样,不过它会给出提示,是否执行相应的操作。

  • 相关阅读:
    Oracle中有大量的sniped会话
    Error 1130: Host '127.0.0.1' is not allowed to connect to this MySQL server
    汉字转换为拼音以及缩写(javascript)
    高效率随机删除数据(不重复)
    vs2010 舒服背景 优雅字体 配置
    mvc中的ViewData用到webfrom中去
    jquery ajax return值 没有返回 的解决方法
    zShowBox (图片放大展示jquery版 兼容性好)
    动感效果的TAB选项卡 jquery 插件
    loading 加载提示······
  • 原文地址:https://www.cnblogs.com/chalan630/p/12639911.html
Copyright © 2020-2023  润新知