
Oracle E-Business Suite(バージョン12.2.3〜12.2.14)における、認証前の重大なリモートコード実行(RCE)脆弱性により、攻撃者は悪意のあるHTTPリクエストを介して脆弱なサーバーを完全に制御できる可能性があります。現在、実際の攻撃で積極的に悪用されています。
CVE-2025-61882 は、Oracle E-Business Suite(EBS) における重大な事前認証RCEであり、恐喝・データ窃取キャンペーンで活発に悪用されています。影響を受けるバージョン: 12.2.3 → 12.2.14。OracleはIOC(IP、シェルステージャーコマンド、SHA-256)を含む緊急アドバイザリを公開しました。影響を受けるシステムにパッチを適用またはシールドし、提供された検出ルールでハンティングし、以下の安全なPythonスクリプトを使用してログをスキャンしてください。本番環境で公開PoCを実行しないでください — 認可された隔離ラボでのみテストしてください。🛑🗿
Oracle EBSは重要なビジネス機能(ERP、給与、財務、人事)を実行しています。Web公開されたEBSインスタンスの事前認証RCEにより、攻撃者はアプリケーションサーバー上で任意のコマンドを実行し、機密データにアクセスし、Webシェルを配置し、ファイルを外部に持ち出す可能性があります。この脆弱性は実環境で武器化され、恐喝キャンペーンに関連付けられています — これは理論上のCVEではなく、実際のビジネスインシデントです。🔥
/OA_HTML/ フロー、および関連エンドポイントUiServlet および /OA_HTML/ への巧妙に細工されたPOST/リクエストの送信。/bin/bash -i >& /dev/tcp/...)。Oracleは、これらのIOCがインシデント全体で観測された活動であると述べています(CVE-2025-61882に限定されません)。一致するものはすべて優先度が高いものとして扱ってください。
IP
200.107.207.26 — GET/POST活動の可能性185.181.60.11 — GET/POST活動の可能性シェルステージャーパターン
sh -c /bin/bash -i >& /dev/tcp// 0>&1 — 観測されたアウトバウンドTCPリバースシェルスタイルのコマンドSHA-256ハッシュ(エクスプロイト / PoCアーティファクト)
76b6d36e04e367a2334c445b51e1ecce97e4c614e88dfb4f72b104ca0f31235d
(oracle_ebs_nday_exploit_poc_scattered_lapsus_retard_cl0p_hunters.zip)aa0d3859d6633b62bccfb69017d33a8979a3be1f3f0a5a4bf6960d6c73d41121
(.../exp.py)6fd538e4a8e3493dda6f9fcdc96e814bdd14f3e2ef8aa46f0143bff34b882c1b
(.../server.py)影響を受けるバージョン(強調のため繰り返し)
TL;DR GitHubリポジトリには、CVE-2025-61882(Oracle E-Business Suite事前認証RCE)用のパッシブ検出アーティファクトが含まれています。これらを悪用ではなく、ハンティング、トリアージ、封じ込めに使用してください。🛑🗿
detections/ フォルダ内に簡単なDescription.md(ミニREADME)がすでに追加されています — 完全な解説とTL;DRについてはそのファイルを確認してください。このトップレベルのREADMEは、検出パックと使用方法を要約しているだけなので、すぐに取得して実行できます。
detections/splunk/
oracle_cve61882_ioc_traffic.spl — Oracle提供のIOC IPとの間のトラフィックを検出します。oracle_cve61882_uiservlet_post.spl — 外部IPからの UiServlet / /OA_HTML/ への不審なPOSTを検出します。oracle_cve61882_reverse_shell.spl — エンドポイントログでリバースシェルスタイルのプロセス作成を検出します。detections/elastic/
oracle_cve61882_uiservlet_post.kql — UiServlet/OA_HTML POST用のKQL。oracle_cve61882_filehash_detection.kql — Oracle提供の悪意のあるSHA-256に一致するKQL。detections/scripts/
ebs_safe_hunt.py — 安全なオフラインPythonログパーサー(ネットワーク呼び出しなし、エクスプロイト実行なし)。アクセスログのコピーに対して実行します。detections/Description.md
コンテキストとIOCについては detections/Description.md を確認してください。✅
Splunk .spl クエリをSplunk環境にドロップします(または保存済み検索/アラートにインポートします)。
KQLクエリをKibana / Elastic検出ルールに貼り付けます。
ebs_safe_hunt.py を、アーカイブまたは編集されたログへの読み取りアクセスのみを持つホストにコピーして、実行します:
python3 ebs_safe_hunt.py /path/to/access.log
フラグが立てられた malicious_ips、servlet_posts、shell_stager、および malicious_hash の出力を確認し、必要に応じてエスカレーションします。🕵️♂️
原則: バージョン開示やUIヒットを、信頼性の高いインジケーター(悪意のあるIP、UiServlet/OA_HTMLへのPOST、リバースシェルプロセス文字列、ファイルハッシュ一致、大規模なアウトバウンドアップロード)と組み合わせます。
Splunkの例 Oracle IOCへのトラフィックを検出:
index=web_logs OR index=proxy_logs
| where clientip IN ("200.107.207.26","185.181.60.11") OR dest_ip IN ("200.107.207.26","185.181.60.11")
| stats count by clientip, dest_ip, uri, method, useragent, _time
| sort - count
外部IPからのUiServlet/OA_HTML POSTを検出:
index=web_logs sourcetype=access_combined
| where (uri LIKE "%UiServlet%" OR uri LIKE "%/OA_HTML/%") AND method="POST"
| where NOT cidrmatch("10.0.0.0/8", clientip) // adjust for your internal ranges
| stats count by clientip, uri, useragent, _time
| sort - count
リバースシェルプロセス作成を検出(EDR):
index=endpoint_events sourcetype=os_process
| where process_cmdline LIKE "%/bin/bash -i%/dev/tcp/%" OR process_cmdline LIKE "%/dev/tcp//%"
| table _time host user process_name process_cmdline parent_process
Elastic / KQLの例 UiServletの不審なPOST:
http.request.method : "POST" and (http.request.uri : "*UiServlet*" or http.request.uri : "/OA_HTML/*") and not client.ip : ("10.0.0.0/8")
ファイルハッシュ検出:
event.type: "file" and file.hash.sha256 : ("76b6d36e04e3...", "aa0d3859d66...", "6fd538e4a8e3...")
Sigma(ポータブルルールのアイデア)
UiServlet//OA_HTML/ へのPOST → 優先度: 高/bin/bash -i >& /dev/tcp/ によるプロセス作成 → 重大このスクリプトは、combined形式のWebアクセスログを解析し、不審なUiServlet/OA_HTML POST、Oracleリストの悪意のあるIPからのリクエスト、シェルステージャーパターン、および提供されたSHA-256ハッシュの出現をフラグします。ネットワークアクティビティを実行したり、エクスプロイトコードを実行したりすることはありません。
#!/usr/bin/env python3
"""
ebs_safe_hunt.py — Safe log parser for CVE-2025-61882 indicators.
Usage:
python3 ebs_safe_hunt.py /path/to/access.log
Notes:
- Parses Apache/Nginx combined log lines.
- Flags UiServlet/OA_HTML POSTs, malicious IPs from Oracle advisory,
shell stager patterns, and observed SHA256 hashes.
- Safe: no network / no exploit execution.
"""
import sys
import re
from collections import Counter, defaultdict
# Regex for common combined log format
LOG_PATTERN = re.compile(
r'(?P<ip>\S+) \S+ \S+ \[(?P<time>.*?)\] "(?P<method>\S+) (?P<uri>\S+) \S+" (?P<status>\d{3}) (?P<size>\S+) "(?P<ref>[^"]*)" "(?P<ua>[^"]*)"'
)
# Oracle-provided IOCs
MALICIOUS_IPS = {"200.107.207.26", "185.181.60.11"}
MALICIOUS_HASHES = {
"76b6d36e04e367a2334c445b51e1ecce97e4c614e88dfb4f72b104ca0f31235d",
"aa0d3859d6633b62bccfb69017d33a8979a3be1f3f0a5a4bf6960d6c73d41121",
"6fd538e4a8e3493dda6f9fcdc96e814bdd14f3e2ef8aa46f0143bff34b882c1b",
}
SHELL_PATTERN = "/bin/bash -i" # we search for this substring (reverse shell style)
SUSPICIOUS_PATHS = ["UiServlet", "/OA_HTML/"]
# Optional: list of suspicious user-agents often used by scanners
SUSPICIOUS_UAS = ["curl", "wget", "python-requests", "nikto", "sqlmap", "masscan", "Nmap"]
def analyze_log(path):
ip_counts = Counter()
uri_counts = Counter()
ua_counts = Counter()
suspicious = defaultdict(list)
with open(path, "r", errors="replace") as fh:
for line_no, line in enumerate(fh, 1):
m = LOG_PATTERN.search(line)
if not m:
# Optionally, still check for hashes or shell pattern in unstructured lines
if any(h in line for h in MALICIOUS_HASHES):
suspicious["malicious_hash_lines"].append((line_no, line.strip()))
if SHELL_PATTERN in line or "/dev/tcp/" in line:
suspicious["shell_pattern_lines"].append((line_no, line.strip()))
continue
ip = m.group("ip")
method = m.group("method")
uri = m.group("uri")
ua = m.group("ua")
size = m.group("size")
ip_counts[ip] += 1
uri_counts[uri] += 1
ua_counts[ua] += 1
# 1) Malicious IPs (Oracle)
if ip in MALICIOUS_IPS:
suspicious["malicious_ips"].append((line_no, ip, method, uri, ua))
# 2) POSTs to suspicious EBS paths
if method.upper() == "POST" and any(p in uri for p in SUSPICIOUS_PATHS):
suspicious["servlet_posts"].append((line_no, ip, uri, ua))
# 3) Suspicious user agents (scanners)
if any(k.lower() in ua.lower() for k in SUSPICIOUS_UAS):
suspicious["suspicious_ua"].append((line_no, ip, uri, ua))
# 4) Very large responses (possible exfil) — tune threshold for your environment
try:
if size != "-" and int(size) > 5_000_000: # >5MB
suspicious["large_responses"].append((line_no, ip, uri, size))
except ValueError:
pass
# 5) Shell stager pattern or /dev/tcp patterns in the line
if SHELL_PATTERN in line or "/dev/tcp/" in line:
suspicious["shell_stager"].append((line_no, ip, uri, line.strip()))
# 6) Known malicious file hashes present in logs (if available)
for h in MALICIOUS_HASHES:
if h in line:
suspicious["malicious_hash"].append((line_no, ip, uri, h))
return {
"ip_counts": ip_counts,
"uri_counts": uri_counts,
"ua_counts": ua_counts,
"suspicious": suspicious
}
def pretty_report(r, top=10):
print("\n=== EBS HUNT REPORT ===\n")
print("Top source IPs:")
for ip, c in r["ip_counts"].most_common(top):
print(f" {ip}: {c}")
print("\nTop URIs:")
for uri, c in r["uri_counts"].most_common(top):
print(f" {uri}: {c}")
print("\nTop User-Agents:")
for ua, c in r["ua_counts"].most_common(top):
print(f" {ua}: {c}")
print("\nSuspicious findings:")
if not r["suspicious"]:
print(" None found.")
return
for k, items in r["suspicious"].items():
print(f"\n-- {k} ({len(items)} matches) --")
for item in items[:100]:
print(" " + " | ".join(map(str, item)))
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage: python3 ebs_safe_hunt.py /path/to/access.log")
sys.exit(1)
path = sys.argv[1]
result = analyze_log(path)
pretty_report(result)
使用方法: ebs_safe_hunt.py を、アーカイブまたはコピーされたログへの読み取りアクセス権を持つホストにコピーします。実行:
python3 ebs_safe_hunt.py /path/to/access.log
フラグが立てられた malicious_ips、servlet_posts、shell_stager、および malicious_hash の結果を確認し、適切にエスカレーションします。🕵️♂️
200.107.207.26 と 185.181.60.11、およびベンダー提供のその他のIOC IP/ドメインをブロックします。件名: 重大: CVE-2025-61882 — Oracle E-Business Suite — 即時対応が必要
内容: Oracle EBS(12.2.3〜12.2.14)における重大な事前認証RCE(CVE-2025-61882)。データ窃取/恐喝キャンペーンで悪用されています。
即時の要請(今後24時間):
リスク: 高 — アプリケーションサーバー全体の侵害、データ外部持ち出し、規制上のエクスポージャーの可能性。結論: 今すぐパッチを適用するかシールドしてください。— 🗿
必要なものはすべて揃っています: 概要、Oracleからの直接のIOC、実用的なハント、そしてトリアージを開始するための安全なスクリプト。EBSボックスにパッチを適用するかシールドし、SOC全体でIOCハントを実行し、怪しいものをすべて隔離してください。警戒を怠らず、迅速にパッチを適用し、インシデント対応力を発揮してください。🗿🔥