首页
社区
课程
招聘
[原创]Nepnep二进制组面试经历分享 与 CVE-2019-19240 复现报告
发表于: 2021-11-23 13:41 29732

[原创]Nepnep二进制组面试经历分享 与 CVE-2019-19240 复现报告

2021-11-23 13:41
29732

终于加入了梦寐以求的Nepnep,能和花花、贝塔贴贴啦


同时也欢迎各位师傅们来Nepnep玩


面试过程记录如下,希望能帮助到打算来面试的小伙伴们

(原载于本人博客:f9dK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2C8M7%4u0G2K9h3c8G2i4K6u0W2j5i4u0@1i4K6u0r3L8X3g2H3L8X3g2H3i4K6t1#2k6e0c8Q4x3U0g2T1j5g2)9J5y4e0S2U0i4K6t1#2k6e0S2Q4x3U0g2T1k6W2)9J5y4e0W2T1i4K6t1#2k6e0g2Q4x3U0f1^5z5q4)9J5y4h3t1$3i4K6t1#2k6e0N6Q4x3U0g2T1j5W2)9J5y4e0R3@1i4K6t1#2k6e0W2Q4x3U0f1&6k6q4)9J5y4h3p5J5i4K6t1#2k6e0S2Q4x3U0g2S2k6W2)9J5y4e0V1#2i4K6t1#2k6e0g2Q4x3U0f1^5z5q4)9J5y4e0R3$3i4K6t1#2k6e0c8Q4x3U0g2T1j5g2)9J5y4h3q4T1i4K6u0r3i4@1g2r3i4@1u0o6i4K6R3&6



先交了简历,然后直接技术一面



花花:简历上写你之前在校赛出过题,讲讲具体情况?


冷冷子:出了三四题二进制的,简单的有明文签到和base64,XOR等,这个不细说了,RE压轴是我出的,基于nvram-faker这个项目,我修改了一个小模块下,往里面塞了一些数据,静态分析很难看出来,但是动调一下就出了,主要考察的是linux动态链接库的调试以及LD_PRELOAD的使用(或者HOOK)


花花:QEMU初始化时找不到  nvram 该如何处理?什么是 nvram ?


冷冷子:1. 我这边复现的MIPS架构的洞只有一个(简历上写的CVE-2005-2799),我当时查了一下资料,用 nvram-faker 这个项目加载就可以消除 QEMU初始化时找不到  nvram  这个问题,其他特殊情况情况没有遇到过如何处理


2. nvram  就是板载内存颗粒,有些嵌入式环境是直接与板载颗粒主控通信的,但是MIPS架构的内存颗粒对应的/dev/nvram文件是真实的系统启动时初始化、创建的,轮到程序在qemu里面运行时,并没有正常经历这些步骤,所以用户模式的qemu的nvram初始化失败


花花: 为什么直接return fake并不会影响正常的模拟


冷冷子(原话,有错误,正确的答案在下面):虽然qemu无法模拟主控但是仍然已经搭建好了模拟层的内存,所以初始化函数只需要返回一个正常值即可;也就是说,其实主程序已经可以正常的做他想做的内存分配操作了,但是初始化检查函数并不这么认为


(更正确一些的答案):程序跑的时候,用户模式的qemu只负责翻译程序的机器码,然后构建起一些虚拟的操作系统基本环境(比如内存的分配),但是大部分东西在用户模式的qemu下都是没有的(比如/proc和/dev和/etc/run等),此时qemu通过chroot,用透明相对路径的方法访问:以固件文件夹为根目录的文件当然就访问不到了


花花: nvram-faker 很老了,只是做了一堆枚举,如果没有写在里面的,就不适用了,你认为要更好的解决nvram的问题的话,该如何解决?


冷冷子:(这个没答好,而且我目前还不确定标准答案,暂时不写)


花花:bootloader,kernel,rootfs之间有什么关系


冷冷子: bootloader 负责CPU加电后从实模式启动到保护模式等操作,而为了让CPU能够与PCIE总线上的设备等进行通信,且为了该过程对人类而言是能看懂的,则需要kernel提供上层接口,rootfs没详细了解过



花花:除了这些还有要特别补充的安全方面的能力吗


冷冷子:基本上只会MIPS架构路由器漏洞这些东西了


花花:以后有什么打算


冷冷子:打算在队内好好学习,以我个人的能力和想法可能不会打算成为队内主力,在中层和大佬们一起学习就好


花花:有做过什么题吗


冷冷子:pwnable.kr  pwnable.tw buu,不过都做得不是太多


花花:主要做了哪些考点?堆?栈?虚拟机?


冷冷子:主要只做过ret2xxx的栈题,其他的没做过特别有价值的二进制题目


花花:来讲一道印象深刻的题目


冷冷子:(复述了这个问题的内容和答案862K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2*7K9r3W2Z5N6g2)9J5k6h3y4G2L8g2)9J5c8Y4q4#2k6i4y4@1K9h3!0F1i4K6u0r3y4o6V1J5z5e0M7J5z5o6x3%4i4K6u0r3j5h3&6K6N6$3g2J5i4K6u0r3x3U0p5%4y4U0f1K6x3o6M7%4x3H3`.`.


