ハッキングの準備をする ハッキングをする
特定のプログラミング言語に縛られる必要はありませんが、いくつかの指針があります。プログラミング言語を習得するには時間がかかるので、辛抱強く取り組む必要があります。  C言語やC++言語は、LinuxやWindowsの基礎となった言語です。アセンブリ言語と同じように、「メモリがどのようなものか」というハッキングにおいてとても重要なことを学べます。 PythonやRubyは高度で強力なスクリプト言語であり、様々な仕事を自動化させることができます。 Perlもこの分野における選択肢の一つです。PHPは、多くのウェブアプリケーションがPHPを用いているため、学ぶ価値があります。 Bashスクリプティングは必須です。Bashスクリプトを書くことで、UnixやLinuxのシステムを簡単に操作することができ、仕事のほとんどを任せられます。 アセンブリ言語も必須です。プロセッサーが理解する基本的な言語であり、様々な種類があります。アセンブリ言語を知らないと、プログラムの脆弱性を真に利用することができません。 標的の情報を集める過程を「エニュメレーション」と言います。予備知識が多ければ多いほど、想定外の出来事が少なくて済みます。 Cygwin（英語）は、Windowsを使っている人がUnix系の環境を利用するのに役立ちます。特にNmap（英語）は、Windowsで動作するのにWinPCap（英語）を用いており、Cygwinは必要ではありません。しかしNmapは、rawソケットが少ないためWindowsではあまりうまく動作しません。より柔軟な、LinuxやBSDを使うことも考えましょう。ほとんどのLinuxディストリビューションは、役に立つツールが既にインストールされています。 Windows 10 Fall Creators Update以降であれば、代わりとして、WindowsストアでUnix系のターミナルを探しましょう。Windows Subsystem for Linuxのおかげで、WindowsはLinuxコマンドラインの環境を作り出すことができます。 自分自身を守るための一般的なテクニックを十分に理解しているかを確認しましょう。基礎的なことから始めましょう。そして、自分が標的を攻撃する権限を持っているかを確認しましょう。自分のネットワークを攻撃するか、書面による許可をもらうか、仮想の機械を備えた実験室を立ち上げるなどしましょう。コンテンツの内容に関わらず、システムを攻撃することは違法であり、問題に巻き込まれることになります。 遠隔のシステムに到達することができますか？ping（ほとんどのオペレーティングシステムにある）を使って標的が作動中であるかどうかを確認することができますが、結果がいつも信用できるとは限りません。pingはICMPプロトコルに依存するため、システム管理者が神経質だとすぐに止められることがあるからです。 ポートスキャンを実施して、その際はpOfやnmapを試しましょう。これにより、開放されているポート、OS、そしてどんな種類のファイヤーウォールやルーターを使っているかが分かり、どのような行動をすればいいか計画を立てることができます。-O switchを用いることで、nmapでOS検出機能を動作させることができます。 FTPの21番ポートやHTTPの80番ポートなどの一般的なポートは、しばしば厳重に防御されていて、まだ未発見の脆弱性攻撃しか弱点はないかもしれません。  忘れられているかもしれないTCPやUDPのポートを試しましょう。例えば、Telnetや、LANゲームのために開けっ放しになった様々なUDPポートなどです。 22番ポートが開放されていれば、SSH（セキュアシェル）が動作していることの証ですが、ブルート・フォース攻撃（パスワードの総当たり攻撃）で開けることもできます。 ブルート・フォース攻撃など、パスワードをこじ開ける方法はいくつかあります。パスワードを総当たりするブルート・フォース攻撃とは、専用のソフトウェアにある所定の辞書を使って、可能性のあるパスワードをすべて試してみるというものです。  ユーザーは強いパスワードを用いることを推奨されているので、ブルート・フォース攻撃には時間がかかるかもしれません。しかし、この攻撃法は大きく進歩しています。 ほとんどのハッシュ関数は弱いもので、こうした弱みをつくことでパスワードをこじ開けるスピードは格段に上がります（例えば、MD5関数を4分の1にすることで、スピードを格段に上げることができます）。 最新の技術では、別のプロセッサーとしてビデオカードを用いており、何千倍も速度が上がります。 最速の方法として、レインボーテーブルを用いることもできます。パスワードをこじ開ける技術は、パスワードのハッシュを持っている場合に限り有効であることに気をつけましょう。 遠隔の機械にログインしている時に、可能性のあるパスワードをすべて試すのは避けましょう。なぜなら、侵入検知システムにすぐに検知され、システムログが汚され、遂行するのに何年もかかってしまうからです。 ルート化されたタブレットを手に入れて、TCPスキャンをインストールし、安全なサイトにアップロードするための信号を得るということもできます。そうすると、IPアドレスが開き、あなたのプロキシにパスワードが現れます。 大抵の場合、パスワードをこじ開けるよりも、別の方法でシステムに入る方が簡単です。 Unix系の機械を標的にする場合はルート化の権限を手に入れ、Windowsのシステムを標的にする場合は管理者の権限を手に入れましょう。  最大の関心事である情報のほとんどは防御されているため、それを手に入れるには一定の認証を得る必要があります。コンピュータのすべてのファイルを見るには、スーパーユーザーの権限、つまり、LinuxやBSDのルートユーザーと同じ権限を持つユーザーアカウントが必要です。 スーパーユーザーは、ルーターでは（変更がされていない限り）既定の管理者アカウントであり、Windowsでは管理者アカウントとなります。 コネクションの一つにアクセスできるからといって、すべてにアクセスできるわけではありません。これができるのは、スーパーユーザー、管理者アカウント、ルートアカウントだけです。 スーパーユーザーになるためには、しばしば「バッファオーバーフロー」を作るなどの戦術を用いなければなりません。「バッファオーバーフロー」はメモリに誤作動を起こさせてコードを注入し、普通の権限よりも高いレベルで仕事をできるようにするものです。  この誤作動は、Unix系のシステムの場合はsetuidビットがセットされているときに発生します。発生すると、プログラムは別のユーザー（例えば、スーパーユーザー）として実行されます。 実行可能で安全でないプログラムを書く、あるいは見つけることによってしか、これを行うことはできません。 システムを完全に支配できたら、再度侵入できるようにしておきましょう。これは、SSHサーバーのような重要なシステムサービスに「裏口」を作ることによって可能です。ただし、裏口を作っても、次のシステムアップグレードまでに取り除かれるかもしれません。経験豊富なハッカーは、コンパイラそのものに裏口を作るため、コンパイルされたソフトウェアならどれも裏口になり得ます。 管理者にシステムが感染していることを知られないようにしましょう。ウェブサイト（あれば）には変更を加えず、必要以上のファイルを作らないようにしましょう。また、追加のユーザーを作ってはいけません。できるだけ素早く行動しましょう。SSHDのようなサーバーにパッチを当てた場合、ハードコーディングされた秘密のパスワードがあることを確認しましょう。誰かがこのパスワードでログインしようとした場合、サーバーはこれを受け入れるはずですが、重要な情報は保持していないはずです。
プログラミング言語を学びましょう。 標的について知りましょう。 Unix系のコマンドを使いましょう。 まずは機械（パソコン）の安全を確認しましょう。 標的をテストしましょう。 OSを決めましょう。 システムの開放されたポートや筋道を探しましょう。 パスワードや認証プロセスをこじ開けましょう。 スーパーユーザーの権限を得ましょう。 様々な仕掛けを用いましょう。 裏口を作りましょう。 足跡を隠しましょう。
https://www.wikihow.com/Hack https://www.wikihow.com/Hack
Preparing Before You Hack Hacking