indicators of compromise

IOC 對照表

只列攻擊端指標:礦池、C2、錢包、雜湊、檔案路徑、服務名稱與 API 行為模式。受害端的帳號、IP 與主機名稱一律不列。雜湊只有部分值的,是因為原始鑑識報告只保留了前綴。

29 條指標 · 12 條獵捕查詢

INC-2026-0915
挖礦劫持(XMRig + rootkit + RVN 礦工)

類型指標說明
wallet:xmr47qQHFXfGixiVEjwPNaVpQ8LJ6p8xNPHLjWKZC86us4WfhxacyXivPAGoThcgbwUaiAi4CjveFdsMLEYEUMhhrLA4nrCgHe攻擊者 Monero 錢包,worker/pass 為 C4。SupportXMR 已 denylist。
wallet:rvnNHbEjVfWParSYn1wbr5WDggY1mZ3aLF8Ngp第二礦工的 Ravencoin 錢包,worker1 / worker2。
ip:pool141.94.96.71主礦池/XMRig-Proxy 聚合器(OVH,FR)。埠 3333 / 443 / 5555 / 7777。
domain:poolwixerzhongboost.euRVN 礦池與 XMRig 備援池,解析至 91.99.86.120(Hetzner,DE)。埠 9443 / 9200 / 5555。
ip:pool77.221.157.206XMRig 設定內的備援礦池,埠 6196。
sha256166b2551b810e2747d68a47a8431fb1dab24ed54cef47eb9d3a53c46e4291896/var/log/log — XMRig 6.22.2 礦工本體(9.4 MB)。
sha256e71cffd0ef65adef9d73cc1c5f83ed7d8af1d2c9fad48018c568bb5e08a888df/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。
systemdlog.service(Description: log Plugin Service,ExecStart=/usr/bin/log -sshd)以 root 常駐、Restart=always。
cronroot crontab:@reboot /var/log/log重開機復活。
account使用者名稱 systemd,UID 1001,有 shell、有密碼、sudoers NOPASSWD:ALL偽裝系統元件的後門帳號。
user-agentXMRig/6.22.2 (Linux x86_64) libuv/1.49.2 gcc/7.5.0Stratum login 的 agent 欄。

INC-2026-0827
Crusader 掃密殭屍網路(GCP 金鑰盜用)

類型指標說明
ip:c293.123.109.230:8844Crusader C2 派工主機(AS48090)。同一 IP 也是盜用金鑰呼叫 GCP API 的來源。
ip:s393.123.109.247:9000攻擊者 MinIO 集散地,bucket 名稱以 crusader-recon- 開頭。
cidr93.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.stoppedtrufflehog 為開源工具,被兩支 worker 呼叫。
systemdcrusader-paths-worker.service · crusader-js-worker.serviceExecStart 指向 /root,Restart=always,WantedBy=multi-user.target。
ssh/etc/ssh/sshd_config.d/99-crusader-idle.confstartup-script 植入,開 root 密碼登入。
gcpVM 名稱 crusader-gcp-probe-* · 防火牆 crusader-allow-ssh(0.0.0.0/0 tcp:22,3000-9999)· 網路標記 crusadere2-standard-4、無服務帳戶、enable-oslogin=FALSE、多區同秒建立。
apiinstances.insert / firewalls.insert 來自非公司 IP,user-agent 僅 gzip(gfe)原生 REST 呼叫,非 gcloud 或主控台。
apiModelGardenService.AcceptPublisherModelEula · RawPredict · GenerateContent 由 Bot 服務帳戶發出Sheets Bot 不該碰 aiplatform 或 compute。
user-agentMozilla/5.0 (X11; Linux x86_64) … Chrome/124.0worker 對外掃描時偽裝的瀏覽器 UA;流量特徵是掃描 /.env、/.git/config、/actuator/heapdump。

INC-2025-0717
AWS 後門 Lambda

類型指標說明
lambda函式名稱 s3s811 · sesyu787(us-east-1,Python 3.9)非本團隊建立;sesyu787 掛 API Gateway 觸發。
behaviorLambda 內以 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 攔截。
主機:LD_PRELOAD rootkit
sudo cat /etc/ld.so.preload; ls -la /etc/ld.so.preload
正常系統此檔不存在或為空。讀取即 segfault 是強烈惡意訊號。
主機:指向 /root 或 /tmp 的 systemd 服務
grep -rlE 'ExecStart=/(root|tmp|var/tmp|dev/shm)/' /etc/systemd/system/ 2>/dev/null
套件安裝的服務不會把執行檔放在這些目錄。
主機:近 30 天出現的可執行檔
find /root /tmp /var/tmp /dev/shm -type f -perm -u+x -mtime -30 2>/dev/null
惡意工具最常落地的位置。
主機:可登入且有 sudo 的非預期帳號
grep -vE 'nologin|false' /etc/passwd; sudo grep -rE 'NOPASSWD' /etc/sudoers /etc/sudoers.d/
名字像系統元件(systemd、daemon)卻有 shell 與密碼,幾乎必定是後門。
主機:@reboot 排程
for u in $(cut -d: -f1 /etc/passwd); do sudo crontab -l -u $u 2>/dev/null | grep -H --label=$u '@reboot'; done
礦工最常見的第三重自啟。
GCP:非公司來源建立的 VM
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 是本案最早、最明確的雲端層訊號。
GCP:對全網開放的防火牆
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。
GCP:服務帳戶有沒有 Owner/Editor
gcloud asset search-all-iam-policies --scope=organizations/ORG_ID --query="policy:(roles/owner OR roles/editor) memberTypes:serviceAccount"
一個只寫試算表的 Bot 不需要任何專案角色。
AWS:每個區域的 Lambda 清單
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:近三天誰建了 IAM 使用者或掛了管理員政策
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。
AWS:把 CloudTrail 事件依來源 IP 計數
jq -r '.Events[] | .CloudTrailEvent | fromjson | .sourceIPAddress' all_events.json | sort | uniq -c | sort -nr | head -20
先看 IP 分布,再針對陌生 IP 展開事件內容。