<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Texte de bulles Car";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";
        mso-fareast-language:EN-US;}
span.TextedebullesCar
        {mso-style-name:"Texte de bulles Car";
        mso-style-priority:99;
        mso-style-link:"Texte de bulles";
        font-family:"Tahoma","sans-serif";}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle20
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=FR link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='color:#1F497D;mso-fareast-language:FR'>Hello,<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D;mso-fareast-language:FR'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D;mso-fareast-language:FR'>The previous message is currently waiting for a moderator approval.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D;mso-fareast-language:FR'>As it’s not released for the moment, I registered to the maillinglist and here it is.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D;mso-fareast-language:FR'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D;mso-fareast-language:FR'>Regards,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D;mso-fareast-language:FR'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D;mso-fareast-language:FR'>Damien<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";mso-fareast-language:FR'>De :</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";mso-fareast-language:FR'> FOULDE Damien <br><b>Envoyé :</b> mercredi 21 décembre 2016 10:51<br><b>À :</b> snort-sigs@lists.sourceforge.net<br><b>Objet :</b> RE: LDAPv3 with simple authentication<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='color:#1F497D;mso-fareast-language:FR'>Hello,<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D;mso-fareast-language:FR'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D;mso-fareast-language:FR'>Any ideas / suggestions / advices will be greatly appreciated regarding this question.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D;mso-fareast-language:FR'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D;mso-fareast-language:FR'>In the meantime, here’s a working signature without fully decoding the BER data :<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>alert tcp any any -> any 389 (sid:1000000; gid:1; flow:established,to_server; content:"|30|"; depth:1; content:"|02|"; distance:1; within:127; content:"|60|"; distance:1; within:5; content:"|02 01 03 04|"; fast_pattern; distance:1; within:127; content:"|80|"; distance:1; within:127; content:!"|02 01 03 04 00 a3|"; offset:7; depth:257; msg:"LDAPv3 simple Authentication"; classtype:policy-violation; rev:1; )<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>It would be great if it could be reviewed by Talos.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>I can provide a packet capture if needed.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Regards,<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Damien<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";mso-fareast-language:FR'>De :</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";mso-fareast-language:FR'> FOULDE Damien [<a href="mailto:damien.foulde@...4205...">mailto:damien.foulde@...4205...</a>] <br><b>Envoyé :</b> lundi 19 décembre 2016 12:39<br><b>À :</b> <a href="mailto:snort-sigs@lists.sourceforge.net">snort-sigs@...3094...rceforge.net</a><br><b>Objet :</b> [Snort-sigs] LDAPv3 with simple authentication<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span lang=EN-US>Hello,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>We need to write a signature to match on LDAPv3 with simple authentication.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>LDAPv3 is described in the RFC 2251 through Abstract Syntax Notation 1 (ASN.1) and encoded through a subset of Basic Encoding Rules (BER) in the packets.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>You may have a look to this great website <a href="http://www.selfadsi.org/ldap.htm#Frame">http://www.selfadsi.org/ldap.htm#Frame</a> to have a quick look over the encoding.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><a href="https://en.wikipedia.org/wiki/X.690#BER_encoding">https://en.wikipedia.org/wiki/X.690#BER_encoding</a> is also a good source of information.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>As you should have seen the length can be encoded in a short or long form.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>When the short form is used the MSB is set to 0 and the 7 remaining bits are used to encode the length directly from 0 to 127.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>Using the byte_jump function we should be able to jump to the next encoded data.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>When the long form is used the MSB is set to 1 and the 7 remaining bits are used to encode the number of bytes that follow from 1 to 126 which will contains the actual length.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>Using byte_extract and byte_jump functions with bitmask we should be able to jump to the next encoded data.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>Before reaching the point where the LDAPv3 authentication is set to simple (encoded to 0) or sasl (encoded to 3) there’re 5 short or long length bytes.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>Is there a way through the subset of snort packet dissection functions to match on this without writing 32 (2^5) different signatures to match all short / long possibilities ?<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>The BER encoding is also used to encode SNMP, the same kind of issue may have been seen there also.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>Thank you for your help,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>Damien<o:p></o:p></span></p></div></body></html>