先日、アキバお買い得価格情報(3月31日~4月1日調査)でWRH-H300が安売りされていると見たので買って調べてみました。
実物はホテル使用を前提にしていただけあってとても小さく、持ち運びしやすいサイズでした。また5G帯にも対応していて、高速に通信ができそうです。しかし、2013年の発売から8年ほど後に任意コマンド実行の不具合が報告され、使用を中止するようにとされてしまいます。
また、入手したルーターのSSIDは”atlas-2-2-4″と”atlas-5-2-4″となっていて、パスワードは変更されていました。
問題の脆弱性ですが、確かにCVE-2021-20739で存在が確認されています。ログイン後にsyscmd.htmにアクセスする事で任意のシェルコマンドを実行できるようです。
調べてみるとこの機種はRTL8196Eを使用していて、32MBのRAMがあるようです。(Flashは不明)
以下にいくつかのディレクトリのリストを記載します。
/proc/cpuinfo:
system type : RTL819xD
processor : 0
cpu model : 52481
BogoMIPS : 398.95
tlb_entries : 32
mips16 implemented : yes
/proc/meminfo:
MemTotal: 26908 kB
MemFree: 11908 kB
Buffers: 924 kB
Cached: 3868 kB
SwapCached: 0 kB
Active: 4156 kB
Inactive: 2312 kB
Active(anon): 1676 kB
Inactive(anon): 0 kB
Active(file): 2480 kB
Inactive(file): 2312 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 1684 kB
Mapped: 1216 kB
Slab: 7884 kB
SReclaimable: 356 kB
SUnreclaim: 7528 kB
PageTables: 236 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 13452 kB
Committed_AS: 3352 kB
VmallocTotal: 1048404 kB
VmallocUsed: 276 kB
VmallocChunk: 1044408 kB
/bin/:
acltd
ash
auth
bandswmode
boa
brctl
bunzip2
busybox
bzcat
cat
connect.sh
cp
cut
date
ddns_inet
disconnect.sh
dnrd
dw
echo
ew
expr
false
firewall.sh
flash
free
fwd
getmib
getmib1
grep
halt
head
hostname
iapp
ib
ib1
id1
idd
idd1
ifconfig
igmpproxy
init
init.sh
ip
ip_qos.sh
iptables
irf
irf1
iw
iw1
iwcontrol
iwpriv
kill
killall
killsh.sh
klogd
l2tp.sh
l2tpd
lld2d
ln
ls
miniigd
mkdir
mmd_cmdr
mmd_cmdw
mount
mp.sh
ntp_inet
ntpclient
ob
ob1
od
od1
orf
orf1
ow
ow1
phyr
phyw
ping
poweroff
ppp_inet
pppd
pppoe.sh
pppoe_conn_patch.sh
pppoe_disc_patch.sh
pptp
pptp.sh
ps
reboot
reload
renice
rm
route
routed
rssi
rssi1
rtk_cmd
server
setmib
setmib1
sh
sleep
slidemode
snmpd.sh
startup.sh
stupid-ftpd-init.sh
sysconf
syslogd
tail
tc
telset
timelycheck
true
udhcpc
udhcpd
umount
updatedd
wc
wlanapp.sh
wps5G
wscd
/dev/:
console
fuse
log
misc
mtdblock0
mtdblock1
mtdblock2
mtdblock3
null
ppp
ptmx
pts
ptyp0
ptyp1
random
sda
sda1
sda10
sda11
sda12
sda13
sda14
sda15
sda2
sda3
sda4
... (中略) ...
sdp13
sdp14
sdp15
sdp2
sdp3
sdp4
sdp5
sdp6
sdp7
sdp8
sdp9
ttyS0
ttyS1
ttyp0
ttyp1
urandom
voip
zero
/etc/:
TZ
boa
dnrd
group
host.conf
hosts
icon.ico
init.d
inittab
linuxigd
lld2d.conf
mime.types
motd
passwd
ppp
realsil_gw.ico
resolv.conf
samba
services
shadow.sample
simplecfg
simplecfgservice.xml
tmp
udhcpc
udhcpd
ushare.conf
version
vsftpd.conf
wscd.conf
/web/:
config.dat
countDownPage.htm
dhcptbl.htm
graphics
home.htm
index.htm
index.html
lang
loginfail.htm
logout.htm
menu-images
menu.htm
my.js
opmode.htm
password.htm
saveconf.htm
status.htm
style-font.css
style.css
syscmd.htm
tcpip_staticdhcp.htm
tcpiplan.htm
tcpipwan.htm
title.htm
upload.htm
util_gw.js
util_qos.js
wlactrl.htm
wladvanced.htm
wlbasic.htm
wlmultipleap.htm
wlsch.htm
wlsecurity.htm
wlsecurity_all.htm
wlstatbl.htm
wlstatbl_vap.htm
wlwps.htm
/proc/mtd
dev: size erasesize name
mtd0: 00130000 00001000 "boot+cfg+linux"
mtd1: 002d0000 00001000 "root fs"
/proc/self/mounts
rootfs / rootfs rw 0 0
/dev/root / squashfs ro,relatime 0 0
proc /proc proc rw,relatime 0 0
ramfs /var ramfs rw,relatime 0 0
/proc/version
Linux version 2.6.30.9 (root@localhost.localdomain) (gcc version 3.4.6-1.3.6) #176 Mon Jul 15 17:09:45 CST 2013
ps
PID USER VSZ STAT COMMAND
1 root 1152 S init
2 root 0 SW< [kthreadd]
3 root 0 SW< [ksoftirqd/0]
4 root 0 SW< [events/0]
5 root 0 SW< [khelper]
6 root 0 SW< [async/mgr]
7 root 0 SW< [kblockd/0]
8 root 0 SW [pdflush]
9 root 0 SW< [kswapd0]
10 root 0 SW< [mtdblockd]
200 root 948 S udhcpd /var/udhcpd.conf
218 root 916 S iapp br0 wlan0 wlan1
228 root 1228 S wscd -start -both_band_ap -c /var/wsc-wlan0.conf -w w
231 root 940 S iwcontrol wlan0 wlan1
253 root 976 S dnrd --cache=off -s 168.95.1.1
263 root 944 S udhcpc -i eth1 -p /etc/udhcpc/udhcpc-eth1.pid -s /usr
272 root 1048 S lld2d br0
274 root 912 S reload -k /var/wlsch.conf
289 root 128 S fwd
294 root 1548 S timelycheck
296 root 2100 S boa
298 root 904 S telset
299 root 1440 S bandswmode
300 root 908 S wps5G
301 root 1156 S -/bin/sh
382 root 1152 S sh -c ps 2>&1 > /tmp/syscmd.log
383 root 1152 R ps
/bin/flash
Usage: flash cmd
option:
cmd:
default -- write all flash parameters from hard code.
get [wlan interface-index] mib-name -- get a specific mib from flash
memory.
set [wlan interface-index] mib-name mib-value -- set a specific mib into
flash memory.
all -- dump all flash parameters.
gethw hw-mib-name -- get a specific mib from flash
memory.
sethw hw-mib-name mib-value -- set a specific mib into
flash memory.
allhw -- dump all hw flash parameters.
reset -- reset current setting to default.
set_mib -- get mib from flash and set to wlan interface.
flash allとすると、MACアドレスやパスワード、その他の設定が取得できる
/etc/versionによると、RTL8196E v1.0, 2013年7月15日 17:08:34 CST
Realtek SDKはv3.2.5-r16355
イーサネットドライバーのバージョンは16331-15370
ワイヤレスドライバーのバージョンは16330-16330
ファストパスのバージョンは15801-15370
フィーチャーサポートのバージョンは14786-14786
なようです。
/tmpだけが書き込み可能であり、いくつかログが記録されています。
RTL8196EというとOpenWRTなどでサポートされていそうですね。(Flashが少なそうなので使い物になるかは分かりませんが)