当前位置: 首页 > article >正文

红队攻防 | 凭证获取的10个方法,零基础入门到精通,收藏这一篇就够了

作为红队成员,就像许多其他APT一样,我们须找到通往目标网络和资产的方法,因此要付出大量努力,从我们可以获得的任何资源中获取登录凭证或令牌。

这并不意味着我们只寻找登录特定服务的用户名和密码,在许多情况下,我们还需要寻找令牌,API密钥,甚至有效Cookie。特别是在采用最佳安全实践并在许多不同服务中使用2FA/MFA的目标中。

有很多方法可以找到凭证或令牌,在这里**,我将展示我发现的10种在我的工作中非常有用的方法,而且不需要进行sg。**

我们要找什么样的凭证?

我们之前提到的有不同的类型和不同的用例。

第一种当是用户名和密码。找到用户名总是好的,如果他们持有高权限,这可能会节省我们横向移动和权限提升工作。虽然有很多情况下,一对好的用户名和密码可能能够直接让我们拿下目标,但有两点我们必须考虑:

  • 我们不可能每次都可以找到好用的用户名和密码

  • 即使我们找到了,我们还可能需要面对2FA验证

因此,我们需要将目光转移到其他凭据类型。

Cookies我们都知道。但是这是我们比较难得到的,但一旦我们得到了,它比密码更强大,cookie可以绕过99%的2FA。稍后,我们将讨论从目标收集cookie的方法。

我们要讨论的最后一种凭证是令牌和API密钥。这种凭证也是绕过2FA的一种很好的方式,因为它通常是在身份验证过程之后发布的令牌,或者可能是应该用于自动服务的令牌/密钥。令牌和密钥有很多种,不同类型的令牌(与Cookie不同)的用法可能不同。看看这个keyhacks的repo,了解更多关于常见类型的服务令牌使用的信息。

让我们深入了解一些练习方法,以便在我们的参与中收获尽可能多的凭据。

方法#1:源代码获取

一般闭源商用源代码是不能从网上直接下载的,因此这个方法不推荐,如果涉及商用代码信息窃取是违法的。

方法#2:网上泄露的数据

有一些资源包含从不同漏洞泄露的大量用户名和密码集合。例如,几年前发生的LinkedIn违规事件。但人与人一样,通常不会更改密码,除非他们被迫更改,即使如此,很多时候也会从“coolcat2023”更改为“coolcat2024”。

下面是我在信息收集时通常使用的工具:

  • breachdirectory.com

  • dehashed.com

  • leak-lookup.com

BreachDirectory搜索结果

在某些情况下,结果可能不是明文密码,而是散列密码的集合。在这种情况下需要对其进行破解,我们可以使用hashcat结合我们的字典t(就像一个简单的rockyou列表),或者我们可以使用一个在线破解工具,它已经包含了一些巨大的列表:

  • cloudcracker.net

  • hash-cracker.com

  • crackstation.net

  • onlinehashcrack.com

  • 等等

方法#3:GitHub Dorking

尽管大多数人对github很熟悉,但仍然有很多红队和bug猎人会忽略这个点。让我们来谈谈这种方法的优点和缺点。

优点:

  • 公开可用,我们可以使用一些智能关键字,使我们更快搜索凭据

  • 存储库可能包含各种凭证:密码、令牌和API密钥!

  • 在程序代码中找到c凭证可以节省我们的时间,因为其中往往会包含凭证的用法

缺点:

  • 在大多数情况下,公司不会向公众公开他们的敏感存储库,通常是错误的

  • 有时这种github的Dorking可能需要很多时间,

值得一提的是,即使仓库本身没有凭证,它有时可以帮助我们更好地理解如何使用我们从其他地方找到的凭证。

这种方法可能有点耗时,但有一些工具可以自动化这个过程。我最喜欢的工具之一是Trufflehog:https://github.com/trufflesecurity/trufflehog,它可以以docker方式安装运行。

Trufflehog示例的输出

此外,获取更多种类的dorking工具和github关键字,可以看到HackTricks:https://book.hacktricks.xyz/generic-methodologies-and-resources/external-recon-methodology/github-leaked-secrets。

