EmploLeaks:一款针对企业安全的组织员工信息收集OSINT工具

关于EmploLeaks

EmploLeaks是一款针对企业安全的组织员工信息收集OSINT工具,在该工具的帮助下,企业内部的安全人员和管理员可以有效地收集组织内员工的各种信息,并以此来判断组织内部的网络安全态势。

工作机制

首先,该工具会在Linkedin上进行数据搜索,并获取目标组织或企业的员工名单。接下来,工具便会查找他们的社交网络资料,以找到他们的个人电子邮件地址。最后,它将使用这些电子邮件地址在一个自定义的COMB数据库中进行搜索,以检索泄露的密码。

值得一提的是,广大研究人员可以轻松将该工具集成进自己的工作流中,或对其进行自定义开发。

支持的功能

1、LinkedIn,用于搜索公司的所有员工并获取他们的个人电子邮件;

2、GitLab扩展,能够从员工那里找到个人代码存储库;

3、如果已定义并连接,当该工具收集员工档案时,将搜索COMB数据库以检索泄露的密码;

工具要求

Python 3.10

工具下载

由于该工具基于Python 3.10开发,因此我们首先需要在本地设备上安装并配置好Python 3.10环境。

接下来,广大研究人员可以直接运行下列命令将该项目源码克隆至本地:

git clone https://github.com/infobyte/emploleaks.git

然后切换到项目目录中,使用pip命令和项目提供的requirements.txt安装该工具所需的其他依赖组件:

cd emploleaks
cd cli
pip install -r requirements.txt

macOS安装

由于安装psycopg2时可能会遇到问题,如果遇到的话,可以运行下列命令来解决:

