<<< Date Index >>>     <<< Thread Index >>>

Fun with event logs (semi-offtopic)



Dear full-disclosure@xxxxxxxxxxxxxxxxx,

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.

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.  The problem is this can be done
recursively.  That is, %2 argument can include itself. This fact doesn't
lead  to  any  buffer  overflow,  but  you  can  fill entire buffer with
relatively small argument.

Most  services  do  not escape any user-supplied input then constructing
log  event.  You  can  see very interesting event log entries if you try
something like:

net send SOMEHOST %2

or

net use \\SOMEHOST\IPC$ /user:%1%2%3


-- 
http://www.security.nnov.ru
         /\_/\
        { , . }     |\
+--oQQo->{ ^ }<-----+ \
|  ZARAZA  U  3APA3A   } You know my name - look up my number (The Beatles)
+-------------o66o--+ /
                    |/