从LinkedIn高效收集与利用用户信息的技术指南

本文详细介绍了如何利用自动化工具Peasant从LinkedIn收集用户信息,包括联系人收割、伪造连接请求和资料伪装技术,并演示如何将数据转化为社交工程和密码攻击的有效输入。

收集与利用LinkedIn用户信息

渗透测试和红队行动常需从多种来源收集用户信息,以支持社交工程和密码攻击。LinkedIn是此类信息的理想来源,因为用户可将自己与特定公司关联。假设在侦察阶段已识别目标组织拥有的公司,通过查找LinkedIn公司页面并浏览“人员”部分,即可枚举员工信息。

然而,由于以下原因,手动操作效率低下:

  • 大量复制粘贴工作,除非使用@vysec的LinkedInt工具(本工具的灵感来源)。
  • LinkedIn根据行业关联和共享连接等变量限制账户对目标资料的访问。
  • 目标公司安全意识培训可能使员工在建立连接前隐藏个人信息。

本文剩余部分将讨论最大化获取资料内容的策略,并演示如何快速处理Peasant输出为可操作值。

最大化可访问资料策略

  1. 配置个人资料:伪装在目标公司任职,以开放更多可连接资料。
  2. 收割信息:从可访问资料中收集信息。
  3. 复制高影响力资料:若信息不足,复制高影响力资料内容到自身资料。

目标使资料对即将发送连接请求的账户有吸引力。共享连接越多,可访问资料越多。招聘专员资料是不错的选择。欺骗后屏蔽原账户以避免问题。

  1. 发送连接请求:对可连接资料发送请求(注意避免发送给安全团队)。
  2. 等待请求接受:接受后重复步骤2和5,直到收集足够资料。

手动操作繁琐耗时,因此开发了Peasant工具自动化这些步骤。它提供三种基本模式:

  • harvest_contacts:收割给定公司标识符的可访问LinkedIn资料联系信息。
  • add_contacts:伪造目标用户资料的连接请求。
  • spoof_contact:欺骗可访问LinkedIn资料,即复制目标资料内容到自身。

警告:LinkedIn API复杂,未深入研究调用,仅保证代码工作。输入可能导致Peasant失败,尤其在欺骗资料时。失败时清除当前资料内容重试。资料可能因恶意行为被标记。

联系人收割

访问公司资料“人员”部分时,滚动到底部会动态添加更多资料。Web界面使用JavaScript进行API调用并为每个结果添加HTML元素。Peasant利用这些API调用直接从API提取资料内容。

注意

  • LinkedIn常提醒用户资料被访问,但使用Peasant收割时不会直接访问。
  • LinkedIn每次仅允许访问1,000个搜索结果,但每次查询可能返回不同结果,建议多次运行Peasant。
  • 使用-ac标志让Peasant在发现资料时生成连接请求(需谨慎)。
  • 警告:非高级账户有严格API限制,每月刷新。
  • 警告:LinkedIn输出结构良好,但需浏览和处理Peasant输出,因为涉及用户生成内容(包括表情符号)。

添加联系人

收割资料时收集的“实体URN”字段用于识别特定LinkedIn资料。可取该值制作API调用发送连接请求到关联URN。Peasant可接受harvest_contacts模式生成的CSV文件,并向每条记录发送连接请求。可自定义请求消息。

注意

  • 必须对目标资料有足够访问权限,否则请求被忽略。
  • LinkedIn对发送连接请求有宽松API限制,通常可每小时运行。

资料欺骗

Peasant可“欺骗”外部资料内容,并用该内容更新自身资料(包括图像)。在社交工程中冒充目标组织内部实体时特别有用。

注意

  • 必须对目标资料有足够访问权限以查看其内容。
  • 可能触发外部资料的“查看提醒”(未确认)。
  • 支持此功能的API调用复杂,可能导致资料不完美,请仔细审查准确性!
  • 若Peasant在欺骗资料时失败,清除当前资料内容并重试。

示例

以微软公司资料为例,使用零连接的新账户。首先将凭证导出到环境变量(creds,冒号分隔格式:用户名:密码),运行收割命令(简称“h”)。立即返回338个资料。

注意:LinkedIn最近开始提示验证码。可使用--cookies标志绕过,该标志期望一个或多个文件名,包含来自认证会话的JSON对象数组(名称-值Cookie对),例如:[{"name":"cookie_name_here","value":"cookie_value_here"}]。目前应可绕过验证码,未来可能添加抖动功能。

