2015-03-10 5 views
0

Я пишу пользовательские правила для следующих эксплуатируют: http://www.exploit-db.com/exploits/36100/Snort правило не предупредил войти

Я побежал эксплуатируют, и пакет я пишу правило вокруг можно увидеть здесь: http://txt.do/cxgb

Это текущее правило, я использую:

alert tcp any any -> any any (msg:"X360 VideoPlayer ActiveX Control Buffer Overflow"; flow:to_server,established; content:"\x64\xa1\x18\x00\x00\x00\x83\xc0\x08\x8b\x20\x81\xc4\x30\xf8\xff\xff"; fast_pattern; http_client_body; metadata: service http; sid:1000007; rev:1;) 

Однако, Snort не в состоянии предупредить об этом. Кто-нибудь может понять, почему? Заранее спасибо.

+0

Я знаю, что это помогает, когда номера портов указаны, однако, для этого конкретного использования, номер порта, кажется, меняется каждый раз, поэтому я не могу ввести номер порта в конфигурация препроцессора http для портов – BuffetOverFlow

ответ

0

Как вы упомянули в своем комментарии, поскольку у вас нет указанного порта, snort не будет обрабатывать трафик как http и, следовательно, не будет заполнять HTTP-буферы. Поскольку это так, вам нужно удалить модификатор http-контента, потому что это никогда не будет соответствовать. Вытащите «http_client_body».

Чтобы соответствовать буквальный символ \ вам нужно, чтобы избежать его с \, например «\\ x64»

Кроме того, это содержание происходит от сервера к клиенту (это служит страницу HTTP). Вам нужно изменить поток на «flow: to_client, установлено»

+0

Я также заметил, что snort не нравится \ в качестве части содержимого, верно? Если это так, если я должен был взять все содержимое из этого содержимого, это все равно будет соответствовать? – BuffetOverFlow

+0

На самом деле, я думаю, вам нужно поставить дополнительный \ перед всеми \, потому что это escape-символ, поэтому, чтобы получить литерал \ вам нужно его избежать. – johnjg12

+0

ok спасибо, что попробуйте, что – BuffetOverFlow

Смежные вопросы