freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

VulnHub Empire Breakout
2022-08-05 22:36:33
所属地 湖南省

靶场搭建

靶场下载地址:https://www.vulnhub.com/series/empire,507/

下载下来是虚拟机压缩文件,直接用Vmvare导出就行

打开后把网络模式设置为NAT模式(桥接模式也可以)

开启虚拟机

看到靶机ip为:192.168.109.129

渗透测试

先扫描一下靶机开启了那些端口和服务

nmap -sS -p 0-65535 -Pn -O -sV 192.168.109.129

开启了80端口,存在web,为Apache服务器

开启了445、139端口存在SMB文件共享服务

开启了10000、20000端口,存在Webmin MiniServ服务(Webmin 是功能强大的基于 Web 的 Unix/linux 系统管理工具。管理员通过浏览器访问 Webmin 的各种管理功能并完成相应的管理操作。)

先访问web

查看源码发现一段提示

给了一段奇怪的编码


)

++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>++++++++++++++++.++++.>>+++++++++++++++++.----.<++++++++++.-----------.>-----------.++++.<<+.>-.--------.++++++++++++++++++++.<------------.>>---------.<<++++++.++++++.

这应该是密码经过某种加密或者编码形成的

经过查询这是一种brainfuck加密方法

brainfuck 语言用 > < + - . , [ ] 八种符号来替换C语言的各种语法和命令,具体规则如下: 
Brainfuck 编程语言由八个命令组成,每个命令都表示为一个字符。 
> 增加指针。 
< 减少指针。 
+ 增加指针处的字节。 
- 减少指针处的字节。 
. 输出指针处的字节。 
, 输入一个字节并将其存储在指针处的字节中。 
[ 跳过匹配项] 如果指针处的字节为零。 
] 向后跳转到匹配的 [ 除非指针处的字节为零。 
Brainfuck 命令的语义也可以用 C 语言简洁地表达,如下(假设 p 之前已定义为 char*): 
> 变为 ++p; 
< 变成 --p; 
+ 变为 ++*p; 
- 变成 --*p; 
. 变成 putchar(*p); 
, 变成 *p = getchar(); 
[ 变成 while (*p) { 
] 变成 } 

利用在线工具解密解出密码为:

.2uqPEfj3D<P'a-3

目前不知道是用在哪里的密码,我们先看看10000和20000端口

10000和20000端口都为webmin后台登陆页面

前面得到的密码可能是用在这里,但是不知道用户名,这里需要用到kali自带的工具enum4linux

Enum4linux是一个用于枚举来自Windows和Samba系统的信息的工具。 它试图提供与以前从www.bindview.com可用的enum.exe类似的功能。

它是用Perl编写的,基本上是一个包装Samba工具smbclient,rpclient,net和nmblookup。

用法: ./enum4linux.pl [选项] ip地址

枚举选项:
     -U        获取用户列表
     -M        获取机器列表*
     -S        获取共享列表
     -P        获取密码策略信息
     -G        获取组和成员列表
     -d        详述适用于-U和-S
     -u user   用户指定要使用的用户名(默认"")
     -p pass   指定要使用的密码(默认为"")

以下选项是enum.exe未实现的: -L, -N, -D, -f

其他选项:
    -a        做所有简单枚举(-U -S -G -P -r -o -n -i),如果您没有提供任何其他选项,则启用此选项
    -h        显示此帮助消息并退出
    -r        通过RID循环枚举用户
    -R range  RID范围要枚举(默认值:500-550,1000-1050,隐含-r)
    -K n      继续搜索RID,直到n个连续的RID与用户名不对应,Impies RID范围结束于999999.对DC有用
    -l        通过LDAP 389 / TCP获取一些(有限的)信息(仅适用于DN)
    -s        文件暴力猜测共享名称
    -k user   远程系统上存在的用户(默认值:administrator,guest,krbtgt,domain admins,root,bin,none)
              用于获取sid与“lookupsid known_username”
              使用逗号尝试几个用户:“-k admin,user1,user2”
    -o        获取操作系统信息
    -i        获取打印机信息
    -w wrkg   手动指定工作组(通常自动找到)
    -n        做一个nmblookup(类似于nbtstat)
    -v        详细输出,显示正在运行的完整命令(net,rpcclient等)


enum4linux -a 192.168.109.129

发现用户名cyber,并且成功登录20000端口后台,10000端口没有成功

发现文件上传功能和命令执行功能

发现一个flag

反弹shell

在/etc目录下发现可执行python

不是完整shell,使用pyhton中的pty模块反弹一个完整的shell环境

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

提权

发现tar有读写执行权限

在/var/backups目录下发现.old_pass.bak文件,但是没有读取权限

可以利用tar来读取,先进入/tmp目录,因为/tmp目录下具有权限,先将/var/backups目录压缩,再将压缩包解压,即可读取文件

读取到密码为Ts&4&YurgtRX(=~h

试了一下为root的密码

成功过关


# 渗透测试 # web安全 # 系统安全 # 网络安全技术
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录