【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

文章目录

Vulnhub靶机渗透测试之DC-4


  • 环境搭建
  1. 靶机镜像下载地址:https://www.vulnhub.com/entry/dc-4,313/

  2. 需要将靶机和kali攻击机放在同一个局域网里;

  3. kali的IP地址:192.168.40.142。

1. 信息收集

  1. 使用nmap扫描该网段存活的主机IP

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

可得知目标靶机IP为:192.168.40.144

  1. 使用nmap扫描靶机开放了哪些端口

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

可得知靶机开放了22、80端口;

  1. web指纹识别

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

  1. 访问目标靶机的80端口

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

是一个Admin的登录界面,考虑bp抓包爆破一下密码。

2. 漏洞利用

  1. 由于它是一个admin登录揭界面,用户名就尝试使用admin,密码字典选择kali的/usr/share/john目录下的password.lst字典:

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))
【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))
【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

爆破结果 :根据状态码和长度判定密码为happy

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

测试登录:成功登录

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

发现它似乎可以执行一些命令:

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

抓包分析:

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

发现它执行了 ls+l 的命令,这里空格用+代替了,尝试替换为其他命令:

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

成功执行了 whoami 命令,再尝试查看 /etc/passwd 文件:

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

发现了几个用户:charles、jim、sam,分别查看一下这里几个用户目录下有什么值得利用的文件:

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

发现用户jim的backups目录里有一个文件:old-passwords.bak(关于密码的),查看它:

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

我们将这些密码保存为文件,现在我们有三个用户名和一个密码字典而且对方开放了22端口,使用hydra尝试爆破:

hydra -L user.dic -P old-password.bak ssh://192.168.40.144 -vV -o hydra.ssh	

爆破结果:爆破出用户jim,密码为:jibril04

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

  1. ssh登录jim用户

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

成功登录,查看jim用户有什么sudo命令可供使用:

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

结果:失败!

只能找其他切入点,我们查看一下mbox文件:

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

似乎是一封root给jim发送的邮件,此时可以查看var目录下的mail:

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

发现jim文件,查看内容:

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

是用户charles将自己的密码发送给了jim,密码为:^xHhA&hvim0y

  1. ssh登录charles用户

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

发现该用户有一个root权限的命令:teehee,查看该命令的使用方法:

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

有一个参数 -a,对指定文件进行追加,不覆盖,测试使用:

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

新建一个test文件,然后使用teehee命令追加内容,成功追加!

3. 提权

思考:teehee命令可不可以追加内容到任意文件里?

  1. 尝试在/etc/passwd文件下追加内容,该文件的结构:
用户名:是否有密码保护(x即有保护):uid:gid:全称:home目录:/bin/bash

我们追加一个名为hacker的用户,将它的uid和gid也设置为root的0:

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))
成功追加!

  1. 切换用户

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

提权成功,发现flag文件!

  1. 写入定时任务文件

可以在/etc/crontab下写入定时计划,提升到root权限。

crontab介绍

Linux crontab是用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。

时间格式如下:

f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推;
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推;
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推;
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推

*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期中星期几 (0 - 7) (星期天 为0)
|    |    |    +---------- 月份 (1 - 12) 
|    |    +--------------- 一个月中的第几天 (1 - 31)
|    +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)

所以我们可以追加内容为:echo "* * * * * root chmod 4777 /bin/sh" | sudo teehee -a /etc/crontab,表示在/etc/crontab下写入定时计划,一分钟后由root用户给 /bin/bash 命令加权限(chmod 4777即开启suid和rwx权限):

【Vulnhub靶机渗透测试】之DC-4(teehee命令提权(在passwd或crontab中追加内容))

上一篇:javascript原型找不到属性或是方法或是undefined是怎么会事?


下一篇:WebApi 通过ActionFilter 来响应请求