Hello all,
I've been getting false negatives against frontpage servers.  I've modified
Renaud's frontpage.nasl (attached).  I've removed the dependency on
"script_require_keys("www/iis");", since so many servers now just belch out
a 500 error without giving out server name....Many servers are using
ENTERCEPT, URLSCAN, etc. and just don't give up the "IIS" string like they
used to....

Comments?

Also, I am interested in compiling a list of "TODO plugins" (i.e. plugins
that need to be written...by CVE, BID, or otherwise)....ideally, I would
like deltas between other scanners and nessus (i.e. which checks do other
scanners do better)...

TIA,

John W. Lampe
https://f00dikator.aceryder.com/


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.463 / Virus Database: 262 - Release Date: 3/17/2003
#
# This script was written by Renaud Deraison <[EMAIL PROTECTED]>
#
# See the Nessus Scripts License for details
#
# Modified by John [EMAIL PROTECTED] to add "open service" call and
# add 2 more files to look for

if(description)
{
 script_id(10077);
 script_version ("$Revision: 1.16.2.1 $");
 script_cve_id("CAN-2000-0114");
 name["english"] = "Microsoft Frontpage exploits";
 name["francais"] = "Exploits Microsoft Frontpage";
 script_name(english:name["english"], francais:name["francais"]);

 desc["english"] = "
The remote web server appears to be running with
Frontpage extensions.

You should double check the configuration since
a lot of security problems have been found with
FrontPage when the configuration file is
not well set up.

Risk factor : High if your configuration file is
not well set up";

 desc["francais"] = "
Le serveur web distant semble tourner avec
des extensions Frontpage.

Vous devriez v�rifier votre configuration puisque
de nombreux probl�mes de s�curit� sont li�s a la mauvaise
configuration de ces extensions.

Facteur de risque : Elev� si votre fichier de configuration
n'est pas bien fait";


 script_description(english:desc["english"], francais:desc["francais"]);

 summary["english"] = "Checks for the presence of Microsoft Frontpage extensions";
 summary["francais"] = "V�rifie la pr�sence des extensions Frontpage";
 script_summary(english:summary["english"], francais:summary["francais"]);

 script_category(ACT_GATHER_INFO);


 script_copyright(english:"This script is Copyright (C) 1999 Renaud Deraison",
                francais:"Ce script est Copyright (C) 1999 Renaud Deraison");
 family["english"] = "CGI abuses";
 family["francais"] = "Abus de CGI";
 script_family(english:family["english"], francais:family["francais"]);
 script_dependencie("find_service.nes", "no404.nasl", "http_version.nasl");
 script_require_ports("Services/www", 80);
# script_require_keys("www/iis");
 exit(0);
}

#
# The script code starts here
#


port = get_kb_item("Services/www");
if (!port) port = 80;
req = string("POST /_vti_bin/shtml.dll/_vti_rpc HTTP/1.0\r\n");
req = req + string("Connection: Keep-Alive\r\nDate: Mon, 23 Mar 2003 00:00:15 
GMT\r\n");
req = req + string("Accept: */*\r\nHost: ", get_host_ip(),"\r\n","User-Agent: 
MSFrontPage/4.0\r\n");
req = req + string("Content-Length: 58\r\nContent-Type: 
application/x-www-form-urlencoded\r\n");
req = req + string("MIME-Version: 1.0\r\nX-Vermeer-Content-Type: 
application/x-www-form-urlencoded\r\n\r\n");
req = req + string("method=open+service%3a3%2e0%2e2%2e1105&service%5fname=%2f\r\n");
soc = open_sock_tcp(port);
if (soc) {
    send(socket:soc, data:req);
        r=recv(socket:soc, length:1024);
        if(egrep(pattern:".*x-vermeer-rpc*", string:r)) {
             startofmsg = strstr(r , "method=");
             startofmsg = startofmsg + 1;
             myreport = string("The remote frontpage server may leak information on 
the anonymous user\r\n");
             myreport = myreport + string("By knowing the name of the anonymous user, 
more sophisticated attacks may be launched\r\n");
             myreport = myreport + string("Check the following data for any potential 
leaks:\r\n\r\n",startofmsg,"\r\n\r\n");
             set_kb_item(name:"www/frontpage", value:TRUE);
             security_hole(port:port, data:myreport);
        }
        close(soc);
}




file[0] = "/_vti_bin/_vti_adm/admin.dll";
file[1] = "/_vti_bin/_vti_aut/author.dll";
file[2] = "/_vti_bin/shtml.exe/_vti_rpc";
flag = 1;

for (i=0; file[i]; i = i + 1) {
    port = is_cgi_installed(file[i]);
    if(!port) flag = 0;

    if(get_port_state(port)  && flag)
    {
        soc = open_sock_tcp(port);
        if(soc)
        {
            name = string("www/no404/", port);
            no404 = get_kb_item(name);
            str = http_post(item:file[i], port:port);
            send(socket:soc, data:str);
            buf = recv_line(socket:soc, length:1024);
            content = recv(socket:soc, length:4096);
            buf = tolower(buf);
            close(soc);
            if(("http/1.1 200" >< buf)||("http/1.0 200" >< buf))
            {
                if(no404)
                {
                    no404 = tolower(no404);
                    if(no404 >< content)exit(0);
                }
                security_warning(port);
                set_kb_item(name:"www/frontpage", value:TRUE);
            }
         }
    }
        flag = 1;
}



Reply via email to