• HTB-靶机-Fortune


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

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

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

    执行命令 autorecon 10.10.10.127 -o ./Fortune-autorecon

    也可以使用官方的方法进行快速的扫描

    sudo masscan -p1-65535,U:1-65535 10.10.10.127 --rate=1000 -p1-65535,U:1-65535 -e tun0 > ports
    ports=$(cat ports | awk -F " " '{print $4}' | awk -F "/" '{print $1}' | sort -n | tr '
    ' ',' | sed 's/,$//')
    sudo nmap -Pn -sV -sC -p$ports 10.10.10.127
    或者用下面简单的方式扫描下
    sudo nmap -sT -p- --min-rate 10000 -oA alltcp 10.10.10.127

    发现开放了3个端口,22端口就不试了,没必要爆破,直接访问80端口,发现是一个供选择的选项页面,随便选一个抓包,看到post请求有可变参数,测试了下存在命令执行,使用curl直接操作执行命令

    curl -s -X POST http://10.10.10.127/select -d "db=;id" |html2text
    
    html2text 这个需要使用apt-get install html2text装一下

    再使用命令sslyze分析下目标https的443端口,得到如下证书相关信息

    sslyze --regular 10.10.10.127

    经过一番下面的命令操作

    得知目标系统有3个用户,然后这3个用户的所有文件夹及文件,发现重要的证书信息

    得到目标靶机上的证书私钥和公钥,将intermediate.key.pem  intermediate.cert.pem这两个文件的内容拷贝到本地kali中,用途是因为前面扫描出来的443端口,走https无法正常访问,需要使用此证书信息重新生成ptx证书导入到浏览器,才能正常访问,相关文档可参考:

    https://www.openssl.org/docs/man1.0.2/man1/genrsa.html

    https://www.openssl.org/docs/manmaster/man1/req.html

    https://www.openssl.org/docs/man1.0.2/man1/x509.html

    https://www.openssl.org/docs/manmaster/man1/pkcs12.html

    根据CA证书信息签发证书
    
    openssl genrsa -out cntf.key 2048
    openssl req -new -key cntf.key -out cntf.csr
    openssl x509 -req -in cntf.csr -CA intermediate.cert.pem -CAkey intermediate.key.pem -CAcreateserial -out cntf.pem -days 1024
    openssl pkcs12 -export -out cntf.pfx -inkey cntf.key -in cntf.pem -certfile intermediate.cert.pem
    
    将上述得到的pfx证书导入到浏览器然后访问https://10.10.10.127 看到一个uri地址,然后点击即可生成公钥和私钥信息

    上述完成之后开始导入到火狐浏览器上

    成功访问之后发现如下页面提示需要使用authpf相关命令获取网络防火墙开放的权限

    点击generate发现含有公钥和私钥

    此时还不知道目标含有哪些用户,再次用上面的rce执行命令查看有哪几个用户

    根据上面的显示只有nfsuser用户对应得shell是上面要求得authpf,且只有通过authpf命令才能再次放行目标靶机得网络防火墙策略,所以直接ssh过去就可以通过authpf命令开放网络防火墙

    再次使用nmap扫描一把

    发现开发了 2049,8081端口访问8081端口看到如下信息

    提示服务不可用,让看看charlie用户得详细信息,那我们看看2049端口,这个端口就是开放得nfs服务,我们直接用命令查看是否开放共享文件夹

    还真开放了一个home目录文件夹,直接挂载到本地来

    刚好我使用得当前用户kali对应得uid是1000真好和目标靶机得用户charlie是一样得,所以通过nfs挂载目录到本地就可以直接获取用户charlie得权限

    通过上面就可以读取user.txt信息了,为了方便,我直接将本地kali得公钥写入到此用户.ssh目录下得认证文件,然后在kali上远程ssh登录

    到了此处便可以登录到目标系统上了,回看前面8081端口提示pgadmin4相关得服务,和上述邮件提示反馈设置得pgadmin4的dba密码就是跟root密码一样,那么我们可以直接进行代码审计找出加密dba密码的加密算法,从而解密dba密码之后就可以以dba密码登录root用户,这里代码审计过程我就略过了,详细可以参考如下:

    https://0xdf.gitlab.io/2019/08/03/htb-fortune.html#priv-charlie--root

    具体操作如下:

    找到dba加密的密码信息

    找到用户bob和charlie的加密信息

    开始解密密码,下面解密代码模块

    wget https://raw.githubusercontent.com/postgres/pgadmin4/e23d307c56e92453dc5ea108214c52bdb2409705/web/pgadmin/utils/crypto.py

    得到下面的密码直接su切换至root用户权限
    R3us3-0f-a-P4ssw0rdl1k3th1s?_B4D.ID3A!

    迷茫的人生,需要不断努力,才能看清远方模糊的志向!
  • 相关阅读:
    设计模式 策略模式
    Java 集合 LinkedList的ListIterator
    Java 集合 JDK1.7的LinkedList
    Java 集合 集合与数组之间的转换
    Java Object 对象拷贝答疑
    Java Object 对象拷贝
    Java 集合 fail-fast机制 [ 转载 ]
    .net知识点汇总
    Javascript知识点汇总-初级篇
    Javascript实用技巧
  • 原文地址:https://www.cnblogs.com/autopwn/p/14606293.html
Copyright © 2020-2023  润新知