セキュリティが覚束ないIPカメラ
アマゾンでは数多の中華製監視カメラが5,000円程度の安値で売られている。最近入手した監視カメラはtelnetのポートが開いており、ftpはパスワードなしで入れる。
$ nmap 192.168.11.4 Starting Nmap 7.70 ( https://nmap.org ) at 2020-07-10 13:22 JST Nmap scan report for 192.168.11.4 Host is up (0.019s latency). Not shown: 997 closed ports PORT STATE SERVICE 21/tcp open ftp 23/tcp open telnet 6789/tcp open ibm-db2-admin Nmap done: 1 IP address (1 host up) scanned in 2.24 seconds
これはRaspberry Piからnmapというコマンドでどのポートが開いているか調べた結果であるが、21番のftp、23番のtelnetが開いていることがわかる。6789のibm-db2-adminというのはわからない。で、
$ ftp 192.168.11.4 Connected to 192.168.11.4. 220 Operation successful Name (192.168.11.4:pi): 230 Operation successful Remote system type is UNIX. Using binary mode to transfer files.
ユーザネームなしであっさり入れてしまう。
ftp> ls 200 Operation successful 150 Directory listing total 16 drwxr-xr-x 2 1000 1000 1029 Jan 7 2017 bin drwxr-xr-x 4 root root 0 Jan 1 1970 dev drwxr-xr-x 5 1000 1000 300 Nov 4 2018 etc lrwxrwxrwx 1 root root 11 Nov 4 2015 init -> bin/busybox drwxr-xr-x 3 1000 1000 998 Mar 28 2017 lib drwxrwxrwx 5 root root 16384 Jan 1 2010 mnt dr-xr-xr-x 59 root root 0 Jan 1 1970 proc drwxr-xr-x 2 1000 1000 752 Jan 7 2017 sbin dr-xr-xr-x 13 root root 0 Jan 1 1970 sys drwxr-xr-x 4 root root 0 Jul 10 13:26 tmp drwxr-xr-x 8 1000 1000 102 Jan 7 2017 usr drwxr-xr-x 6 root root 0 Jan 1 1970 var 226 Operation successful
lsコマンドでファイル名が見える。ちなみにtelnetはloginできない。ユーザIDとパスワードの組み合わせをいくつか試したがさすがに駄目だった。
$ telnet 192.168.11.4 Trying 192.168.11.4... Connected to 192.168.11.4. Escape character is '^]'. anyka login: root Password: Login incorrect
Hostnameはanykaらしい。
ところで、/etc/passwd、/etc/shadowを見れば大体わかる。パスワードはshadow化されているが、いずれのファイルもftpでgetできる。こんなんでええんか。
ftp> cd /etc 250 Operation successful ftp> ls 200 Operation successful 150 Directory listing total 12 -rwxr--r-- 1 1000 1000 14 Sep 19 2018 dnsd.conf -rwxr--r-- 1 root root 823 Dec 17 2013 fstab -rw-r--r-- 1 root root 46 Oct 19 2010 group -rw-r--r-- 1 root root 84 Oct 19 2010 host.conf -rw-r--r-- 1 root root 46 Oct 19 2010 hosts drwxr-xr-x 2 1000 1000 42 Nov 30 2018 init.d -rw-r--r-- 1 root root 657 Mar 6 2013 inittab drwxr-xr-x 3 root root 0 Jan 1 1970 jffs2 -rw-r--r-- 1 root root 14 Oct 19 2010 ld.so.conf -rw-r--r-- 1 root root 1022 Dec 17 2010 mdev.conf -rw-r--r-- 1 root root 349 Oct 19 2010 nsswitch.conf lrwxrwxrwx 1 root root 12 May 28 2019 passwd -> jffs2/passwd -rw-r--r-- 1 root root 816 May 8 2013 profile lrwxrwxrwx 1 1000 1000 17 Oct 29 2018 resolv.conf -> jffs2/resolv.conf -rw-r--r-- 1 1000 1000 325 Nov 20 2014 services lrwxrwxrwx 1 root root 12 May 28 2019 shadow -> jffs2/shadow drwxr-xr-x 2 root root 31 May 24 2011 sysconfig -rw-r--r-- 1 1000 1000 4157 Nov 4 2018 udhcpd.conf 226 Operation successful
で/etc/passwdは/etc/iffs2/passwdへシンボリックリンクが張られている。このjffs2というフォルダがミソらしい。passwdの中身は、
root:x:0:0:root:/:/bin/sh daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh nobody:x:99:99:nobody:/home:/bin/sh
パスワードはshadow化されている。root、daemon、bin、nobodyというユーザが設定されている。shadowの中身は、
root:$1$u117/Nhy$imD3examsTQtg3S.QUsmO.:18040:0:99999:7::: bin:*:10933:0:99999:7::: daemon:*:10933:0:99999:7::: nobody:*:10933:0:99999:7:::
となっており、root以外はloginできない。rootのパスワードが知りたかったが最終的にはあきらめた。ジョンを使ってみたが、駄目だった。
$ john shadow --show
0 password hashes cracked, 1 left
インターネット上の情報ではこれであっさりパスワードがわかる場合もあるらしいが駄目だった。)
$ john shadow --show
0 password hashes cracked, 1 left
インターネット上の情報ではこれであっさりパスワードがわかる場合もあるらしいが駄目だった。)
どうも組み込みOSはArmadilloというものらしい。
で、ここまでで/etc/shadowを編集してrootのパスワードを外してしまえばtelnetで入れるんじゃないか、と思ったが、これは組み込みOSで、jffs2のフォルダは恐らく不揮発メモリに書かれているので書き換えできない気がする。
ftp> rename shadow shadow.org 350 Operation successful 550 Error
shadowというファイル名を変更しようとしたがエラーとなってできない。やっぱりだめか。