<div dir="ltr"><div>Already filed the bug.  See other reply.  Let me know if you have more questions.<br><br>Thanks<br></div>Russ<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Sep 12, 2013 at 1:31 PM, Reinoud Koornstra <span dir="ltr"><<a href="mailto:sockstat@...445..." target="_blank">sockstat@...445...</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div><div dir="ltr">Hi Russ,<br>
 <br>
I think I want to propose the following change:<div class="im"><br>
 <br>
--- src/dynamic-preprocessors/ftptelnet/snort_ftptelnet.c.orig 2013-09-12 00:17:29.301433818 -0700<br></div>+++ src/dynamic-preprocessors/ftptelnet/snort_ftptelnet.c 2013-09-12 10:28:05.173438072 -0700<br>@@ -2886,7 +2886,7 @@<br>
 <br>     PrintConfOpt(&ServerConf->telnet_cmds, "  Check for Telnet Cmds");<br>     PrintConfOpt(&ServerConf->ignore_telnet_erase_cmds, "  Ignore Telnet Cmd Operations");<br>-    _dpd.logMsg("        Identify open data channels: %s\n",<br>
+    _dpd.logMsg("        Ignore open data channels: %s\n",<br>         ServerConf->data_chan ? "YES" : "NO");<br> <br>     if (ServerConf->print_commands)<br><br>
Can you get back to my 17k byte question?<br>
Stream5 reassembly doesn't seem to be done to a 17k packet in case of ftp.<br>
Thanks,<br>
Reinoud.<br><div class="hm HOEnZb"> <br>
</div><div><div class="hm HOEnZb">
<hr>
From: <a href="mailto:sockstat@...445..." target="_blank">sockstat@...3059...45...</a><br>To: <a href="mailto:rcombs@...402..." target="_blank">rcombs@...402...</a><br>Date: Thu, 12 Sep 2013 16:46:24 +0000<br>CC: <a href="mailto:snort-devel@lists.sourceforge.net" target="_blank">snort-devel@...2859...sts.sourceforge.net</a></div>
<div><div class="h5"><br>Subject: Re: [Snort-devel] Bug in src/dynamic-preprocessors/ftptelnet/snort_ftptelnet.c<br><br>


<div dir="ltr">Hi,<br> <br>The code looked correct to me too, but didn't work the way i hoped for.<br>What I was trying to achieve is to get a stream reassembly for ftp like it's done for http and other protocol.<br>
Every 4 al more full mtu packets I saw that snort reassembled some packet content together to a big packet of 17k bytes.<br>It doesn't do this for ftp, stream reassembly doesn't seem to work there.<br>I thought it was due to my inability to get identity open data channel going as everytime when snort starts it said it was not active, even though i had<br>
ignore_data_chan no in my ftp config as you can see below.<br>With this argument, identify open data channel still wouldn't be on and i instrumented the code to see.<br>Even with this argument if (!strcasecmp("yes", pcToken)) doesn't trigger and doesn't match.<br>
In the current code with ignore_data_chan is set to no, ServerConf->data_chan is set to 0.<br> <br>Also, is stream reassembly happening with ftp-data packets like with http etc?<br>I never see packets of 17k being formed and inspected by snort like it does with http.<br>
Thanks,<br> <br>Reinoud.<br> <br> <br># FTP / Telnet normalization and anomaly detection.  For more information, see README.ftptelnet<br>preprocessor ftp_telnet: global inspection_type stateful encrypted_traffic no check_encrypted<br>
preprocessor ftp_telnet_protocol: telnet \<br>    ayt_attack_thresh 20 \<br>    normalize ports { 23 } \<br>    detect_anomalies<br>preprocessor ftp_telnet_protocol: ftp server default \<br>    def_max_param_len 100 \<br>
    ports { 21 2100 3535 } \<br>    telnet_cmds yes \<br>    ignore_telnet_erase_cmds yes \<br>    ignore_data_chan no \<br>    ftp_cmds { ABOR ACCT ADAT ALLO APPE AUTH CCC CDUP } \<br>    ftp_cmds { CEL CLNT CMD CONF CWD DELE ENC EPRT } \<br>
    ftp_cmds { EPSV ESTA ESTP FEAT HELP LANG LIST LPRT } \<br>    ftp_cmds { LPSV MACB MAIL M DTM MIC MKD MLSD MLST } \<br>    ftp_cmds { MODE NLST NOOP OPTS PASS PASV PBSZ PORT } \<br>    ftp_cmds { PROT PWD QUIT REIN REST RETR RMD RNFR } \<br>
    ftp_cmds { RNTO SDUP SITE SIZE SMNT STAT STOR STOU } \<br>    ftp_cmds { STRU SYST TEST TYPE USER XCUP XCRC XCWD } \<br>    ftp_cmds { XMAS XMD5 XMKD XPWD XRCP XRMD XRSQ XSEM } \<br>    ftp_cmds { XSEN XSHA1 XSHA256 } \<br>
    alt_max_param_len 0 { ABOR CCC CDUP ESTA FEAT LPSV NOOP PASV PWD QUIT REIN STOU SYST XCUP XPWD } \<br>    alt_max_param_len 200 { ALLO APPE CMD HELP NLST RETR RNFR STOR STOU XMKD } \<br>    alt_max_param_len 256 { CWD RNTO } \<br>
    alt_max_param_len 400 { PORT } \<br>    alt_max_param_len 512 { SIZE } \<br>    chk_str_fmt { ACCT ADAT ALLO APPE AUTH CEL CLNT CMD } \<br>    chk_str_fmt { CONF CWD DELE ENC EPRT EPSV ESTP HELP } \<br>    chk_str_fmt { LANG LIST LPRT MACB MAIL MDTM MIC MKD } \<br>
    chk_str_fmt { MLSD MLST MODE NLST OPTS PASS PBSZ PORT } \<br>    chk_str_fmt { PROT REST RETR RMD RNFR RNTO SDUP SITE } \<br>    chk_str_fmt { SIZE SMNT STAT STOR STRU TEST TYPE USER } \<br>    chk_str_fmt { XCRC XCWD XMAS XMD5 XMKD XRCP XRMD XRSQ } \<br>
    chk_str_fmt { XSEM XSEN XSHA1 XSHA256 } \<br>    cmd_validity ALLO < int [ char R int ] > \<br>    cmd_validity EPSV < [ { char 12 | char A char L char L } ] > \<br>    cmd_validity MACB < string > \<br>
    cmd_validity MDTM < [ date nnnnnnnnnnnnnn[.n[n[n]]] ] string > \<br>    cmd_validity MODE < char ASBCZ > \<br>    cmd_validity PORT < host_port > \<br>    cmd_validity PROT < char CSEP > \<br>    cmd_validity STRU < char FRPO [ string ] > \<br>
    cmd_validity TYPE < { char AE [ char NTC ] | char I | char L [ number ] } ><br>preprocessor ftp_telnet_protocol: ftp client default \<br><br> <br>
<div>
<hr>
Date: Thu, 12 Sep 2013 11:09:33 -0400<br>Subject: Re: [Snort-devel] Bug in src/dynamic-preprocessors/ftptelnet/snort_ftptelnet.c<br>From: <a href="mailto:rcombs@...402..." target="_blank">rcombs@...402...</a><br>
To: <a href="mailto:sockstat@...445..." target="_blank">sockstat@...3298......</a><br>CC: <a href="mailto:snort-devel@lists.sourceforge.net" target="_blank">snort-devel@lists.sourceforge.net</a><br><br>
<div dir="ltr">
<div>
<div>
<div>Hi.  That code looks correct w/o patching.  strncasecmp(a,b) returns zero if a matches b.<br><br></div>I'm not clear on the issue that you are having.  What is your ftp configuration and what are you trying to do?<br>
<br></div>
<div>Let me know and we'll try to get it figured out.<br></div>
<div><br></div>Thanks<br></div>Russ<br><br></div>
<div><br><br>
<div>On Thu, Sep 12, 2013 at 3:30 AM, Reinoud Koornstra <span dir="ltr"><<a href="mailto:sockstat@...445..." target="_blank">sockstat@...3129.....</a>></span> wrote:<br>
<blockquote style="BORDER-LEFT:#ccc 1px solid;PADDING-LEFT:1ex">
<div>
<div dir="ltr">Hi Everyone,<br> <br>I've been struggeling with trying to get trying to active this option Identify open data channels.<br>Even with the parameter ignore_data_chan no, it wouldn't activate.<br>After some instrumentation I found that we were turning it off because of a comparison that didn't go right.<br>
Even with ignore_data_chan set to no, we'd still come in the else if which wasn't correct.<br>Here's a fix to the problem:<br> <br>---- src/dynamic-preprocessors/ftptelnet/snort_ftptelnet.c.orig 2013-09-12 00:17:29.301433818 -0700<br>
+++ src/dynamic-preprocessors/ftptelnet/snort_ftptelnet.c 2013-09-12 00:21:54.441437865 -0700<br>@@ -1403,11 +1403,11 @@<br>                                          confOption);<br>         return FTPP_FATAL_ERR;<br>     }<br>
-    if (!strcasecmp("yes", pcToken))<br>+    if (strncmp("yes", pcToken, 3) != 0)<br>     {<br>         ServerConf->data_chan = 1;<br>     }<br>-    else if (!strcasecmp("no", pcToken))<br>
+    else if (strncmp("no", pcToken, 2) != 0)<br>     {<br>         if (ServerConf->data_chan == 1)<br>         {<br> <br>Thanks,<span><font color="#888888"><br> <br>Reinoud.<br></font></span></div></div><br>
------------------------------------------------------------------------------<br>How ServiceNow helps IT people transform IT departments:<br>1. Consolidate legacy IT systems to a single system of record for IT<br>2. Standardize and globalize service processes across IT<br>
3. Implement zero-touch automation to replace manual, redundant tasks<br><a href="http://pubads.g.doubleclick.net/gampad/clk?id=51271111&iu=/4140/ostg.clktrk" target="_blank">http://pubads.g.doubleclick.net/gampad/clk?id=51271111&iu=/4140/ostg.clktrk</a><br>
_______________________________________________<br>Snort-devel mailing list<br><a href="mailto:Snort-devel@lists.sourceforge.net" target="_blank">Snort-devel@lists.sourceforge.net</a><br><a href="https://lists.sourceforge.net/lists/listinfo/snort-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/snort-devel</a><br>
Archive:<br><a href="http://sourceforge.net/mailarchive/forum.php?forum_name=snort-devel" target="_blank">http://sourceforge.net/mailarchive/forum.php?forum_name=snort-devel</a><br><br>Please visit <a href="http://blog.snort.org/" target="_blank">http://blog.snort.org</a> for the latest news about Snort!<br>
</blockquote></div><br></div></div></div><br>------------------------------------------------------------------------------ How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks <a href="http://pubads.g.doubleclick.net/gampad/clk?id=51271111&iu=/4140/ostg.clktrk" target="_blank">http://pubads.g.doubleclick.net/gampad/clk?id=51271111&iu=/4140/ostg.clktrk</a><br>
_______________________________________________ Snort-devel mailing list <a href="mailto:Snort-devel@lists.sourceforge.net" target="_blank">Snort-devel@lists.sourceforge.net</a> <a href="https://lists.sourceforge.net/lists/listinfo/snort-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/snort-devel</a> Archive: <a href="http://sourceforge.net/mailarchive/forum.php?forum_name=snort-devel" target="_blank">http://sourceforge.net/mailarchive/forum.php?forum_name=snort-devel</a> Please visit <a href="http://blog.snort.org" target="_blank">http://blog.snort.org</a> for the latest news about Snort!</div>
</div></div>                                          </div></div>
</blockquote></div><br></div>