mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 12:43:23 +00:00
Translated ['network-services-pentesting/pentesting-ssh.md'] to cn
This commit is contained in:
parent
0b2bd48d1d
commit
ed0c722dc7
1 changed files with 43 additions and 28 deletions
|
@ -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>
|
||||
|
|
Loading…
Reference in a new issue