利用LinkedIn收集和构建用户信息的渗透测试技术

本文详细介绍了如何利用LinkedIn收集目标公司员工信息,并通过Peasant工具自动化实现社交工程和密码攻击的准备工作,包括联系人收割、连接请求伪造和资料伪装等技术细节。

从LinkedIn收集和构建用户信息

Justin Angel //

渗透测试和红队行动常需要从各种来源收集用户信息,这些信息可作为社交工程和密码攻击的输入。LinkedIn显然是这类信息的首选来源,因为用户可以将自己与特定公司关联。假设我们在前期侦察阶段已识别出目标组织拥有的公司,通常只需在LinkedIn找到公司页面并浏览"人员"部分即可枚举员工信息。

但出于以下(及其他)原因,这种方法效率不高:

  1. 大量重复劳动(除非使用@vysec开发的LinkedInt工具——本工具的关键灵感来源)
  2. LinkedIn根据多种变量限制账户可访问的目标资料信息,如当前所属行业和共享连接
  3. 根据目标公司安全意识培训的效果,员工可能将资料配置为在建立连接前隐藏个人信息

本文将讨论我的资料内容最大化获取策略,并演示如何快速将Peasant输出转化为可操作数据。

资料访问最大化策略

  1. 将个人资料配置为看似在目标公司任职(通常会解锁部分可连接资料)
  2. 从可访问资料中收割信息
  3. 若信息不足,复制高价值资料内容到自己的资料

目标是使你的资料对即将发送连接请求的账户具有吸引力。共享连接越多,可访问资料越多。建议选择目标组织所在行业的招聘专员资料进行伪装,完成后建议屏蔽被伪装的账户以避免异常。

自动化工具Peasant

手动执行此过程耗时费力,因此我开发了Peasant工具提供三种操作模式:

  1. harvest_contacts - 为给定公司标识符收割LinkedIn资料中的联系信息
  2. add_contacts - 伪造目标用户资料的连接请求
  3. spoof_contact - 伪装LinkedIn资料(将目标资料内容复制到自己的资料)

警告:LinkedIn API非常复杂,此工具可能会失败,特别是在伪装资料时。建议在伪装前清除当前资料所有内容。注意此操作可能导致账户被标记。

联系人收割技术

Peasant利用LinkedIn公司页面"人员"部分的动态加载API直接提取资料内容。注意事项:

  • 使用Peasant收割不会触发资料访问通知
  • LinkedIn每次查询可能返回不同结果,建议多次运行Peasant
  • 使用-ac参数可在发现资料时自动生成连接请求(较激进)
  • 非高级账户有严格的API调用限制

连接请求伪造

收割获得的"entity URN"字段可用于向特定LinkedIn资料发送连接请求。Peasant可处理CSV文件并自定义请求消息。注意:

  • 需对目标资料有足够访问权限
  • LinkedIn对连接请求有宽松的API限制

资料伪装技术

Peasant可将外部资料内容(包括图片)更新到你的资料,这在社交工程中特别有用。注意事项:

  • 需对目标资料有足够访问权限
  • 可能触发目标资料的查看提醒(未确认)
  • API调用复杂可能导致资料不完美,建议检查准确性

实战示例

以微软公司资料为例,使用零连接的新账户:

  1. 首先运行收割命令获取338个资料
  2. 伪装一个可查看的微软资料后,再次收割获得额外40个资料
  3. 使用add_contacts发送连接请求,一分钟后有人接受,最终获得1,842个账户信息

输出数据处理

Peasant生成的CSV包含多个有用字段:

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

识别关键角色

使用awk可筛选安全相关职位(避免引起警觉):

1
awk -F ',' '{print $3}' microsoft.csv|sort -u|grep -vi security

构建密码喷洒攻击邮箱列表

使用Parsuite工具的templatizer模块可生成{名字首字母}{姓氏}@microsoft.com格式的邮箱列表:

1
2
3
parsuite templatizer -tts \
'<<<:first_name[1]:lowercase_encode>>><<<:last_name:lowercase_encode>>>@microsoft.com' \
-csv microsoft.csv

构建钓鱼邮件内容

使用文本模板可生成含唯一链接的钓鱼邮件:

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

You should unqestionably click this link: https://my.evillanding.com?id=<<<:RAND:>>>

防御建议

  1. 安全意识培训应包含威胁分子使用社交媒体的钓鱼技术
  2. 创建多个LinkedIn账户加入公司资料,监控异常连接请求
  3. 发现恶意活动可向LinkedIn举报

漏洞发现

开发Peasant图片伪装功能时,发现LinkedIn存在此前未知的访问控制缺陷:删除伪装资料中的图片会导致原始资料的图片也被删除。此漏洞已通过LinkedIn安全团队在感恩节期间修复。

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