freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Pstf:一款功能强大的被动安全工具指纹框架
2021-09-02 12:33:05

关于Pstf

Pstf是一款基于HTTP服务器实现的安全框架,可以帮助广大研究人员以被动方式对浏览器进行指纹识别。当攻击者试图通过互联网传播Payload时,他们往往需要对付那些能够扫描传入链接的各种工具。而Pstf可以帮助我们以被动方式检测并绕过多种安全产品,其中包括但不限于电子邮件过滤器、安全扫描引擎和沙箱系统。

运行机制

检查恶意链接是一项涉及Web客户端发送HTTP GET请求的操作,每一个互联网服务提供商都会使用不同的内部实现,而大部分提供商都会试图在某种程度上模拟真实的用户交互。

Pstf是一个简单的基于Python的HTTP服务器,它使用了著名的机器人检测策略来确定传入的请求是否来自自动安全工具。服务器的操作人员可以自定义请求响应,比如说,如果检测到了扫描工具,则自动重定向至Google,否则就直接发送恶意内容。

工具安装

使用Docker

假设你已经在自己的设备环境中安装好了Docker,那么你就可以直接使用下列命令安装Pstf:

docker-compose up

手动部署

如果你不想使用Docker的话,你也可以自行进行手动安装与配置。

首先,我们需要安装好Python环境,然后使用下列命令将该项目源码克隆至本地:

git clone https://github.com/G4LB1T/pstf2.git

接下来,安装好依赖组件:

pip install requirements.txt

在真正安装Pstf之前,我们需要先下载并安装p0f。【GitHub传送门

现在,我们需要正确lib/servers/server_config.yml以指向正确路径:

p0f_config:

  # change your username at the very least, remember to change in both paths

  p0f_bin_path: '/Users/$your_user_name/$more_folders/web_fp/p0f-3.09b/p0f'

  p0f_fp_path: '/Users/$your_user_name/$more_folders/web_fp/p0f-3.09b/p0f.fp'

  iface: 'lo0'

  p0f_named_socket: '/tmp/p0f_socket'

接下来,验证iface端口是否指向的是你Python HTTP服务器的运行接口。上述样例中配置的是一个回环接口。

工具运行

完成工具的安装和配置后,我们就可以直接运行工具脚本了:

python driver.py

你还可以使用下列参数选项:

--p0f_bin_path P0F_BIN_PATH

  --p0f_fp_path P0F_FP_PATH

  --p0f_iface P0F_IFACE

运行后,你将会看到如下所示的输出结果:

2020-04-15 17:37:06,896 - pstf2_logger - INFO - Starting p0f...

2020-04-15 17:37:06,896 - pstf2_logger - INFO - Running command:

/Users/gbitensk/work/web_fp/p0f-3.09b/p0f -i lo0 -s /tmp/p0f_socket -f /Users/gbitensk/work/web_fp/p0f-3.09b/p0f.fp

2020-04-15 17:37:06,898 - pstf2_logger - INFO - p0f started!

2020-04-15 17:37:06,898 - pstf2_logger - INFO - Starting HTTP server...

2020-04-15 17:37:06,898 - pstf2_logger - INFO - HTTP server started!

2020-04-15 17:37:06,899 - pstf2_logger - INFO - If you wish to terminate the server press CTRL+C

我们可以按下Ctrl + C键终止服务器运行,此时将会关闭HTTP和p0f实例:

2020-04-15 17:37:48,263 - pstf2_logger - INFO - HTTP server stopped!

2020-04-15 17:37:48,263 - pstf2_logger - INFO - Killing p0f...

2020-04-15 17:37:48,263 - pstf2_logger - INFO - p0f killed!

2020-04-15 17:37:48,263 - pstf2_logger - INFO - exiting...

Payload管理

Pstf提供了默认地Payload,并定义在server_config.yml文件中,我们可以根据自己的需求进行自定义修改或配置。

合法响应

工具提供了两种模式,可以通过设置rickroll_mode为YES或NO来进行修改。如果启用为YES,安全工具将会被重定向至一个油*管页面,否则将会显示一个定义在同一个YAML文件中的字符串。

恶意响应

默认配置下,恶意响应会被设置为EICAR标准测试字符串

项目地址

Pstf:GitHub传送门

参考资料

https://www.blackhat.com/eu-20/arsenal/schedule/#pstf2-link-scanners-evasion-made-easy-21763

https://blogs.akamai.com/sitr/2020/12/evading-link-scanning-security-services-with-passive-fingerprinting.html

# 安全绕过 # 工具识别
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录