hacktricks/network-services-pentesting/pentesting-ssh.md

360 lines
30 KiB
Markdown
Raw Normal View History

2023-07-07 23:42:27 +00:00
# 22 - SSH/SFTPのペンテスト
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<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>
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](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を提出してください。
2022-04-28 16:01:33 +00:00
</details>
2022-10-22 15:01:16 +00:00
<img src="../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="original">
2022-05-24 00:07:19 +00:00
2023-07-07 23:42:27 +00:00
もし、**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したい場合は、**採用中です!**(流暢なポーランド語の読み書きが必要です)。
2022-05-24 00:07:19 +00:00
{% embed url="https://www.stmcyber.com/careers" %}
2023-07-07 23:42:27 +00:00
## 基本情報
2023-07-07 23:42:27 +00:00
**SSHまたはSecure ShellまたはSecure Socket Shell**は、ユーザーが**安全でないネットワークを介してコンピュータに安全にアクセスする**ためのネットワークプロトコルです。
2023-07-07 23:42:27 +00:00
**デフォルトポート:** 22
2022-04-27 08:21:36 +00:00
```
22/tcp open ssh syn-ack
```
2023-07-07 23:42:27 +00:00
**SSHサーバー:**
2023-07-07 23:42:27 +00:00
* [openSSH](http://www.openssh.org) OpenBSD SSH、BSD、Linuxディストリビューション、およびWindows 10以降のWindowsに搭載されています。
* [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の実装です。
2020-12-14 16:53:57 +00:00
2023-07-07 23:42:27 +00:00
**SSHライブラリサーバーサイドの実装:**
2020-12-14 16:53:57 +00:00
2023-07-07 23:42:27 +00:00
* [libssh](https://www.libssh.org) SSHv2プロトコルを実装したマルチプラットフォームのCライブラリで、[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 SSHD javaライブラリはApache MINAに基づいています。
* [paramiko](https://github.com/paramiko/paramiko) Python SSHv2プロトコルライブラリ
2020-12-14 16:53:57 +00:00
2023-07-07 23:42:27 +00:00
## 列挙
2023-07-07 23:42:27 +00:00
### バナーの取得
```bash
nc -vn <IP> 22
```
2023-07-07 23:42:27 +00:00
### 自動化されたssh-audit
2023-07-07 23:42:27 +00:00
ssh-auditは、sshサーバーおよびクライアントの設定監査のためのツールです。
2020-09-25 08:37:19 +00:00
2023-07-07 23:42:27 +00:00
[https://github.com/jtesta/ssh-audit](https://github.com/jtesta/ssh-audit)は、[https://github.com/arthepsy/ssh-audit/](https://github.com/arthepsy/ssh-audit/)から更新されたフォークです。
2020-09-25 08:37:19 +00:00
2023-07-07 23:42:27 +00:00
**機能:**
2023-07-07 23:42:27 +00:00
* SSH1およびSSH2プロトコルサーバーサポート
* SSHクライアントの設定を分析
* バナーを取得し、デバイスまたはソフトウェアとオペレーティングシステムを認識し、圧縮を検出
* キーエクスチェンジ、ホストキー、暗号化、メッセージ認証コードのアルゴリズムを収集
* アルゴリズム情報を出力(利用可能な期間、削除/無効化、安全でない/弱い/レガシーなど)
* アルゴリズムの推奨事項を出力(認識されたソフトウェアバージョンに基づいて追加または削除)
* セキュリティ情報を出力関連する問題、割り当てられたCVEリストなど
* アルゴリズム情報に基づいたSSHバージョンの互換性を分析
* OpenSSH、Dropbear SSH、libsshからの過去の情報
* LinuxとWindowsで実行可能
* 依存関係なし
```bash
usage: ssh-audit.py [-1246pbcnjvlt] <host>
2023-07-07 23:42:27 +00:00
-1, --ssh1 force ssh version 1 only
-2, --ssh2 force ssh version 2 only
-4, --ipv4 enable IPv4 (order of precedence)
-6, --ipv6 enable IPv6 (order of precedence)
-p, --port=<port> port to connect
-b, --batch batch output
-c, --client-audit starts a server on port 2222 to audit client
software config (use -p to change port;
use -t to change timeout)
-n, --no-colors disable colors
-j, --json JSON output
-v, --verbose verbose output
-l, --level=<level> minimum output level (info|warn|fail)
-t, --timeout=<secs> timeout (in seconds) for connection and reading
(default: 5)
$ python3 ssh-audit <IP>
```
2023-07-07 23:42:27 +00:00
### サーバーの公開SSHキー
2023-07-07 23:42:27 +00:00
```plaintext
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZz6Xz3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z
```bash
ssh-keyscan -t rsa <IP> -p <PORT>
```
2023-07-07 23:42:27 +00:00
### 弱い暗号アルゴリズム
2023-07-07 23:42:27 +00:00
これはデフォルトで **nmap** によって発見されます。しかし、**sslscan** や **sslyze** も使用することができます。
2021-07-06 18:15:59 +00:00
2023-07-07 23:42:27 +00:00
### Nmap スクリプト
2021-07-06 18:15:59 +00:00
```bash
nmap -p22 <ip> -sC # Send default nmap scripts for SSH
nmap -p22 <ip> -sV # Retrieve version
2023-07-07 23:42:27 +00:00
nmap -p22 <ip> --script ssh2-enum-algos # Retrieve supported algorythms
2021-07-06 18:15:59 +00:00
nmap -p22 <ip> --script ssh-hostkey --script-args ssh_hostkey=full # Retrieve weak keys
nmap -p22 <ip> --script ssh-auth-methods --script-args="ssh.user=root" # Check authentication methods
```
2022-05-01 13:25:53 +00:00
### Shodan
* `ssh`
2023-07-07 23:42:27 +00:00
## ユーザー名、パスワード、および秘密鍵のブルートフォース攻撃
2023-07-07 23:42:27 +00:00
### ユーザー名の列挙
2023-07-07 23:42:27 +00:00
OpenSSHの一部のバージョンでは、タイミング攻撃を使用してユーザーを列挙することができます。この脆弱性を悪用するために、Metasploitモジュールを使用することができます。
2022-04-27 08:21:36 +00:00
```
msf> use scanner/ssh/ssh_enumusers
```
2023-07-07 23:42:27 +00:00
### [ブルートフォース](../generic-methodologies-and-resources/brute-force.md#ssh)
2023-07-07 23:42:27 +00:00
一般的な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)にあります。
2023-07-07 23:42:27 +00:00
### プライベートキーのブルートフォース
2023-07-07 23:42:27 +00:00
使用可能なsshのプライベートキーがわかっている場合は、試してみましょう。nmapスクリプトを使用できます。
2022-04-27 08:21:36 +00:00
```
https://nmap.org/nsedoc/scripts/ssh-publickey-acceptance.html
```
2023-07-07 23:42:27 +00:00
または、MSFの補助モジュール:
2022-04-27 08:21:36 +00:00
```
msf> use scanner/ssh/ssh_identify_pubkeys
```
2023-07-07 23:42:27 +00:00
または、`ssh-keybrute.py`ネイティブのPython3で、軽量でレガシーアルゴリズムが有効になっていますを使用することもできます[snowdroppe/ssh-keybrute](https://github.com/snowdroppe/ssh-keybrute)。
2023-07-07 23:42:27 +00:00
#### ここで悪名高い鍵を見つけることができます:
2022-04-27 08:21:36 +00:00
{% embed url="https://github.com/rapid7/ssh-badkeys/tree/master/authorized" %}
2023-07-07 23:42:27 +00:00
#### 弱いSSH鍵/Debianの予測可能なPRNG
一部のシステムでは、暗号化素材を生成するために使用されるランダムシードに既知の欠陥があります。これにより、ブルートフォース攻撃が可能な鍵スペースが劇的に減少する場合があります。弱いPRNGによって影響を受けたDebianシステムで生成された事前生成されたキーのセットは、ここで入手できます[g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh)。
2023-07-07 23:42:27 +00:00
被害者のマシンの有効なキーを検索するために、ここを調べるべきです。
2022-05-01 13:25:53 +00:00
### Kerberos
2020-09-20 21:47:09 +00:00
2023-07-07 23:42:27 +00:00
`ssh`プロトコルを使用する**crackmapexec**は、`--kerberos`オプションを使用して**Kerberosを介して認証**することができます。詳細については、`crackmapexec ssh --help`を実行してください。
2020-09-20 21:47:09 +00:00
2023-07-07 23:42:27 +00:00
## デフォルトの資格情報
2023-07-07 23:42:27 +00:00
| **ベンダー** | **ユーザー名** | **パスワード** |
2022-04-27 08:21:36 +00:00
| ---------- | ----------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| APC | apc, device | apc |
| Brocade | admin | admin123, password, brocade, fibranne |
| Cisco | admin, cisco, enable, hsa, pix, pnadmin, ripeop, root, shelladmin | admin, Admin123, default, password, secur4u, cisco, Cisco, \_Cisco, cisco123, C1sco!23, Cisco123, Cisco1234, TANDBERG, change\_it, 12345, ipics, pnadmin, diamond, hsadb, c, cc, attack, blender, changeme |
| Citrix | root, nsroot, nsmaint, vdiadmin, kvm, cli, admin | C1trix321, nsroot, nsmaint, kaviza, kaviza123, freebsd, public, rootadmin, wanscaler |
| D-Link | admin, user | private, admin, user |
| Dell | root, user1, admin, vkernel, cli | calvin, 123456, password, vkernel, Stor@ge!, admin |
| EMC | admin, root, sysadmin | EMCPMAdm7n, Password#1, Password123#, sysadmin, changeme, emc |
| HP/3Com | admin, root, vcx, app, spvar, manage, hpsupport, opc\_op | admin, password, hpinvent, iMC123, pvadmin, passw0rd, besgroup, vcx, nice, access, config, 3V@rpar, 3V#rpar, procurve, badg3r5, OpC\_op, !manage, !admin |
| Huawei | admin, root | 123456, admin, root, Admin123, Admin@storage, Huawei12#$, HwDec@01, hwosta2.0, HuaWei123, fsp200@HW, huawei123 |
| IBM | USERID, admin, manager, mqm, db2inst1, db2fenc1, dausr1, db2admin, iadmin, system, device, ufmcli, customer | PASSW0RD, passw0rd, admin, password, Passw8rd, iadmin, apc, 123456, cust0mer |
| Juniper | netscreen | netscreen |
| NetApp | admin | netapp123 |
| Oracle | root, oracle, oravis, applvis, ilom-admin, ilom-operator, nm2user | changeme, ilom-admin, ilom-operator, welcome1, oracle |
| VMware | vi-admin, root, hqadmin, vmware, admin | vmware, vmw@re, hqadmin, default |
2022-05-01 13:25:53 +00:00
## SSH-MitM
2022-04-27 08:21:36 +00:00
2023-07-07 23:42:27 +00:00
もし、被害者がユーザー名とパスワードを使用してSSHサーバーに接続するためにローカルネットワークにいる場合、その資格情報を盗むために**MitM攻撃を実行する**ことができます。
2022-04-27 08:21:36 +00:00
2023-07-07 23:42:27 +00:00
**攻撃経路:**
2022-04-27 08:21:36 +00:00
2023-07-07 23:42:27 +00:00
- ユーザートラフィックは攻撃マシンにリダイレクトされます
- 攻撃者はSSHサーバーへの接続試行を監視し、それらを自身のSSHサーバーにリダイレクトします
- 攻撃者のSSHサーバーは、まず、ユーザーのパスワードを含む入力データをすべてログに記録し、次に、ユーザーが接続したい正規のSSHサーバーにコマンドを送信して実行し、結果を正規のユーザーに返します
2022-04-27 08:21:36 +00:00
2023-07-07 23:42:27 +00:00
\*\*\*\*[**SSH MITM**](https://github.com/jtesta/ssh-mitm) \*\*\*\*は、上記で説明したことを正確に行います。
2022-04-27 08:21:36 +00:00
2023-07-07 23:42:27 +00:00
実際のMitMを実行するために、ARPスプーフィング、DNSスプーフィングなどの技術を使用することができます。詳細については、[**ネットワークスプーフィング攻撃**](../generic-methodologies-and-resources/pentesting-network/#spoofing)で説明されています。
2023-07-07 23:42:27 +00:00
## 設定の誤構成
2023-07-07 23:42:27 +00:00
### rootログイン
2020-12-14 16:53:57 +00:00
2023-07-07 23:42:27 +00:00
デフォルトでは、ほとんどのSSHサーバーの実装ではrootログインが許可されていますが、これを無効にすることが推奨されています。なぜなら、このアカウントの資格情報が漏洩した場合、攻撃者は直接管理者権限を取得することができ、また、このアカウントに対してブルートフォース攻撃を行うことも可能になるためです。
2023-07-07 23:42:27 +00:00
**openSSHでrootログインを無効にする方法**
2020-09-25 08:37:19 +00:00
2023-07-07 23:42:27 +00:00
1. SSHサーバーの設定を編集します `sudoedit /etc/ssh/sshd_config`
2. `#PermitRootLogin yes``PermitRootLogin no` に変更します
3. 設定の変更を反映させます `sudo systemctl daemon-reload`
4. SSHサーバーを再起動します `sudo systemctl restart sshd`
2020-09-25 08:37:19 +00:00
2023-07-07 23:42:27 +00:00
### SFTPコマンドの実行
2023-07-07 23:42:27 +00:00
もう1つの一般的なSSHの誤構成は、SFTPの設定でよく見られます。ほとんどの場合、SFTPサーバーを作成する際に、管理者はユーザーがファイルを共有するためにSFTPアクセスを持つことを望んでいますが、マシン全体でのリモートシェルアクセスや悪用を防ぐために、ユーザーにプレースホルダーシェル`/usr/bin/nologin`や`/usr/bin/false`)を割り当て、彼らをジェイルにチューニングするだけで十分だと考えています。しかし、彼らは間違っています。**ユーザーは、デフォルトのコマンドやシェルが実行される前に、認証後にコマンドを実行するように要求することができます**。したがって、シェルアクセスを拒否するプレースホルダーシェルをバイパスするには、単に事前にコマンド(例:`/bin/bash`)を実行するように要求するだけです。
2022-04-27 08:21:36 +00:00
```
2020-12-14 16:53:57 +00:00
$ ssh -v noraj@192.168.1.94 id
...
Password:
debug1: Authentication succeeded (keyboard-interactive).
Authenticated to 192.168.1.94 ([192.168.1.94]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0
debug1: Sending command: id
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
uid=1000(noraj) gid=100(users) groups=100(users)
debug1: channel 0: free: client-session, nchannels 1
Transferred: sent 2412, received 2480 bytes, in 0.1 seconds
Bytes per second: sent 43133.4, received 44349.5
debug1: Exit status 0
$ ssh noraj@192.168.1.94 /bin/bash
```
2023-07-07 23:42:27 +00:00
以下は、ユーザー`noraj`のセキュアなSFTP設定の例です`/etc/ssh/sshd_config` - openSSH
2023-07-07 23:42:27 +00:00
```plaintext
# SFTP Configuration for noraj
Subsystem sftp internal-sftp
2020-12-14 16:53:57 +00:00
Match User noraj
2023-07-07 23:42:27 +00:00
ChrootDirectory /home/noraj
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
PasswordAuthentication yes
PermitTunnel no
PermitTTY no
PermitUserEnvironment no
AllowAgentForwarding no
AllowStreamLocalForwarding no
ClientAliveInterval 300
ClientAliveCountMax 2
UsePAM yes
2020-12-14 16:53:57 +00:00
```
2023-07-07 23:42:27 +00:00
この設定では、ユーザー`noraj`に対してSFTPのみを許可し、そのユーザーを`/home/noraj`に制限します。また、TCPフォワーディングやX11フォワーディングを無効化し、パスワード認証を許可します。さらに、クライアントの接続が一定時間無効である場合に自動的に切断するように設定されています。PAMも使用されています。
```
Match User noraj
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
PermitTunnel no
X11Forwarding no
PermitTTY no
```
この設定では、SFTPのみを許可します。シェルアクセスを無効にするために、startコマンドを強制し、TTYアクセスも無効にします。また、ポートフォワーディングやトンネリングもすべて無効にします。
2023-07-07 23:42:27 +00:00
### SFTPトンネリング
2023-07-07 23:42:27 +00:00
SFTPサーバーへのアクセス権がある場合、一般的なポートフォワーディングを使用してトラフィックをトンネリングすることもできます。
2022-04-27 08:21:36 +00:00
```
2020-09-25 08:37:19 +00:00
sudo ssh -L <local_port>:<remote_host>:<remote_port> -N -f <username>@<ip_compromised>
```
2023-07-07 23:42:27 +00:00
### SFTPシンボリックリンク
2023-07-07 23:42:27 +00:00
**sftp**には「**symlink**」というコマンドがあります。したがって、あるフォルダに**書き込み権限**がある場合、**他のフォルダ/ファイル**の**シンボリックリンク**を作成することができます。おそらく、chroot内に**閉じ込められている**ため、これは特に役に立たないかもしれませんが、作成した**シンボリックリンク**に**no-chroot**の**サービス**(たとえば、ウェブからシンボリックリンクにアクセスできる場合)から**シンボリックリンクされたファイルをウェブ経由で開く**ことができます。
2023-07-07 23:42:27 +00:00
たとえば、新しいファイル「**_froot_**」から「**_/**_」への**シンボリックリンク**を作成するには、以下のようにします:
2022-04-27 08:21:36 +00:00
```
sftp> symlink / froot
```
2023-07-07 23:42:27 +00:00
もしウェブ経由でファイル "_froot_" にアクセスできる場合、システムのルート ("/") フォルダをリストすることができます。
2023-07-07 23:42:27 +00:00
### 認証方法
2020-12-14 16:53:57 +00:00
2023-07-07 23:42:27 +00:00
高セキュリティ環境では、単純なパスワードベースの認証ではなく、キーベースまたは二要素認証のみを有効にすることが一般的です。しかし、しばしばより強力な認証方法が無効にされずに有効にされています。よくあるケースは、openSSHの設定で `publickey` を有効にし、デフォルトの認証方法に設定するが、`password` を無効にしないことです。したがって、SSHクライアントの詳細モードを使用することで、攻撃者はより弱い認証方法が有効になっていることを確認できます。
2022-04-27 08:21:36 +00:00
```
2020-12-14 16:53:57 +00:00
$ 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
```
2023-07-07 23:42:27 +00:00
たとえば、認証の失敗制限が設定されており、パスワードの認証方法に到達する機会がない場合、`PreferredAuthentications`オプションを使用して、この方法を強制的に使用することができます。
2022-04-27 08:21:36 +00:00
```
2020-12-14 16:53:57 +00:00
$ ssh -v 192.168.1.94 -o PreferredAuthentications=password
...
debug1: Next authentication method: password
```
2023-07-07 23:42:27 +00:00
### 設定ファイル
2020-12-14 16:53:57 +00:00
2023-07-07 23:42:27 +00:00
Review the SSH server configuration is necessary to check that only expected methods are authorized. Using the verbose mode on the client can help to see the effectiveness of the configuration.
2020-12-14 16:53:57 +00:00
2023-07-07 23:42:27 +00:00
### 設定ファイル
2022-04-27 08:21:36 +00:00
```
2020-12-14 16:53:57 +00:00
ssh_config
sshd_config
authorized_keys
ssh_known_hosts
known_hosts
id_rsa
```
2022-05-01 13:25:53 +00:00
## Fuzzing
2020-12-14 16:53:57 +00:00
* [https://packetstormsecurity.com/files/download/71252/sshfuzz.txt](https://packetstormsecurity.com/files/download/71252/sshfuzz.txt)
2022-04-27 08:21:36 +00:00
* [https://www.rapid7.com/db/modules/auxiliary/fuzzers/ssh/ssh\_version\_2](https://www.rapid7.com/db/modules/auxiliary/fuzzers/ssh/ssh\_version\_2)
2020-12-14 16:53:57 +00:00
2022-05-01 13:25:53 +00:00
## References
2020-12-14 16:53:57 +00:00
2022-04-27 08:21:36 +00:00
* 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)
2020-12-14 16:53:57 +00:00
* [https://community.turgensec.com/ssh-hacking-guide](https://community.turgensec.com/ssh-hacking-guide)
2022-10-22 15:01:16 +00:00
<img src="../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="original">
2022-05-24 00:07:19 +00:00
2023-05-26 09:43:15 +00:00
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_fluent polish written and spoken required_).
2022-05-24 00:07:19 +00:00
{% embed url="https://www.stmcyber.com/careers" %}
2022-05-01 13:25:53 +00:00
## HackTricks Automatic Commands
2021-09-13 15:32:29 +00:00
2023-07-07 23:42:27 +00:00
## ファジング
* [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.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).png" alt="" data-size="original">
もし興味があれば、**ハッキングのキャリア**に興味があり、**解読不可能なものを解読する**ことに興味がある場合は、**採用しています!**(流暢なポーランド語の読み書きが必要です)。
{% embed url="https://www.stmcyber.com/careers" %}
## HackTricks自動コマンド
2022-04-27 08:21:36 +00:00
```
2021-09-13 15:32:29 +00:00
Protocol_Name: SSH
Port_Number: 22
Protocol_Description: Secure Shell Hardening
Entry_1:
2023-07-07 23:42:27 +00:00
Name: Hydra Brute Force
Description: Need Username
Command: hydra -v -V -u -l {Username} -P {Big_Passwordlist} -t 1 -u {IP} ssh
Entry_2:
2023-07-07 23:42:27 +00:00
Name: consolesless mfs enumeration
Description: SSH enumeration without the need to run msfconsole
Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/ssh/ssh_version; set RHOSTS {IP}; set RPORT 22; run; exit' && msfconsole -q -x 'use scanner/ssh/ssh_enumusers; set RHOSTS {IP}; set RPORT 22; run; exit' && msfconsole -q -x 'use auxiliary/scanner/ssh/juniper_backdoor; set RHOSTS {IP}; set RPORT 22; run; exit'
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
```
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<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>
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](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を提出してください。
2022-04-28 16:01:33 +00:00
</details>