简介

Egress-Assess是一款用于测试出口数据检测功能的工具,该工具可辅助完成数据安全模型测试。

在各种情况下,我们的团队都会尝试从我们正在运行的网络中提取数据,并将其移至另一个位置以进行脱机分析。 理想情况下,被评估的客户将检测到从其网络中提取的数据,并采取预防措施以阻止进一步的数据丢失。

当试图从我们的目标网络中复制数据时,攻击者可以通过多种渠道进行复制:

  • 通过Cobalt Strike的信标下载数据(通过http或dns)

  • 通过Meterpreter会话下载数据

  • 通过FTP,SFTP等手动移动数据

在我们例行检查和分析来自客户环境的数据以帮助横向移动时,如果他们的出口检测能力能够识别潜在的敏感数据离开他们的网络,那么客户的数据将得到有效的保护和跟踪。

一个易于使用的解决方案, 即模拟该互联网文件拷贝场景提取敏感文件从一台计算机到另一台计算机 。攻击者常用的网络文件拷贝协议有 : FTP,HTTP和HTTPS。 为了确保我们生成的 “敏感”数据在防御性行动中能够被及时发现的 ,我们需要确定多个组织将高度重视的内容,如数据库文件, 我们可以通过概念证明的方式针对这些数据形式测试。

安装

要进行安装,请运行随附的安装脚本,或执行以下操作:

Git clone https://github.com/ChrisTruncer/Egress-Assess
  1. 安装pyftpdlib

    pip install pyftpdli
  2. 生成服务器证书,并将其存储为与“Egress-Assess”相同级别的“ server.pem”。 可以使用以下命令完成此操作:

    openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes

用法

Egress-Assess可以充当我们要模拟的协议的客户端和服务器。 它支持通过HTTP,HTTPS和FTP进行测试评估。 设想该工具将在内部客户端和外部服务器上使用,并通过网络边界传递数据。 一旦从存储库中克隆了虚拟数据,就可以从一台计算机传输到另一台计算机。

Egress-Assess的典型用例是拷贝两个工具到本地。 一个将充当服务器,另一个充当客户端。 Egress-Assess可以通过FTP,HTTP和HTTPS发送数据。

要通过FTP提取数据,首先要通过选择“ --server ftp”并提供要使用的用户名和密码来启动Egress-Assess的FTP服务器:

python Egress-Assess.py --server ftp --username testuser --password pass123

现在,要让客户端连接并将数据发送到ftp服务器,您可以运行

python Egress-Assess.py --client ftp --username testuser --password pass123 --ip 192.168.52.131 --datatype ssn

服务端接收到客户端发送的文件

在Egress-Assess目录下,将创建一个data目录,该目录将用于存储所有传输的文件。

你也可以通过http和https执行相同的操作,第一步启动http服务,设置Egress-Assess充当Web服务器。

python Egress-Assess.py --server http

然后要通过客户端程序将数据发送到http服务器,并专门发送15兆的凭证数据,请运行以下命令...

python Egress-Assess.py --client http --data-size 15 --ip 192.168.52.131 --datatype cc

服务端接收到客户端发送的文件

接收到的文件被保存在data目录下:

通过检测data目录下的文件变动情况来判断是否发送文件传输行为,再对该目录下文件内容进行检测,从而进一步判断传输的内容是否为敏感文件,是否包含敏感数据等。

Github:https://github.com/ChrisTruncer/Egress-Assess

参考文章:https://www.christophertruncer.com/egress-assess-testing-egress-data-detection-capabilities/

