22 - Pentesting SSH/SFTP
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Bug bounty tip: sign up for Intigriti, a premium bug bounty platform created by hackers, for hackers! Join us at https://go.intigriti.com/hacktricks today, and start earning bounties up to $100,000!
SSH (セキュアシェルまたはセキュアソケットシェル) は、未保護のネットワークを介してコンピュータに安全に接続するためのネットワークプロトコルです。リモートシステムにアクセスする際のデータの機密性と完全性を維持するために不可欠です。
デフォルトポート: 22
SSHサーバー:
openSSH – OpenBSD SSH、BSD、LinuxディストリビューションおよびWindows 10以降のWindowsに搭載
Dropbear – 低メモリおよびプロセッサリソースの環境向けのSSH実装、OpenWrtに搭載
PuTTY – Windows用のSSH実装、クライアントは一般的に使用されるが、サーバーの使用はまれ
CopSSH – Windows用のOpenSSHの実装
SSHライブラリ(サーバーサイドの実装):
wolfSSH – ANSI Cで書かれたSSHv2サーバーライブラリ、組み込み、RTOS、およびリソース制約のある環境向け
Apache MINA SSHD – Apache SSHD JavaライブラリはApache MINAに基づいている
paramiko – Python SSHv2プロトコルライブラリ
ssh-auditは、sshサーバーとクライアントの設定監査のためのツールです。
https://github.com/jtesta/ssh-auditは、https://github.com/arthepsy/ssh-audit/からの更新されたフォークです。
特徴:
SSH1およびSSH2プロトコルサーバーのサポート;
SSHクライアント設定の分析;
バナーを取得し、デバイスまたはソフトウェアとオペレーティングシステムを認識し、圧縮を検出;
キー交換、ホストキー、暗号化およびメッセージ認証コードアルゴリズムを収集;
アルゴリズム情報を出力(利用可能な時期、削除/無効、危険/弱い/レガシーなど);
アルゴリズムの推奨事項を出力(認識されたソフトウェアバージョンに基づいて追加または削除);
セキュリティ情報を出力(関連する問題、割り当てられたCVEリストなど);
アルゴリズム情報に基づいてSSHバージョンの互換性を分析;
OpenSSH、Dropbear SSHおよびlibsshからの履歴情報;
LinuxおよびWindowsで実行;
依存関係なし
これはデフォルトでnmapによって発見されます。しかし、sslcanやsslyzeを使用することもできます。
ssh
一部のOpenSSHのバージョンでは、タイミング攻撃を行ってユーザーを列挙することができます。これを利用するためにmetasploitモジュールを使用できます:
一般的なssh認証情報はこちらとこちらおよび以下にあります。
使用できるsshプライベートキーを知っている場合... 試してみましょう。nmapスクリプトを使用できます:
またはMSF補助モジュール:
Or use ssh-keybrute.py
(native python3, lightweight and has legacy algorithms enabled): snowdroppe/ssh-keybrute.
一部のシステムには、暗号材料を生成するために使用されるランダムシードに既知の欠陥があります。これにより、劇的に減少したキー空間が生じ、ブルートフォース攻撃の対象となる可能性があります。弱いPRNGの影響を受けたDebianシステムで生成された事前生成されたキーセットは、ここで入手可能です: g0tmi1k/debian-ssh。
被害者のマシンに対して有効なキーを検索するために、ここを確認する必要があります。
crackmapexecは、ssh
プロトコルを使用して、kerberos経由で認証するために--kerberos
オプションを使用できます。
詳細については、crackmapexec ssh --help
を実行してください。
Vendor
Usernames
Passwords
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
もしあなたが被害者と同じローカルネットワークにいて、ユーザー名とパスワードを使用してSSHサーバーに接続しようとしている場合、MitM攻撃を実行してその認証情報を盗むことを試みることができます:
攻撃経路:
トラフィックのリダイレクト: 攻撃者は被害者のトラフィックを自分のマシンに転送し、SSHサーバーへの接続試行を傍受します。
傍受とログ記録: 攻撃者のマシンはプロキシとして機能し、正当なSSHサーバーを装ってユーザーのログイン情報をキャプチャします。
コマンドの実行と中継: 最後に、攻撃者のサーバーはユーザーの認証情報をログ記録し、コマンドを実際のSSHサーバーに転送し、実行し、結果をユーザーに返します。これにより、プロセスがシームレスで正当なものに見えます。
SSH MITMは、上記の説明通りのことを正確に行います。
実際のMitMをキャプチャするためには、ARPスプーフィング、DNSスプーフィング、またはネットワークスプーフィング攻撃で説明されている他の技術を使用できます。
発見されたSSHプライベートキーを使用してネットワークを横断し、各システムの各プライベートキーを新しいホストに利用する場合、SSH-Snakeが必要です。
SSH-Snakeは、以下のタスクを自動的かつ再帰的に実行します:
現在のシステムで、任意のSSHプライベートキーを見つける。
現在のシステムで、プライベートキーが受け入れられる可能性のあるホストまたは宛先(user@host)を見つける。
発見されたすべてのプライベートキーを使用して、すべての宛先にSSH接続を試みる。
宛先に正常に接続できた場合、接続したシステムでステップ#1 - #4を繰り返す。
これは完全に自己複製し、自己伝播し、完全にファイルレスです。
SSHサーバーがデフォルトでrootユーザーのログインを許可することは一般的であり、これは重大なセキュリティリスクをもたらします。rootログインを無効にすることは、サーバーを保護するための重要なステップです。この変更を行うことで、管理者権限を持つ不正アクセスやブルートフォース攻撃を軽減できます。
OpenSSHでRoot Loginを無効にする方法:
SSH設定ファイルを編集します: sudoedit /etc/ssh/sshd_config
設定を変更します: #PermitRootLogin yes
を**PermitRootLogin no
**に変更します。
設定を再読み込みします: sudo systemctl daemon-reload
SSHサーバーを再起動して変更を適用します: sudo systemctl restart sshd
SFTPセットアップにおいて一般的な見落としが発生します。管理者はユーザーがリモートシェルアクセスを有効にせずにファイルを交換できるように意図しています。ユーザーを非対話型シェル(例: /usr/bin/nologin
)に設定し、特定のディレクトリに制限しても、セキュリティの抜け穴が残ります。ユーザーは、ログイン後すぐにコマンド(例: /bin/bash
)の実行を要求することで、これらの制限を回避できます。これにより、不正なコマンド実行が可能になり、意図されたセキュリティ対策が損なわれます。
以下は、ユーザー noraj
のための安全な SFTP 構成の例です(/etc/ssh/sshd_config
– openSSH):
この設定は、SFTPのみを許可します:開始コマンドを強制することでシェルアクセスを無効にし、TTYアクセスを無効にするだけでなく、すべての種類のポートフォワーディングやトンネリングも無効にします。
SFTPサーバーにアクセスできる場合、一般的なポートフォワーディングを使用して、トラフィックをこの経由でトンネルすることもできます:
sftp には "symlink" コマンドがあります。したがって、特定のフォルダに 書き込み権限 がある場合、他のフォルダ/ファイル の シンボリックリンク を作成できます。おそらく chroot 内に 閉じ込められている ため、これはあなたにとって特に役に立たないでしょうが、作成した シンボリックリンク に no-chroot サービス からアクセスできる場合(例えば、ウェブからシンボリックリンクにアクセスできる場合)、ウェブを通じてシンボリックリンクされたファイルを開く ことができます。
例えば、新しいファイル "froot" から "/" への シンボリックリンク を作成するには:
If you can access the file "froot" via web, you will be able to list the root ("/") folder of the system.
高セキュリティ環境では、単純なパスワードベースの認証の代わりに、キーベースまたは二要素認証のみを有効にすることが一般的な慣行です。しかし、しばしば強力な認証方法が有効になっていても、弱い方法が無効になっていないことがあります。よくあるケースは、openSSHの設定でpublickey
を有効にし、デフォルトの方法として設定するが、password
を無効にしないことです。そのため、SSHクライアントの詳細モードを使用することで、攻撃者は弱い方法が有効になっていることを確認できます:
例えば、認証失敗の制限が設定されていて、パスワードメソッドに到達する機会がない場合、PreferredAuthentications
オプションを使用してこのメソッドを強制的に使用することができます。
SSHサーバーの設定を確認することは、予期される方法のみが承認されていることを確認するために必要です。クライアントで詳細モードを使用すると、設定の有効性を確認するのに役立ちます。
SSHを強化する方法に関する興味深いガイドは、https://www.ssh-audit.com/hardening_guides.htmlで見つけることができます。
バグバウンティのヒント: Intigritiにサインアップしてください。これはハッカーによって、ハッカーのために作られたプレミアムバグバウンティプラットフォームです!今日、https://go.intigriti.com/hacktricksで私たちに参加し、最大**$100,000**のバウンティを獲得し始めましょう!
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)