RAM root にログイン

LS-QVL

最近のファームウェアは、 busybox から telnetd が削除されているので、 RAM root にログインできず、 準備(LS-QL の場合)の手順では ハックキットがインストールできない。

ないなら自分で入れればいいじゃないかと、 telnetd を仕込んでみる。

標準ファームにrootでログイン

yasunari@qube:~$ ssh -l root qvl
root@LS-QVLF42:~#

initrd.buffalo の展開

root@LS-QVLF42:~# cd /boot
root@LS-QVLF42:/boot# ls
builddate.txt     initrd.buffalo    lost+found/       uImage.buffalo
conf_save.tgz     log.tgz           u-boot_lsqvl.bin
root@LS-QVLF42:/boot# dd if=initrd.buffalo of=initrd.gz bs=64 skip=1
150232+1 records in
150232+1 records out
root@LS-QVLF42:/boot#
root@LS-QVLF42:/boot# gunzip initrd.gz
root@LS-QVLF42:/boot# mkdir /tmp/root
root@LS-QVLF42:/boot# mount -o loop initrd /tmp/root
root@LS-QVLF42:/boot#

root のパスワードを消す

root@LS-QVLF42:/boot# cd /tmp/root/etc
root@LS-QVLF42:/tmp/root/etc# vi shadow
	:
	:
root@LS-QVLF42:/tmp/root/etc# grep root shadow
root::11009:0:99999:7:::
root@LS-QVLF42:/tmp/root/etc#

linuxrc の修正

root@LS-QVLF42:/tmp/root/etc# cd ..
root@LS-QVLF42:/tmp/root# ls
bin/        etc/        lost+found/ root/       share/      usr/
debugtool/  lib/        mnt/        rootfs/     sys/        var/
dev/        linuxrc*    proc/       sbin/       tmp/        www/
root@LS-QVLF42:/tmp/root# mv linuxrc{,.orig}
root@LS-QVLF42:/tmp/root# cp linuxrc{.orig,}
root@LS-QVLF42:/tmp/root# vi linuxrc
	:
	:
root@LS-QVLF42:/tmp/root# !cp:s/cp/diff -u/
diff -u linuxrc{.orig,}
--- linuxrc.orig        Mon Mar 12 14:37:14 2012
+++ linuxrc     Sun Jun 17 16:46:02 2012
@@ -369,6 +369,7 @@
 RamdiskRoot()
 {
        echo "-RamdiskRoot-"
+       /usr/sbin/telnetd
        echo "0x100" >/proc/sys/kernel/real-root-dev
 }

@@ -467,7 +468,7 @@
 echo "linuxrc:choose operation (timeout 4[s])"
 echo -n " 1:RamRoot other:HddRoot  ? "
 ## timeout is 4[s]
-ANSWER=`/usr/local/bin/keyinput -t 4`
+ANSWER=1
 case "$ANSWER" in
   1) RamdiskRoot ;;
   9) CommandMode ;;
root@LS-QVLF42:/tmp/root# ls -l linuxrc*
-rwxr-xr-x    1 root     root        10387 Jun 17 16:46 linuxrc*
-rwxr-xr-x    1 root     root        10397 Mar 12 14:37 linuxrc.orig*
root@LS-QVLF42:/tmp/root#

telnetd を置く

ハックキットには telnetd が含まれる busybox を添付している。 それを /usr/sbin/telnetd としておく

ハックキットを置く

標準ファームのファイル共有を使ってハックキット一式を share/hackkit に置く

/usr/sbin/telnetd にコピーする