方法#4:WaybackMachine

有时候,为了从目标那里获得一些有效的凭证,我们可以查看目标网站的历史页面。WaybackMachine:https://archive.org/是挖掘我们目标存档的最佳资源。WaybackMachine不仅可以从不同时间恢复网页,还可以从GET请求中收集URL。

很多时候,当我有一个黑盒目标,没有任何办法注册自己的用户,我去WaybackMachine搜索我的目标的一些相关域和子域。之后,我打开结果页面中的URL选项卡,并按日期(最新到最新)排序。在右上角我们有一个搜索框,我们可以用它来查找具有特定关键字的URL,如user,email,uuid,password,key,secret,token等

从WaybackMachine捕获有效的JWT

我之前在漏洞挖掘中通过这个网站直接挖掘到了目标的IDOR漏洞。

方法#5:postman收集

Postman是一个测试、构建和调试API的平台,这是开发人员构建API的最常用工具之一。

Postman可以用于制作HTTP请求:参数,主体数据,头部,令牌等等。这个工具在开发人员中非常受欢迎,因为他们可以专注于构建后端并轻松测试它,而不需要前端在中间传递数据。

Postman界面(来自Postman.com)

那么,为什么这个工具对黑客也很重要呢?

现在,为了使用Postman,开发人员需要在Postman.com中创建一个帐户。就像在GitHub中一样,在创建帐户并开始处理项目后,他们需要配置项目(“集合”)的类型:公共或私人

在很多情况下,**我在公共的项目集合中看到过敏感的凭证,主要是API密钥和令牌,但也有cookie,并拥有管理员权限。**对于许多组织来说,这绝对是一个安全盲点,即使是大型和(几乎)安全的公司。

Postman集合中的Cookie、key、token和uid

只需访问Postman.com并搜索我们的目标集合,我们就可以找到有时比用户名和密码更有价值的有价值的数据。如果我们找到JWT或访问令牌,我们可以绕过2FA!

在Postman集合中找到授权header

并且这些凭据通常由应用程序的开发人员使用,因此它通常拥有整个应用程序的管理员权限。

方法#6:特殊文件路径

当我们进行信息收集(ffuf,gobuster,dirbuster等)时,我们有时会在单词列表中遗漏一些重要的文件路径,这些路径是默认文件的凭据。我举一些具体的例子。

VSCode SFTP配置文件。VSCode允许开发人员通过安装SFTP扩展来远程编辑文件。如果开发人员安装了这个扩展,他/她可以在本地VSCode编写代码并会自动同步保存在远程节点如-生产服务器。但问题在哪里?有一个小的配置文件,很多时候可能会有遗留。该文件包含IP地址、用户名和密码,用于将代码自动发送到远程服务器。如果我们发现类似的东西,我们可能可以用FTP连接到服务器,有时这些是SSH的相同密码!

使用VSCode SFTP扩展的FTP凭据

**Config.json文件。**这些文件对我们来说也是非常有价值的,它们拥有各种各样的信用:

config.json文件

Git文件。这是我的最爱之一。fuzzing /.git文件,如果你找到这个端点,使用GitTools:https://github.com/internetwache/GitTools这样的工具来转储和提取文件。一个网站的git文件夹在大多数情况下,代码包含对我们有用的硬编码密钥。为了自动化从转储的git目录中寻找秘密,我推荐使用Trufflehog。

方法#7:公开的Docker注册表

就像公共GitHub存储库和公共Postman集合一样,我们可以找公开可用的Docker注册表。我见过许多公司开放自己的注册表来上传他们的Docker镜像并管理它(而不是向DockerHub付费)。但他们忘记了他们必须配置一个安全的密码来访问这个注册表。

结果是这些公司将他们的Docker镜像上传到这些注册中心,任何人都可以下载这些Docker镜像,其中包含公司的纯源代码。就像是找到了目标的代码库!

对此,请看到本公众号中的文章:《安全盲点:如何从Docker Registry到RCE》,这里不会在这里深入讨论细节。

方法#8:JavaScript文件

我们可以通过JavaScript了解很多关于网站的信息。JavaScript包含前端逻辑的一部分,它告诉我们当XHR/AJAX请求被发送时会发生什么,API路径等等。

