ubnt解决方案
楼主: QlaqCfan

[讨论] 预警!斐讯K1 PSG1208路由器原厂固件存在高危漏洞!

[复制链接]

46

回帖

589

积分

187 小时

在线时间

中尉

注册时间
2011-7-7
金币
479 个
威望
8 个
荣誉
0 个

尚未签到

发表于 2016-2-10 03:56
本帖最后由 510695678 于 2016-2-10 13:18 编辑

这个算不上高危的,下载配置文件的前提是你知道密码连上wifi
更新一下:
(管理员密码是base64加密保存的,比如admin加密后是YWRtaW4=
可以轻松解密http://tool.chinaz.com/tools/base64.aspx

上传上网记录应该是存在的,至于什么时候上传就不知道了。

这个路由使用nvram保存配置的,nvram show可以查看配置,


linux系统开机会先先执行 /sbin/init,一堆程序中会启动一个cathpkt的程序
# grep cathpkt /sbin/init
start_cathpkt
stop_cathpkt
insmod /lib/modules/cathpkt.ko
cathpkt &
killall cathpkt


# grep cat /sbin/dev_init.sh
        mknod   /dev/cathpkt   c       206     0   -m 622


加载了/lib/modules/cathpkt.ko内核模块创建/dev/cathpkt设备
后台运行cathpkt




这是cathpkt这个程序的明文字符串
  1. .rodata:00404508 0000001E C %02d-%02d-%02d %02d:%02d:%02d                                                                                    
  2. .rodata:004044E8 0000001E C %02x:%02x:%02x:%02x:%02x:%02x                                                                                    
  3. .rodata:004041FC 0000000D C %Y%m%d%H%M%S                                                                                                      
  4. .rodata:0040448C 00000024 C %[^:]:%[^:]:%[^:]:%[^:]:%[^:]:%[^:]                                                                              
  5. .rodata:00404628 00000013 C %s error code: %d\n                                                                                               
  6. .rodata:004044B0 0000000D C %s%s%s%s%s%s                                                                                                      
  7. .rodata:0040452C 0000000D C %s;;;%s;%s%s                                                                                                      
  8. .rodata:0040485C 00000006 C %s=%s                                                                                                            
  9. .rodata:004041C0 0000000B C %s[%u] %s\n                                                                                                      
  10. .rodata:00404224 00000011 C %s_SN0000_%s.tar                                                                                                  
  11. .rodata:00404350 00000011 C %s_SN9999_%s.tar                                                                                                  
  12. .rodata:004042D8 00000012 C -->data file=[%s]                                                                                                
  13. .rodata:00404478 00000011 C -->file size=%ld                                                                                                  
  14. .rodata:004041CC 0000000D C /dev/cathpkt                                                                                                      
  15. .rodata:00404850 0000000B C /dev/nvram                                                                                                        
  16. .rodata:004044D0 00000006 C /tmp/                                                                                                            
  17. .rodata:004042D0 00000008 C /tmp/%s                                                                                                           
  18. .rodata:0040420C 00000017 C /tmp/%s_SN0000_%s.data                                                                                            
  19. .rodata:00404460 0000000D C /tmp/cathpkt                                                                                                      
  20. .rodata:00404408 0000000D C 001122334455                                                                                                      
  21. .rodata:00404238 00000021 C 0123456789ABCDEF0123456789ABCDEF                                                                                 
  22. .rodata:00404744 00000005 C CWD                                                                                                               
  23. .rodata:00404610 00000015 C Can not send message                                                                                             
  24. .rodata:004046E0 0000003D C Can not use PORT mode!Please use "mode" change to PASV mode.                                                   
  25. .rodata:00404664 00000020 C Can't connet to the ftp server!                                                                                   
  26. .rodata:0040480C 0000000F C Connect error!                                                                                                   
  27. .rodata:00404780 00000018 C Creat data socket error                                                                                          
  28. .rodata:0040463C 00000013 C Creat socket error                                                                                                
  29. .rodata:0040481C 00000011 C Invalid address!                                                                                                  
  30. .rodata:00404830 0000000E C Invalid port!                                                                                                     
  31. .rodata:00404798 00000010 C Open file error                                                                                                   
  32. .rodata:004045EC 00000006 C PASS                                                                                                              
  33. .rodata:00404690 00000005 C PASV                                                                                                              
  34. .rodata:00404698 00000017 C PORT %s,%s,%s,%s,%d,%d                                                                                            
  35. .rodata:00404600 00000010 C Password error!                                                                                                   
  36. .rodata:0040473C 00000005 C QUIT                                                                                                              
  37. .rodata:0040474C 00000006 C STOR                                                                                                              
  38. .rodata:00404754 00000007 C TYPE I                                                                                                            
  39. .rodata:004047C8 00000019 C The PORT mode won't work                                                                                          
  40. .rodata:004045E4 00000006 C USER                                                                                                              
  41. .rodata:004045F4 0000000C C User error!                                                                                                      
  42. .rodata:004045B8 0000000F C calc_file_size                                                                                                   
  43. .rodata:004041E4 00000016 C can not find dev :%s\n                                                                                            
  44. .rodata:004045A0 00000015 C cathpkt_writePktinfo                                                                                             
  45. .rodata:00404380 0000002C C cd /tmp/ && rm *.tar *.data -rf && touch %s                                                                       
  46. .rodata:0040425C 00000073 C cd /tmp/ && rm -rf *.tar && openssl enc -aes-128-cbc -in %s -out %s -k %s && tar -zcf %s %s && rm -rf %s %s *.data
  47. .rodata:00404550 0000001B C could not open tmp file %s                                                                                       
  48. .rodata:0040457C 00000010 C create_tar_file                                                                                                   
  49. .rodata:0040475C 00000022 C error create new_sock in put port                                                                                 
  50. .rodata:00404364 0000001B C file upload will be empty!                                                                                       
  51. .rodata:0040453C 00000013 C file:%s not found.                                                                                                
  52. .rodata:00404348 00000008 C ftp bye                                                                                                           
  53. .rodata:00404304 00000009 C ftp init                                                                                                         
  54. .rodata:00404310 0000000A C ftp login                                                                                                         
  55. .rodata:00404340 00000008 C ftp put                                                                                                           
  56. .rodata:00404840 0000000A C ftp_close                                                                                                         
  57. .rodata:004047F8 00000012 C ftp_srvname=[%s]\n                                                                                                
  58. .rodata:0040431C 00000022 C function[%s] line[%d] errno=[%d]\n                                                                                
  59. .rodata:00404594 0000000C C get_wan_mac                                                                                                      
  60. .rodata:004041DC 00000008 C len:%d\n                                                                                                         
  61. .rodata:00404720 00000009 C listen()                                                                                                         
  62. .rodata:004047A8 0000001E C local file %s doesn't exist!\n                                                                                    
  63. .rodata:004044C0 00000010 C mac string=[%s]                                                                                                   
  64. .rodata:00404418 0000000E C mac_addr=[%s]                                                                                                     
  65. .rodata:0040458C 00000005 C main                                                                                                              
  66. .rodata:00404470 00000005 C null                                                                                                              
  67. .rodata:004043EC 0000001C C nvram get et0macaddr error!                                                                                       
  68. .rodata:00404684 0000000B C send error                                                                                                        
  69. .rodata:004046D4 0000000B C set socket                                                                                                        
  70. .rodata:004046BC 00000018 C set socket %s errno:%d\n                                                                                          
  71. .rodata:00404650 00000011 C set socket error                                                                                                  
  72. .rodata:004046B0 00000009 C socket()                                                                                                         
  73. .rodata:004042EC 00000016 C target directory=[%s]                                                                                             
  74. .rodata:004044D8 0000000B C tmpcathpkt                                                                                                        
  75. .rodata:004043AC 00000017 C upload filename error!                                                                                            
  76. .rodata:00404444 0000001A C upload time interval=[%d]                                                                                         
  77. .rodata:00404428 00000019 C upload time set default.                                                                                          
  78. .rodata:00404570 0000000C C upload_data                                                                                                      
  79. .rodata:004045D0 00000012 C upload_ftp_passwd                                                                                                
  80. .rodata:004047E4 00000012 C upload_ftp_server                                                                                                
  81. .rodata:004043C4 00000019 C upload_ftp_time_interval                                                                                          
  82. .rodata:0040472C 00000010 C upload_ftp_user                                                                                                   
  83. .rodata:004043E0 0000000B C wan_hwaddr                                                                                                        
复制代码



运行以后会创建/tmp/cathpkt 明文文件,用来保存上网记录,如果想查看直接cat /tmp/cathpkt
压缩前使用openssl 加密 (openssl enc -aes-128-cbc -in %s -out %s -k %s)
文件名 /tmp/时间戳_SN0000_MAC地址.tar

如果想查看压缩后的文件
先解压
tar zxf 20160114XXXXXX_SN0000_XXXXXXXXXXXX.tar
得到 20160114XXXXXX_SN0000_XXXXXXXXXXXX  继续解压
tar xf 20160114XXXXXX_SN0000_XXXXXXXXXXXX
得到20160114XXXXXX_SN0000_XXXXXXXXXXXX.data
使用openssl解密成222.txt
openssl aes-128-cbc -d -k 0123456789ABCDEF0123456789ABCDEF -in 20160114XXXXXX_SN0000_XXXXXXXXXXXX.data -out 222.txt
cat 222.txt可以查看

默认nvram配置包括ftp账号密码在/lib/libshared.so里面


初始化后保存在nvram里面
# nvram show | grep ftp
size: 12081 bytes (20687 left)
upload_ftp_server=soho.wifibase.ftp.phicomm.com
upload_ftp_user=ftpuser
alg_tftp_enable=1
upload_ftp_passwd=feixun*123
alg_ftp_enable=1




关闭cathpkt
killall cathpkt
删除cathpkt
rm /bin/cathpkt
卸载模块
rmmod /lib/modules/cathpkt.ko

这样可以临时关闭,但是系统采用的ramfs,重启就会恢复


暂时解决方法:
把nvram配置里的服务器、账号、密码改成错误或不存在的
nvram set upload_ftp_server=xxx.com
nvram set upload_ftp_user=xxx
nvram set upload_ftp_passwd=xxx
保存
nvram commit








本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x

点评

过程完整复现。解决方案的确是这样。但是对于会配置的人来说。肯定不使用原厂固件。其实这个漏洞(backdoor)就是针对小白的。总而言之,anywlan很久没看到这么技术的回复了。支持!  发表于 2016-2-10 21:44

评分

2

查看全部评分

1187

回帖

6053

积分

552 小时

在线时间

中校

注册时间
2015-3-22
金币
4789 个
威望
2 个
荣誉
0 个
累计签到:443 天
连续签到:0 天
[LV.730]常住居民
发表于 2016-2-10 06:27 来自手机
楼上高手

576

回帖

1275

积分

313 小时

在线时间

上尉

注册时间
2013-8-2
金币
637 个
威望
0 个
荣誉
0 个
累计签到:581 天
连续签到:0 天
[LV.730]常住居民
发表于 2016-2-10 07:54
各种输入密码其他的,其实不用太担心,上网十几年目前都没有实际资金损失
全省无聊啊啊 啊

1165

回帖

4581

积分

997 小时

在线时间

少校

折腾游侠

灌水天才

注册时间
2014-2-15
金币
3232 个
威望
1 个
荣誉
0 个
累计签到:643 天
连续签到:0 天
[LV.730]常住居民
发表于 2016-2-10 09:07 来自手机
已刷 毛子固件

214

回帖

6140

积分

580 小时

在线时间

中校

注册时间
2014-9-18
金币
5856 个
威望
1 个
荣誉
0 个
累计签到:635 天
连续签到:0 天
[LV.730]常住居民
发表于 2016-2-10 09:24 来自手机
我想可能有一大部分的用户不会刷机

568

回帖

6737

积分

697 小时

在线时间

中校

注册时间
2011-2-28
金币
6055 个
威望
6 个
荣誉
0 个
累计签到:581 天
连续签到:0 天
[LV.730]常住居民
发表于 2016-2-10 12:04
到手就刷了·····

205

回帖

1941

积分

847 小时

在线时间

上尉

注册时间
2010-6-22
金币
1622 个
威望
3 个
荣誉
0 个
累计签到:5 天
连续签到:0 天
[LV.20]漫游旅程
发表于 2016-2-10 12:29
反正不用原厂的怕什么呢

28

回帖

153

积分

15 小时

在线时间

上等兵

注册时间
2016-2-10
金币
73 个
威望
10 个
荣誉
0 个
累计签到:3 天
连续签到:0 天
[LV.20]漫游旅程
发表于 2016-2-10 13:08
#在这里快速回复#天下没有免费午餐。大家在捡便宜的时候。谨记这一点。

28

回帖

153

积分

15 小时

在线时间

上等兵

注册时间
2016-2-10
金币
73 个
威望
10 个
荣誉
0 个
累计签到:3 天
连续签到:0 天
[LV.20]漫游旅程
发表于 2016-2-10 13:10
终于明白原厂固件为什么这丢包这么高了

1万

回帖

3万

积分

2205 小时

在线时间

大校

论坛副版主

灌水天才太平绅士雷锋勋章设备暴发户正义勋章推广先锋初级工程师

注册时间
2013-3-22
金币
25281 个
威望
6 个
荣誉
1 个
累计签到:1697 天
连续签到:1 天
[LV.1825]无线元老
发表于 2016-2-10 14:39
反正刷了  呵呵

275

回帖

9026

积分

562 小时

在线时间

中校

注册时间
2012-3-1
金币
8663 个
威望
4 个
荣誉
1 个
累计签到:753 天
连续签到:0 天
[LV.1095]铁杆粉丝
发表于 2016-2-10 15:06
只作为三级路由给父母接网络电视用,上网wifi之类的在非斐讯的二级路由,我觉得这货最多就只能上传我家的网络电视源的网址

401

回帖

1515

积分

460 小时

在线时间

上尉

注册时间
2009-8-9
金币
1053 个
威望
1 个
荣誉
0 个
累计签到:6 天
连续签到:0 天
[LV.20]漫游旅程
发表于 2016-2-10 17:51 来自手机
刷了海蜘蛛了,除了不能5g,其他很好用

站点统计 | Archiver | 手机版 | 无线门户 ( 粤ICP备11076993号|粤公网安备44010602008359号 ) |网站地图

GMT+8, 2025-2-8 09:38

返回顶部 返回列表