zhz:最后问个简单的,讲讲函数调用过程吧


冷冷子:(略)


花花:Dlink DIR-816 A2 BO5固件登陆界面有个洞,两天时间打穿就算成功,到时候提交复现报告即可


冷冷子:好的


(注:这里无意当中独立挖出来了goahead中间件的CVE-2019-19240,花花的预期解似乎是DIR816固件本身的CVE-2018-17063)


搜索后确认后台登陆页面为/dir_login.asp


WEB中间件为goahead


初始密码打印在路由器本体上


第一次登陆后台需要初始密码,不能直接访问设置界面


登陆成功后会进入/d_wizard_step1_start.asp进行初始化设置,同时,即使已经初始化过,若能跳转到本页进行设置,则路由器设置会被覆盖



交叉编译环境与qemu-mipsel环境搭建依据笔者之前发表的博客,不赘述


ee2K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2C8M7%4u0G2K9h3c8G2i4K6u0W2j5i4u0@1i4K6u0r3i4K6t1#2k6e0g2Q4x3U0g2S2k6g2)9J5y4h3t1$3i4K6t1#2k6e0N6Q4x3U0f1&6y4q4)9J5y4h3p5^5i4K6t1#2k6e0S2Q4x3U0g2T1y4#2)9J5y4h3q4X3i4K6t1#2k6e0N6Q4x3U0f1&6y4q4)9J5y4h3t1I4i4K6t1#2k6e0g2Q4x3U0f1&6z5g2)9J5y4h3p5^5x3r3c8S2P5g2)9J5y4h3f1$3i4K6t1#2z5r3y4Q4x3U0f1&6y4W2)9J5y4h3f1$3i4K6t1#2z5r3g2Q4x3U0f1&6z5q4)9J5y4h3f1%4i4K6t1#2j5h3y4Q4x3U0f1&6y4q4)9J5y4h3f1^5i4K6t1#2j5h3g2Q4x3U0g2T1x3o6u0Q4x3V1j5`.


从官网下载固件,然后binwalk -e直接提取


以下为初步 qemu-mipsel 环境搭建


首先是chroot之后个人倾向于使用bash而非busybox,所以复制bash的程序本体与动态链接库到对应的相对路径文件夹内,如图

image-20211120020536342image-20211120020547985

同理,用ldd命令查qemu-mipsel所需要的动态链接库


复制到chroot后的对应相对路径目录中


总共的内容为这些

image-20211120020649936

然后再把交叉编译环境output文件夹当中的lib库全部复制到dir816/lib内


此时就可以正常运行qemu了,算是初步搭建好了环境


chroot ./ ./qemu-mipsel ./bin/goahead


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

最后于 2023-5-12 20:12 被KSr01dO编辑 ,原因: 1
收藏
免费 10
支持
分享
最新回复 (12)
雪    币: 228
活跃值: (602)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
欢迎大家加入nepnep的大家庭ww
2021-11-23 13:53
0
雪    币: 4173
活跃值: (15932)
能力值: ( LV9,RANK:710 )
在线值:
发帖
回帖
粉丝
3
笑死,原来坏女人面试的时候这么正经呀
2021-11-23 14:24
0
雪    币: 228
活跃值: (602)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
ScUpax0s 笑死,原来坏女人面试的时候这么正经呀
2333333
2021-11-23 14:33
0
雪    币: 235
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
师傅太强啦,多向你学习
2021-11-23 14:40
1
雪    币: 228
活跃值: (602)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
K1ose 师傅太强啦,多向你学习
呜呜,菜菜,差点面试没过
2021-11-23 14:53
0
雪    币: 7120
活跃值: (9939)
能力值: ( LV17,RANK:797 )
在线值:
发帖
回帖
粉丝
7
这面试也太卷了
2021-11-23 23:46
0
雪    币: 1054
活跃值: (1772)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
这面试也太卷了 
2021-11-24 00:30
0
雪    币: 9066
活跃值: (6258)
能力值: ( LV13,RANK:296 )
在线值:
发帖
回帖
粉丝
9
这面试也太卷了
2021-11-24 09:59
0
雪    币: 15695
活跃值: (18993)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
10
优秀,感谢分享,我也想加入了
2021-11-26 09:53
1
雪    币: 3196
活跃值: (3712)
能力值: ( LV8,RANK:147 )
在线值:
发帖
回帖
粉丝
11
师傅tql
2021-11-28 22:16
0
雪    币: 246
活跃值: (4577)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
12
师傅太强啦,多向你学习
2021-11-29 12:04
0
雪    币: 311
活跃值: (341)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
师傅太强啦,多向你学习
2021-12-10 15:15
0
游客
登录 | 注册 方可回帖
返回