BCBP登机牌安全研究の第二弹

技术 作者:HackerEye 2019-06-14 08:45:20
基于180张真实登机牌样本分析的成果 Security Research of BCBP -------------------------------- 准备了几十个实例,虽有不同但性质类似,何况也写不下了,下面再举几个典型的例子。 3.4 实例4:欧洲到中国城市间登机牌 在互联网上搜索一张海南航空的登机牌,基于PDF417的二维码,如下图所示: 读取上图中登机牌的编码(红色框),获得如下数据: ------------------------------------------------------------------------------------ 0000 4d 31 46 41 4e 47 2f 57 45 49 4d 52 20 20 20 20 | M1FANG/WEIMR | 0010 20 20 20 20 20 20 45 4d 46 4e 54 33 34 20 42 52 | EMFNT34 BR | 0020 55 50 45 4b 48 55 20 30 34 39 32 20 30 36 34 4b | UPEKHU 0492 064K | 0030 30 31 35 41 30 30 35 34 20 31 30 30 | 015A0054 100 | ------------------------------------------------------------------------------------ 对应串码如下: M1FANG/WEIMR EMFNT34 BRUPEKHU 0492 064K015A0054 100 【解析如下】: M1: 格式代码 FANG/WEI: 旅客姓名。 MR: 旅客性别为男性。 EMFNT34: 系统生成的旅客订座记录PNR编码。 BRUPEKHU BRU: 此处为始发地城市三字代码,BRU对应为布鲁塞尔,比利时,欧洲。 PEK: 此处为目的地城市三字代码,PEK对应为北京。 HU: 此为航空公司IATA二字代码,HU即海航。 0492: 对应航班号HU492。 064K015A0054 064: 是儒略日(JULIANDAY)计数时间,也就是从2015年1月1日开始算起的第64天,即3月5日。 K: 舱位等级,属于经济舱。 015A: 座位号 0054: 顺序号,即第54个办理Check-In的旅客。 100: 1是旅客状态定义码,默认为1,后面是航空公司备用代码,一般都是00。 ---------------------------------------------------------------- 3.5 实例5:国内城市间登机牌 在互联网上搜索一张国内东航的头等舱登机牌,基于Code128编码的一维码,如下图所示: 读取上图中登机牌的编码,获得对应串码如下: FM9364 24 1DWUH005 【解析如下】: FM: 此为航空公司IATA二字代码,FM即上海航空股份有限公司(中国)。可以看到该航班为共享航班。 9364: 航班号。 24: 当月的日期,只显示月日中的日。 1D: 座位号 WUH: 此处为始发地城市三字代码,WUH对应为武汉。 005: 顺序号,即第5个办理Check-In的旅客。 ---------------------------------------------------------------- 3.6 实例6:国内城市间登机牌 随手在互联网上搜索一张南方航空的登机牌,基于PDF417的二维码,如下图所示。 对应串码如下: M1FANG/WEIMR ENL3NSK SINCANCZ 0352 125X056K0001 100 【解析如下】: M1: 格式代码 FANG/WEI: 旅客姓名 MR: 旅客性别为男性 ENL3NSK: 系统生成的旅客订座记录PNR编码 SIN: 此处为始发地城市三字代码,SIN对应为新加坡。 CAN: 此处为目的地城市三字代码,CAN对应为广州。 CZ: 此为航空公司IATA二字代码,CZ即南航。 0352: 对应航班号CZ352,三位数字前加0补全为4位数字。其中,第四位数字2为双数表示为回程航班。 125: 是儒略日(JULIANDAY)计数时间,也就是从2015年1月1日开始算起的第125天,即5月5日。 X: 舱位等级。 056K: 座位号。 0001: 顺序号,即第1个办理Check-In的旅客。 100: 1是旅客状态定义码,默认为1,后面是航空公司备用代码,一般都是00。 ---------------------------------------------------------------- 案例太多就此打住,通过上述6个实例,可以注意到国内机票基于Code128一维码的数据完全相同,而基于同样的PDF417二维码标准,包含的内容也会根据国家、航空公司、航线等方面要求的不同而不同。 0x04 攻击与隐私泄露风险 4.1 隐私泄露 1)通过PNR跟踪乘客信息 尽管国内的航空公司普遍缩短了PNR在数据库里的保存时间(默认为一年),但是恶意的攻击者依然可以通过PNR来跟踪乘客的行程信息,特别是随机同行的人员清单等。对于恶意攻击者可以通过提前换取登机牌、读取行李票号、偷窃他人登机牌、人为抢劫登机牌等方式。 比如:若是多人机票由一人统一订票,则会出现多个机票共用一个PNR的情况,换句话说就是通过查询该PNR,就可以获取同行人的数量和名单。而这种情况对于结伴出行、家庭出游、公司出差或者集体活动来说很常见,虽然严格来说并不属于漏洞,但经测试,无论是单航段还是多航段,存在暴露同行人员信息的隐患。 另外,对于多航段的单人旅程,PNR的暴露也将导致该路线即中转航班名称、机场等信息泄露。 2)航空公司网站漏洞导致PNR等信息泄露 2015年初,WOOYUN漏洞平台爆出的某航空公司网站接口存在未授权访问设计缺陷(漏洞编号:WooYun-2015-100000),攻击者可以查询任意PNR码与客票号码,可导致大量航空订单信息泄漏。 如下图所示为该漏洞导致泄露的乘客信息样例。 不过该漏洞的提供者似乎对航空公司的指令集并不熟悉,我们依照航空公司相关标准对上图中的数据展开解析,如下表所示(贴图好麻烦): [注3]:中航信系统于2013年5月26日凌晨全行业统一实施PNR强制输入手机号方案的上线。即在进行PNR预订时,将强制要求OSI项输入手机号码。 从上述信息中可以获得乘机人的PNR、航班行程、身份证号、家人手机号等等,一些恶意的攻击者还能通过身份证的注册地,加上对舱位价格的查询,以及出发时间和机场,来判断该对象父母的大致家庭生活条件,再采用一些社工手段,实现电话诈骗也是有非常高的成功率的。 当然,肯定还存在没有暴露出来的漏洞和接口。 3)第三方接口查询 一些第三方合作公司或者平台,也存在接口可能被恶意利用的风险。除此之外,还有些第三方公司,直接提供了在线的PNR商业/半商业查询,这样就更存在了非常大的安全风险。 4)人为因素泄露 就和通过小区电超市人员可以查询任意电话号码的机主一样,通过第三方订票公司的可信终端,任意具备相关权限的操作人员都可以查询到包括PNR在内的乘客信息。而对于操作人员查询非正常工作内容行为的记录与监控,才有可能在事后取证时跟踪到人或者提供追溯线索。 4.2 伪造登机牌 对于国内那些普遍还在使用一维码的登机牌打印机而言,确实降低了伪造登机牌的难度。就技术而言,伪造登机牌除了票面明确的信息造价外,还有符合航空方面相应规范一维码的伪造,这才能保证扫描枪的识别。 下表是亲测的国内大部分航空公司登机牌现状(全部基于真实登机牌,为防信息泄露,原始数据已做混淆处理): 额,貌似被一网打尽了……. 即使是对二维码,一样可以在分析后,可以插入伪造的数据,如下图所示,根据上表很轻松制作出基于PDF417的登机牌二维码。当然,由于二维码中包含的信息数据较多,想要伪造出较为精准的数据,需要对登机牌内的信息做更多细致的解读和分析,特别是国际航班,还涉及到其它特殊代码的解读,出于安全考虑,这里不再深入举例。 除此之外,更深入的攻击方式,还包括二维码插马攻击、二维码恶意钓鱼等。 必须要说明的是,伪造登机牌并不代表可以直接值机,比如首先还是要通过安检,对身份方面就会有严格的核查,但攻击者可以结合其它多种社工方式,来实现反跟踪等目的。所以,伪造登机牌仍将可能会对机场安全方面造成极大不良影响。 4.3 伪造登机牌案例 2006年10月,美国华盛顿有位名叫Christopher Soghoian的黑客,利用登机牌中暴露的个人信息漏洞,创建了一个伪造登机牌生成站点“The Northwest Airlines Boarding Pass Generator”,该站点支持在线生成“Northwest Airlines(美国西北航空公司)”的任意时间、人名和航班的登机牌。如下图所示,该站点生成的登机牌不但可以以假乱真,而且支持直接打印。 在网站运行一周后,接到举报的FBI探员直接破门而入,在家中实施了逮捕。虽然Soghoian最终获得保释,但该网站在被FBI和TSA警告后已经彻底封掉。如下图,博客中还清晰地记录着从FBI出来的那个日子......可怜的guys。 ......To Be continued

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接