mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
Extending rexmit_inconsistency() event to receive an additional
parameter with the packet's TCP flags, if available.
This commit is contained in:
parent
88a4683d22
commit
a83d97937e
14 changed files with 53 additions and 51 deletions
6
CHANGES
6
CHANGES
|
@ -1,4 +1,10 @@
|
||||||
|
|
||||||
|
2.4-188 | 2015-10-26 14:11:21 -0700
|
||||||
|
|
||||||
|
* Extending rexmit_inconsistency() event to receive an additional
|
||||||
|
parameter with the packet's TCP flags, if available. (Robin
|
||||||
|
Sommer)
|
||||||
|
|
||||||
2.4-187 | 2015-10-26 13:43:32 -0700
|
2.4-187 | 2015-10-26 13:43:32 -0700
|
||||||
|
|
||||||
* Updating NEWS for new plugins. (Robin Sommer)
|
* Updating NEWS for new plugins. (Robin Sommer)
|
||||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
||||||
2.4-187
|
2.4-188
|
||||||
|
|
|
@ -19,12 +19,12 @@ export {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
event rexmit_inconsistency(c: connection, t1: string, t2: string)
|
event rexmit_inconsistency(c: connection, t1: string, t2: string, tcp_flags: string)
|
||||||
{
|
{
|
||||||
NOTICE([$note=Retransmission_Inconsistency,
|
NOTICE([$note=Retransmission_Inconsistency,
|
||||||
$conn=c,
|
$conn=c,
|
||||||
$msg=fmt("%s rexmit inconsistency (%s) (%s)",
|
$msg=fmt("%s rexmit inconsistency (%s) (%s) [%s]",
|
||||||
id_string(c$id), t1, t2),
|
id_string(c$id), t1, t2, tcp_flags),
|
||||||
$identifier=fmt("%s", c$id)]);
|
$identifier=fmt("%s", c$id)]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#include "PIA.h"
|
#include "PIA.h"
|
||||||
#include "RuleMatcher.h"
|
#include "RuleMatcher.h"
|
||||||
|
#include "analyzer/protocol/tcp/TCP_Flags.h"
|
||||||
#include "analyzer/protocol/tcp/TCP_Reassembler.h"
|
#include "analyzer/protocol/tcp/TCP_Reassembler.h"
|
||||||
|
|
||||||
#include "events.bif.h"
|
#include "events.bif.h"
|
||||||
|
@ -348,12 +349,16 @@ void PIA_TCP::ActivateAnalyzer(analyzer::Tag tag, const Rule* rule)
|
||||||
|
|
||||||
for ( DataBlock* b = pkt_buffer.head; b; b = b->next )
|
for ( DataBlock* b = pkt_buffer.head; b; b = b->next )
|
||||||
{
|
{
|
||||||
|
// We don't have the TCP flags here during replay. We could
|
||||||
|
// funnel them through, but it's non-trivial and doesn't seem
|
||||||
|
// worth the effort.
|
||||||
|
|
||||||
if ( b->is_orig )
|
if ( b->is_orig )
|
||||||
reass_orig->DataSent(network_time, orig_seq = b->seq,
|
reass_orig->DataSent(network_time, orig_seq = b->seq,
|
||||||
b->len, b->data, true);
|
b->len, b->data, tcp::TCP_Flags(), true);
|
||||||
else
|
else
|
||||||
reass_resp->DataSent(network_time, resp_seq = b->seq,
|
reass_resp->DataSent(network_time, resp_seq = b->seq,
|
||||||
b->len, b->data, true);
|
b->len, b->data, tcp::TCP_Flags(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// We also need to pass the current packet on.
|
// We also need to pass the current packet on.
|
||||||
|
@ -363,11 +368,11 @@ void PIA_TCP::ActivateAnalyzer(analyzer::Tag tag, const Rule* rule)
|
||||||
if ( current->is_orig )
|
if ( current->is_orig )
|
||||||
reass_orig->DataSent(network_time,
|
reass_orig->DataSent(network_time,
|
||||||
orig_seq = current->seq,
|
orig_seq = current->seq,
|
||||||
current->len, current->data, true);
|
current->len, current->data, analyzer::tcp::TCP_Flags(), true);
|
||||||
else
|
else
|
||||||
reass_resp->DataSent(network_time,
|
reass_resp->DataSent(network_time,
|
||||||
resp_seq = current->seq,
|
resp_seq = current->seq,
|
||||||
current->len, current->data, true);
|
current->len, current->data, analyzer::tcp::TCP_Flags(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
ClearBuffer(&pkt_buffer);
|
ClearBuffer(&pkt_buffer);
|
||||||
|
|
|
@ -946,23 +946,11 @@ void TCP_Analyzer::GeneratePacketEvent(
|
||||||
const u_char* data, int len, int caplen,
|
const u_char* data, int len, int caplen,
|
||||||
int is_orig, TCP_Flags flags)
|
int is_orig, TCP_Flags flags)
|
||||||
{
|
{
|
||||||
char tcp_flags[256];
|
|
||||||
int tcp_flag_len = 0;
|
|
||||||
|
|
||||||
if ( flags.SYN() ) tcp_flags[tcp_flag_len++] = 'S';
|
|
||||||
if ( flags.FIN() ) tcp_flags[tcp_flag_len++] = 'F';
|
|
||||||
if ( flags.RST() ) tcp_flags[tcp_flag_len++] = 'R';
|
|
||||||
if ( flags.ACK() ) tcp_flags[tcp_flag_len++] = 'A';
|
|
||||||
if ( flags.PUSH() ) tcp_flags[tcp_flag_len++] = 'P';
|
|
||||||
if ( flags.URG() ) tcp_flags[tcp_flag_len++] = 'U';
|
|
||||||
|
|
||||||
tcp_flags[tcp_flag_len] = '\0';
|
|
||||||
|
|
||||||
val_list* vl = new val_list();
|
val_list* vl = new val_list();
|
||||||
|
|
||||||
vl->append(BuildConnVal());
|
vl->append(BuildConnVal());
|
||||||
vl->append(new Val(is_orig, TYPE_BOOL));
|
vl->append(new Val(is_orig, TYPE_BOOL));
|
||||||
vl->append(new StringVal(tcp_flags));
|
vl->append(new StringVal(flags.AsString()));
|
||||||
vl->append(new Val(rel_seq, TYPE_COUNT));
|
vl->append(new Val(rel_seq, TYPE_COUNT));
|
||||||
vl->append(new Val(flags.ACK() ? rel_ack : 0, TYPE_COUNT));
|
vl->append(new Val(flags.ACK() ? rel_ack : 0, TYPE_COUNT));
|
||||||
vl->append(new Val(len, TYPE_COUNT));
|
vl->append(new Val(len, TYPE_COUNT));
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#include "PacketDumper.h"
|
#include "PacketDumper.h"
|
||||||
#include "IPAddr.h"
|
#include "IPAddr.h"
|
||||||
#include "TCP_Endpoint.h"
|
#include "TCP_Endpoint.h"
|
||||||
|
#include "TCP_Flags.h"
|
||||||
#include "Conn.h"
|
#include "Conn.h"
|
||||||
|
|
||||||
// We define two classes here:
|
// We define two classes here:
|
||||||
|
@ -23,21 +24,6 @@ class TCP_Endpoint;
|
||||||
class TCP_ApplicationAnalyzer;
|
class TCP_ApplicationAnalyzer;
|
||||||
class TCP_Reassembler;
|
class TCP_Reassembler;
|
||||||
|
|
||||||
class TCP_Flags {
|
|
||||||
public:
|
|
||||||
TCP_Flags(const struct tcphdr* tp) { flags = tp->th_flags; }
|
|
||||||
|
|
||||||
bool SYN() { return flags & TH_SYN; }
|
|
||||||
bool FIN() { return flags & TH_FIN; }
|
|
||||||
bool RST() { return flags & TH_RST; }
|
|
||||||
bool ACK() { return flags & TH_ACK; }
|
|
||||||
bool URG() { return flags & TH_URG; }
|
|
||||||
bool PUSH() { return flags & TH_PUSH; }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
u_char flags;
|
|
||||||
};
|
|
||||||
|
|
||||||
class TCP_Analyzer : public analyzer::TransportLayerAnalyzer {
|
class TCP_Analyzer : public analyzer::TransportLayerAnalyzer {
|
||||||
public:
|
public:
|
||||||
TCP_Analyzer(Connection* conn);
|
TCP_Analyzer(Connection* conn);
|
||||||
|
|
|
@ -204,7 +204,7 @@ int TCP_Endpoint::DataSent(double t, uint64 seq, int len, int caplen,
|
||||||
if ( contents_processor )
|
if ( contents_processor )
|
||||||
{
|
{
|
||||||
if ( caplen >= len )
|
if ( caplen >= len )
|
||||||
status = contents_processor->DataSent(t, seq, len, data);
|
status = contents_processor->DataSent(t, seq, len, data, TCP_Flags(tp));
|
||||||
else
|
else
|
||||||
TCP()->Weird("truncated_tcp_payload");
|
TCP()->Weird("truncated_tcp_payload");
|
||||||
}
|
}
|
||||||
|
|
|
@ -433,8 +433,13 @@ void TCP_Reassembler::Overlap(const u_char* b1, const u_char* b2, uint64 n)
|
||||||
{
|
{
|
||||||
BroString* b1_s = new BroString((const u_char*) b1, n, 0);
|
BroString* b1_s = new BroString((const u_char*) b1, n, 0);
|
||||||
BroString* b2_s = new BroString((const u_char*) b2, n, 0);
|
BroString* b2_s = new BroString((const u_char*) b2, n, 0);
|
||||||
tcp_analyzer->Event(rexmit_inconsistency,
|
|
||||||
new StringVal(b1_s), new StringVal(b2_s));
|
val_list* vl = new val_list(3);
|
||||||
|
vl->append(tcp_analyzer->BuildConnVal());
|
||||||
|
vl->append(new StringVal(b1_s));
|
||||||
|
vl->append(new StringVal(b2_s));
|
||||||
|
vl->append(new StringVal(flags.AsString()));
|
||||||
|
tcp_analyzer->ConnectionEvent(rexmit_inconsistency, vl);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -461,7 +466,7 @@ void TCP_Reassembler::Deliver(uint64 seq, int len, const u_char* data)
|
||||||
}
|
}
|
||||||
|
|
||||||
int TCP_Reassembler::DataSent(double t, uint64 seq, int len,
|
int TCP_Reassembler::DataSent(double t, uint64 seq, int len,
|
||||||
const u_char* data, bool replaying)
|
const u_char* data, TCP_Flags arg_flags, bool replaying)
|
||||||
{
|
{
|
||||||
uint64 ack = endp->ToRelativeSeqSpace(endp->AckSeq(), endp->AckWraps());
|
uint64 ack = endp->ToRelativeSeqSpace(endp->AckSeq(), endp->AckWraps());
|
||||||
uint64 upper_seq = seq + len;
|
uint64 upper_seq = seq + len;
|
||||||
|
@ -492,7 +497,9 @@ int TCP_Reassembler::DataSent(double t, uint64 seq, int len,
|
||||||
len -= amount_acked;
|
len -= amount_acked;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
flags = arg_flags;
|
||||||
NewBlock(t, seq, len, data);
|
NewBlock(t, seq, len, data);
|
||||||
|
flags = TCP_Flags();
|
||||||
|
|
||||||
if ( Endpoint()->NoDataAcked() && tcp_max_above_hole_without_any_acks &&
|
if ( Endpoint()->NoDataAcked() && tcp_max_above_hole_without_any_acks &&
|
||||||
NumUndeliveredBytes() > static_cast<uint64>(tcp_max_above_hole_without_any_acks) )
|
NumUndeliveredBytes() > static_cast<uint64>(tcp_max_above_hole_without_any_acks) )
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
#include "Reassem.h"
|
#include "Reassem.h"
|
||||||
#include "TCP_Endpoint.h"
|
#include "TCP_Endpoint.h"
|
||||||
|
#include "TCP_Flags.h"
|
||||||
|
|
||||||
class BroFile;
|
class BroFile;
|
||||||
class Connection;
|
class Connection;
|
||||||
|
@ -61,7 +62,7 @@ public:
|
||||||
void SkipToSeq(uint64 seq);
|
void SkipToSeq(uint64 seq);
|
||||||
|
|
||||||
int DataSent(double t, uint64 seq, int len, const u_char* data,
|
int DataSent(double t, uint64 seq, int len, const u_char* data,
|
||||||
bool replaying=true);
|
analyzer::tcp::TCP_Flags flags, bool replaying=true);
|
||||||
void AckReceived(uint64 seq);
|
void AckReceived(uint64 seq);
|
||||||
|
|
||||||
// Checks if we have delivered all contents that we can possibly
|
// Checks if we have delivered all contents that we can possibly
|
||||||
|
@ -110,6 +111,7 @@ private:
|
||||||
uint64 seq_to_skip;
|
uint64 seq_to_skip;
|
||||||
|
|
||||||
bool in_delivery;
|
bool in_delivery;
|
||||||
|
analyzer::tcp::TCP_Flags flags;
|
||||||
|
|
||||||
BroFile* record_contents_file; // file on which to reassemble contents
|
BroFile* record_contents_file; // file on which to reassemble contents
|
||||||
|
|
||||||
|
|
|
@ -305,8 +305,14 @@ event packet_contents%(c: connection, contents: string%);
|
||||||
##
|
##
|
||||||
## t2: The new payload.
|
## t2: The new payload.
|
||||||
##
|
##
|
||||||
|
## tcp_flags: A string with the TCP flags of the packet triggering the
|
||||||
|
## inconsistency. In the string, each character corresponds to one set flag,
|
||||||
|
## as follows: ``S`` -> SYN; ``F`` -> FIN; ``R`` -> RST; ``A`` -> ACK; ``P`` ->
|
||||||
|
## PUSH. This string will not always be set, only if the information is available;
|
||||||
|
## it's "best effort".
|
||||||
|
##
|
||||||
## .. bro:see:: tcp_rexmit tcp_contents
|
## .. bro:see:: tcp_rexmit tcp_contents
|
||||||
event rexmit_inconsistency%(c: connection, t1: string, t2: string%);
|
event rexmit_inconsistency%(c: connection, t1: string, t2: string, tcp_flags: string%);
|
||||||
|
|
||||||
## Generated when a TCP endpoint acknowledges payload that Bro never saw.
|
## Generated when a TCP endpoint acknowledges payload that Bro never saw.
|
||||||
##
|
##
|
||||||
|
|
|
@ -23,10 +23,10 @@ net_weird, truncated_IP
|
||||||
net_weird, truncated_IP
|
net_weird, truncated_IP
|
||||||
net_weird, truncated_IP
|
net_weird, truncated_IP
|
||||||
net_weird, truncated_IP
|
net_weird, truncated_IP
|
||||||
rexmit_inconsistency, [orig_h=63.193.213.194, orig_p=2564/tcp, resp_h=128.3.97.175, resp_p=80/tcp], nlkmlpjfjjnoomfnqmdqgrdsgpefslhjrdjghsshrmosrkosidknnieiggpmnggelfhlkflfqojpjrsmeqghklmjlkdskjollmensjiqosemknoehellhlsspjfjpddfgqkemghskqosrksmkpsdomfoghllfokilshsisgpjhjoosidirlnmespjhdogdidoemejrnjjrookfrmiqllllqhlqfgolfqssfjrhrjhgfkpdnigiilrmnespjspeqjfedjhrkisjdhoofqdfeqnmihrelmildkngirkqorjslhmglripdojfedjjngjnpikoliqhdipgpshenekqiphmrsqmemghklodqnqoeggfkdqngrfollhjmddjreeghdqflohgrhqhelqsmdghgihpifpnikrddpmdfejhrhgfdfdlepmmhlhrnrslepqgmkopmdfogpoljeepqoemisfeksdeddiplnkfjddjioqhojlnmlirehidipdhqlddssssgpgikieeldsmfrkidpldsngdkidkoshkrofnonrrehghlmgmqshkedgpkpgjjkoneigsfjdlgjsngepfkndqoefqmsssrgegspromqepdpdeglmmegjljlmljeeorhhfmrohjeregpfshqjsqkekrihjdpfdjflgspepqjrqfemsjffmjfkhejdkrokmgdrhojgmgjpldjeiphroeheipolfmshoglkfnllfnhlflhlpddjflekhiqilefjpfqepdrrdokkjiekmelkhdpjlqjdlnfjemqdrksirdnjlrhrdijgqjhdqlidpfdisgrmnlfnsdlishlpfkshhglpdiqhpgmhpjdrpednjljfsqknsiqpfeqhlphgqdphflglpmqfkkhdjeodkelinkfpmfedidhphldmqjqggrljlhriehqqemeimkjhoqnsrdgengmgjokpeiijgrseppeoiflngggomdfjkndpqedhgnkiqlodkpjfkqoifidjmrdhhmglledkomllhpehdfjfdspmklkjdnhkdgpgqephfdfdrfplmepoegsekmrnikknelnprdpslmfkhghhooknieksjjhdeelidikndedijqqhfmphdondndpehmfoqelqigdpgioeljhedhfoeqlinriemqjigerkphgepqmiiidqlhriqioimpglonlsgomeloipndiihqqfiekkeriokrsjlmsjqiehqsrqkhdjlddjrrllirqkidqiggdrjpjirssgqepnqmhigfsqlekiqdddllnsjmroiofkieqnghddpjnhdjkfloilheljofddrkherkrieeoijrlfghiikmhpfdhekdjloejlmpperkgrhomedpfOOOOOOOOOOOOOOOOOOOOOOOOOOOO, nlkmlpjfjjnoomfnqmdqgrdsgpefslhjrdjghsshrmosrkosidknnieiggpmnggelfhlkflfqojpjrsmeqghklmjlkdskjollmensjiqosemknoehellhlsspjfjpddfgqkemghskqosrksmkpsdomfoghllfokilshsisgpjhjoosidirlnmespjhdogdidoemejrnjjrookfrmiqllllqhlqfgolfqssfjrhrjhgfkpdnigiilrmnespjspeqjfedjhrkisjdhoofqdfeqnmihrelmildkngirkqorjslhmglripdojfedjjngjnpikoliqhdipgpshenekqiphmrsqmemghklodqnqoeggfkdqngrfollhjmddjreeghdqflohgrhqhelqsmdghgihpifpnikrddpmdfejhrhgfdfdlepmmhlhrnrslepqgmkopmdfogpoljeepqoemisfeksdeddiplnkfjddjioqhojlnmlirehidipdhqlddssssgpgikieeldsmfrkidpldsngdkidkoshkrofnonrrehghlmgmqshkedgpkpgjjkoneigsfjdlgjsngepfkndqoefqmsssrgegspromqepdpdeglmmegjljlmljeeorhhfmrohjeregpfshqjsqkekrihjdpfdjflgspepqjrqfemsjffmjfkhejdkrokmgdrhojgmgjpldjeiphroeheipolfmshoglkfnllfnhlflhlpddjflekhiqilefjpfqepdrrdokkjiekmelkhdpjlqjdlnfjemqdrksirdnjlrhrdijgqjhdqlidpfdisgrmnlfnsdlishlpfkshhglpdiqhpgmhpjdrpednjljfsqknsiqpfeqhlphgqdphflglpmqfkkhdjeodkelinkfpmfedidhphldmqjqggrljlhriehqqemeimkjhoqnsrdgengmgjokpeiijgrseppeoiflngggomdfjkndpqedhgnkiqlodkpjfkqoifidjmrdhhmglledkomllhpehdfjfdspmklkjdnhkdgpgqephfdfdrfplmepoegsekmrnikknelnprdpslmfkhghhooknieksjjhdeelidikndedijqqhfmphdondndpehmfoqelqigdpgioeljhedhfoeqlinriemqjigerkphgepqmiiidqlhriqioimpglonlsgomeloipndiihqqfiekkeriokrsjlmsjqiehqsrqkhdjlddjrrllirqkidqiggdrjpjirssgqepnqmhigfsqlekiqdddllnsjmroiofkieqnghddpjnhdjkfloilheljofddrkherkrieeoijrlfghiikmhpfdhekdjloejlmpperkgrhomedpfqkrodjdmrqfpiodgphidfliidlhd
|
rexmit_inconsistency, [orig_h=63.193.213.194, orig_p=2564/tcp, resp_h=128.3.97.175, resp_p=80/tcp], nlkmlpjfjjnoomfnqmdqgrdsgpefslhjrdjghsshrmosrkosidknnieiggpmnggelfhlkflfqojpjrsmeqghklmjlkdskjollmensjiqosemknoehellhlsspjfjpddfgqkemghskqosrksmkpsdomfoghllfokilshsisgpjhjoosidirlnmespjhdogdidoemejrnjjrookfrmiqllllqhlqfgolfqssfjrhrjhgfkpdnigiilrmnespjspeqjfedjhrkisjdhoofqdfeqnmihrelmildkngirkqorjslhmglripdojfedjjngjnpikoliqhdipgpshenekqiphmrsqmemghklodqnqoeggfkdqngrfollhjmddjreeghdqflohgrhqhelqsmdghgihpifpnikrddpmdfejhrhgfdfdlepmmhlhrnrslepqgmkopmdfogpoljeepqoemisfeksdeddiplnkfjddjioqhojlnmlirehidipdhqlddssssgpgikieeldsmfrkidpldsngdkidkoshkrofnonrrehghlmgmqshkedgpkpgjjkoneigsfjdlgjsngepfkndqoefqmsssrgegspromqepdpdeglmmegjljlmljeeorhhfmrohjeregpfshqjsqkekrihjdpfdjflgspepqjrqfemsjffmjfkhejdkrokmgdrhojgmgjpldjeiphroeheipolfmshoglkfnllfnhlflhlpddjflekhiqilefjpfqepdrrdokkjiekmelkhdpjlqjdlnfjemqdrksirdnjlrhrdijgqjhdqlidpfdisgrmnlfnsdlishlpfkshhglpdiqhpgmhpjdrpednjljfsqknsiqpfeqhlphgqdphflglpmqfkkhdjeodkelinkfpmfedidhphldmqjqggrljlhriehqqemeimkjhoqnsrdgengmgjokpeiijgrseppeoiflngggomdfjkndpqedhgnkiqlodkpjfkqoifidjmrdhhmglledkomllhpehdfjfdspmklkjdnhkdgpgqephfdfdrfplmepoegsekmrnikknelnprdpslmfkhghhooknieksjjhdeelidikndedijqqhfmphdondndpehmfoqelqigdpgioeljhedhfoeqlinriemqjigerkphgepqmiiidqlhriqioimpglonlsgomeloipndiihqqfiekkeriokrsjlmsjqiehqsrqkhdjlddjrrllirqkidqiggdrjpjirssgqepnqmhigfsqlekiqdddllnsjmroiofkieqnghddpjnhdjkfloilheljofddrkherkrieeoijrlfghiikmhpfdhekdjloejlmpperkgrhomedpfOOOOOOOOOOOOOOOOOOOOOOOOOOOO, nlkmlpjfjjnoomfnqmdqgrdsgpefslhjrdjghsshrmosrkosidknnieiggpmnggelfhlkflfqojpjrsmeqghklmjlkdskjollmensjiqosemknoehellhlsspjfjpddfgqkemghskqosrksmkpsdomfoghllfokilshsisgpjhjoosidirlnmespjhdogdidoemejrnjjrookfrmiqllllqhlqfgolfqssfjrhrjhgfkpdnigiilrmnespjspeqjfedjhrkisjdhoofqdfeqnmihrelmildkngirkqorjslhmglripdojfedjjngjnpikoliqhdipgpshenekqiphmrsqmemghklodqnqoeggfkdqngrfollhjmddjreeghdqflohgrhqhelqsmdghgihpifpnikrddpmdfejhrhgfdfdlepmmhlhrnrslepqgmkopmdfogpoljeepqoemisfeksdeddiplnkfjddjioqhojlnmlirehidipdhqlddssssgpgikieeldsmfrkidpldsngdkidkoshkrofnonrrehghlmgmqshkedgpkpgjjkoneigsfjdlgjsngepfkndqoefqmsssrgegspromqepdpdeglmmegjljlmljeeorhhfmrohjeregpfshqjsqkekrihjdpfdjflgspepqjrqfemsjffmjfkhejdkrokmgdrhojgmgjpldjeiphroeheipolfmshoglkfnllfnhlflhlpddjflekhiqilefjpfqepdrrdokkjiekmelkhdpjlqjdlnfjemqdrksirdnjlrhrdijgqjhdqlidpfdisgrmnlfnsdlishlpfkshhglpdiqhpgmhpjdrpednjljfsqknsiqpfeqhlphgqdphflglpmqfkkhdjeodkelinkfpmfedidhphldmqjqggrljlhriehqqemeimkjhoqnsrdgengmgjokpeiijgrseppeoiflngggomdfjkndpqedhgnkiqlodkpjfkqoifidjmrdhhmglledkomllhpehdfjfdspmklkjdnhkdgpgqephfdfdrfplmepoegsekmrnikknelnprdpslmfkhghhooknieksjjhdeelidikndedijqqhfmphdondndpehmfoqelqigdpgioeljhedhfoeqlinriemqjigerkphgepqmiiidqlhriqioimpglonlsgomeloipndiihqqfiekkeriokrsjlmsjqiehqsrqkhdjlddjrrllirqkidqiggdrjpjirssgqepnqmhigfsqlekiqdddllnsjmroiofkieqnghddpjnhdjkfloilheljofddrkherkrieeoijrlfghiikmhpfdhekdjloejlmpperkgrhomedpfqkrodjdmrqfpiodgphidfliidlhd, A
|
||||||
rexmit_inconsistency, [orig_h=63.193.213.194, orig_p=2564/tcp, resp_h=128.3.97.175, resp_p=80/tcp], dgphrodofqhq, orgmmpelofil
|
rexmit_inconsistency, [orig_h=63.193.213.194, orig_p=2564/tcp, resp_h=128.3.97.175, resp_p=80/tcp], dgphrodofqhq, orgmmpelofil, A
|
||||||
rexmit_inconsistency, [orig_h=63.193.213.194, orig_p=2564/tcp, resp_h=128.3.97.175, resp_p=80/tcp], lenhfdqhqfgs, dfpqssidkpdg
|
rexmit_inconsistency, [orig_h=63.193.213.194, orig_p=2564/tcp, resp_h=128.3.97.175, resp_p=80/tcp], lenhfdqhqfgs, dfpqssidkpdg, A
|
||||||
rexmit_inconsistency, [orig_h=63.193.213.194, orig_p=2564/tcp, resp_h=128.3.97.175, resp_p=80/tcp], nlkmlpjfjjnoomfnqmdqgrdsgpefslhjrdjghsshrmosrkosidknnieiggpmnggelfhlkflfqojpjrsmeqghklmjlkdskjollmensjiqosemknoehellhlsspjfjpddfgqkemghskqosrksmkpsdomfoghllfokilshsisgpjhjoosidirlnmespjhdogdidoemejrnjjrookfrmiqllllqhlqfgolfqssfjrhrjhgfkpdnigiilrmnespjspeqjfedjhrkisjdhoofqdfeqnmihrelmildkngirkqorjslhmglripdojfedjjngjnpikoliqhdipgpshenekqiphmrsqmemghklodqnqoeggfkdqngrfollhjmddjreeghdqflohgrhqhelqsmdghgihpifpnikrddpmdfejhrhgfdfdlepmmhlhrnrslepqgmkopmdfogpoljeepqoemisfeksdeddiplnkfjddjioqhojlnmlirehidipdhqlddssssgpgikieeldsmfrkidpldsngdkidkoshkrofnonrrehghlmgmqshkedgpkpgjjkoneigsfjdlgjsngepfkndqoefqmsssrgegspromqepdpdeglmmegjljlmljeeorhhfmrohjeregpfshqjsqkekrihjdpfdjflgspepqjrqfemsjffmjfkhejdkrokmgdrhojgmgjpldjeiphroeheipolfmshoglkfnllfnhlflhlpddjflekhiqilefjpfqepdrrdokkjiekmelkhdpjlqjdlnfjemqdrksirdnjlrhrdijgqjhdqlidpfdisgrmnlfnsdlishlpfkshhglpdiqhpgmhpjdrpednjljfsqknsiqpfeqhlphgqdphflglpmqfkkhdjeodkelinkfpmfedidhphldmqjqggrljlhriehqqemeimkjhoqnsrdgengmgjokpeiijgrseppeoiflngggomdfjkndpqedhgnkiqlodkpjfkqoifidjmrdhhmglledkomllhpehdfjfdspmklkjdnhkdgpgqephfdfdrfplmepoegsekmrnikknelnprdpslmfkhghhooknieksjjhdeelidikndedijqqhfmphdondndpehmfoqelqigdpgioeljhedhfoeqlinriemqjigerkphgepqmiiidqlhriqioimpglonlsgomeloipndiihqqfiekkeriokrsjlmsjqiehqsrqkhdjlddjrrllirqkidqiggdrjpjirssgqepnqmhigfsqlekiqdddllnsjmroiofkieqnghddpjnhdjkfloilheljofddrkherkrieeoijrlfghiikmhpfdhekdjloejlmpperkgrhomedpfOOOOOOOOOOOOOOOOOOOOOOOOOOOO, nlkmlpjfjjnoomfnqmdqgrdsgpefslhjrdjghsshrmosrkosidknnieiggpmnggelfhlkflfqojpjrsmeqghklmjlkdskjollmensjiqosemknoehellhlsspjfjpddfgqkemghskqosrksmkpsdomfoghllfokilshsisgpjhjoosidirlnmespjhdogdidoemejrnjjrookfrmiqllllqhlqfgolfqssfjrhrjhgfkpdnigiilrmnespjspeqjfedjhrkisjdhoofqdfeqnmihrelmildkngirkqorjslhmglripdojfedjjngjnpikoliqhdipgpshenekqiphmrsqmemghklodqnqoeggfkdqngrfollhjmddjreeghdqflohgrhqhelqsmdghgihpifpnikrddpmdfejhrhgfdfdlepmmhlhrnrslepqgmkopmdfogpoljeepqoemisfeksdeddiplnkfjddjioqhojlnmlirehidipdhqlddssssgpgikieeldsmfrkidpldsngdkidkoshkrofnonrrehghlmgmqshkedgpkpgjjkoneigsfjdlgjsngepfkndqoefqmsssrgegspromqepdpdeglmmegjljlmljeeorhhfmrohjeregpfshqjsqkekrihjdpfdjflgspepqjrqfemsjffmjfkhejdkrokmgdrhojgmgjpldjeiphroeheipolfmshoglkfnllfnhlflhlpddjflekhiqilefjpfqepdrrdokkjiekmelkhdpjlqjdlnfjemqdrksirdnjlrhrdijgqjhdqlidpfdisgrmnlfnsdlishlpfkshhglpdiqhpgmhpjdrpednjljfsqknsiqpfeqhlphgqdphflglpmqfkkhdjeodkelinkfpmfedidhphldmqjqggrljlhriehqqemeimkjhoqnsrdgengmgjokpeiijgrseppeoiflngggomdfjkndpqedhgnkiqlodkpjfkqoifidjmrdhhmglledkomllhpehdfjfdspmklkjdnhkdgpgqephfdfdrfplmepoegsekmrnikknelnprdpslmfkhghhooknieksjjhdeelidikndedijqqhfmphdondndpehmfoqelqigdpgioeljhedhfoeqlinriemqjigerkphgepqmiiidqlhriqioimpglonlsgomeloipndiihqqfiekkeriokrsjlmsjqiehqsrqkhdjlddjrrllirqkidqiggdrjpjirssgqepnqmhigfsqlekiqdddllnsjmroiofkieqnghddpjnhdjkfloilheljofddrkherkrieeoijrlfghiikmhpfdhekdjloejlmpperkgrhomedpfqkrodjdmrqfpiodgphidfliislrr
|
rexmit_inconsistency, [orig_h=63.193.213.194, orig_p=2564/tcp, resp_h=128.3.97.175, resp_p=80/tcp], nlkmlpjfjjnoomfnqmdqgrdsgpefslhjrdjghsshrmosrkosidknnieiggpmnggelfhlkflfqojpjrsmeqghklmjlkdskjollmensjiqosemknoehellhlsspjfjpddfgqkemghskqosrksmkpsdomfoghllfokilshsisgpjhjoosidirlnmespjhdogdidoemejrnjjrookfrmiqllllqhlqfgolfqssfjrhrjhgfkpdnigiilrmnespjspeqjfedjhrkisjdhoofqdfeqnmihrelmildkngirkqorjslhmglripdojfedjjngjnpikoliqhdipgpshenekqiphmrsqmemghklodqnqoeggfkdqngrfollhjmddjreeghdqflohgrhqhelqsmdghgihpifpnikrddpmdfejhrhgfdfdlepmmhlhrnrslepqgmkopmdfogpoljeepqoemisfeksdeddiplnkfjddjioqhojlnmlirehidipdhqlddssssgpgikieeldsmfrkidpldsngdkidkoshkrofnonrrehghlmgmqshkedgpkpgjjkoneigsfjdlgjsngepfkndqoefqmsssrgegspromqepdpdeglmmegjljlmljeeorhhfmrohjeregpfshqjsqkekrihjdpfdjflgspepqjrqfemsjffmjfkhejdkrokmgdrhojgmgjpldjeiphroeheipolfmshoglkfnllfnhlflhlpddjflekhiqilefjpfqepdrrdokkjiekmelkhdpjlqjdlnfjemqdrksirdnjlrhrdijgqjhdqlidpfdisgrmnlfnsdlishlpfkshhglpdiqhpgmhpjdrpednjljfsqknsiqpfeqhlphgqdphflglpmqfkkhdjeodkelinkfpmfedidhphldmqjqggrljlhriehqqemeimkjhoqnsrdgengmgjokpeiijgrseppeoiflngggomdfjkndpqedhgnkiqlodkpjfkqoifidjmrdhhmglledkomllhpehdfjfdspmklkjdnhkdgpgqephfdfdrfplmepoegsekmrnikknelnprdpslmfkhghhooknieksjjhdeelidikndedijqqhfmphdondndpehmfoqelqigdpgioeljhedhfoeqlinriemqjigerkphgepqmiiidqlhriqioimpglonlsgomeloipndiihqqfiekkeriokrsjlmsjqiehqsrqkhdjlddjrrllirqkidqiggdrjpjirssgqepnqmhigfsqlekiqdddllnsjmroiofkieqnghddpjnhdjkfloilheljofddrkherkrieeoijrlfghiikmhpfdhekdjloejlmpperkgrhomedpfOOOOOOOOOOOOOOOOOOOOOOOOOOOO, nlkmlpjfjjnoomfnqmdqgrdsgpefslhjrdjghsshrmosrkosidknnieiggpmnggelfhlkflfqojpjrsmeqghklmjlkdskjollmensjiqosemknoehellhlsspjfjpddfgqkemghskqosrksmkpsdomfoghllfokilshsisgpjhjoosidirlnmespjhdogdidoemejrnjjrookfrmiqllllqhlqfgolfqssfjrhrjhgfkpdnigiilrmnespjspeqjfedjhrkisjdhoofqdfeqnmihrelmildkngirkqorjslhmglripdojfedjjngjnpikoliqhdipgpshenekqiphmrsqmemghklodqnqoeggfkdqngrfollhjmddjreeghdqflohgrhqhelqsmdghgihpifpnikrddpmdfejhrhgfdfdlepmmhlhrnrslepqgmkopmdfogpoljeepqoemisfeksdeddiplnkfjddjioqhojlnmlirehidipdhqlddssssgpgikieeldsmfrkidpldsngdkidkoshkrofnonrrehghlmgmqshkedgpkpgjjkoneigsfjdlgjsngepfkndqoefqmsssrgegspromqepdpdeglmmegjljlmljeeorhhfmrohjeregpfshqjsqkekrihjdpfdjflgspepqjrqfemsjffmjfkhejdkrokmgdrhojgmgjpldjeiphroeheipolfmshoglkfnllfnhlflhlpddjflekhiqilefjpfqepdrrdokkjiekmelkhdpjlqjdlnfjemqdrksirdnjlrhrdijgqjhdqlidpfdisgrmnlfnsdlishlpfkshhglpdiqhpgmhpjdrpednjljfsqknsiqpfeqhlphgqdphflglpmqfkkhdjeodkelinkfpmfedidhphldmqjqggrljlhriehqqemeimkjhoqnsrdgengmgjokpeiijgrseppeoiflngggomdfjkndpqedhgnkiqlodkpjfkqoifidjmrdhhmglledkomllhpehdfjfdspmklkjdnhkdgpgqephfdfdrfplmepoegsekmrnikknelnprdpslmfkhghhooknieksjjhdeelidikndedijqqhfmphdondndpehmfoqelqigdpgioeljhedhfoeqlinriemqjigerkphgepqmiiidqlhriqioimpglonlsgomeloipndiihqqfiekkeriokrsjlmsjqiehqsrqkhdjlddjrrllirqkidqiggdrjpjirssgqepnqmhigfsqlekiqdddllnsjmroiofkieqnghddpjnhdjkfloilheljofddrkherkrieeoijrlfghiikmhpfdhekdjloejlmpperkgrhomedpfqkrodjdmrqfpiodgphidfliislrr, A
|
||||||
rexmit_inconsistency, [orig_h=63.193.213.194, orig_p=2564/tcp, resp_h=128.3.97.175, resp_p=80/tcp], iokgedlsdkjkiefgmeqkfjoh, ggdeolssksemrhedoledddml
|
rexmit_inconsistency, [orig_h=63.193.213.194, orig_p=2564/tcp, resp_h=128.3.97.175, resp_p=80/tcp], iokgedlsdkjkiefgmeqkfjoh, ggdeolssksemrhedoledddml, A
|
||||||
net_weird, truncated_IP
|
net_weird, truncated_IP
|
||||||
rexmit_inconsistency, [orig_h=63.193.213.194, orig_p=2564/tcp, resp_h=128.3.97.175, resp_p=80/tcp], OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO HTTP/1.1\x0d\x0aHost: 127.0.0.1\x0d\x0aContent-Type: text/xml\x0d\x0aContent-length: 1\x0d\x0a\x0d\x0aO<?xml version="1.0"?>\x0d\x0a<g:searchrequest xmlns:g=, OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO HTTP/1.1\x0d\x0aHost: 127.0.0.1\x0d\x0aContent-Type: text/xml\x0d\x0aContent-length: 1\x0d\x0a\x0d\x0aO<?xml version="1.0"?igplqgeqsonkllfshdjplhjspmde
|
rexmit_inconsistency, [orig_h=63.193.213.194, orig_p=2564/tcp, resp_h=128.3.97.175, resp_p=80/tcp], OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO HTTP/1.1\x0d\x0aHost: 127.0.0.1\x0d\x0aContent-Type: text/xml\x0d\x0aContent-length: 1\x0d\x0a\x0d\x0aO<?xml version="1.0"?>\x0d\x0a<g:searchrequest xmlns:g=, OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO HTTP/1.1\x0d\x0aHost: 127.0.0.1\x0d\x0aContent-Type: text/xml\x0d\x0aContent-length: 1\x0d\x0a\x0d\x0aO<?xml version="1.0"?igplqgeqsonkllfshdjplhjspmde, AP
|
||||||
|
|
|
@ -2,3 +2,4 @@
|
||||||
1429652006.683290 c: [orig_h=178.200.100.200, orig_p=39976/tcp, resp_h=96.126.98.124, resp_p=80/tcp]
|
1429652006.683290 c: [orig_h=178.200.100.200, orig_p=39976/tcp, resp_h=96.126.98.124, resp_p=80/tcp]
|
||||||
1429652006.683290 t1: HTTP/1.1 200 OK\x0d\x0aContent-Length: 5\x0d\x0a\x0d\x0aBANG!
|
1429652006.683290 t1: HTTP/1.1 200 OK\x0d\x0aContent-Length: 5\x0d\x0a\x0d\x0aBANG!
|
||||||
1429652006.683290 t2: HTTP/1.1 200 OK\x0d\x0aServer: nginx/1.4.4\x0d\x0aDate:
|
1429652006.683290 t2: HTTP/1.1 200 OK\x0d\x0aServer: nginx/1.4.4\x0d\x0aDate:
|
||||||
|
1429652006.683290 tcp_flags: AP
|
||||||
|
|
|
@ -20,7 +20,7 @@ event net_weird(name: string)
|
||||||
print "net_weird", name;
|
print "net_weird", name;
|
||||||
}
|
}
|
||||||
|
|
||||||
event rexmit_inconsistency(c: connection, t1: string, t2: string)
|
event rexmit_inconsistency(c: connection, t1: string, t2: string, tcp_flags: string)
|
||||||
{
|
{
|
||||||
print "rexmit_inconsistency", c$id, t1, t2 ;
|
print "rexmit_inconsistency", c$id, t1, t2, tcp_flags;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,10 +3,11 @@
|
||||||
|
|
||||||
# Quantum Insert like attack, overlapping TCP packet with different content
|
# Quantum Insert like attack, overlapping TCP packet with different content
|
||||||
redef tcp_max_old_segments = 10;
|
redef tcp_max_old_segments = 10;
|
||||||
event rexmit_inconsistency(c: connection, t1: string, t2: string)
|
event rexmit_inconsistency(c: connection, t1: string, t2: string, tcp_flags: string)
|
||||||
{
|
{
|
||||||
print "----- rexmit_inconsistency -----";
|
print "----- rexmit_inconsistency -----";
|
||||||
print fmt("%.6f c: %s", network_time(), c$id);
|
print fmt("%.6f c: %s", network_time(), c$id);
|
||||||
print fmt("%.6f t1: %s", network_time(), t1);
|
print fmt("%.6f t1: %s", network_time(), t1);
|
||||||
print fmt("%.6f t2: %s", network_time(), t2);
|
print fmt("%.6f t2: %s", network_time(), t2);
|
||||||
|
print fmt("%.6f tcp_flags: %s", network_time(), tcp_flags);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue