indicators of compromise
IOC 對照表
只列攻擊端指標:礦池、C2、錢包、雜湊、檔案路徑、服務名稱與 API 行為模式。受害端的帳號、IP 與主機名稱一律不列。雜湊只有部分值的,是因為原始鑑識報告只保留了前綴。
29 條指標 · 12 條獵捕查詢
INC-2026-0915
挖礦劫持(XMRig + rootkit + RVN 礦工)
| 類型 | 指標 | 說明 | |
|---|---|---|---|
| wallet:xmr | 47qQHFXfGixiVEjwPNaVpQ8LJ6p8xNPHLjWKZC86us4WfhxacyXivPAGoThcgbwUaiAi4CjveFdsMLEYEUMhhrLA4nrCgHe | 攻擊者 Monero 錢包,worker/pass 為 C4。SupportXMR 已 denylist。 | |
| wallet:rvn | NHbEjVfWParSYn1wbr5WDggY1mZ3aLF8Ngp | 第二礦工的 Ravencoin 錢包,worker1 / worker2。 | |
| ip:pool | 141.94.96.71 | 主礦池/XMRig-Proxy 聚合器(OVH,FR)。埠 3333 / 443 / 5555 / 7777。 | |
| domain:pool | wixerzhongboost.eu | RVN 礦池與 XMRig 備援池,解析至 91.99.86.120(Hetzner,DE)。埠 9443 / 9200 / 5555。 | |
| ip:pool | 77.221.157.206 | XMRig 設定內的備援礦池,埠 6196。 | |
| sha256 | 166b2551b810e2747d68a47a8431fb1dab24ed54cef47eb9d3a53c46e4291896 | /var/log/log — XMRig 6.22.2 礦工本體(9.4 MB)。 | |
| sha256 | e71cffd0ef65adef9d73cc1c5f83ed7d8af1d2c9fad48018c568bb5e08a888df | /var/tmp/bash — Go 語言 kawpow 礦工,以 exec -a bash 偽裝。 | |
| sha256(前 8) | acb2e78d… | /usr/local/lib/sshdd.so — LD_PRELOAD rootkit(hook readdir 藏檔)。 | |
| sha256(前 8) | 75711c01… | /usr/bin/log — rootkit helper/launcher。 | |
| path | /var/log/log · /usr/bin/log · /usr/local/lib/sshdd.so · /var/tmp/bash · /etc/ld.so.preload | 存在其中任一即應懷疑;ld.so.preload 在原機讀取會 segfault。 | |
| systemd | log.service(Description: log Plugin Service,ExecStart=/usr/bin/log -sshd) | 以 root 常駐、Restart=always。 | |
| cron | root crontab:@reboot /var/log/log | 重開機復活。 | |
| account | 使用者名稱 systemd,UID 1001,有 shell、有密碼、sudoers NOPASSWD:ALL | 偽裝系統元件的後門帳號。 | |
| user-agent | XMRig/6.22.2 (Linux x86_64) libuv/1.49.2 gcc/7.5.0 | Stratum login 的 agent 欄。 |
INC-2026-0827
Crusader 掃密殭屍網路(GCP 金鑰盜用)
| 類型 | 指標 | 說明 | |
|---|---|---|---|
| ip:c2 | 93.123.109.230:8844 | Crusader C2 派工主機(AS48090)。同一 IP 也是盜用金鑰呼叫 GCP API 的來源。 | |
| ip:s3 | 93.123.109.247:9000 | 攻擊者 MinIO 集散地,bucket 名稱以 crusader-recon- 開頭。 | |
| cidr | 93.123.109.0/24 | 整段建議出口封鎖。 | |
| sha256(前 16) | 6a41216ce80cd7e8… | /root/worker_paths — Rust 路徑探測器(542 條敏感路徑)。 | |
| sha256(前 16) | 40b580d3e5183186… | /root/worker_js — Rust 前端爬蟲,挖 JS bundle/sourcemap 內金鑰。 | |
| path | /root/worker_paths · /root/worker_js · /root/worker.env · /root/spool/ · /usr/local/bin/trufflehog · /tmp/crusader.stopped | trufflehog 為開源工具,被兩支 worker 呼叫。 | |
| systemd | crusader-paths-worker.service · crusader-js-worker.service | ExecStart 指向 /root,Restart=always,WantedBy=multi-user.target。 | |
| ssh | /etc/ssh/sshd_config.d/99-crusader-idle.conf | startup-script 植入,開 root 密碼登入。 | |
| gcp | VM 名稱 crusader-gcp-probe-* · 防火牆 crusader-allow-ssh(0.0.0.0/0 tcp:22,3000-9999)· 網路標記 crusader | e2-standard-4、無服務帳戶、enable-oslogin=FALSE、多區同秒建立。 | |
| api | instances.insert / firewalls.insert 來自非公司 IP,user-agent 僅 gzip(gfe) | 原生 REST 呼叫,非 gcloud 或主控台。 | |
| api | ModelGardenService.AcceptPublisherModelEula · RawPredict · GenerateContent 由 Bot 服務帳戶發出 | Sheets Bot 不該碰 aiplatform 或 compute。 | |
| user-agent | Mozilla/5.0 (X11; Linux x86_64) … Chrome/124.0 | worker 對外掃描時偽裝的瀏覽器 UA;流量特徵是掃描 /.env、/.git/config、/actuator/heapdump。 |
INC-2025-0717
AWS 後門 Lambda
| 類型 | 指標 | 說明 | |
|---|---|---|---|
| lambda | 函式名稱 s3s811 · sesyu787(us-east-1,Python 3.9) | 非本團隊建立;sesyu787 掛 API Gateway 觸發。 | |
| behavior | Lambda 內以 boto3 呼叫 iam.create_user → create_login_profile → create_access_key → attach_user_policy | 掛 AdministratorAccess、IAMFullAccess、AmazonSESFullAccess,回傳主控台登入 URL 與密碼。 | |
| iam | 使用者名稱格式 user-[8 碼 hex] | 由後門 Lambda 隨機產生;出現即應視為已遭入侵。 |
threat hunting · read-only
獵捕查詢
全部唯讀,可在任何主機或專案定期執行。請替換大寫佔位字與「你的辦公室網段」。
sudo ss -tnp | grep -vE ':(22|80|443)\b' | grep -E ':(3333|5555|7777|9443|9200|13333|14444|6196|8844|9000)\b'
挖礦與 C2 的必要條件是主動外連。ss 比 ps 難被 LD_PRELOAD rootkit 攔截。
sudo cat /etc/ld.so.preload; ls -la /etc/ld.so.preload
正常系統此檔不存在或為空。讀取即 segfault 是強烈惡意訊號。
grep -rlE 'ExecStart=/(root|tmp|var/tmp|dev/shm)/' /etc/systemd/system/ 2>/dev/null
套件安裝的服務不會把執行檔放在這些目錄。
find /root /tmp /var/tmp /dev/shm -type f -perm -u+x -mtime -30 2>/dev/null
惡意工具最常落地的位置。
grep -vE 'nologin|false' /etc/passwd; sudo grep -rE 'NOPASSWD' /etc/sudoers /etc/sudoers.d/
名字像系統元件(systemd、daemon)卻有 shell 與密碼,幾乎必定是後門。
for u in $(cut -d: -f1 /etc/passwd); do sudo crontab -l -u $u 2>/dev/null | grep -H --label=$u '@reboot'; done
礦工最常見的第三重自啟。
gcloud logging read 'protoPayload.methodName="v1.compute.instances.insert" AND protoPayload.requestMetadata.callerIp!~"^你的辦公室網段"' --freshness=30d --format="table(timestamp,protoPayload.authenticationInfo.principalEmail,protoPayload.requestMetadata.callerIp)"
instances.insert 是本案最早、最明確的雲端層訊號。
gcloud compute firewall-rules list --filter="sourceRanges:0.0.0.0/0" --format="table(name,sourceRanges.list(),allowed[].map().firewall_rule().list())"
攻擊者兩分鐘內就開了 22 與 3000-9999。
gcloud asset search-all-iam-policies --scope=organizations/ORG_ID --query="policy:(roles/owner OR roles/editor) memberTypes:serviceAccount"
一個只寫試算表的 Bot 不需要任何專案角色。
for r in $(aws ec2 describe-regions --query 'Regions[].RegionName' --output text); do echo "## $r"; aws lambda list-functions --region $r --query 'Functions[].[FunctionName,Runtime,LastModified]' --output text; done
你從沒用過的區域裡不該有任何函式。
aws cloudtrail lookup-events --lookup-attribute AttributeKey=EventName,AttributeValue=CreateUser --start-time $(date -u -v-3d +%Y-%m-%dT%H:%M:%SZ) --query 'Events[].[EventTime,Username,CloudTrailEvent]' --output text | head
後門 Lambda 的每一次執行都會在 CloudTrail 留下 CreateUser 與 AttachUserPolicy。
jq -r '.Events[] | .CloudTrailEvent | fromjson | .sourceIPAddress' all_events.json | sort | uniq -c | sort -nr | head -20
先看 IP 分布,再針對陌生 IP 展開事件內容。