[28817] in bugtraq

home help back first fref pref prev next nref lref last post

Re: Preventing /*exploitation with*/ rebasing

daemon@ATHENA.MIT.EDU (dullien@gmx.de)
Fri Feb 7 11:38:56 2003

Date: Fri, 7 Feb 2003 20:57:18 +0100
From: dullien@gmx.de
Reply-To: dullien@gmx.de
Message-ID: <13318289468.20030207205718@gmx.de>
To: "Riley Hassell" <rhassell@eeye.com>
In-Reply-To: <000901c2cd80$f8dac4f0$6401a8c0@CX000000D>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hey Riley, all,

RH> Research AV/VX trends from the late 80's and early 90's.

First off, thanks for this line. Reading some old VX magazines could
do some good here. The fact that most shellcodes still use hardcoded
addresses to retrieve GetProcAddress/GetModuleHandle should make
everyone think -- VLAD Boza (the first PE infector ever) did the same,
and was thus not very successful. VX folks abandoned the concept of
hardcoding offsets for KERNEL32 in about 1996-97. Ahwell. It's just
5-6 years. And it's not like you have to have clever ideas yourself,
it's all in easy-to-digest tutorial format.

Thanks for addressing the bogus idea of hooking GetProcAddress(),
too. Most serious win32 shellcodes do not use it anymore but do their
own PE parsing anyhow, so this would be (aside from being easily
bypassed otherwise) completely ineffective. User-mode policy
enforcement (e.g. doing policy enforcement on the same privilege level
as the malicious code) is bound to fail.

Concerning information on TIB and PEB: If you're too lazy to learn
russian/polish, you might consider taking (a) the wine header files
(which attempt to document parts of these structures) and (b) a
debugger and go spellunking yourself.
Oh, and MS does provide some limited information:
http://msdn.microsoft.com/msdnmag/issues/02/08/EscapefromDLLHell/default.aspx

Cheers,
dullien@gmx.de


home help back first fref pref prev next nref lref last post