busybox-telnetd_static を /usr/sbin/telnetd にコピーする
root@LS-QVLF42:/tmp/root# cp /mnt/disk1/share/hackkit/091128_lenny/busybox/busybox-telnetd_static usr/sbin/telnetd
root@LS-QVLF42:/tmp/root# ls -l usr/sbin/telnetd
-rwxr--r--    1 root     root       646596 Jun 17 16:52 usr/sbin/telnetd*
root@LS-QVLF42:/tmp/root# chmod +x !$
chmod +x usr/sbin/telnetd 
root@LS-QVLF42:/tmp/root# ls -l !$
ls -l usr/sbin/telnetd
-rwxr-xr-x    1 root     root       646596 Jun 17 16:52 usr/sbin/telnetd*
root@LS-QVLF42:/tmp/root# usr/sbin/telnetd
root@LS-QVLF42:/tmp/root#

アンマウント

root@LS-QVLF42:/tmp/root# cd /
root@LS-QVLF42:/# umount /tmp/root
umount: cannot umount /mnt/ram/root: Device or resource busy
root@LS-QVLF42:/# ps | grep telnetd
18524 root        868 S   usr/sbin/telnetd
root@LS-QVLF42:/# kill 18524
root@LS-QVLF42:/# !umount
umount /tmp/root
root@LS-QVLF42:/#

initrd.buffalo の作り直し

root@LS-QVLF42:/# cd /boot
root@LS-QVLF42:/boot# mv initrd.buffalo{,.orig}
root@LS-QVLF42:/boot# gzip initrd
root@LS-QVLF42:/boot# 
mkimage はあったか?
root@LS-QVLF42:/boot# mkimage
-bash: mkimage: command not found
root@LS-QVLF42:/boot#
ない。
hackkit の mkimage を使う。
root@LS-QVLF42:/boot# /mnt/disk1/share/hackkit/mkimage
Usage: /mnt/disk1/share/hackkit/mkimage -l image
          -l ==> list image header information
       /mnt/disk1/share/hackkit/mkimage [-x] -A arch -O os -T type -C comp -a addr -e ep -n name -d data_file[:data_file...] image
          -A ==> set architecture to 'arch'
          -O ==> set operating system to 'os'
          -T ==> set image type to 'type'
          -C ==> set compression type 'comp'
          -a ==> set load address to 'addr' (hex)
          -e ==> set entry point to 'ep' (hex)
          -n ==> set image name to 'name'
          -d ==> use image data from 'datafile'
          -x ==> set XIP (execute in place)
root@LS-QVLF42:/boot# /mnt/disk1/share/hackkit/mkimage  -A ARM -O Linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd -d initrd.gz initrd.buffalo
Image Name:   initrd
Created:      Sun Jun 17 16:55:44 2012
Image Type:   ARM Linux RAMDisk Image (gzip compressed)
Data Size:    9890857 Bytes = 9659.04 kB = 9.43 MB
Load Address: 0x00000000
Entry Point:  0x00000000
root@LS-QVLF42:/boot# ls -l initrd.buffalo*
-rw-r--r--    1 root     root      9890921 Jun 17 16:55 initrd.buffalo
-rw-r--r--    1 root     root      9614969 Mar 13 13:11 initrd.buffalo.orig
root@LS-QVLF42:/boot#
できた。

再起動

root@LS-QVLF42:/boot# reboot
root@LS-QVLF42:/boot#
LED は、
POWER:青点灯
1:緑
2:赤
3:赤
4:赤

RamRoot に telnet

yasunari@qube:~$ telnet qvl
Trying 192.168.2.56...
Connected to qvl.yamasita.jp.
Escape character is '^]'.

BUFFALO INC. LinkStation series
sh-3.2#
sh-3.2# cat /proc/buffalo/board_info
BoardId=83
BoardName=MVLSQV
sh-3.2#
sh-3.2#
きたー。

LS-QVL
バッファローダイレクト
楽天市場
amazon
ドスパラ
livedoor デパート
Yahoo!ショッピング
バリューモア
ムラウチドットコム


実験用 HDD の作成
ハックの記録
LinkStation/玄箱 をハックしよう

ハックキットのインストール

ツイート Tweet to @yasunari_y @yasunari_yをフォロー

Copyright (C) 2003-2012 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市