一、前言
FortinetGuard实验室最近发现了使用Google Docs的一次攻击活动,攻击者在此次攻击活动中打着Fortinet以及FortiGuard的旗号。当我们检查文档样本时,我们发现这个恶意网络中存在一条非常长的重定向链,并且这条重定向链的最后一跳会根据受害者的IP及user-agent特征而有所区别。这个恶意网络针对的是所有主流操作系统平台:Windows、Android以及MacOS。
在本文中,我们分析了此次攻击活动流经的跳转路径,以及针对Windows平台的恶意样本。在本文末尾,我们分析了追踪溯源相关信息,尝试寻找隐藏在这些攻击活动背后的黑手。
二、恶意文档
2018年夏季,有研究人员发现带有基于特定链接访问策略的Google文档可能会被爬虫索引入库。这样一来,许多单位的内部文档就可以被公开访问。比如有个真实案例,俄罗斯银行关于招聘政策的一份摘要文档就引起了人权人士的关注。在该文档中,招聘方阐述了一项政策,禁止招聘带有特定宗教信仰或者性取向的某些人群。
还有包含明文密码的许多文档被公之于众。由于我们可以在Google文档网页中搜索“password”,轻松检索到这类文档,因此问题变得非常糟糕。当然如果现在大家迫不及待想偷窥别人的隐私,可能得三思而后行,至少先阅读完本文再说,事情并没表面上看起来那么简单。
当FortiGuard实验室团队听到这个消息后,我们亲自动手搜索了一次,想看看有没有Fortinet内部文档被公之于众。我们并没有发现泄露的内部文档,只发现了Fortinet设备的默认密码(我们在文档中使用的都是同一个密码,这并非秘密信息)。
话虽如此,我们的努力并没有白费,因为我们还发现了一些有趣的东西。比如,搜索“Fortiguard”关键词后的结果如下:
图1. Google搜索“Fortiguard”的结果
我们在Google上找到了168条结果(有趣的是,Google搜索结果实际上与用户IP所属国家有关)。在168条搜索结果中,实际上有超过150条与攻击者构造的文档有关(比例超过了90%,是不是迫不及待想阅读这些“私密”文件)。
搜索“Fortinet”关键词后,我们可以找到750个结果。大家可以在本文附录找到其中一些文档的链接。文档链接数之所以比搜索结果数量要少,是因为许多搜索结果指向的是同一个文档。随着调查的进一步深入,大家可以理解攻击者如何实现这种效果。
此外,Fortinet并非牵扯其中的唯一单位。我们发现如果在Google中搜索网络安全领域中的知名厂商,还可以看到一百多个(甚至更多)恶意文档。此时我们意识到我们面对的是一次攻击活动,攻击者已经将数千个恶意文档插入Google Docs中。
三、恶意文档分析
分析了许多这类恶意文档后,我们发现这些文档采用不同的语言编写,但主要语言为英语及俄语。尽管存在语言差异,但这些文档都具备相同的结构。文档都包含一个大标题,然后跟着一小张图片(主题不一定与标题相关),然后是使用大字体的一个超链接。这类文档如下图所示:
图2. 恶意文档样本
在超链接下面有许多空白空间,攻击者通过这种方式来隐藏插入在文档底部的“垃圾文本”。然而,这种“垃圾文本”的目的是借助各种不同的关键词,使爬虫能够成功索引这类文件。这也解释了为什么Google搜索结果数量会比实际的Google文档数量要少,因为许多链接指向的是同一个文档。
图3. 某个恶意文档稳步的“垃圾文本”样例
四、分析恶意链接
如果受害者点击恶意文档中的超链接,那么浏览器会执行一系列重定向操作。根据GET请求中user-agent字段的不同以及用户IP地址的不同,所访问的最终目的地也有所不同。
重定向链
在这一章节中,我们将分析恶意样本所生成的重定向链,恶意样本标题为“Fortiguard web filtering bypass software free download”。该文档如图2左上角所示。分析其他文档上的链接后我们也能得到类似结果。
首先,使用新加坡VPN IP地址(我们使用的地址)及Google Chrome浏览器所对应的User-Agent信息(我们所使用的浏览器)后,我们能看到如下一条重定向链:
1. hxxp://vbtrst[.]pro/dnew?k=Fortiguard+web+filtering+bypass+software+free+download 2. hxxp://sxkwor[.]space/rtb/s/APEN2FuhOAAA4dsBAFNHGQASAGmZEJMA 3. hxxp://11fileupload-2[.]xyz/it…fA== 4. hxxp://static.21.101.69.159.clients.your-server[.]de/file?f=ae…05&utm_source=APEN2FuhOAAA4dsBAFNHGQASAGmZEJMA&utm_medium=14497&utm_campaign=default 5. hxxps://thimbleprojects[.]org/dedzsumkoi/528138/?method=blob&type=download&name=Rm9ydGlndWFyZF93ZWJfZmlsdGVyaW5nX2J5cGFzc19zb2Z0d2FyZV9mcmVlX2Rvd24ucmFy&v= eyJ0cmFuc2FjdGlvbl9pZCI6IjU0ODAyMjI1NiIsInRva2VuIjoiOWM0MDVmOTIwYTdhYTI2ODE0MzdkMjRkZGRhNTM2YTUifQ%3D%3D 6. hxxps://4requests[.]org/findic.php?v=eyJ0cmFuc2FjdGlvbl9pZCI6IjU0ODAyMjI1NiIsInRva2VuIjoiOWM0MDVmOTIwYTdhYTI2ODE0MzdkMjRkZGRhNTM2YTUifQ=="
下面我们来看一下每个URL中存在的一些特殊参数:
1、 “hxxp://vbtrst[.]pro/dnew?k=Fortiguard+web+filtering+bypass+software+free+download“
第一个链接的参数非常明显,重复了文档的标题。
2、 “hxxp://sxkwor[.]space/rtb/s/*APEN2FuhOAAA4dsBAFNHGQASAGmZEJMA*”
第二个URL的参数为经过BASE64编码的一组字节:
图4. 新加坡IP(左图)及俄罗斯IP(右图)所得到的不同参数
3、“hxxp://11fileupload-2[.]xyz/ it…fA==”
这个参数是经过BASE64编码的一个字符串(另外还经过混淆处理)。为了保证文章排版紧凑,这里我们删减了这个参数长度。
4、“hxxp://static.21.101.69.159.clients.your-server[.]de/file?f=ae…05&utm_source=APEN2FuhOAAA4dsBAFNHGQASAGmZEJMA&utm_medium=14497&utm_campaign=default”
这里我们可以看到与步骤2相同BASE64编码。除此之外,utm_medium的值为14497。14497对应的是十六进制的0x38A1,或者0xA1 0x38(小端字节序)。有趣的是,这个值与图4中黄色高亮部分的值相同。
5、“hxxps://thimbleprojects[.]org/dedzsumkoi/528138/?…
method=blob&type=download&name=Rm9ydGlndWFyZF93ZWJfZmlsdGVyaW5nX2J5cGFzc19zb2Z0d2FyZV9mcmVlX2Rvd24ucmFy&v=
eyJ0cmFuc2FjdGlvbl9pZCI6IjU0ODAyMjI1NiIsInRva2VuIjoiOWM0MDVmOTIwYTdhYTI2ODE0MzdkMjRkZGRhNTM2YTUifQ%3D%3D”
攻击者在这个URL中滥用了Mozilla的在线代码编辑器。我们从该参数中能够提取出有意义的参数名及对应的BASE64编码值。解码后的URL如下所示:
method=blob&type=download&name=Fortiguard_web_filtering_bypass_software_free_down.rar&v={"transaction_id":"548022256","token":"9c405f920a7aa2681437d24ddda536a5"}
如上所示,我们又一次看到文档的名称,但这次使用的是.rar扩展名。此时出现同一个文档名就像是魔术一样,如果我们在步骤2中只看到24节长的参数,并且没有看到用来跟踪已访问URL的Referrer字段,这里我们怎么会看到至少54字节长的一个文件名呢?此外,我们最近发现,这些字节大部分与时间戳或者受害者IP地址有关,跟文档名没有关系。
有一种可能:维护vbtrst[.]pro的攻击者以及滥用thimbleprojects.org的攻击者是同一拨人。这样就可能维护一个共享数据库,所有文档的名称都对应某些数字。通过这种方式,只传输几个字节(数据库记录中的编号)就能恢复初始文档的全名。此外,很有可能utm_medium字段就服务于这个场景。
6、“hxxps://4requests[.]org/findic.php?v=eyJ0cmFuc2FjdGlvbl9pZCI6IjU0ODAyMjI1NiIsInRva2VuIjoiOWM0MDVmOTIwYTdhYTI2ODE0MzdkMjRkZGRhNTM2YTUifQ ==”
这个参数与上一步使用的参数相同(解码后为{“transaction_id”:”548022256″,”token”:”9c405f920a7aa2681437d24ddda536a5″})
到目前大家可能已经猜得到,多个重定向后用户会下载如下文件:
Fortiguard_web_filtering_bypass_software_free_down.rar
在这个压缩文档内部还有一个恶意的PE文件,我们会在本文的Windows样本分析中讨论这方面内容。
与User-Agent字段的关系
如前文所述,这条重定向链与受害者的User-Agent字段紧密相关(下文我们使用UA来指代User-Agent)。
IE浏览器
如果使用IE11对应的UA,那么会得到如下重定向链:
Vbtrst[.]pro -> sxkwor[.]space -> 11fileupload-2[.]xyz -> static.21.101.69.159.clients.your-server[.]de
这条重定向链与前一条非常类似,但节点更少。此时static.21.101.69.159.clients.your-server[.]de会直接投递恶意样本,而没有额外跳转到thimbleprojects.org以及4requests[.]org。我们猜测前面之所以会增加其他重定向节点,是为了保护static.21.101.69.159.clients.your-server[.]de,避免其被Google安全浏览技术列入黑名单中。
移动设备及Safari(Macintosh)
当我们使用移动设备或者MacOS对应的UA时,我们得到了两条新的重定向链。在每条重定向链的最后环节,我们可以获取到.APK或者.DMG文件。后面我们会单独分析这些文件。
五、分析Windows样本
在测试不同的IP及UA字段时,我们得到了十几个不同的样本,这些样本针对的都是Windows平台。在这部分内容中,我们将讨论攻击者为了规避反病毒服务所使用的各种技巧。
可修改的内部结构
尽管所有样本都具有相同的行为,但这些样本具备各种不同的(有时候是相互矛盾的)内部结构。比如,某个样本的FileDescription字段的值为MODJO Internet Security。有趣的是,这个样本还带有manifest数据,其中description字段的值为Installs Adobe Flash Player。
图5. Description字段内容
为了进一步增强复杂度,这个样本还使用了与VK.com(这是俄语国家流行的一个社交网络)非常类似的一个图标。
图6. 恶意样本图标(左图)以及VK.com社交网络logo(右图)
至于MODJO Internet Security,我们发现最后一个字母会经常改变。我们发现有些样本会使用如下名称:
MODJO Internet Security MODJA Internet Security MODJB Internet Security
不同样本之间还有另一个区别:.RSRC数据。样本会在这个区域中插入各种.png图像来实现样本的多样性。尽管用户看不到这些图像,但不同样本中这些图像的数量和大小存在显著差异。
图7. 两个样本.RSRC区中封装的PNG文件
那么为何这些样本会在那么多地方存在不同?我们无法给出确切的回答,但猜测攻击者会尽可能混乱地更改样本的所有区域,以降低被检测的可能性。
行为分析
虽然这些样本具有不同的内部结构,但行为完全相同。 恶意样本与C2服务器之间的通信如下图所示。 我们可以看到该样本正在向C2服务器发送POST请求。C2服务器同样托管在your-server.de主机上,类似我们前面研究过的某个重定向节点,然而C2服务器和重定向节点使用的是不同的IP。
key字段如下图所示:
图8. 恶意样本网络请求
我们分析的每个Windows样本都对应同一个key(如上图所示),但这可能是因为我们使用的是同一个Google文档。
收到服务器响应数据后,样本会尝试下载并执行GetGo Download Manager,这是一个合法的第三方应用程序。成功执行后(或者经过多次失败尝试后),样本会执行自删除操作。
我们认为攻击者之所以采用这种方式,是想滥用合法应用的推广机制。当牵扯到推广机制时,通常会有一个推荐字段来区分不同实体。然而攻击活动中并不满足这种场景:请求中并没有使用推广字段,并且用户所使用的Getgosoft页面URL地址中也没有包含特征字段。
查询中包含一个明显的特征,即User-Agent字段:
User-Agent: Medunja Solodunnja 6.0.0
请注意其中使用的字符串,回头我们会提到这一点。
图9. 恶意样本生成的请求
实时编译及签名
此次攻击活动中还有一个显著的特点:样本会“动态”编译及签名。我们对比了样本PE头部中的TimeStamp字段与实际的下载时间,发现两者的差异不超过5分钟。此外,每个样本在下载的时候都使用相同的、有效的数字签名进行签名。
我们分析了用来生成签名的证书,这些证书都由COMODO RSA Code Signing CA颁发。我们在分析过程中见到过的证书如下所示:
00 ce fe 4e ae e4 c0 cf 51 e9 5b 30 cf 02 80 b7 94 RICK, SKY LIMITED 00 b1 ab f8 ab e0 ab 1f c2 36 ed be 9f fc 4f 66 cb UR-IN, LIMITED 00 9b ea 5b a5 5f 1b 91 61 c1 be 05 93 00 3b 3f a1 MIR CORPORATION – LIMITED
我们并不知道攻击者如何获得这些证书,但证书中的组织名称看上去非常奇怪:字符串中间包含逗号和短横线。很有可能这些证书并不是被盗证书,而是由攻击者直接申请的证书。如果是这种情况,那么大家很可能会有所疑惑,现在证书颁发机构究竟是遵循何种流程来确保证书申请者为合法的公司?
六、签名时间问题
当我们分析此次攻击活动所使用的样本时,我们还发现使用微软的Sigcheck工具时会得到一些有趣的结果。由于某些原因,该工具(2.7最新版)在分析本文恶意样本时会认为样本的签名时间为当前系统时间,而不是正确的签名时间。
使用VirusTotal服务同样会得到奇怪的结果。比如,如下图所示,我们可以看到对样本的最后一次分析时间为2018-11-14 14:05:19 GMT,而根据VT的分析结果,该样本的签名时间为2018-11-14 15:05:00(比真正的GMT时间还要快1个小时)。
图10. Sigcheck(左图)及VirusTotal(右图)对样本(SHA256:b84d9c08fc35c3a160b4ee1f4061035a4bb9781e5f64e623ec988b8447b2c667)的分析结果
FortiGuard实验室已经将这个问题反馈给VirusTotal以及Sysinternals团队。Mark Russinovich已经准备发布新版的Sigcheck工具,而VirusTotal表明他们在处理样本时使用的正是Sigcheck工具,目前正等待最新版工具。
七、幕后黑手
现在总结一下我们在分析过程中发现的一些信息:
1、恶意文档常用的两种语言为英语及俄语。如果仔细观察图3,大家可能会注意到第二行用到了俄语文字;
2、攻击者滥用了thimbleprojects[.]org服务,所使用的项目名为dedzsumkoi。Dedzsumkoi是俄语单词Дед с сумкой的音译词,翻译过来就是“带着袋子的爷爷”;
3、攻击者使用了VK.com的logon,而VK.com是俄语国家非常流行的一个社交网络服务;
4、攻击者所使用的User-Agent为Medunja Solodunnja 6.0.0。Medunja Solodunnja是俄语单词Медуня-солодуня的音译词,这是位于乌克兰利沃夫附近的一家饼干制造商。
图11. Медуня-солодуня位于利沃夫乌克兰附近
总而言之,我们认为此次攻击活动中的攻击者精通俄语,他们可能非常熟悉位于乌克兰利沃夫附近的当地饼干制造商,这是关于攻击者地理区域的一个重要线索。
当我们分析攻击者所使用域名的注册信息时,我们发现基本上所有域名注册数据都在类似WhoisGuard等服务的保护之下。4requests[.]org域名也不例外,目前该域名所有数据都处于隐藏状态。然而,当我们检查该域名的whois历史记录时,我们发现该域名最早注册地址位于乌克兰利沃夫区域。
图12. 4requests[.]org域名的whois历史记录
我们无法验证这个注册信息是否正确,但这个信息与我们得出的其他线索一致。我们检查了使用egonow999[@]gmail.com邮箱注册的其他域名,总共找到了321个域名。这些域名大多数在最近一段时间注册,并且域名看上去不像是正常域名。
图13. 使用egonow999[@]gmail.com邮箱注册的域名
八、总结
FortiGuard实验室发现了包含数百个恶意文档的大规模Google Docs攻击活动,每个恶意文档都会根据受害者的User-Agent及IP地址来生成不同的重定向链。
我们分析了此次恶意网络中使用的许多重定向链,也分析了下载的几个样本。我们认为该网络当前的目标是滥用其他应用的合作伙伴计划,但他们的攻击目标随时都可能改变。
此外,我们还分析追踪溯源方面信息,提出了关于这些攻击幕后黑手的一些想法,至少也给出了这些攻击活动源自何处的一些线索。Android和MacOS示例将在即将发表的文章中讨论。 FortiGuard Labs将继续监控新注册的域名是否存在恶意活动。
我们会在后续分析文章中讨论Android和MacOS样本。FortiGuard实验室将继续监控新注册的、用于恶意活动的域名。
九、解决方案
FortiGuard Web Filter能够阻止本文分析过的URL和域名,并将其标记为恶意攻击。
AV解决方案可以成功检测本文分析的所有样本,检测标识为W32/Kryptik.GLKH!tr。
可以使用IPS规则ICLoader.Botnet来阻止恶意User-Agent请求。
十、IOC
攻击者使用的证书(全部由COMODO RSA Code Signing CA发布):
00 ce fe 4e ae e4 c0 cf 51 e9 5b 30 cf 02 80 b7 94 RICK, SKY LIMITED 00 b1 ab f8 ab e0 ab 1f c2 36 ed be 9f fc 4f 66 cb UR-IN, LIMITED 00 9b ea 5b a5 5f 1b 91 61 c1 be 05 93 00 3b 3f a1 MIR CORPORATION – LIMITED
恶意样本
05cfdf3f05a41a711991f819fcbc56b05172be9ea3d2c5750d5fd42e73eb1403 - W32/Kryptik.GLKH!tr 0a0b7edd15995bb5cb59f3a10d5b24f1ca4e5091aff31200cee637fcddaf2316 - W32/Kryptik.GLKH!tr 19b8e784cd8306d55d8281675215f4343daa6cc50b72d7a449ee7fab7de5252c - W32/Kryptik.GLKH!tr 23f76599b06e8ac28fa9988006927d7dfb9084d58008c74c2e4107b90ab897ae - W32/Kryptik.GLKH!tr 26997775beef04f801088cb5e130b505f9018685359070ac033839840ec7213c - W32/Kryptik.GLKH!tr 28bbe2e3133bfbbd624272349d35f6eb216346e5a0301cf83d01f12fbab13e93 - W32/Kryptik.GLKH!tr 6a9395cca0dafd3ec3af0bcb6487c1fb335cb6fa31af0790ac1b482783c531d7 - W32/Kryptik.GLKH!tr 8c2cc4f8f88052d2efa7937a0d522c32488c07aeb2589659c2d504cf662b92d8 - W32/Kryptik.GLKH!tr 941db28ae4b053747546753f48578e89f1a865117893fd8deecac86d909685b7 - W32/Kryptik.GLKH!tr 94d58958a7347b3dad471efa13b8e9ecef175254f4e585d23b98b2dbb0beb04c - W32/Kryptik.GLKH!tr ad8849ef085c91865c13c66a4a6178b1c59dad0cf01c1d57ef21051444c45f79 - W32/Kryptik.GLKH!tr b84d9c08fc35c3a160b4ee1f4061035a4bb9781e5f64e623ec988b8447b2c667 - W32/Kryptik.GLKH!tr d8c5e17ae272728caf35bc7a9a45bbaa896da671af3b720683b7daa722696433 - W32/Kryptik.GLKH!tr df73f03f85aa0e22801167f7399c2cc43e9403d167f51dc1dd4f5381110acd0b - W32/Kryptik.GLKH!tr ee2b5f9229f897b960c50ae8a896990aa1ec54e4787f1312c771bfdf0214b850 - W32/Kryptik.GLKH!tr
URL地址:
11fileupload-2[.]xyz 4requests[.]org addingmac[.]com bigbinnd[.]info bo2rzx9xhf[.]com celebration-staff[.]com g64cfg9yi6kx[.]com grotmr[.]info gurtn[.]mobi letsweb[.]info mtpint[.]mobi prkrls[.]info ptokp[.]pro rplug[.]pro rtrust[.]mobi static[.]17[.]249[.]201[.]195[.]clients[.]your-server[.]de static[.]21[.]101[.]69[.]159[.]clients[.]your-server[.]de sxkwor[.]space thimbleprojects[.]org/dedzsumkoi/ vbtrst[.]info vbtrst[.]pro docs[.]google[.]com/document/d/108eUwuO14F7_kNOFu_AwtJEz_8yNJ0aBPBWA8jVOVOc docs[.]google[.]com/document/d/16-GlQzXBPqo2x3iI940f9YP0KvkrzUZe3BziW3VpqKw docs[.]google[.]com/document/d/179LQ5l6sfsD26tZJSdy-KDdGnFo2xEmbPCUV7F-F_Po docs[.]google[.]com/document/d/190Ksr2Wv9i2QjJeElcE9VVzEje-ia5k0BQVl5jOx6vE docs[.]google[.]com/document/d/1ablKrM6fncizaXjRNiy7Hh173FGN6Qh-97ejLNjLNoc docs[.]google[.]com/document/d/1BcCNV9lrYY3VCKCP6aNPoXkvUbWkMHT2nOSvo0J1xaI docs[.]google[.]com/document/d/1bY0rh0bTdvn1w_YNBfGyyOjf3CXczH2BshO2e4jyLYI docs[.]google[.]com/document/d/1cSOWCQz9BnNBLBy3p9elvtVO8j9M6eH3_GSL8M8hmpI docs[.]google[.]com/document/d/1d1qp4cSYo6dJiTg71chmK8pgtp3mcN1eszOECq-uLLs docs[.]google[.]com/document/d/1DNYWgm5TcL79V2nvUHKnLXKKSjIVajPCnBzsUfuSveo docs[.]google[.]com/document/d/1dpzCp4KPCqcs-LQX1sXULqBvJvBPqs8kIUzouXbQVtw docs[.]google[.]com/document/d/1DQX5_6t38AiByyWwRozVY1hRsEQ0VxVTFmi59Rf4tVk docs[.]google[.]com/document/d/1eelW4H5sMw2tsvUKddRnAU9teLTysjD3hPx5Dr4dH2c docs[.]google[.]com/document/d/1EH7mA3IiNKlz7davbT_qbX375abjZmpFqOQQm3waI7o docs[.]google[.]com/document/d/1f-K3aUjt58OdlH5AY4T8El6SARljQNoF5rhebcjhEP0 docs[.]google[.]com/document/d/1Glqf2-XbQ9qQ-J06zgUkZyc3JTEscu3djJx-M0GznYI docs[.]google[.]com/document/d/1go3VoTGpEc7jGn1QkiWQh_7HC7o1nGzL5OAmlH_oL-8 docs[.]google[.]com/document/d/1GuS41cKqL1xi0AUgHW93S90ZBoE7TxLWLjmcV6igj2c docs[.]google[.]com/document/d/1hbeIiJemK0M27XoLgQMiRG5WeHp8kD19Eu401r6mnDE docs[.]google[.]com/document/d/1hyw6Osx5dKcZPIeK0FtsuaiaGe1b3JiWyItRKPyScJg docs[.]google[.]com/document/d/1IRnMq34rgmuTXGHMxx-zCzf_R7Oyv1HGRHtYWbBvYbc docs[.]google[.]com/document/d/1IvWmw3KhLFN-SiF_j4hAVbfo-TLlXHiIzvvtAiwLTuw docs[.]google[.]com/document/d/1jDswnvQuqVtPBfFRGF0QsiPwPhJpx7gnvYBWwx0-cDE docs[.]google[.]com/document/d/1JjTlBHBgMMV7UWE6gGS-0DiJxR4lZ25Y7BI72yWTNF4 docs[.]google[.]com/document/d/1LpTCbki4DKgeyVWooTxjeLoa_vmiRyoEsWwkGlKWxmY docs[.]google[.]com/document/d/1mMn7M-rf9l7yWnm0rwlcQUVhge5Dkqyqg71sZ29ge-c docs[.]google[.]com/document/d/1mWVmMnRoznPas84up5xmOj6KFjtg1dfKMpbkxjeEd1o docs[.]google[.]com/document/d/1N4gRKup-pzDnvQesFv2074XeQTeq0nng95gahkhmywI docs[.]google[.]com/document/d/1nBREtyYtfwPZf0GbKbAqcHrFCE8SD0qyVBCtX2elt8U docs[.]google[.]com/document/d/1O5_sYBE1AgSw-12bYhHA4mtbhZDAG_OZtCVZRmD2xA8 docs[.]google[.]com/document/d/1oJ97BHW0Dtn8CkH1ExYiIwq21ojgY8x2TKDr7wtFON8 docs[.]google[.]com/document/d/1OpfECPCt1GRv2AYq9nD_NXIqB6CsoUsx4ol024DHCSE docs[.]google[.]com/document/d/1p3rvvJ8E_A9FAHjdNLDiSzi9cB5xDr4R97ePiK_u9To docs[.]google[.]com/document/d/1RVAJU149Gp2X6pnzWDyypezzN_7liUvuXk21ThR0Tyc docs[.]google[.]com/document/d/1RYLYetWuQIADc5GsKE5O_U_G62SuNX120PEyB8tQ5Y0 docs[.]google[.]com/document/d/1SG7ojLMmWPpF4XKXmHJkDqY16fBveB6ElOTtjnqwAHY docs[.]google[.]com/document/d/1SM-PlruT6jQUwBkJmJAEOVem7Blkemw3XDOaQ2_vHlk docs[.]google[.]com/document/d/1x3PGsJH9LbeumQA4uR5V4xqXY1ftPjEc7v92vY66_Qc docs[.]google[.]com/document/d/1-xEX1azHPC27q6L6wH6ea2wArRcKRmmaodQEm2hlfuE docs[.]google[.]com/document/d/1z-UjNJqU3cmSpVvhJXPNpVCd3tvLFNeYvjlkbn0nFxk