ハッキングされました。方法を理解したい


40

誰かが、私が実行するのに役立つサイトにjavascriptのチャンクを2回目に追加しました。このjavascriptはGoogle adsenseをハイジャックし、独自のアカウント番号を挿入し、広告を全面的に貼り付けます。

コードは常に1つの特定のディレクトリ(サードパーティの広告プログラムで使用されるディレクトリ)に常に追加され、この1つの広告ディレクトリ(20程度)内の多数のディレクトリ内の多数のファイルに影響し、ほぼ同じ夜間に挿入されます時間。AdSenseアカウントは中国のウェブサイトに属します(来月、中国に来る1時間前の町にあります。たぶん頭を悩ませる必要があります...冗談です)。サイト:http : //serversiders.com/fhr.com.cn

では、これらのファイルにテキストをどのように追加できますか?ファイルに設定されている権限(755から644まで)に関連していますか?Webサーバーユーザー(MediaTemple上にあるため、安全である必要がありますか?)つまり、アクセス許可が777に設定されているファイルがある場合、コードを自由に追加することはできません。

ここに、あなたの閲覧の喜びのための実際のコードのサンプルがあります(そして、あなたが見ることができるように...それにたいしたことはありません。本当のトリックは、彼らがそこにそれを入れた方法です):

<script type="text/javascript"><!--
google_ad_client = "pub-5465156513898836";
/* 728x90_as */
google_ad_slot = "4840387765";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

多くの人がそれを言及しているので、ここに私がチェックしたものがあります(チェックされたということは、ファイルが何らかの奇妙さのために変更された時間を見回したことを意味し、POSTステートメントとディレクトリトラバーサルのためにファイルをグレップしました:

  • access_log(通常の(つまり、過剰な)msnボットトラフィック以外は何もありません)
  • error_log(無害なファイルの場合、通常のファイルは存在しませんが、エラーはありません)
  • ssl_log(通常のもののみ)
  • messages_log(私以外のFTPアクセスはありません)

*更新:** OK、解決しました。中国のハッカーは、サイトに物理的にファイルを配置して、あらゆる種類の管理(データベースへのアクセス、ファイルとディレクトリの削除と作成、名前を付けて、アクセスできる)を行えるようにしました。彼らはもっと破壊的なことをしなかったのは幸運でした。通常のApacheのログファイルには何もありませんでしたが、Webサーバーのログアナライザーで別のログファイルのセットを見つけ、証拠がそこにありました。彼らは自分の管理者ユーザー名とパスワードでこのファイルにアクセスし、サーバー上で必要なものを編集していました。これらのファイルにはユーザーとして「apache」が設定されていますが、サイト上の他のすべてのファイルには異なるユーザー名が付けられています。次に、このファイルをシステムに物理的にどのように取得したかを把握する必要があります。これに対する責任は最終的にはウェブホスト(Media Temple)にあると思われますが、


6
知らない、誰かにパスワードを渡したの?

4
正確にこれがいつ発生するかがわかっている場合は、access_logでこの時期に異常なものをすべて検索してください。特に、すべてのPOSTリクエストに注意してください:どこに行くのか、何をしたのか。
sanmai

3
Thx WhirlWind ...とても助かります。
Lothar_Grimpsenbacher

2
実際にそれらを知っているなら、なぜスパム対策サイトにそれらのアドレスの詳細を貼り付けないのか。ネットが彼らに「話す」ようにして、彼らに彼ら自身のメダシンの味を与えてください。:-)

4
@ gaoshan88 —あなたが思うかもしれないより役立つ。1つの攻撃ベクトルは、開発者のftpクライアントからパスワードを盗聴するトロイの木馬です。
クエンティン

回答:


9

まず第一に、chmod 744あなたが望むものではありません。chmodのポイントは、システム上の他のアカウントへのアクセスを取り消すことです。chmod 700はchmodよりもはるかに安全です744。ただし、ApacheはPHPアプリケーションを実行するために実行ビットのみを必要とします。

chmod 500 -R /your/webroot/

chown www-data:www-data -R /your/webroot/

www-dataは一般的に、phpの実行に使用されるApacheのアカウントとして使用されます。このコマンドを実行して、ユーザーアカウントを表示することもできます。

`<?php
print system("whoami");
?>`

