[Snort-sigs] LDAPv3 with simple authentication

Joel Esler (jesler) jesler at ...3865...
Thu Dec 29 11:07:44 EST 2016

I only approve moderated messages if they are over size or something. Non-subscribers to the list are discarded.

Sent from my iPhone

On Dec 29, 2016, at 10:42 AM, FOULDE Damien <damien.foulde at ...4205...<mailto:damien.foulde at ...4205...>> wrote:


The previous message is currently waiting for a moderator approval.
As it's not released for the moment, I registered to the maillinglist and here it is.



De : FOULDE Damien
Envoy? : mercredi 21 d?cembre 2016 10:51
? : snort-sigs at lists.sourceforge.net<mailto:snort-sigs at ...3414...t>
Objet : RE: LDAPv3 with simple authentication


Any ideas / suggestions / advices will be greatly appreciated regarding this question.

In the meantime, here's a working signature without fully decoding the BER data :
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; )

It would be great if it could be reviewed by Talos.
I can provide a packet capture if needed.



De : FOULDE Damien [mailto:damien.foulde at ...4205...]
Envoy? : lundi 19 d?cembre 2016 12:39
? : snort-sigs at lists.sourceforge.net<mailto:snort-sigs at ...3414...t>
Objet : [Snort-sigs] LDAPv3 with simple authentication


We need to write a signature to match on LDAPv3 with simple authentication.
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.
You may have a look to this great website http://www.selfadsi.org/ldap.htm#Frame to have a quick look over the encoding.
https://en.wikipedia.org/wiki/X.690#BER_encoding is also a good source of information.
As you should have seen the length can be encoded in a short or long form.
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.
Using the byte_jump function we should be able to jump to the next encoded data.
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.
Using byte_extract and byte_jump functions with bitmask we should be able to jump to the next encoded data.
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.
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 ?
The BER encoding is also used to encode SNMP, the same kind of issue may have been seen there also.

Thank you for your help,

Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org<http://SlashDot.org>! http://sdm.link/slashdot
Snort-sigs mailing list
Snort-sigs at lists.sourceforge.net<mailto:Snort-sigs at lists.sourceforge.net>


Please visit http://blog.snort.org for the latest news about Snort!

Visit the Snort.org<http://Snort.org> to subscribe to the official Snort ruleset, make sure to stay up to date to catch the most <a href=" https://snort.org/downloads/#rule-downloads">emerging threats</a>!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.snort.org/pipermail/snort-sigs/attachments/20161229/b7b96129/attachment.html>

More information about the Snort-sigs mailing list