ラベル Linux の投稿を表示しています。 すべての投稿を表示
ラベル Linux の投稿を表示しています。 すべての投稿を表示

2013年1月16日水曜日

john the ripper の使い方

Backtrack に収録されているパスワードクラックツール john the ripper の使い方。
/etc/shadow ファイルが必要なので root 権限が必要になる。
実際に使う場面としては root 権限はあるが他のユーザのパスワードを取得したい時などになる。

Linux 系のシステムではユーザとパスワードは以下の二つのファイルで管理されている。

/etc/passwd
/etc/shadow

passwd がユーザ属性が記述してあり、shadow がハッシュ化されたパスワードが格納されている。
john the ripper ではこの二つのファイルからパスワードを解析する。

ここでは、Backtrack のファイルを解析する。
まず最初に passwd ファイルと shadow ファイルを手元にコピーして john the ripper が解析できる形式に変換する。

root@bt:~# cp /etc/passwd ./passwd
root@bt:~# cp /etc/shadow ./shadow
変換するコマンドは unshadow で、pass ファイルと shadow ファイルを読み込ませて出力ファイルを設定する。
root@bt:~# /pentest/passwords/john/unshadow
Usage: unshadow PASSWORD-FILE SHADOW-FILE
root@bt:~# /pentest/passwords/john/unshadow passwd shadow > pass_shadow
root@bt:~# ls
Desktop  pass_shadow  passwd  shadow

ファイルができたら解析する。

root@bt:~# /pentest/passwords/john/john pass_shadow 
Warning: detected hash type "sha512crypt", but the string is also recognized as "crypt"
Use the "--format=crypt" option to force loading these as that type instead
Loaded 1 password hash (sha512crypt [32/32])
toor             (root)
guesses: 1  time: 0:00:00:00 DONE (Wed Jan 16 21:07:35 2013)  c/s: 23.33  trying: toor
Use the "--show" option to display all of the cracked passwords reliably
root@bt:~# 


これで解析できた。

ただし、実際の環境でこのコマンドを実行すると複数の解析モードが複数のユーザに対して延々実行されるのでかなりの時間がかかる。
実際に試す場合は下記のオプションを使い分ける。

john --single file_name : シングルモード、ユーザ名に含まれる情報から推測する、お手軽
john --wordlist=word_list file_name : 辞書解析、実質的に使えるのはこのモードまで
john --incremental file_name : ブルートフォースアタック、あまり使わないと思う


あとは、ユーザ名を付け加えるぐらいで十分。
john --users=user_name

解析が終わって結果を見る場合は --show コマンドで元のファイルを表示させる
./john --show pass_shadow

2012年11月10日土曜日

DHCPv6 サーバの構築

IPv6 のアドレスを配布する方法には RA と DHCPv6 がある。
現状 RA についてはゲートウェイ、ネットワークプレフィックスしか配布できないため、アドレスを固定したい場合や DNS のアドレスを配布したい場合には DHCPv6 サーバを準備する必要がある。

DHCPv6 として使えそうなものはいくつかあるが、今回は ISC DHCP を使用。
基本的な設定方法は下記に記載がある。

http://tldp.org/HOWTO/Linux+IPv6-HOWTO/hints-daemons-isc-dhcp.html

以下、抜粋して日本語コメント。

# 該当するするプレフィックス
subnet6 2001:db8:0:1::/64 {
        # クライアントに配布するアドレスレンジ
        range6 2001:db8:0:1::129 2001:db8:0:1::254;
        # 配布するDNSサーバのアドレス
        option dhcp6.name-servers fec0:0:0:1::1;      
        # ルータに権限委譲して配布させる場合に使用
        prefix6 2001:db8:0:100:: 2001:db8:0:f00:: /56;
        # ここで端末のDUIDと固定アドレスをマッチさせる
        host specialclient {
      host-identifier option dhcp6.client-id 00:01:00:01:4a:1f:ba:e3:60:b9:1f:01:23:45;
         fixed-address6 2001:db8:0:1::127;
     } 
}  
起動スクリプトは IPv4 の DHCP も DHCPv6 も同じ dhcpd を使用する。
そのため、DHCPv6 の起動時には -6 オプションをつけて起動

# /usr/sbin/dhcpd -6 -f -cf /etc/dhcp/dhcpd.conf eth1

コマンドの最後にインターフェースを指定する。これを省略する場合は/etc/sysconfig/dhcpd6DHCPDARGS=""と言う箇所があるので、そこでインターフェースを設定する方法もある。
正常に起動すると下記のようなメッセージが出力される。

Internet Systems Consortium DHCP Server 4.1.0 
Copyright 2004-2008 Internet Systems Consortium. 
All rights reserved. 
For info, please visit http://www.isc.org/sw/dhcp/ 
Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file 
Wrote 0 leases to leases file. 
Bound to *:547 
Listening on Socket/5/eth1/2001:db8:0:1::/64 
Sending on   Socket/5/eth1/2001:db8:0:1::/64
 
正常に起動してもアドレスが取得できない場合は ip6tables や selinux を確認。

2012年11月9日金曜日

iptables と ip6tables

IPv6 でサーバを構築するときの注意として ip6tables がある。
iptables は IPv4 の通信についての FW 機能を提供し、ip6tables は IPv6 のFW 機能を提供する。
これはインストール時から有効になっており、サーバ構築時には変更が必要になってくる。
[root@localhost ~]# chkconfig --list | grep table
ip6tables       0:off   1:off   2:on    3:on    4:on    5:on    6:off
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
  コマンドの書式などは基本的に一緒。
[root@localhost ~]# iptables --help
iptables v1.4.7

Usage: iptables -[AD] chain rule-specification [options]
       iptables -I chain [rulenum] rule-specification [options]
       iptables -R chain rulenum rule-specification [options]
       iptables -D chain rulenum [options]
       iptables -[LS] [chain [rulenum]] [options]
       iptables -[FZ] [chain] [options]
       iptables -[NX] chain
       iptables -E old-chain-name new-chain-name
       iptables -P chain target [options]
       iptables -h (print this help information)

 [root@localhost ~]# ip6tables --help
ip6tables v1.4.7

Usage: ip6tables -[AD] chain rule-specification [options]
       ip6tables -I chain [rulenum] rule-specification [options]
       ip6tables -R chain rulenum rule-specification [options]
       ip6tables -D chain rulenum [options]
       ip6tables -[LS] [chain [rulenum]] [options]
       ip6tables -[FZ] [chain] [options]
       ip6tables -[NX] chain
       ip6tables -E old-chain-name new-chain-name
       ip6tables -P chain target [options]
       ip6tables -h (print this help information)
一緒で分かれていると言うことは、1台のサーバについて2つのFW機能を管理しないといけなくなる。
そして、IPv6 の場合は複数のアドレスを持つ場合があるので、それらの管理を考える必要もあるので注意が必要。

取り急ぎサーバを構築して機能検証するなら ip6tables を止めるのもあり。