cd cli
python3 -m pip install psycopg2-binary`

工具使用

执行下列命令即可运行EmploLeaks:

python3 cli/emploleaks.py

如果一切顺利的话,你将会看到下列内容:

___________              .__         .__                 __
\_   _____/ _____ ______ |  |   ____ |  |   ____ _____  |  | __  ______|    __)_ /     \____  \|  |  /  _ \|  | _/ __ \__   \ |  |/ / /  ___/|        \  Y Y  \  |_> >  |_(  <_> )  |_\  ___/ / __ \|    <  \___ \
/_______  /__|_|  /   __/|____/\____/|____/\___  >____  /__|_ \/____  >\/      \/|__|                         \/     \/     \/     \/OSINT tool to chain multiple apis
emploleaks>

检索Linkedin配置文件

首先,我们需要设置要使用的插件扩展,这里我们选择使用linkedin。接下来,我们需要设置身份认证令牌并运行身份伪造进程:

emploleaks> use --plugin linkedin
emploleaks(linkedin)> setopt JSESSIONID
JSESSIONID: 
[+] Updating value successfull
emploleaks(linkedin)> setopt li-at
li-at: 
[+] Updating value successfull
emploleaks(linkedin)> show options
Module options:Name        Current Setting                      Required    Description
----------  -----------------------------------  ----------  -----------------------------------
hide        yes                                  no          hide the JSESSIONID field
JSESSIONID  **************************           no          active cookie session in browser #1
li-at       AQEDAQ74B0YEUS-_AAABilIFFBsAAAGKdhG  no          active cookie session in browser #1YG00AxGP34jz1bRrgAcxkXm9RPNeYIAXz3McycrQm5FB6lJ-Tezn8GGAsnl_GRpEANRdPIlWTRJJGF9vbv5yZHKOeze_WCHoOpe4ylvETkyCyfN58SNNH
emploleaks(linkedin)> run impersonate
[+] Using cookies from the browser
Setting for first time JSESSIONID
Setting for first time li_at

其中的li_at和JSESSIONID是我们LinkedIn浏览器会话的身份认证Cookie,我们可以使用Web开发者工具来获取这两个数据。

配置好模块之后,我们就可以直接运行并开始数据收集任务了:

emploleaks(linkedin)> run find EvilCorp
⠙ Gathering Information[+] Added 1 new names.
Listing profiles:0: 
full name: Joaquin Rodriguez Viruliento
profile name: joaquinrodriguezviruliento
occupation: Security Researcher at EvilCorp
public identifier: joaquinrodriguezviruliento
urn: urn:li:member:15736913
Getting and processing contact info of "Joaquin Rodriguez Viruliento"
Contact info:
website 0. http://www.evilcorp.com
twitter 0. limpiamicercaDone

获取LinkedIn账号+泄露的密码

我们创建了一个自定义的工作流程,通过Linkedin检索到的信息,我们试图将员工的个人电子邮件与潜在的泄露密码进行匹配。在这种情况下,你可以使用connect命令连接到数据库(在我们的情况下,我们有一个自定义索引的COMB数据库),如下所示:

emploleaks(linkedin)> connect --user myuser --passwd mypass123 --dbname mydbname --host 1.2.3.4
[+] Connecting to the Leak Database...
[*] version: PostgreSQL 12.15

连接成功后,就可以运行工作流了。收集所有用户后,如果泄露的凭据影响到某人,该工具将尝试在数据库中进行搜索:

emploleaks(linkedin)> run_pyscript workflows/check_leaked_passwords.py EvilCorp
[-] Failing login... trying again!
[-] Failing login... trying again!
[+] Connected to the LinkedIn api successfull
The following command could take a couple of minutes, be patientListing profiles:Getting and processing contact info of "señor girafales"Getting and processing contact info of "kiko"Getting and processing contact info of "el chavo del 8"
[...]
[+] Password for "señor girafales" exists
[*] Email: girafales@gmail.com
+------------------+
| passwords leaked |
+------------------+
| laFQqAOSL69      |
+------------------+

构建索引COMB数据库

该项目很重要的一个部分就是索引的COMB数据库,我们可以点击【这里】下载,整个文件需要至少400GB...

配置完成后,你将会看到如下所示结构的文件目录:

├── count_total.sh
├── data
│   ├── 0
│   ├── 1
│   │   ├── 0
│   │   ├── 1
│   │   ├── 2
│   │   ├── 3
│   │   ├── 4
│   │   ├── 5
│   │   ├── 6
│   │   ├── 7
│   │   ├── 8
│   │   ├── 9
│   │   ├── a
│   │   ├── b
│   │   ├── c
│   │   ├── d
│   │   ├── e
│   │   ├── f
│   │   ├── g
│   │   ├── h
│   │   ├── i
│   │   ├── j
│   │   ├── k
│   │   ├── l
│   │   ├── m
│   │   ├── n
│   │   ├── o
│   │   ├── p
│   │   ├── q
│   │   ├── r
│   │   ├── s
│   │   ├── symbols
│   │   ├── t

我们可以使用create_db命令导入所有的文件:

emploleaks> create_db --dbname leakdb --user leakdb_user --passwd leakdb_pass --comb /home/pasta/Downloads/comb
[*] The full database occups more than 200 GB, take this in account
[*] Creating the database
ERROR:  database "leakdb" already exists
ERROR:  role "leakdb_user" already exists 
ALTER ROLE
ALTER DATABASE
GRANT
ALTER SYSTEM
ALTER SYSTEM
ALTER SYSTEM
ALTER SYSTEM
ALTER SYSTEM
ALTER SYSTEM
ALTER SYSTEM
ALTER SYSTEM
ALTER SYSTEM
ALTER SYSTEM
[+] Connecting to the Leak Database...
[+] Importing from /home/pasta/Downloads/comb/data/1/m
[+] Importing from /home/pasta/Downloads/comb/data/1/d
[+] Importing from /home/pasta/Downloads/comb/data/1/v
[+] Importing from /home/pasta/Downloads/comb/data/1/0
[+] Importing from /home/pasta/Downloads/comb/data/1/8
[+] Importing from /home/pasta/Downloads/comb/data/1/u
[+] Importing from /home/pasta/Downloads/comb/data/1/k
[+] Importing from /home/pasta/Downloads/comb/data/1/r
[+] Importing from /home/pasta/Downloads/comb/data/1/7
[+] Importing from /home/pasta/Downloads/comb/data/1/h
[+] Importing from /home/pasta/Downloads/comb/data/1/o
[+] Importing from /home/pasta/Downloads/comb/data/1/t
[+] Importing from /home/pasta/Downloads/comb/data/1/f
[+] Importing from /home/pasta/Downloads/comb/data/1/n
[+] Importing from /home/pasta/Downloads/comb/data/1/symbols
[+] Importing from /home/pasta/Downloads/comb/data/1/g
[+] Importing from /home/pasta/Downloads/comb/data/1/q
[+] Importing from /home/pasta/Downloads/comb/data/1/a
[+] Importing from /home/pasta/Downloads/comb/data/1/e
[+] Importing from /home/pasta/Downloads/comb/data/1/l                            
[+] Importing from /home/pasta/Downloads/comb/data/1/y                            
[+] Importing from /home/pasta/Downloads/comb/data/1/s                            
[+] Importing from /home/pasta/Downloads/comb/data/1/3                            
[+] Importing from /home/pasta/Downloads/comb/data/1/6                            
[*] Creating index... 

许可证协议

本项目的开发与发布遵循MIT开源许可证协议。

项目地址

EmploLeaks:【GitHub传送门】

参考资料

https://fardadaysec.com/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/835060.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL库操作 表操作【详细解析】

MySQL MySQL是一个数据库软件 mysql mysql是一个“客户端—服务器”结构的软件 (1) a.客户端&#xff1a;主动发起请求的一方&#xff08;Client&#xff09; b.服务器&#xff1a;被动接收请求的一方&#xff08;Server&#xff09; 客户端和服务器之间通过网络 进行通信 (…

【软件测试】3.开发模型

目录 1.常见的开发模型 1.1瀑布模型 1.2螺旋模型 1.3增量模型和迭代模型 1.4敏捷模型 1.4.1特点&#xff1a; 1.5Scrum模型&#xff08;三个角色和五个重要会议&#xff09; 1.5.1三个角色&#xff1a; 1.5.2Scrum工作流程&#xff08;五个会议&#xff09; 1.6测试模…

移动应用开发实验四AlarmManager实现闹钟提醒

实验目的和要求 在Android Studio中&#xff0c;通过AlarmManager实现闹钟提醒。 点击“SET ALARM”后&#xff0c;采用Toast方式提示用于设定的闹钟成功&#xff0c;并包含设定的闹钟启用时间。 当闹钟生效时&#xff0c;采用AlertDialog实现闹钟题型&#xff0c;并通过Ale…

2023盘古石杯晋级赛 apk分析 WP

1. 涉案应用刷刷樂的签名序列号是[答案&#xff1a;123ca12a] 2. 涉案应用刷刷樂是否包含读取短信权限 无 3. 涉案应用刷刷樂打包封装的调证ID值是[答案&#xff1a;123ca12a] 4. 涉案应用刷刷樂服务器地址域名是[答案&#xff1a;axa.baidun.com] 代理模式抓个包 5. 涉案应用…

UE4 3D文字自动换行

效果&#xff1a;3D文字超过5位自动换行 1.随意输入一段字符串测试&#xff0c;创建string临时变量&#xff0c;用于迭代存储字符串 2.当字符串遍历至第“换行长度”&#xff08;我这里是5&#xff09;位时&#xff0c;附加一次空行

设计模式——中介者模式(Mediator)

中介者模式&#xff08;Mediator Pattern&#xff09;是一种行为型设计模式&#xff0c;其主要作用是通过一个中介对象来封装一系列对象的交互&#xff0c;从而降低它们之间的耦合度&#xff0c;提高系统的可维护性和可扩展性。 中介者模式的主要特点 封装交互&#xff1a;用…

windows gradle配置

安装 gradle下载地址&#xff1a; 官网&#xff1a;https://gradle.org/releases/ 所有版本&#xff1a;https://services.gradle.org/distributions/ 将下载后的zip文件解压 配置环境变量 在系统变量中新增以下变量 1、gradle的目录&#xff1a; GRADLE_HOME&#xff1a;D…

创新指南|将会话式AI聊天机器人纳入PLG增长战略

想象一个繁荣的数字城市广场&#xff0c;志同道合的人们在这里分享他们的激情、经验和知识。想象一个将房东与旅行者、顾客与司机、人们与他们喜爱的品牌无缝连接起来的平台。在这个世界里&#xff0c;用户交流促进增长&#xff0c;社区成为推动力。 如果您的应用程序天生不符…

P8802 [蓝桥杯 2022 国 B] 出差

P8802 [蓝桥杯 2022 国 B] 出差 分析 很明显&#xff1a;单源最短路径 没有负权边 dijkstra 1.存图 2.准备两个数组 dis[]&#xff1a;更新源点到各个点的距离 vis[]&#xff1a;标记是否访问 3.从源点开始&#xff0c;更新源点到与其邻接的点的距离&#xff0c;每次选…

鸿蒙OpenHarmony开发板解析:【特性配置规则】

特性 特性配置规则 下面介绍feature的声明、定义以及使用方法。 feature的声明 开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 在部件的bundle.json文件中通过feature_list来声明部件的feature列…

spring的核心详解

Spring 核心详解 文章目录 Spring 核心详解前言什么是springspring的优点spring用到了哪些设计模式 什么是AOPAOP的实现方式静态代理动态代理 什么是IOCIOC的好处什么是依赖注入 前言 什么是spring Spring是一个开源的Java/Java EE全功能栈&#xff08;full-stack&#xff09…

MQTT 5.0 报文解析 03:SUBSCRIBE 与 UNSUBSCRIBE

欢迎阅读 MQTT 5.0 报文系列 的第三篇文章。在上一篇中&#xff0c;我们介绍了 MQTT 5.0 的 PUBLISH 及其响应报文。现在&#xff0c;我们将介绍用于订阅和取消订阅的控制报文。 在 MQTT 中&#xff0c;SUBSCRIBE 报文用于发起订阅请求&#xff0c;SUBACK 报文用于返回订阅结果…

蓝桥杯备战4.双子数

P9420 [蓝桥杯 2023 国 B] 子 2023 / 双子数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 筛素数 void get_prime(int n) {for(int i1;i<n;i){if(!st[i])prime[cnt]i;for(int j0;prime[j]<n/i;j){st[prime[j]*i]true;if(i%prime[j]0)break;}} } 解题 #include<…

Java通过百度地图API获取定位-普通IP定位

项目中有一个登录邮箱提醒的功能&#xff0c;需要根据IP地址获取定位信息&#xff0c;从而更好地提示用户账号登录的所在地。为此&#xff0c;花费了一些时间来实现这个功能。 在CSDN搜索了一下&#xff0c;发现关于获取定位的文章说明都不够详细&#xff0c;于是决定自己创作一…

Markdown和Latex中文字上下标的方法

技术背景 在Markdown和Latex中&#xff0c;如果只是写公式&#xff0c;不论是行内公式还是行间公式&#xff0c;都可以直接使用^和_这两个符号实现上下标。但有个问题是&#xff0c;如果只是使用公式来做上下标&#xff0c;出来的字体是斜着的。例如这样的语法&#xff1a; $$ …

为什么要学Python?学Python有什么用?

为什么要学Python&#xff1f;学Python有什么用&#xff1f; 在当今的数字化时代&#xff0c;编程已成为一项宝贵的技能。Python&#xff0c;作为一种流行的编程语言&#xff0c;因其易于学习和强大的功能而受到全球开发者的青睐。本文将探讨学习Python的原因和它的实际应用&am…

【操作系统期末速成】​操作系统概述(定义|功能|特征)|发展阶段和分类|结构设计|概念补充

&#x1f3a5; 个人主页&#xff1a;深鱼~&#x1f525;收录专栏&#xff1a;操作系统&#x1f304;欢迎 &#x1f44d;点赞✍评论⭐收藏 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到…

Nginx部署前后端分离项目

部署前后端分离项目&#xff0c;要求前端项目、后端项目、数据库分别部署在3台服务器 服务器准备 服务器名IP软件包前端192.168.99.137nginx后端192.168.99.139jar数据库192.168.99.100mariadb 1、前端服务器 yum install -y epel-release && yum install -y nginx…

202012青少年软件编程(Python)等级考试试卷(二级)

第 1 题 【单选题】 执行以下代码中,输出的结果是?( ) sum=0for i in range(1,10,3):sum=sum+iprint(sum,i)A :22 10 B :12 7 C :45 9 D :55 10 正确答案:B 试题解析: 第 2 题 【单选题】 下列代码的执行结果是?( ) s1="abcde"s2="fgh"s3=…

golang编程规范

文章目录 1&#xff1a;使用适当的缩进2&#xff1a;规范地导入包3&#xff1a;使用描述性变量和函数名称4&#xff1a;限制行长5&#xff1a;使用常量来代替魔术值6&#xff1a;错误处理7&#xff1a;避免使用全局变量8&#xff1a;使用结构体处理复杂数据9&#xff1a;给代码…