1
Peasant: 从338个资料收割信息

接下来,欺骗一个可查看的微软资料。为保护隐私,省略资料标识符且未截屏结果。运行收割子命令此次返回额外40个资料。

1
2
Peasant: 欺骗可访问资料
Peasant: 收割额外四十个资料

效果不错,但可通过使用add_contacts子命令并向目标资料发送连接请求来改进,设置-if标志指向输出CSV文件。发送后一分钟内至少一人接受请求。获得这些连接后收割 yielded 额外662个资料。

1
2
3
Peasant: 从CSV发送连接请求
LinkedIn: 接受两个额外请求
Peasant: 收割额外资料

一小时内接受两个请求,允许我从总共1,842个账户捕获资料信息。

1
Peasant: 收割额外联系人(总计1,842)

处理输出

Peasant生成的CSV输出包含多个有趣字段,可用于选择社交工程目标和制作密码攻击输入。CSV列参考:

  • first_name
  • last_name
  • occupation
  • public_identifier
  • industry
  • location
  • entity_urn
  • company_name
  • company_id
  • connection_requested

查找有趣角色

若想筛选安全角色(职业),避免向安全意识较高的个人发送连接请求,可使用awkawk -F ',' '{print $3}' microsoft.csv|sort -u|grep -vi security。然后可迭代每个角色并使用grep带反向标志从CSV文件中过滤。使用反向技术识别可能感兴趣的社交工程攻击关键角色。

1
提取包含字符串“security”的职业

制作密码喷洒攻击电子邮件列表

我偏爱另一个项目Parsuite及其templatizer模块,用于制作用户列表等。它接受并处理CSV输入,返回包含制作值的新CSV输出。支持随机值生成和基本输出“编码”。

使用以下命令生成{first_letter_first_name}{last_name}@microsoft.com格式的电子邮件地址列表。若模板结构 confusing,克隆Parsuite并运行templatizer模块的帮助命令获取更多信息。

1
2
3
parsuite templatizer -tts \
'<<<:first_name[1]:lowercase_encode>>><<<:last_name:lowercase_encode>>>@microsoft.com' \
-csv microsoft.csv
1
2
Parsuite命令制作电子邮件地址
Parsuite: 从Peasant输出制作电子邮件地址

制作网络钓鱼活动的电子邮件地址和内容

templatizer模块也可接受包含文本模板的文件,因此可生成包含唯一链接和标识符的电子邮件以支持网络钓鱼活动。

1
2
3
4
Hello <<<:first_name:>>>,

You should unqestionably click this link: https://my.evillanding.com?id=<<<:RAND:>>>
文本电子邮件模板
1
2
3
parsuite templatizer --csv-file microsoft.csv -tts \
'<<<:first_name[1]:lowercase_encode>>><<<:last_name:lowercase_encode>>>@microsoft.com' \
email_template.txt
1
2
最终Parsuite命令
Parsuite: 生成带唯一链接的电子邮件

现在可将此输出传递给任何接受CSV文件作为输入的工具。我最近使用SendGrid作为邮件传递服务,该服务由另一个工具支持,可直接使用此文件格式运行。

防御者建议

首先,确保安全意识培训包含内容,传达威胁行为者使用社交媒体作为网络钓鱼消息传递平台,以及用户在与“Interplebeians”互动时应如何运用良好判断。由于技术控制,网络钓鱼电子邮件进入目标收件箱越来越难,但通过社交媒体获得直接消息传递线总是容易,因为我们的大脑每次收到喜欢或朋友请求时都会释放多巴胺雾弹。

其次,建议创建多个LinkedIn账户并将其加入公司资料。然后可偶尔监控它们是否在短时间内从同一账户收到邀请请求,这是被针对进行侦察的指标。进行尽职调查以确定活动是否恶意,并考虑向LinkedIn报告账户。我意识到这不是最实用的建议,但公司管理员对谁可加入公司资料的控制最小。

额外漏洞发现

开发Peasant图像欺骗功能时,在LinkedIn中发现了一个先前未知的访问控制缺陷。最初尝试获取外部资料中配置的资料/背景图像的URN标识符,并将其复制到恶意资料。此方法的优点是消除了几个API调用和处理图片的二进制内容。意外后果是从我的资料中删除图片 also 删除了图像和URN本身,导致外部资料无法再使用该图片——从而使外部资料显示默认资料图片。

我在感恩节假期期间直接与LinkedIn安全团队合作修复了该漏洞。为他们迅速响应点赞。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计