Egress-Assess-出口数据安全功能测试
简介
Egress-Assess 是一款用于测试出口数据检测功能的工具,该工具可辅助完成数据安全模型测试。
在各种情况下,我们的团队都会尝试从我们正在运行的网络中提取数据,并将其移至另一个位置以进行脱机分析。 理想情况下,被评估的客户将检测到从其网络中提取的数据,并采取预防措施以阻止进一步的数据丢失。
当试图从我们的目标网络中复制数据时,攻击者可以通过多种渠道进行复制:
-
通过Cobalt Strike的信标下载数据(通过http或dns)
-
通过Meterpreter会话下载数据
-
通过FTP,SFTP等手动移动数据
在我们例行检查和分析来自客户环境的数据以帮助横向移动时,如果他们的出口检测能力能够识别潜在的敏感数据离开他们的网络,那么客户的数据将得到有效的保护和跟踪。
一个易于使用的解决方案, 即模拟该互联网文件拷贝场景提取敏感文件从一台计算机到另一台计算机 。攻击者常用的网络文件拷贝协议有 : FTP,HTTP和HTTPS。 为了确保我们生成的 “敏感”数据在防御性行动中能够被及时发现的 ,我们需要确定多个组织将高度重视的内容,如数据库文件, 我们可以通过概念证明的方式针对这些数据形式测试。
安装
要进行安装,请运行随附的安装脚本,或执行以下操作:
Git clone https://github.com/ChrisTruncer/Egress-Assess
-
安装pyftpdlib
pip install pyftpdli
-
生成服务器证书,并将其存储为与“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/