FTPは恐ろしく安全ではなく、この方法からハッキングされた可能性が非常に高いです。FTPを使用して、ファイルを書き込み可能にし、再度感染させることができます。FTPアクセスが可能なすべてのマシンでアンチウイルスを実行してください。FTPユーザー名とパスワードのローカルトラフィックを盗聴し、ログインしてファイルに感染するウイルスがあります。セキュリティを重視する場合は、すべてを暗号化するSFTPを使用します。ソースコードとパスワードをクリアテキストで有線で送信するのは、まったくの狂気です。

別の可能性は、古いライブラリまたはアプリケーションを使用していることです。ソフトウェアベンダーのサイトにアクセスして、最新バージョンを実行していることを確認してください。


6
+1、疫病のようなFTPを避けます。パスワードスニファートロイの木馬は、コンピューターに感染し、資格情報を使用してファイルを変更する可能性があります。または、ルーターに感染する可能性があります。または、セキュリティで保護されていないwifiネットワークを備えたnetcafeの隣のコンピューター。clearextでパスワードを送信するのは悪い考えです。
Tgr

1
FTPに SSL 付属してます。
悲しみ

1
@grawityほとんどの人は「ftp」を使用しませんが、それによりハッキングを防ぐことができます。sftpがより一般的です。
ルーク

2
www-dataは、Webディレクトリ内のファイルを所有してはなりません。ことを何でもWWW-データはサーバー上に下手に書かれたスクリプトによって更新することができます。
ゾレダチェ

9

私のMedia Temple Grid Serverアカウントは、このように何度も「ハッキング」されています。彼らのセキュリティは非常に貧弱です... 昨年、Plain TEXT PASSWORDSで始まり、今日まで続いています(テクニカルサポートに電話して「パスワードは何ですか?」と言ってください)。私が知っているのは、アカウントのすべてのパスワードがどのように変更されたかを毎月メールで受け取り、ハッキングされるたびに実際にデータベースパスワードを変更するからです。その会社は一見地獄のように光沢があるように見えますが、グリッドサーバーは混乱しています。すぐに切り替えることをお勧めます。

元の大失敗についての昨年のこの投稿をご覧ください(警告、を立てます)。そこから下り坂になっています。私は昨年、家族から離れて感謝祭を過ごし、私のウェブサイトからポルノリンクを削除しました。素敵。

ステータスページで楽しみを追跡します。最新のエクスプロイトについて説明します(そして、確かに、今のところ「可能性のあるエクスプロイト」があります)。


ハハ。私のgsサイトは今すべてダウンしています。メールなし。weblog.mediatemple.net/weblog/category/system-incidents/...
typeoneerror

2

アクセスログなどのアクティビティの欠如とほぼ同時に起こっている事実に基づいて、彼らはサーバーを危険にさらし、追加を実行するために何らかの種類のシェルスクリプトを実行しているように思われます。

crontabに何か異常な点がないかチェックしましたか?

ディレクトリとその参照の名前を変更しようとしましたか(これによりシェルスクリプトが破損する可能性があります)。


名前を変更することをお勧めします。サイトにどのような影響があるかを確認したら、それを試します。Crontabには少し奇妙なことがありました。ファイルが変更された頃のエントリがありますが、それはPleskバックアップマネージャです...コンパイルされたアプリケーションです。それが妥協された場合、Media Templeには大きな問題があります。
Lothar_Grimpsenbacher

1

はい、それは間違いなくファイルのアクセス許可に関連している可能性があります。Webプロセスで書き込み可能なファイルを使用することにより、実行しているWebアプリケーションのセキュリティ脆弱性にさらされます。すべてをロックして、Webプロセスが必要以上に読み書きできないようにします。

他のコンポーネントは、ファイルの変更方法を正確に追跡しています。Webサーバーのアクセスログを確認することは、開始するのに適した場所です。さまざまなユーザーの最終ログイン時間を確認します。また、ファイルの変更を監視し、通知を受け取るスクリプトを設定して、赤利きの犯罪者を捕まえることができます!


1

これは、最近多くのNetwork Solutionsサイトを攻撃したWordpressハックに非常に馴染みがあるように思えます。Media Templeを使用しているため、マシンを共有している他のユーザーに一部のファイルを表示したままにする可能性があります。これは、POSTまたはApacheのログトレースが不足していることを説明しています。その場合、コマンドラインにコードを挿入するのは非常に簡単です。