除此之外,JavaScript也可能包含一些凭证。在大多数情况下,它将是一些API密钥,Firebase令牌和其他第三方密钥。但在其他情况下,甚至可能是JWT的服务和密码留在代码中。

在目标的JavaScript文件中找到有效的JWT

上面的图片来自我的一个项目,发现了一个拥有高级权限的“测试”用户的JWT。这有助于进一步寻找后面的漏洞。

方法#9:通过已拿下的目标横向

假设我们已经设法获得了对目标服务器的特权访问权限,并且我们希望横向移动以获得对其他资产的访问权限,我们可以考虑使用这些已经拿下的节点作为密码陷阱。

在大多数情况下,服务器的密码在公司的其他服务器之间共享。特别是当有像Ansible这样的自动化时,为了做自动化的事情,它必须使用SSH凭据连接到每个节点。如果有一个共享的密码,你可以击败整个网络,只需危及一台服务器。

如果我们在一个随机的Ubuntu服务器上有root用户,我们可以安装一个工具,如3Snake,用于转储每个SSH密码或键盘记录SUDO命令。如果我们等到下一次人类/自动化登录到我们的拿下的服务器时,我们将获取密码,并能够将其密码喷洒到其他服务器。

方法#10:注入恶意JavaScript

在这种情况下,我们可以通过登录表单或cookie更改或注入恶意JavaScript代码到网页。这可以通过两种主要方式来实现:

  • 注入存储XSS键盘记录程序

  • 存储加载到网页的静态文件(JS、CSS、图像)的Bucket S3

关于第二种方式(使用S3桶),请看本公众号中的文章《红队攻防 | 从S3存储桶到企业内部专网》。

如果我们将目光放在加载到网站的JavaScript内容上,我们可以窃取使用该网站的所有用户的凭据!

总结

在几乎每一次攻防、红队和bug赏金中,凭据都能改变游戏规则。我们在信息收集和漏洞研究上投入了大量的精力和时间,通过找到一些有效的凭据可能会节省我们大量的时间,并推动整个操作向前发展。

我在这里提到的大多数方法都很简单,并且不会消耗很多时间。

题外话

黑客&网络安全如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

1.学习路线图

在这里插入图片描述

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。

2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。

在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。


http://www.kler.cn/news/364739.html

相关文章:

  • 新增Python运行环境、支持病毒扫描和计划任务短信告警,1Panel开源面板v1.10.20 LTS版本发布
  • 操作系统期末|考研复习知识点汇总 - 持续更新
  • 百度文心一言接入流程-java版
  • Java老鸟前端小白uniapp+uview开发小程序第2天
  • 登录时用户名密码加密传输(包含前后端代码)
  • 51单片机应用开发(进阶)---外部中断(按键+数码管显示0-F)
  • locust断点调试(pdb)
  • Linux 字符设备驱动 之 无法归类的《杂项设备驱动》
  • @SpringBootApplication
  • CSS揭秘:7. 伪随机背景
  • Sigrity Power SI Model Extraction模式如何提取电源网络的S参数和阻抗操作指导(一)
  • java脚手架系列10-统一缓存、分布式锁
  • 怎么做系统性能优化
  • WPF:Binding数据绑定
  • 接地电阻柜的生产流程
  • java项目之电影评论网站(springboot)
  • 【linux】centos7 安装openjdk-17
  • 笔记:WPF中MarkupExtension使用的IServiceProvider参数都有哪些
  • 星海智算:【王宝宝-ComfyUI-SD3】无需部署一键启动
  • ARM学习(33)英飞凌(infineon)PSOC 6 板子学习
  • 回归、分类模型的评估指标
  • G1(Garbage First)垃圾回收实战
  • 木木模拟器 MuMuPlayer Pro for Mac 下载安装详细教程(无需激活)
  • 人工智能_机器学习100_PCA数据降维算法_协方差和散度矩阵_深入理解_分析_协方差和散度矩阵计算过程---人工智能工作笔记0225
  • Kubernetes集群搭建容器云需要几台服务器?
  • 两个mp3音频怎么合成一个?音频合成的多个好用方法教程