harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

LinkStation rootアカウントのリセットとtelnetログイン

   


職場のLinkStationが不調になったとの連絡があり、フォルダにアクセスできなくなったり、起動してしばらくするとエクスプローラーからの応答が無くなったり、管理画面へのアクセスもタイムアウトする始末…と非常に困った状況になりました。

ただpingは応答するのと、保証もずっと前に切れている古いモデルなので、ダメもとでtelnetアクセスとrootログインのハックを試してみることとにしました。
これで中のデータさえ抜き出せればOKなのですが…
すでにLinkStationのハッキングではおなじみと思われる”acp_commander.jar”の利用です。

本当はアプライアンス製品に手を出すのは、個人的には是としないポリシーなのですが、データのサルベージは自分達でやるしかないし、ググれば数多くのハック記事が出てきて実績(!?)もありそうなので、参考にさせてもらいつつ試してみたところ、無事データのサルベージに成功しました…やれやれ。

ということで、同様の記事が既にネット上にたくさんありますが、今回の作業ログもあわせて追加します。

今回お世話になったサイト

acp_commander.jarの配布元です。
buffalo.nas-central.org
acp_commander.jarのダウンロードページ

-モデル

LS-WHGL/R1
今回のホストはLS-WH2.0TGL/R1です。
RAID0にて2TBを割り当て、使用率99%なのでデータを失ったらイイ感じにヤバかったw

-ファームウェア

F/W 3.10、一応この機種では最新です。

1)acp_commander.jarを実行してみる

WindowsXPのコマンドプロンプトから実行。

パスの指定が面倒だったので、javaランタイムのjava.exeと同じフォルダに
acp_commander.jarをダウンロードし、そのまま実行。

C:\Program Files\Java\jre7\bin>java.exe -jar acp_commander.jar -t 192.168.200.241 -o
there seems to be no existing prefs, write default values
ACP_commander out of the nas-central.org (linkstationwiki.net) project.
Used to send ACP-commands to Buffalo linkstation(R) LS-PRO.
WARNING: This is experimental software that might brick your linkstation!
Using random connID value = C3F5332*****
Using target:   BACKUP_LS/192.168.200.241
Starting authentication procedure...
Sending Discover packet...
Found:  BACKUP_LS (/192.168.200.241)    LS-WHGL/R1(KEIKOU) (ID=00483)   mac: 00:1D:**:**:**:**
Firmware=  3.100        Key=2FDB****
Trying to authenticate EnOneCmd...      ACP_STATE_OK
start telnetd...        OK (ACP_STATE_OK)		←telnetサービスの起動
Reset root pwd...       Password changed.		←rootのパスワードリセット
You can now telnet to your box as user 'root' providing no / an empty password.
C:\Program Files\Java\jre7\bin>

2)ログイン確認

rootパスワードのリセット、telnetの起動に成功すると
ログインできるようになるので、ひとまずコマンドプロンプトから確認。

BUFFALO INC. LinkStation series
BACKUP_LS login:

表示されました。
つづけてrootと入力します。

BUFFALO INC. LinkStation series
BACKUP_LS login: root
root@BACKUP_LS:~#

ログイン成功!
つづけて共有フォルダを何となくのぞいてみる。

root@BACKUP_LS:~# ls -al
drwx------    3 root     root           39 Dec  3 14:40 .
drwxr-xr-x   19 root     root         4096 Nov  1  2007 ..
-rw-------    1 root     root          609 Dec  3 15:22 .bash_history
drwx------    2 root     root           28 Feb 26  2009 .files
root@BACKUP_LS:~# cd /mnt/array1/
root@BACKUP_LS:/mnt/array1# ls
mt-daapd  share     spool
root@BACKUP_LS:/mnt/array1# ls -al
drwxrwxrwx    5 root     root           63 Nov  1  2007 .
drwxrwxrwx   11 root     root          126 Nov  1  2007 ..
-rw-r--r--    1 root     root            0 Dec  3 15:22 .accesstest
drwx------    2 root     root           22 Nov  1  2007 mt-daapd
drwxrwxrwx    3 root     root           21 May  9  2012 share
drwxr-xr-x    4 root     root           27 May  9  2012 spool
root@BACKUP_LS:/mnt/array1# cd share/
root@BACKUP_LS:/mnt/array1/share# ls -al
drwxrwxrwx    3 root     root           21 May  9  2012 .
drwxrwxrwx    5 root     root           63 Nov  1  2007 ..
drwxrwxrwx    2 nobody   nogroup        65 May  9  2012 trashbox
root@BACKUP_LS:/mnt/array1/share#

あとはrsyncでファイルを一時的に外部のHDDへ書き出し、何とか完了です。

3)その他の作業

telnetでログインすれば、Viも使えるし普通のLinuxと同様に操作できるので、あとは任意で下記の項目を設定して再起動してあげればOK。

rootパスワードの再設定

    telnetでログインできるので、passwdコマンドで設定してあげてもOK。

ログインユーザーの登録

    これもuseraddで普通に実行できたので、必要に応じてユーザーを追加。
    ※今回は転送用にユーザーアカウントを作成しました。

ssh環境の設定

    ssh関連の設定ファイルは/etc/sshdでなく/etc直下にある。ここを任意で編集。

telnetd、sshdの自動起動設定を追加

    今回はデータのサルベージが目的だったのでsshdはrsyncをssh経由で使用するのに起動。

とりあえず今日のところはデータも無事だし、一段落。
そしてサルベージしたデータの保管用に、また新しいLinkStationを探しにパソコンショップへ行くことにしますw

 - infra, トラブルシュート, メモ, 運用