From ed0c722dc7b4f925a56084ca9edb80f73e8e6510 Mon Sep 17 00:00:00 2001 From: Translator Date: Thu, 11 Jan 2024 00:13:50 +0000 Subject: [PATCH] Translated ['network-services-pentesting/pentesting-ssh.md'] to cn --- network-services-pentesting/pentesting-ssh.md | 71 +++++++++++-------- 1 file changed, 43 insertions(+), 28 deletions(-) diff --git a/network-services-pentesting/pentesting-ssh.md b/network-services-pentesting/pentesting-ssh.md index fe4605a5a..fb0fab454 100644 --- a/network-services-pentesting/pentesting-ssh.md +++ b/network-services-pentesting/pentesting-ssh.md @@ -6,23 +6,23 @@ 支持HackTricks的其他方式: -* 如果你想在**HackTricks中看到你的公司广告**或**下载HackTricks的PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)! +* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)! * 获取[**官方的PEASS & HackTricks商品**](https://peass.creator-spring.com) * 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family) * **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。** -* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享你的黑客技巧。 +* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。 -如果你对**黑客职业**感兴趣,并且想要黑入不可黑的系统 - **我们正在招聘!** (_需要流利的波兰语书写和口语能力_). +如果您对**黑客职业**感兴趣,并且想要黑入不可黑的系统 - **我们正在招聘!**(_需要流利的波兰语书写和口语_)。 {% embed url="https://www.stmcyber.com/careers" %} ## 基本信息 -**SSH或Secure Shell或Secure Socket Shell,** 是一种网络协议,为用户提供了一种通过不安全网络安全访问计算机的**安全方式。** +**SSH或Secure Shell或Secure Socket Shell,** 是一种网络协议,为用户提供了一种通过不安全网络安全访问计算机的**方式。** **默认端口:** 22 ``` @@ -30,21 +30,21 @@ ``` **SSH服务器:** -* [openSSH](http://www.openssh.org) – OpenBSD SSH,包含在BSD、Linux发行版和Windows 10以后的Windows版本中 +* [openSSH](http://www.openssh.org) – OpenBSD SSH,包含在BSD、Linux发行版和Windows 10及以后版本中 * [Dropbear](https://matt.ucc.asn.au/dropbear/dropbear.html) – 为内存和处理器资源有限的环境设计的SSH实现,包含在OpenWrt中 -* [PuTTY](https://www.chiark.greenend.org.uk/\~sgtatham/putty/) – Windows平台的SSH实现,客户端常用,但服务器端使用较少 -* [CopSSH](https://www.itefix.net/copssh) – Windows平台的OpenSSH实现 +* [PuTTY](https://www.chiark.greenend.org.uk/\~sgtatham/putty/) – Windows的SSH实现,客户端常用,但服务器使用较少 +* [CopSSH](https://www.itefix.net/copssh) – Windows的OpenSSH实现 **SSH库(实现服务器端):** -* [libssh](https://www.libssh.org) – 多平台C语言库,实现SSHv2协议,提供[Python](https://github.com/ParallelSSH/ssh-python)、[Perl](https://github.com/garnier-quentin/perl-libssh/) 和 [R](https://github.com/ropensci/ssh)的绑定;它被KDE用于sftp,也被GitHub用于git SSH基础设施 +* [libssh](https://www.libssh.org) – 多平台C语言库,实现SSHv2协议,提供[Python](https://github.com/ParallelSSH/ssh-python)、[Perl](https://github.com/garnier-quentin/perl-libssh/)和[R](https://github.com/ropensci/ssh)的绑定;它被KDE用于sftp,也被GitHub用于git SSH基础设施 * [wolfSSH](https://www.wolfssl.com/products/wolfssh/) – 用ANSI C编写的SSHv2服务器库,针对嵌入式、RTOS和资源受限环境 * [Apache MINA SSHD](https://mina.apache.org/sshd-project/index.html) – 基于Apache MINA的Apache SSHD Java库 * [paramiko](https://github.com/paramiko/paramiko) – Python SSHv2协议库 ## 枚举 -### Banner 抓取 +### Banner Grabbing ```bash nc -vn 22 ``` @@ -87,7 +87,7 @@ use -t to change timeout) (default: 5) $ python3 ssh-audit ``` -[查看动作演示 (Asciinema)](https://asciinema.org/a/96ejZKxpbuupTK9j7h8BdClzp) +[查看实际操作 (Asciinema)](https://asciinema.org/a/96ejZKxpbuupTK9j7h8BdClzp) ### 服务器的公共SSH密钥 ```bash @@ -119,7 +119,7 @@ msf> use scanner/ssh/ssh_enumusers ``` ### [暴力破解](../generic-methodologies-and-resources/brute-force.md#ssh) -一些常见的ssh凭据在[这里](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ssh-betterdefaultpasslist.txt)和[这里](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Common-Credentials/top-20-common-SSH-passwords.txt),以及下面。 +一些常见的ssh凭据[在此](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ssh-betterdefaultpasslist.txt)和[在此](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Common-Credentials/top-20-common-SSH-passwords.txt),以及下面。 ### 私钥暴力破解 @@ -127,7 +127,7 @@ msf> use scanner/ssh/ssh_enumusers ``` https://nmap.org/nsedoc/scripts/ssh-publickey-acceptance.html ``` -或者MSF辅助模块: +或MSF辅助模块: ``` msf> use scanner/ssh/ssh_identify_pubkeys ``` @@ -139,13 +139,13 @@ msf> use scanner/ssh/ssh_identify_pubkeys #### 弱SSH密钥 / Debian可预测的PRNG -一些系统在生成加密材料时使用的随机种子存在已知缺陷。这可能导致密钥空间大幅减少,可以被暴力破解。在受到弱PRNG影响的Debian系统上预生成的密钥集合可在此处获取:[g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh)。 +一些系统在生成加密材料时使用的随机种子存在已知缺陷。这可能导致密钥空间大幅减少,可以被暴力破解。在受到弱PRNG影响的Debian系统上预生成的密钥集合可以在这里找到:[g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh)。 你应该在这里查找受害机器的有效密钥。 ### Kerberos -**crackmapexec** 使用 `ssh` 协议可以使用 `--kerberos` 选项**通过kerberos认证**。\ +**crackmapexec** 使用 `ssh` 协议可以使用 `--kerberos` 选项来**通过kerberos认证**。\ 更多信息请运行 `crackmapexec ssh --help`。 ## 默认凭证 @@ -169,7 +169,7 @@ msf> use scanner/ssh/ssh_identify_pubkeys ## SSH-MitM -如果你与将要使用用户名和密码连接到SSH服务器的受害者处于同一本地网络,你可以尝试**执行中间人攻击来窃取这些凭证:** +如果你和受害者在同一个本地网络中,受害者将使用用户名和密码连接到SSH服务器,你可以尝试**执行MitM攻击来窃取这些凭证:** **攻击路径:** @@ -177,11 +177,24 @@ msf> use scanner/ssh/ssh_identify_pubkeys * 攻击者监控尝试连接到SSH服务器的尝试,并将它们重定向到其SSH服务器 * 攻击者的SSH服务器首先配置为记录所有输入的数据,包括用户的密码,其次,向用户想要连接的合法SSH服务器发送命令以执行它们,然后将结果返回给合法用户 -[**SSH MITM**](https://github.com/jtesta/ssh-mitm) 正是执行上述描述的操作。 +[**SSH MITM**](https://github.com/jtesta/ssh-mitm) 正是如上所述的操作。 -为了捕获实际的中间人攻击,你可以使用ARP欺骗、DNS欺骗或在 [**网络欺骗攻击**](../generic-methodologies-and-resources/pentesting-network/#spoofing) 中描述的其他技术。 +为了捕获并执行实际的MitM,你可以使用ARP欺骗、DNS欺骗或在 [**网络欺骗攻击**](../generic-methodologies-and-resources/pentesting-network/#spoofing) 中描述的其他技术。 -## 配置错误 +## SSH-Snake + +如果你想使用在系统上发现的SSH私钥穿越网络,利用每个系统上的每个私钥寻找新主机,那么 [**SSH-Snake**](https://github.com/MegaManSec/SSH-Snake) 就是你需要的。 + +SSH-Snake自动并递归地执行以下任务: + +1. 在当前系统上,找到任何SSH私钥, +2. 在当前系统上,找到可能接受私钥的任何主机或目的地(user@host), +3. 尝试使用发现的所有私钥SSH进入所有目的地, +4. 如果成功连接到目的地,重复步骤#1 - #4在连接到的系统上。 + +它完全自我复制和自我传播 -- 并且完全无文件。 + +## 配置错误配置 ### Root登录 @@ -200,7 +213,7 @@ msf> use scanner/ssh/ssh_identify_pubkeys ### SFTP命令执行 -SFTP配置中的另一个常见SSH配置错误通常可以看到。大多数时候,当创建一个SFTP服务器时,管理员希望用户有一个SFTP访问权限来共享文件,但不希望在机器上获得远程shell。所以他们认为创建一个用户,给他分配一个占位符shell(如 `/usr/bin/nologin` 或 `/usr/bin/false`)并将他限制在一个监狱中足以避免shell访问或对整个文件系统的滥用。但他们错了,**用户可以在默认命令或shell执行之前,请求在认证后立即执行一个命令**。因此,为了绕过将拒绝shell访问的占位符shell,只需在之前请求执行一个命令(例如 `/bin/bash`),只需这样做: +SSH的另一个常见错误配置通常出现在SFTP配置中。大多数时候,当创建一个SFTP服务器时,管理员希望用户有一个SFTP访问权限来共享文件,但不希望在机器上获得远程shell。所以他们认为创建一个用户,给他一个占位符shell(如 `/usr/bin/nologin` 或 `/usr/bin/false`)并将他chroot在一个监狱中足以避免shell访问或对整个文件系统的滥用。但他们错了,**用户可以在默认命令或shell执行之前,请求在认证后立即执行一个命令**。因此,为了绕过将拒绝shell访问的占位符shell,只需在之前请求执行一个命令(例如 `/bin/bash`),只需执行: ```bash ssh -v noraj@192.168.1.94 id ... @@ -223,7 +236,9 @@ debug1: Exit status 0 $ ssh noraj@192.168.1.94 /bin/bash ``` -以下是针对用户`noraj`的安全SFTP配置示例(`/etc/ssh/sshd_config` - openSSH): +```plaintext +这是为用户 `noraj` 配置安全SFTP的一个例子(`/etc/ssh/sshd_config` - openSSH): +``` ``` Match User noraj ChrootDirectory %h @@ -233,11 +248,11 @@ PermitTunnel no X11Forwarding no PermitTTY no ``` -这种配置将仅允许SFTP:通过强制启动命令禁用shell访问,并禁用TTY访问,但也禁用所有类型的端口转发或隧道。 +此配置将仅允许SFTP:通过强制启动命令禁用shell访问,并禁用TTY访问,但也禁用所有类型的端口转发或隧道。 ### SFTP 隧道 -如果你可以访问SFTP服务器,你也可以通过它隧道转发你的流量,例如使用常见的端口转发: +如果您可以访问SFTP服务器,您也可以通过此服务器隧道传输您的流量,例如使用常见的端口转发: ```bash sudo ssh -L :: -N -f @ ``` @@ -280,16 +295,16 @@ id_rsa ## Fuzzing * [https://packetstormsecurity.com/files/download/71252/sshfuzz.txt](https://packetstormsecurity.com/files/download/71252/sshfuzz.txt) -* [https://www.rapid7.com/db/modules/auxiliary/fuzzers/ssh/ssh_version_2](https://www.rapid7.com/db/modules/auxiliary/fuzzers/ssh/ssh_version_2) +* [https://www.rapid7.com/db/modules/auxiliary/fuzzers/ssh/ssh\_version\_2](https://www.rapid7.com/db/modules/auxiliary/fuzzers/ssh/ssh\_version\_2) ## 参考资料 -* 你可以在[https://www.ssh-audit.com/hardening_guides.html](https://www.ssh-audit.com/hardening_guides.html)找到关于如何加固SSH的有趣指南 +* 你可以在[https://www.ssh-audit.com/hardening\_guides.html](https://www.ssh-audit.com/hardening\_guides.html)找到关于如何加固SSH的有趣指南 * [https://community.turgensec.com/ssh-hacking-guide](https://community.turgensec.com/ssh-hacking-guide) -如果你对**黑客职业**感兴趣,并且想要黑进那些不可黑的系统 - **我们正在招聘!**(_需要流利的波兰语书写和口语_)。 +如果你对**黑客职业**感兴趣,并且想要hack那些不可hack的东西 - **我们正在招聘!**(_需要流利的波兰语书写和口语_)。 {% embed url="https://www.stmcyber.com/careers" %} @@ -313,14 +328,14 @@ Command: msfconsole -q -x 'use auxiliary/scanner/ssh/ssh_version; set RHOSTS {IP ```
-从零到英雄学习AWS黑客技术,通过 htARTE (HackTricks AWS Red Team Expert) +从零到英雄学习AWS黑客技术,通过 htARTE (HackTricks AWS Red Team Expert)! 支持HackTricks的其他方式: -* 如果您想在**HackTricks中看到您的公司广告**或**以PDF格式下载HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)! +* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)! * 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com) * 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family) -* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。** +* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**telegram群组**](https://t.me/peass)或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。** * **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。