Egress-Assess-出口数据安全功能测试的更多相关文章

  1. nginx-consul-template

    概述Consul-template 是 HashiCorp 基于 Consul 所提供的可扩展的工具,通过监听 Consul中的数据变化,动态地修改一些配置文件中地模板.常用于在 Nginx.HAPr ...

  2. 【译文连载】 理解Istio服务网格(第一章 概述)

    书籍英文版下载链接为 https://developers.redhat.com/books/introducing-istio-service-mesh-microservices/,作者 Burr ...

  3. 8-kubernetes-安全

    kubernetes安全框架 访问K8S集群的资源需要过三关:认证.鉴权.准入控制,任意一个不通过都会失败 普通用户若要安全访问集群API server,往往需要证书.token或者用户名+密码,po ...

  4. 通过Dapr实现一个简单的基于.net的微服务电商系统(十二)——istio+dapr构建多运行时服务网格

    多运行时是一个非常新的概念.在 2020 年,Bilgin Ibryam 提出了 Multi-Runtime(多运行时)的理念,对基于 Sidecar 模式的各种产品形态进行了实践总结和理论升华.那到 ...

  5. 保护 iOS 用户数据安全: Keychain 和 Touch ID

    原文:How To Secure iOS User Data: The Keychain and Touch ID 作者:Tim Mitra 译者:kmyhy 更新说明:本教程由 Tim Mitra ...

  6. Django学习系列20:改进功能测试

    隐示等待和显示等待 我们看看在功能测试中function_tests.py中的 time.sleep inputbox.send_keys(Keys.ENTER) time.sleep(1) self ...

  7. iOS系列 基础篇 07 Action动作和输出口

    iOS系列 基础篇 07 Action动作和输出口 目录:  1. 前言及案例说明 2. 什么是动作? 3. 什么是输出口? 4. 实战 5. 结尾 1. 前言及案例说明 上篇内容我们学习了标签和按钮 ...

  8. 关于web端功能测试的测试方向

    一.功能测试 1.1链接测试 链接是web应用系统的一个很重要的特征,主要是用于页面之间切换跳转,指导用户去一些不知道地址的页面的主要手段,链接测试一般关注三点: 1)链接是否按照既定指示那样,确实链 ...

  9. 几何服务,cut功能测试

    关于几何服务 几何服务用于辅助应用程序执行各种几何计算,如缓冲区.简化.面积和长度计算以及投影.在 ArcGIS Server 管理器中启动几何服务之后,您才能够在应用程序开发过程中使用该服务. 问题 ...

随机推荐

  1. news of javascript

    news of javascript https://javascriptweekly.com/ https://javascriptweekly.com/issues https://www.inf ...

  2. 蓝牙鼠标 & 罗技 M337

    蓝牙鼠标 & 罗技 M337 蓝牙鼠标,有哪些不需要适配器的 https://www.logitech.com.cn/zh-cn/product/bluetooth-mouse-m337 ht ...

  3. Dart: 执行shell命令

    1 创建包 >stagehand console-full 2 安装插件 process_run: ^0.10.1 3 编写 bin/main.dart ... import 'package: ...

  4. 最小生成树---普里姆算法(Prim算法)和克鲁斯卡尔算法(Kruskal算法)

    普里姆算法(Prim算法) #include<bits/stdc++.h> using namespace std; #define MAXVEX 100 #define INF 6553 ...

  5. Python算法_排序数组(09)

    给你一个整数数组 nums,请你将该数组升序排列. 示例 1: 输入:nums = [5,2,3,1]输出:[1,2,3,5] 示例 2: 输入:nums = [5,1,1,2,0,0]输出:[0,0 ...

  6. Java多线程并发编程/锁的理解

    一.前言 最近项目遇到多线程并发的情景(并发抢单&恢复库存并行),代码在正常情况下运行没有什么问题,在高并发压测下会出现:库存超发/总库存与sku库存对不上等各种问题. 在运用了 限流/加锁等 ...

  7. Python网络编程相关的库与爬虫基础

    PythonWeb编程 ①相关的库:urlib.urlib2.requests python中自带urlib和urlib2,他们主要使用函数如下: urllib: urlib.urlopen() ur ...

  8. SpringBoot(六):SpringBoot中如何使用Servlet?

    第一种方法: 1.使用Servlet3的注解方式编写一个Servlet 2.在main方法的主类上添加注解: @ServletComponentScan(basePackages = "co ...

  9. Redis数据结构和对象三

    1.Redis 对象系统 Redis用到的所有主要数据结构,简单动态字符串(SDS).双端链表.字典.压缩列表.整数集合.跳跃表. Redis并没有直接使用这些数据结构来实现键值对数据库,而是基于这些 ...

  10. c++移动构造

    下面随笔给出c++移动构造. 在现实中有很多这样的例子,我们将钱从一个账号转移到另一个账号,将手机SIM卡转移到另一台手机,将文件从一个位置剪切到另一个位置--移动构造可以减少不必要的复制,带来性能上 ...