Full Disclosure mailing list archives

Re: Fun with event logs (semi-offtopic)


From: Tim <tim-security () sentinelchicken org>
Date: Thu, 21 Dec 2006 10:41:11 -0500



There  is  interesting  thing  with  event  logging on Windows. The only
security  aspect  of  it  is  event log record tampering and performance
degradation,  but  it may become sensitive is some 3rd party software is
used for automated event log analysis.

Log tampering is a big concern, since it is trivial to change the
meaning of logs without touching the .evt files themselves.

However, there are other security concerns, at least when it comes to
the event viewer.  It downloads DLLs from remote systems when viewing
remote logs, parses the message resources and uses them to determine the
meaning of remote logs.  Anyone played with fuzzing the PE file format?


The   problem   is   a  kind  of  "Format  string"  vulnerability  where
user-supplied  input  is  used  for  event log record. For ReportEvent()
function  %1,  %2,  etc  have  a  special  meaning and are replaced with
corresponding  string  from  lpStrings.  
It looks more like a variable replacement (like $0 $1 ... in bash shell) 
than a format string issue to me.
And it seems indeed to be a relevant information disclosure bug.

I have studied the FormatMessage() interface in my attempt to interpret
event logs[1], but I had no idea that the "%n" elements were replaced
recursively.  That could be significant, since format strings *can* be
included as a modifier for those elements.  See [2] for more details.

3APA3A, have you tried to see if elements like "%n!FORMAT!" used
recursively will invoke the wsprintf()-like behavior??

cheers,
tim


[1] http://projects.sentinelchicken.org/grokevt/

[2] http://msdn.microsoft.com/library/en-us/debug/base/formatmessage.asp

_______________________________________________
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/


Current thread: