57 lines
No EOL
2.8 KiB
Text
57 lines
No EOL
2.8 KiB
Text
-----------------------------------------------------
|
||
Vulnerability Type: Detection Bypass
|
||
Affected Product: Suricata
|
||
Vulnerable version: <4.0.4
|
||
CVE number: CVE-2018-6794
|
||
Found: 25.01.2018
|
||
By: Kirill Shipulin (@kirill_wow), Positive Technologies
|
||
Severity: Medium
|
||
------------------------------------------
|
||
|
||
About Suricata:
|
||
---------------
|
||
Suricata is a high performance Network Threat Detection, IDS, IPS and Network Security Monitoring engine. Open Source and owned by a community run non-profit foundation, the Open Information Security Foundation (OISF). Suricata is developed by the OISF, its supporting vendors and the community
|
||
|
||
Attack Description:
|
||
-------------------
|
||
If as a server side you break a normal TCP 3 way handshake packets order and inject some response data before 3whs is complete then data still will be received by the a client but some IDS engines may skip content checks on that.
|
||
|
||
Attack scenario TCP flow scheme:
|
||
Client -> [SYN] [Seq=0 Ack= 0] -> Evil Server
|
||
Client <- [SYN, ACK] [Seq=0 Ack= 1] <- Evil Server
|
||
Client <- [PSH, ACK] [Seq=1 Ack= 1] <- Evil Server # Injection before the 3whs is completed
|
||
Client <- [FIN, ACK] [Seq=83 Ack= 1] <- Evil Server
|
||
Client -> [ACK] [Seq=1 Ack= 84] -> Evil Server
|
||
Client -> [PSH, ACK] [Seq=1 Ack= 84] -> Evil Server
|
||
|
||
IDS signature checks for tcp stream or http response body will be skipped in the case of data injection. This attack technique requires all three packets from a malicious server to be received by a client side together before it completes 3whs. Proof of concept server was written in C to reproduce this and it works reliably in local networks. Since some network devices may affect packets transmission exploitation is not so reliable for the internet scenario.
|
||
|
||
This attack possibly may impact other network monitoring or intrusion detection systems because is not limited to Suricata IDS: an old Snort IDS version 2.9.4 is also affected.
|
||
|
||
Successful exploitation leads to a complete TCP-Stream response or HTTP response signatures bypass and may be used to prevent malicious payloads from network detection.
|
||
|
||
PoС:
|
||
----
|
||
A Working PoC server is available here: https://github.com/kirillwow/ids_bypass
|
||
There is also a traffic capture of this data injection technique.
|
||
|
||
Timeline Summary:
|
||
-----------------
|
||
2018-01-25: Issue submitted to the bug tracker.
|
||
2018-01-30: Patch ready.
|
||
2018-02-14: Suricata 4.0.4 containing the fix has been released.
|
||
|
||
References:
|
||
-----------
|
||
CVE-2018-6794
|
||
https://redmine.openinfosecfoundation.org/issues/2427
|
||
|
||
Contacts:
|
||
---------
|
||
Twitter: https://twitter.com/AttackDetection
|
||
Twitter: https://twitter.com/kirill_wow
|
||
Telegram: https://t.me/kirill_wow
|
||
|
||
|
||
Proof of Concept:
|
||
https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/44247.zip |