CPU 使用率の確認#
CPU 使用率を確認する目的は、どのプロセスが CPU を過剰に使用しているかを特定することです(マイニングに関連)。
top -c -o %CPU
htop -t
# CPU使用率が高い上位5つのプロセスを確認
ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%cpu | head -n 5
メモリ使用率#
top -c -o %MEM
htop -t
# メモリ使用率が高い上位5つのプロセスを確認
ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%mem | head -n 5
ネットワーク使用率#
iftop # インストールが必要、root権限で実行、プロセスIDは表示されません
nethogs # インストールが必要、root権限で実行、プロセスIDを表示します
ss -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr # ローカルネットワークインターフェースのIP接続数を確認(送信元IP)
ss -ntu | awk '{print $6}' | cut -d ":" -f1 | sort | uniq -c | sort -nr # 目的IP接続数を確認(目的IP)
外部 IP の確認#
# 目的IPで検索
netstat -pantu | grep 1.1.1.1
netstat -pantu | grep 3389
lsof -i:3389 # root権限
# 自分のIPで検索
netstat -pantu | grep 3389
lsof -i:3389
悪意のあるサンプルの検索#
- PID を取得して悪意のあるファイルのパスを見つける
- 悪意のあるファイルを見つけた - PID
プロセス名または部分文字列から PID を取得
pidof "name"
ps -aux | grep "name"
ps -ef | grep "name" | grep -v grep | awk '{print $2}'
pgrep -f "name"
PID からプロセスの詳細情報を取得
lsof -p PID # root権限
pwdx PID # root権限、指定したPIDのプロセスが起動したディレクトリを取得、つまり悪意のあるファイルが起動したパス
systemctl status PID # このプロセスのステータス情報を取得
cat /proc/PID/maps # 指定したプロセスのメモリマッピング情報を出力
ls -al /proc/1505945/exe # 指定したプロセスが実行しているプログラムの絶対パスを出力
cat /proc/$$/mountinfo # 現在のプロセスがマウントしているファイルシステム情報を確認、ここで$$は現在のプロセスのプロセスID(PID)を示します。
スレッドの確認
ps H -T -p PID # pidはプロセスID、spidはスレッドID、CMDはプロセス/スレッドのコマンドラインを示します
ps -Lf PID # 指定したプロセス内の各スレッドの情報を表示
pstree -agplU # システム内のすべてのプロセス関係を表示 ✅
ファイルから PID を見つける
lsof | grep FILENAME
lsof FILENAME
fuser FILENAME # 特定のファイルまたはソケットを使用しているプロセスを見つけるためのコマンド
プログラムの実行時間を確認#
ps -eo pid,lstart,etime,cmd | grep PID
# 悪意のあるファイルの作成時間と比較
stat FILENAME
ls -al FILENAME
異常プロセスの処理#
1、サーバーからサンプルをダウンロード
2、ウイルスのオンライン分析
3、プロセスの終了
1、子プロセスが存在するか確認
ps ajfx ✅
systemctl status
2、子プロセスがない場合
kill -9 PID
3、子プロセスが存在する場合
kill -9 -PID
悪意のあるファイルの削除#
1、プロセスが占有しているか確認
lsof FILENAME
2、a および i 属性によりファイルが削除できない場合
chattr -a
chattr -i
3、奇妙なファイル名により削除できない場合
- inode ノードを使用して削除
ls -li FILENAME # inodeを確認
- ファイルを削除
find ./* -inum INODE -delete
find ./ -inum INODE -exec rm {} \;
find ./* -inum INODE -exec rm -i {} \; # 削除するかどうかの確認
find ./* -inum INODE -exec rm -f {} \; # 強制削除
find ./* -inum INODE | xargs rm -rf
rm `find ./* -inum INODE`
大部分の緊急事態のプロセスに必要なコマンドはこれらです。異なる事象に対しては若干の違いがあります:
拡張 1 netstat における TCP 接続状態の例#
状態 | タイプ | 説明 |
---|---|---|
LISTEN | TCP リスニングポート | リスニング状態。指定されたポートが接続を待機していることを示します。 |
SYN_SENT | TCP 伝送制御プロトコル状態 | 接続要求が送信されました。TCP 接続が開始されたが、確認がまだ受信されていないことを示します。 |
SYN_RECV | TCP 伝送制御プロトコル状態 | 接続要求を受信中です。TCP 接続が受信され、確認を待機していることを示します。通常はサーバーで発生し、クライアントの要求を受信したことを示します。 |
ESTABLISHED | TCP 伝送制御プロトコル状態 | TCP 接続が確立され、通信中であることを示します。 |
FIN_WAIT1 | TCP 伝送制御プロトコル状態 | TCP 接続が閉じられ、相手からの接続終了要求を待機していることを示します。 |
FIN_WAIT2 | TCP 伝送制御プロトコル状態 | TCP 接続が閉じられ、相手からの接続終了要求を待機しているか、相手から最終確認を受信中であることを示します。 |
TIME_WAIT | TCP 伝送制御プロトコル状態 | TCP 接続が閉じられ、すべてのデータが転送完了し、すべてのパケットが処理されるのを待機していることを示します。 |
CLOSE_WAIT | TCP 伝送制御プロトコル状態 | TCP 接続が閉じられたが、ローカルアプリケーションが接続をまだ閉じていないことを示します。 |
LAST_ACK | TCP 伝送制御プロトコル状態 | 閉じる要求が送信され、相手の閉じる要求を待機中です。 |
CLOSING | TCP 伝送制御プロトコル状態 | TCP 接続が閉じる過程にあることを示します。 |
拡張 2 IP が正常かどうかの確認#
三段階:脅威インテリジェンスの確認-ドメイン登録の確認-企業の確認
微步脅威インテリジェンスでいくつかの情報を確認できます。
以下の情報も確認できます。
ドメインがあれば登録を確認できます(国内)。
登録があれば会社を確認できます。
その他#
GitHub - T0xst/linux: linux セキュリティチェック
Security/1earn/Security/BlueTeam/ 緊急
Blue-Team / 緊急 /linux 緊急対応マニュアル
linux 緊急対応マニュアル 1.7