Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/smb/v19.6 #3286

Merged
merged 51 commits into from
Mar 15, 2018
Merged

Feature/smb/v19.6 #3286

merged 51 commits into from
Mar 15, 2018

Conversation

victorjulien
Copy link
Member

Replaces #3284. Earlier PRs #3281 #3266 #3260 #3256

Describe changes:

  • add SMB records to fileinfo records
  • add 'fuid' field: FID for SMB1, file GUID for SMB2
  • SMB2: no log record per READ/WRITE/etc command

PRScript output (if applicable):

Implement SMB app-layer parser for SMB1/2/3. Features:
- file extraction
- eve logging
- existing dce keyword support
- smb_share/smb_named_pipe keyword support (stickybuffers)
- auth meta data extraction (ntlmssp, kerberos5)
Improve ntlmssp version extraction and logging, make its data structures
optional. Extract native os/lm from smb1 ssn setup.

Move session setup handling into their own files.

Only log auth data for the session setup tx.
Don't create a generic TX for each READ, WRITE, TRANS, TRANS2,
except if they cause events to trigger.
@victorjulien victorjulien requested review from jasonish, norg and a team as code owners March 14, 2018 15:29
This was referenced Mar 14, 2018
@inliniac inliniac merged commit bc19324 into OISF:master Mar 15, 2018
@victorjulien victorjulien deleted the feature/smb/v19.6 branch April 16, 2018 05:17
victorjulien added a commit to victorjulien/suricata that referenced this pull request Dec 13, 2019
RST injection during the SYN_SENT state could trick Suricata into marking
a session as CLOSED. The way this was done is: using invalid TSECR value
in RST+ACK packet. The ACK was needed to force Linux into considering the
TSECR value and compare it to the TSVAL from the SYN packet.

The second works only against Windows. The client would not use a TSVAL
but the RST packet would. Windows will reject this, but Suricata considered
the RST valid and triggered the CLOSED logic.

This patch addresses both. When the SYN packet used timestamp support
the timestamp of incoming packet is validated. Otherwise, packet responding
should not have a timestamp.

Bug OISF#3286

Reported-by: Nicolas Adba
victorjulien added a commit to victorjulien/suricata that referenced this pull request Dec 13, 2019
RST injection during the SYN_SENT state could trick Suricata into marking
a session as CLOSED. The way this was done is: using invalid TSECR value
in RST+ACK packet. The ACK was needed to force Linux into considering the
TSECR value and compare it to the TSVAL from the SYN packet.

The second works only against Windows. The client would not use a TSVAL
but the RST packet would. Windows will reject this, but Suricata considered
the RST valid and triggered the CLOSED logic.

This patch addresses both. When the SYN packet used timestamp support
the timestamp of incoming packet is validated. Otherwise, packet responding
should not have a timestamp.

Bug OISF#3286

Reported-by: Nicolas Adba
(cherry picked from commit 9f0294f)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants