Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: cobein en 4 Octubre 2008, 11:43 am



Título: Enviando e-mail con VB6
Publicado por: cobein en 4 Octubre 2008, 11:43 am
Bueno inspirado por el aporte de ErMoja me tome la molestia de hacer esto. Espero que les guste.

http://foro.elhacker.net/programacion_vb/tutorial_enviando_email_con_vb6-t230043.0.html

Código:
'---------------------------------------------------------------------------------------
' Module      : mInternetOpenAlter
' DateTime    : 03/10/2008 23:11
' Author      : Cobein
' Mail        : cobein27@hotmail.com
' WebPage     : http://www.advancevb.com.ar
' Member of   : http://hackhound.org/
' Purpose     : Do an URL request, usefull to send information.
' Usage       : At your own risk
' Requirements: None
' Distribution: You can freely use this code in your own
'               applications, but you may not reproduce
'               or publish this code on any web site,
'               online service, or distribute as source
'               on any media without express permission.
'
' Reference   : Inspired by an article from ErMoja
'
' History     : 03/10/2008 First Cut....................................................
'---------------------------------------------------------------------------------------
'
'// Sample PHP
'<?php
'$val = $_GET['value'];
'mail ('myemail@hotmail.com', 'Title', $val);
?>
'
'// Sample Call
'Private Sub Form_Load()
'    InternetOpenAlter "http://www.myserver.com.ar/mailme.php?value=Test"
'End Sub
'---------------------------------------------------------------------------------------
Option Explicit

Private Declare Sub RtlMoveMemory Lib "kernel32" (pDst As Any, pSrc As Any, ByVal dlen As Long)
Private Declare Function CallWindowProcA Lib "user32" (ByVal adr As Long, ByVal p1 As Long, ByVal p2 As Long, ByVal p3 As Long, ByVal p4 As Long) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function LoadLibraryA Lib "kernel32" (ByVal lpLibFileName As String) As Long

Public Function InternetOpenAlter(ByVal sUrl As String) As Boolean
    Dim lLib        As Long
    Dim lhConn      As Long
    Dim lhFile      As Long
    Dim bvASM(255)  As Byte
    Dim vItem       As Variant
    Dim lPos        As Long
    Dim lPtr        As Long
    Dim lMod        As Long
       
    For Each vItem In Array( _
       &H58, &H59, &H59, &H59, &H59, &H50, &H68, &H0, &H0, &H0, &H0, &H68, &H0, &H0, &H0, &H0, _
       &H68, &H0, &H0, &H0, &H0, &H68, &H1, &H0, &H0, &H0, &H68, &H0, &H0, &H0, &H0, &HE8, _
       &H0, &H0, &H0, &H0, &HC3, &H58, &H59, &H59, &H59, &H59, &H50, &H68, &H0, &H0, &H0, &H0, _
       &H68, &H0, &H0, &H0, &H80, &H68, &H0, &H0, &H0, &H0, &H68, &H0, &H0, &H0, &H0, &H68, _
       &H0, &H0, &H0, &H0, &H68, &H0, &H0, &H0, &H0, &HE8, &H0, &H0, &H0, &H0, &HC3, &H58, _
       &H59, &H59, &H59, &H59, &H50, &H68, &H0, &H0, &H0, &H0, &HE8, &H0, &H0, &H0, &H0, &HC3, _
       &H58, &H59, &H59, &H59, &H59, &H50, &H68, &H0, &H0, &H0, &H0, &HE8, &H0, &H0, &H0, &H0, &HC3)
        bvASM(lPos) = vItem: lPos = lPos + 1
    Next
   
    lPtr = VarPtr(bvASM(0))

    lLib = LoadLibraryA("wininet")
    lMod = GetProcAddress(lLib, "InternetOpenW")
    RtlMoveMemory ByVal lPtr + 32, lMod - lPtr - 36, &H4
    lMod = GetProcAddress(lLib, "InternetOpenUrlW")
    RtlMoveMemory ByVal lPtr + 74, lMod - lPtr - 78, &H4
    lMod = GetProcAddress(lLib, "InternetCloseHandle")
    RtlMoveMemory ByVal lPtr + 91, lMod - lPtr - 95, &H4
    RtlMoveMemory ByVal lPtr + 108, lMod - lPtr - 112, &H4
   
    lhConn = CallWindowProcA(VarPtr(bvASM(0)), 0, 0, 0, 0)
    If Not lhConn = 0 Then
        RtlMoveMemory ByVal lPtr + 69, lhConn, &H4
        RtlMoveMemory ByVal lPtr + 64, StrPtr(sUrl), &H4
        lhFile = CallWindowProcA(VarPtr(bvASM(37)), 0, 0, 0, 0)
        If Not lhFile = 0 Then
            RtlMoveMemory ByVal lPtr + 86, lhFile, &H4
            Call CallWindowProcA(VarPtr(bvASM(79)), 0, 0, 0, 0)
            InternetOpenAlter = True
        End If
        RtlMoveMemory ByVal lPtr + 103, lhConn, &H4
        Call CallWindowProcA(VarPtr(bvASM(96)), 0, 0, 0, 0)
    End If
   
End Function


Título: Re: Enviando e-mail con VB6
Publicado por: Karcrack en 4 Octubre 2008, 14:06 pm
Muy bueno, Cobein, como siempre :D. Lo vi antes en HackHound :).

A ver si consigo hacer una DLL con esta funcion.(similar a la que hiciste con lo del FTP)

Saludos :D


Título: Re: Enviando e-mail con VB6
Publicado por: cobein en 4 Octubre 2008, 23:26 pm
Gracias, mira que la libreria del FTP es de inyeccion, se puede hacer esto mismo ahi sin problemas pero vas a tener que hacer unos cuantos cambios importantes seguramente, por ejemplo reemplazar el byte array por memoria y punteros (HeapAlloc etc).


Título: Re: Enviando e-mail con VB6
Publicado por: Karcrack en 5 Octubre 2008, 16:36 pm
Gracias, mira que la libreria del FTP es de inyeccion, se puede hacer esto mismo ahi sin problemas pero vas a tener que hacer unos cuantos cambios importantes seguramente, por ejemplo reemplazar el byte array por memoria y punteros (HeapAlloc etc).
Vere lo que puedo hacer, si consigo algo lo mas seguro es que lo postee :rolleyes: :xD

Saludos :D


Título: Re: Enviando e-mail con VB6
Publicado por: el_c0c0 en 5 Octubre 2008, 17:32 pm
Esta bueno cobein, para boludear si podes, podes poner el codigo ASM que representa todo eso? para entender un poco mas como es la movida del ASM..

en fin, funciona lindo.. saludos!


Título: Re: Enviando e-mail con VB6
Publicado por: cobein en 5 Octubre 2008, 23:47 pm
El codigo no es nada mas ni nada menos que 4 callapibyname, la diferencia es que las constantes y valores ya estan incluidos en el codigo y lo unico que se parcha son las apis y algunas variables, estaba terminando una herramienta para crear el codigo automagicamente, cuando este lista la posteo.


Título: Re: Enviando e-mail con VB6
Publicado por: Karcrack en 13 Octubre 2008, 18:19 pm
Bueno, lo he intentado, pero no he podido... la verdad, esto de las inyecciones.. :-[ :xD

Bueno, a ver si tienes tiempo y sigues el Tutorial de tu Blog... el de inyecciones...  :D, que falta me hace! xD

Saludos :D

PD: Tienes un poco desactualizado el blog no?