■パスワードクラック(基礎パスワードクラック講座と伏せて読んでみてください)
momo:7B6q1kqnj0pl2:11160:10001:momo:/usr/home/momo:/bin/csh というものが、/etc/passwd に有ったとすると、momo が user id で 7B6q1kqnj0pl2 のうちの 頭の 7B が salt で 残りの 6q1kqnj0pl2 が salt で暗号化されたパスワード、或いはバスワードで暗号化された salt である(同じになる)。 だから パスワードとしてありそうな文字列を配列 keys[]; 入れておけば、
p = "6q1kqnj0pl2";
s = "7B";
for (i=0; (key=keys[i]) != 0;i++){
if ( strcmp(crypt(key,s), p) == 0 ){
return MATCH;
}
}
とこれが crack の基本的な部分になる。
さらに、 この配列 keys の先頭に user id を入れておいてもいいですね。
この crypt には GNU Crypt を使えば一桁速くなるし、この keys の配列は単に UNIX に備え付けの /usr/dict/words のようなものを使ってもよいし、さらに末尾に数字とか記号の組み合わせを入れて行くと段々本格的になります。他のToolのソースを見てみて勉強してみてください。
■参考文献
|
|||
|
|