Flag: Tornado! Hurricane!

Blogs >> tnagareshwar's Blog

Created: Friday, December 24 2010 02:16.57 CST Modified: Friday, December 24 2010 02:18.43 CST
Printer Friendly ...
Using NtCreateThreadEx for Remote Thread Execution in System Process for Vista & Windows7
Author: tnagareshwar # Views: 51170

Some times back I wrote article on using lesser known method, NTCreateThreadEx for remote thread execution. This is better alternative compared to CreateRemoteThread especially for Vista & Windows 7. As you may aware CreateRemoteThread was the popular method used for DLL Injection.

Here are some of the highlights of this technique

* Major advantage is that it can work across session boundaries while CreateRemoteThread cannot.

* User need to have sufficient privileges to perform tasks such as DLL injection using this method.

* It is UNDOCUMENTED-  there is a risk but it is worth it.

This article explains everything you need to know about NtCreateThreadEx with complete code example.

Click on the below link to read the full article,

Remote Thread Execution in System Process using NtCreateThreadEx for Vista & Windows7


.



Blog Comments
Genius Posted: Friday, December 24 2010 04:46.23 CST
Informative, thanks.

skiert Posted: Friday, December 24 2010 06:14.07 CST
I read your article some time ago, but there is a problem.
You still have to open a handle to the Process and OpenProcess() fails big time on any Session0 Process, as far as I can see..
If you cannot open a Handle to the Process, you cannot use the NtCreateThreadEx() API.. So it wouldnt work!?

tnagareshwar Posted: Monday, December 27 2010 12:09.26 CST
@Genius Thanks

@skiert

You need to have right privilege else everything will fail. This method makes it better over CreateRemoteThread as it cannot perform across the sessions even though you have privilege.

Also you need to acquire the SeDebugPrivilege before you begin this operation.


EliCZ Posted: Monday, December 27 2010 15:02.49 CST
RtlCreateUserThread

palaniyappan Posted: Saturday, January 8 2011 06:40.02 CST
@skiert
To debug and  access foreign process memory your process must have SeDebugPrivilege.
The ready made code for privilege escalation is available @

http://support.microsoft.com/kb/131065



Add New Comment
Comment:









There are 31,310 total registered users.


Recently Created Topics
[help] Unpacking VMP...
Mar/12
Reverse Engineering ...
Jul/06
hi!
Jul/01
let 'IDAPython' impo...
Sep/24
set 'IDAPython' as t...
Sep/24
GuessType return une...
Sep/20
About retrieving the...
Sep/07
How to find specific...
Aug/15
How to get data depe...
Jul/07
Identify RVA data in...
May/06


Recent Forum Posts
Finding the procedur...
rolEYder
Question about debbu...
rolEYder
Identify RVA data in...
sohlow
let 'IDAPython' impo...
sohlow
How to find specific...
hackgreti
Problem with ollydbg
sh3dow
How can I write olly...
sh3dow
New LoadMAP plugin v...
mefisto...
Intel pin in loaded ...
djnemo
OOP_RE tool available?
Bl4ckm4n


Recent Blog Entries
halsten
Mar/14
Breaking IonCUBE VM

oleavr
Oct/24
Anatomy of a code tracer

hasherezade
Sep/24
IAT Patcher - new tool for ...

oleavr
Aug/27
CryptoShark: code tracer ba...

oleavr
Jun/25
Build a debugger in 5 minutes

More ...


Recent Blog Comments
nieo on:
Mar/22
IAT Patcher - new tool for ...

djnemo on:
Nov/17
Kernel debugger vs user mod...

acel on:
Nov/14
Kernel debugger vs user mod...

pedram on:
Dec/21
frida.github.io: scriptable...

capadleman on:
Jun/19
Using NtCreateThreadEx for ...

More ...


Imagery
SoySauce Blueprint
Jun 6, 2008

[+] expand

View Gallery (11) / Submit