Last Updated on 2016年6月9日 by かんりにん
職場の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