0%

DC-4

DC-4

额,大家说这个靶机更难了,但是好像我觉得有点简单

基础信息收集

使用nmap查一下服务:

1
nmap -sC -sV -A -p- 192.168.145.137 -T5 -oN nmap

image-20210329222410771

一个ssh,一个HTTP。

Nikto并未收集到什么有用的信息。

网页打开后是这样的:

image-20210329222500686

随意尝试了几个弱口令,发现Web服务好像未对登录有限制,先记一下,方便后续爆破。

dirb扫出的目录也很有限。

爆破账号

爆破永远是最后的方式,在此之前已经使用过sqlmap检查注入存在的可能性

使用Burp自带的密码字典加常见用户名成功爆破出账号密码:

image-20210329223127995

命令行注入

进去后发现这个:

image-20210329223304688

应该是命令行注入,抓包看看请求:

image-20210329223325661

很简单明了的命令执行,ls /可以直接拿到根目录:

image-20210329223408466

反弹shell

既然可以直接执行命令,那么反弹一个shell就很简单了:

在kali监听1234端口:

1
nc -lvnp 1234

发送一个数据包:

image-20210329223645248

地址改为自己Kali的地址。

成功拿到shell:

image-20210329223814823

再执行:

1
python -c 'import pty;pty.spawn("/bin/bash")'

密码爆破

image-20210329224006264

jim目录下有备份文件夹,应该有些有用的信息:

image-20210329224039703

存了密码的备份。考虑之前扫描服务器有ssh的服务,利用这个备份密码文件爆破一下jim,把备份文件拖到自己的Kali里,然后:

1
hydra -l jim -P jim ssh://192.168.145.137 > hydra

成功爆破出密码:

image-20210329224228799

最终提权

链接ssh后,jim的目录下的mbox文件是一个由root发来的邮件,考虑到Linux的邮件存储位置 /var/mail, 查看一下:

image-20210329224447789

果然有东西,看看内容:

image-20210329224520223

拿到了charles的密码。

使用sudo 查看当前用户权限:

image-20210329224607821

执行sudo亦需要鉴权,那么切换未charles用户看看:

image-20210329224648082

teehee,这是一个没见过的命令。

image-20210329224724342

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权限:

image-20210329225613004