ログには、これらのファイルが変更された前後のトラフィックが表示されますが、207.46.13.43--[05 / May / 2010:01:42:26 -0700] "GET /oped/bpr.php?edid= 211&page = 4 HTTP / 1.1 "404 257"-"" msnbot / 2.0b(+ search.msn.com/msnbot.htm) "
-Lothar_Grimpsenbacher

Wordpressのハックがどのように機能したか知っていますか?自分の問題を修正する方法を教えてくれるかもしれません。
Lothar_Grimpsenbacher

2
はい、それは共有ボックスの不適切なアクセス許可であり、おそらくネットワークソリューションの一部の不適切なデフォルト構成が原因でした。推奨される修正方法は、フォルダーで755、ファイルで644としてアクセス許可をロックダウンすることでした。

1

コードは常に1つの特定のディレクトリに追加されます

ファイルに設定されている権限(755から644まで)に関連していますか?ウェブサーバーのユーザーへ

共有サーバーを使用していますか?その場合(またはそうでない場合でも)、誰かが総当たりでFTPパスワードを強制し、手に入れることができるファイルを追加するスクリプトをアップロードした可能性があります。

サードパーティの広告プログラムで使用されるもの

または、おそらくこのプログラムにはエクスプロイトがあります。


サードパーティのコードにエクスプロイトがあると思われます。それは共有サーバー上にありますが、アップロードされたスクリプトを見つけたはずです(アップロードして使用し、削除した場合を除き、それでもFTP接続を示すログファイルで何かを見つけました)
Lothar_Grimpsenbacher

1
ファイルがWebサーバーによって書き込み可能な場合、サーバー上の任意の Webサイトにスクリプトをアップロードし、ファイルを上書きした可能性があります。しかし、私はそのサードパーティのアプリもよく見ます。

サードパーティのコードが ...それは、実行可能なスクリプトまたはちょうどのJavaScriptスニペットのですか?JavaScriptはサーバー上のファイルを変更できません。
サルマンA

@Salman A-広告を管理するPHPスクリプトのコレクションです。
Lothar_Grimpsenbacher

OK、そのコードを調査したことを願っています。
サルマンA

1

適切なアクセス権(およびカーネルサポート)がある場合は、inotifyまたはdnotifyに基づいて監視デーモンを起動し、ファイルの変更を監視してから、(lsof)を使用してファイルが開いているプロセスを確認します。書き込みアクセス。監視にstraceを使用できる場合もあります。それは、どの実行可能ファイルが悪用されているかについての手掛かりを提供するはずです。


1

FTP検査ログは、最初に開始する場所です。ログにはタイムスタンプとともにすべてのアクティビティが含まれているとは限りませんが、ファイルが変更された時刻がわかっている場合は、FTPアカウントが侵害されているかどうかを判断できます。

次に、そのコードを挿入しているWebサーバー上のスクリプトである可能性があります。共有ホスティングシナリオでは、を実行できると思いますcat /web/malicious.com/script.js >> /web/innocent.com/index.php。これは、httpdユーザーによって実行されているコマンドやindex.phpファイルもそのユーザーが所有/書き込み可能ななど、特定の条件下で機能する場合があります。その場合は、ホスティングプロバイダーにスクリプトの注入に使用されているアカウントをトレースさせる必要があります。


1

ほとんどのサイトファイルは、Webサーバーで読み取り可能である必要があります。読み取り専用サイトでは、ログのみがWebサーバーによって書き込み可能である必要があります。所有者をWebサーバーで使用されている以外の誰かに設定します。スクリプトを除くすべてのファイルに保護640を設定します。スクリプトとディレクトリの設定750。Webサーバーが書き込む必要があるファイルまたはディレクトリの場合、所有者をWebサーバーに変更するか、chmod g + 2に関連するファイルまたはディレクトリを設定できます。


多くのスクリプトがインタープリターに渡されるため、非CGIスクリプトは多くの場合、モード600または640(ファイルの所有者とグループ、およびWebサーバーの実行ユーザーに応じて)を持つことができます。
outis

0

サイトをクラックする方法は無数にあります。彼らはあなたのスクリプトの脆弱性を使用し、パスワードを盗み、共同ホストされたサイトの脆弱性(安価なホストにいる場合)を使用し、サーバーマシン上の非Web関連サービスの脆弱性を使用している可能性があります。 。

最初のステップとして、ファイルの変更日を確認し、その時点での疑わしいアクティビティのアクセス、エラー、およびftpログを確認します。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.