作者:Longas_杨叔

点击链接查看前篇:BCBP登机牌安全研究の第一弹

基于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

—————————————————————-

关注公众号,继续追看《BCPB登机牌安全研究の第三弹》

长按识别二维码,查看前篇:《BCBP登机牌安全研究の第一弹》



文章原文链接:https://www.anquanke.com/post/id/84388