Translated ['network-services-pentesting/pentesting-ssh.md'] to cn

This commit is contained in:
Translator 2024-01-11 00:13:50 +00:00
parent 0b2bd48d1d
commit ed0c722dc7

View file

@ -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来分享的黑客技巧。
</details>
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
如果对**黑客职业**感兴趣,并且想要黑入不可黑的系统 - **我们正在招聘!** (_需要流利的波兰语书写和口语能力_).
如果对**黑客职业**感兴趣,并且想要黑入不可黑的系统 - **我们正在招聘!**_需要流利的波兰语书写和口语_
{% 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 <IP> 22
```
@ -87,7 +87,7 @@ use -t to change timeout)
(default: 5)
$ python3 ssh-audit <IP>
```
[查看动作演示 (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 <local_port>:<remote_host>:<remote_port> -N -f <username>@<ip_compromised>
```
@ -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)
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
如果你对**黑客职业**感兴趣,并且想要黑进那些不可黑的系统 - **我们正在招聘!**_需要流利的波兰语书写和口语_
如果你对**黑客职业**感兴趣,并且想要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
```
<details>
<summary><strong>从零到英雄学习AWS黑客技术通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
<summary><strong>从零到英雄学习AWS黑客技术通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
支持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来分享您的黑客技巧。
</details>