关于ShellShock对企业网络服务器的攻击以及防范手段

简介:

一、ShellShock对Web Server的影响

下述文字节选自:

http://codeway.co/2014%E5%B9%B49%E6%9C%88%E6%9B%9D%E5%87%BA%E7%9A%84bash-shellshock%E6%BC%8F%E6%B4%9E/

Bash曝出在调用环境变量设置命令或者接口时,可以任意执行Bash命令语句,绕过用户权限的限制。基本原理是:

$ env x='() { :;}; echo vulnerable'

env命令在执行赋值语句时未检查函数的边界,导致函数之后的内容也被执行。运行如上代码,屏幕如果显示“vulnearable”,那么系统的bash就存在该问题。目前确知的是,4.3版本之前的bash都存在该问题。该漏洞的代码为:CVE-2014-6271。目前存在一些场景允许远程执行Bash命令,正好又会在命令中调用环境变量设置函数。如CGIDHCP等。

下面以CGI为例,说明这一漏洞攻击的过程。

CGI相关的解析HTTP请求的过程如下:

1Linux WEB Server一般可以提供CGI接口,允许远程执行Bash命令;

2、对于HTTP头部,CGI脚本解析器会将其当作环境变量,调用bashenv相关函数设置到临时环境变量中;

3HTTP协议允许发送任意客户端自定义的HTTP头部;

4、这样就产生了一个完整的可供Bash命令注入的场景,客户端故意发送构造好的带攻击命令的HTTP头部到服务端,服务端调用设置环境变量的函数,直接执行了客户端指定的头部里面的命令。并且还会将结果一并返回给客户端。

攻击过程为:

1、客户端构造HTTP头部,包含内容为:

Httpheader=(){:;}; echo vulnerable

2、客户端发送该头部到Linux Web Server,接收到该头部后,CGI将调用Bashenv把该HTTP头部作为临时变量设置到系统环境变量中;

3、Echo vulnerable将被执行(跳开权限检查)

 

二、ShellShock对DHCP Server的影响

以下文字摘取并翻译自:

https://www.trustedsec.com/september-2014/shellshock-dhcp-rce-proof-concept/?utm_source=tuicool

ShellshockDHCP服务攻击流程

DHCP服务器处理流程:

1DHCP Server接收到Linux ClientDiscover包后,构建Offer包,里面包含有IP地址、子网掩码等参数,其中额外Option中,有一个114号的参数,代表Url参数;

2Linux Client接收到该Offer后,经过RequestAck后,将调用Bash对端口以相关参数赋值,其中Option 114后面的字符串作为环境变量。

3) 该参数的字符串将被越界命令。


 

三、ShellShock对SSH Daemon的影响

SSH因其AcceptEnvTERMSSH_ORIGINAL_COMMAND等环境变量受此漏洞影响。

~/.ssh/authorized_keys文件是SSH中用于记录强制命令(force command)及公钥的文件,这些force command被记录到SSH_ORIGINAL_Command变量中。当往该文件添加适当的命令后,SSH用户在登录后将执行上述命令。若该命令运行环境为Bash,则该漏洞似的用户登录后直接使用未授权的命令,然后再执行强制命令。例如:

sudo useradd -d /testuser -s /bin/bash testuser

sudo mkdir -p /testuser/.ssh

sudo sh -c "echo command=\\\"echo starting sleep; sleep 1\\\" $(cat ~/.ssh/id_rsa.pub) > /testuser/.ssh/authorized_keys"

sudo chown -R testuser /testuser

 

上述命令建立一个testuser用户,并在该用户的公钥文件中添加了sleep 1这条命令。

正常情况下,使用testuser登陆应该出现以下情况:

$ ssh testuser@localhost echo something else

starting sleep

echo回显命令无法执行。

 

以下是使用ShellShock漏洞执行的结果:

$ ssh testuser@localhost '() { :;}; echo MALICIOUS CODE'

MALICIOUS CODE

starting sleep

可以看到,以函数溢出形式调用echo回显时,echo命令被调用了。

另外还有一种二次认证情况下绕过第二次认证的漏洞,这里就不详细列举了。

上述三个漏洞已被CVE-2014-6271所修复。

四、减少漏洞对企业业务的影响

