WRH-H300と脆弱性

先日、アキバお買い得価格情報(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が少なそうなので使い物になるかは分かりませんが)

コメントを残す