パスワードクラック
システム管理者の中には、OS やハードウェアの初期パスワードを変更せず放っておく者もいる。悪い意味で有名なのが「FieldService」というユーザ名と「Guest」というパスワードの組み合わせである。システム設定をする際にこれを変更しなかった場合、そのシステムの知識を持つ誰かがそのパスワードを悪用しているかもしれない。その種のメンテナンス用アカウントは、一般ユーザのアカウントよりも大きなアクセス権限を大概は持っている。初期パスワードの一覧はインターネット上で見つけることができる 。ゲイリー・マッキノンは「軍用コンピュータに対する、かつてないほど大規模なクラッキング」を行なったとして合衆国政府から告発されたが、彼は空のパスワードを探す Perl スクリプトを使うだけで軍用ネットワークに侵入できたと主張している。言い換えると、そのネットワークには全くパスワードを設定していないコンピュータがいくつもあったのである。
ターゲットの個人情報を基に、ありえそうなパスワードのパターンを生成するクラッキングソフトが存在する。
あるサービスから流出したパスワードを用いて、別のサービスへの不正ログインを試みる攻撃
ただしこれは、md5-crypt や Blowfish ベースの bcrypt といった、強力なパスワードハッシュ法を使うシステムで意味を持つのであり、多くの Microsoft Windows システムでは不充分である。なぜなら、それらの Windows はレガシーな LAN Manager ハッシュ法を使っており、それはパスワードを 2 個の 7 バイト列に分けてしまうからだ。それらのシステムでは、8 文字のパスワードならば 7 文字のパスワードと 1 文字のパスワードに変換される。セキュリティを高めるためには、そのシステムに依存するレガシーシステムに影響がない限り、LAN Manager 形式でのパスワード保存を無効化すべきである。 システムによっては、パスワードに数字しか使えなかったり、大文字しか使えなかったり、あるいは一般的に言って、パスワード用の文字に制限を設けている場合がある。そうしたシステムも、比較的容易に総当たり攻撃をかけることができる。そうした場合(可能ならば)より長いパスワードを使うことで、文字パターンの制約を埋め合わせることができる。もちろん、多くの文字を選べるシステムであっても、ユーザ自身が特定の種類の文字に限って選択を行なった場合(例えば大文字だけ選んだり、数字だけ選んだ場合)は、そのアカウントへの総当たり攻撃は非常に容易になってしまう。
パスワードクラックを防ぐ最善の方法は、攻撃者が暗号化されたパスワードにすらアクセスできないような仕組みを、確実に施しておくことである。例えば Unix の場合、暗号化されたパスワードは誰でもアクセスできるファイルとして /etc/passwd に当初は保存されていた。しかし現在の Unix(および Unix 系 OS)では、それらは特殊な権限(いわゆる system 権限)で動作するプログラムのみアクセスできる /etc/shadow に保存される。これにより、悪意を持ったユーザがまず手始めに暗号化されたパスワードを入手することは困難になる。ただ、広く使われている多くのネットワーク・プロトコルは、パスワードを平文もしくは脆弱なチャレンジ/レスポンス方式で伝送している。
現代的な Unix システムは、伝統的な DES ベースのパスワードハッシュから、より強力な MD5 および Blowfish ベースの方式へ置き換わっている。