针对上述影响,企业需要做好来自上述已知攻击的预防工作。

(一)及时更新补丁,特别是已经暴率出来的CVE-2014-6271,必须尽快部署。

(二)更新防火墙、IPSIDS规则库,尽早发现攻击源并做好防范;

(三)控制访问上述应用的客户端应用。

(四)网络设备安全部署:

1、针对DHCP Server的漏洞基本上要配合假冒DHCP Server来完成,可以通过DHCP Snooping进行防范。

(1)在交换机全局启用DHCP Snooping

Switch(config)#ip dhcp snooping

(2)在特定VLAN中启用DHCP SNOOPING

Switch(config)#ip dhcp snooping vlan VLAN-ID

(3)在可信端口启用信任模式:

Switch(config-if)ip dhcp snooping trust

2、针对WebSSH的漏洞,目前而言只能通过IDSIPS进行防范。目前在网络层面唯一可以做的,是限制非法工作站的接入:

[root@tp ~]# iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT

[root@tp ~]# iptables -A OUTPUT -d 192.168.1.0/24 -p tcp --sport 22 -j ACCEPT

[root@tp ~]# iptables -A INPUT -p tcp --dport 22 -j DROP

[root@tp ~]# iptables -A OUTPUT -p tcp --sport 22 -j DROP

[root@tp ~]# /etc/rc.d/init.d/iptables save

交换机则使用访问控制列表进行配置。



本文转自 gole_huang 51CTO博客,原文链接:http://blog.51cto.com/golehuang/1563066

相关文章
|
3天前
|
监控 Linux 测试技术
LabVIEW网络服务器何使用,有哪些不同
LabVIEW网络服务器何使用,有哪些不同
|
1天前
|
网络协议
LabVIEW中如何在网络上使用远程VI服务器
LabVIEW中如何在网络上使用远程VI服务器
|
3天前
|
安全 网络安全 数据安全/隐私保护
网络安全:如何保护你的网络不受黑客攻击
【5月更文挑战第10天】 网络安全摘要:强化密码安全,使用防病毒软件,启用防火墙,定期更新软件,使用安全网络连接,备份重要数据,提高安全意识。这七大措施助你构建安全网络环境,抵御黑客攻击。记得持续学习,适应不断变化的威胁。
|
4天前
|
网络协议 Dubbo Java
【网络编程】理解客户端和服务器并使用Java提供的api实现回显服务器
【网络编程】理解客户端和服务器并使用Java提供的api实现回显服务器
9 0
|
9天前
|
机器学习/深度学习 人工智能 监控
【AI 场景】如何应用人工智能来增强企业网络的网络安全?
【5月更文挑战第4天】【AI 场景】如何应用人工智能来增强企业网络的网络安全?
|
9天前
|
存储 监控 安全
如何利用服务器为个人和企业提供定制服务?
【5月更文挑战第4天】如何利用服务器为个人和企业提供定制服务?
25 11
|
13天前
|
存储 数据处理 数据库
|
13天前
|
监控 安全 测试技术
【亮剑】在网络技术日益发展的今天,端口映射已成为家庭和企业网络环境中不可或缺的一项技术。
【4月更文挑战第30天】本文介绍了端口映射(Port Forwarding)的概念,它是NAT技术的一种,用于让外部设备访问内部网络服务。端口映射广泛应用于远程桌面、网络游戏、视频监控和个人服务器托管等场景。操作步骤包括登录路由器管理界面、设置映射规则、保存并启用规则,以及测试映射效果。虽然端口映射能扩大网络应用,但也可能带来安全风险,因此需谨慎管理和设置安全措施。
|
15天前
|
存储 缓存 网络协议
【专栏】理解并优化DNS设置对于提高网络速度至关重要
【4月更文挑战第28天】本文探讨了DNS服务器是否能加快网络访问速度。DNS负责将域名转换为IP地址,其查询时间、缓存机制和地理位置都影响网络速度。优化DNS配置,如选择快速的公共DNS服务、使用附近的服务器、确保设备正确配置和利用DNS缓存,都能有效提升网络体验。理解并优化DNS设置对于提高网络速度至关重要。
|
15天前
|
监控 负载均衡 网络协议