Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Novlucker en 5 Mayo 2009, 18:19 pm



Título: filnspect [VBS]
Publicado por: Novlucker en 5 Mayo 2009, 18:19 pm
Buenas ...

Bueno, hace un tiempo y tras una consulta en el sub de seguridad se me ocurrió crear un pequeño script para consultar de manera automática sobre el origen de determinados archivos/librerías, para lo cual hacía uso de la web :http://www.fileinspect.com/, la cual esta en beta para ya muestra tener una buena bbdd :P

El caso es que en ese momento el script fue resultado de algunos minutos de aburrimiento, pero luego de analizarlo un poco más detenidamente me pareció que me podía resultar útil, así que lo he ido modificando en mi beneficio :D y lo comparto a continuación :P

Código
  1. 'by Novlucker
  2. Set objxmlHTTP = CreateObject("Microsoft.XMLHTTP")
  3. Set objfso = Createobject("Scripting.filesystemobject")
  4.  
  5. If wscript.arguments.count <> 2 then
  6. Ayuda()
  7. End if
  8.  
  9. Format = Ucase(wscript.arguments(0))
  10.  
  11. Select case Format
  12. case "/F"
  13. Set FromFolder = objfso.getfolder(wscript.arguments(1))
  14. Set FileList = FromFolder.files
  15. If FileList.count = 0 then
  16. Msgbox "La carpeta seleccionada no contiene ningún archivo", 64, "Informe"
  17. wscript.quit
  18. End if
  19. case "/A"
  20. If objfso.fileexists(wscript.arguments(1)) then
  21. Set FromFile = objfso.opentextfile(wscript.arguments(1),1)
  22. FileList = Split(FromFile.readall,vbnewline)
  23. FromFile.close
  24. Else
  25. Msgbox "El archivo seleccionado no existe", 16, "Informe"
  26. wscript.quit
  27. End if
  28. case "/L"
  29. FileList = Split(wscript.arguments(1),",")
  30. case "/P"
  31. Set Taskmgr = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery ("select * from Win32_Process")
  32. Dim Taskname(): Redim Preserve Taskname(Taskmgr.count-1)
  33. For Each T in Taskmgr
  34. Taskname(n) = T.name
  35. n = n+1
  36. Next
  37. FileList = FilterAray(Taskname)
  38. case else
  39. Ayuda()
  40. End Select
  41.  
  42. For Each F in FileList
  43.  
  44. If Format = "/F" then
  45. URLF = "http://www.fileinspect.com/fileinfo/" & LCase(Replace(F.name,".","-"))
  46. F = F.name
  47. Else
  48. URLF = "http://www.fileinspect.com/fileinfo/" & LCase(Replace(F,".","-"))
  49. End if
  50.  
  51. objxmlHTTP.open "GET", URLF, 0
  52. objxmlHTTP.send()
  53. Do while objxmlHTTP.readystate <> 4
  54. wscript.sleep 200
  55. Loop
  56. response = objxmlHTTP.responsetext
  57.  
  58. blogcopy = instr(1,response,"id=""blog-copy-text""",1)
  59.  
  60. If blogcopy > 0 then
  61. Startd = instr(blogcopy, response,">",1)+1
  62. Endd = instr(Startd, response,"<",1)
  63.  
  64. Definition = mid(Response,Startd,Endd-Startd)
  65. Definition = replace(Definition,"&lt;", "<")
  66. Definition = replace(Definition,"&gt;", ">")
  67. Definition = replace(Definition,"&quot;", """")
  68.  
  69. wscript.echo Definition
  70. Else
  71. wscript.echo "</p><table cellpadding=""0"" cellspacing=""0"" width=""100%"" bgcolor=#737CA1><tr><td><a style=""color:#000000;font-size:15px;color=white;text-decoration:none;font-family:Arial;border:0px;""<b>" & F & ": Archivo desconocido</b></a></td></tr></table>"
  72. End if
  73.  
  74. Next
  75.  
  76. Function FilterAray(Aray)
  77. dim auxAray()
  78. For Each A in Aray
  79. Match = False
  80. On error resume next
  81. Newlength = ubound(auxAray) + 1
  82. If err.number > 0 then
  83. Redim Preserve auxAray(0)
  84. auxAray(0) = A
  85. err.clear
  86. On error goto 0
  87. End if
  88. For Each E in auxAray
  89. If A = E then
  90. Match = True
  91. Exit For
  92. End if
  93. Next
  94. If Match = False then
  95. Redim Preserve auxAray(Newlength)
  96. auxAray(Newlength) = A
  97. End if
  98. Next
  99. FilterAray = auxAray
  100. End Function
  101.  
  102. Sub ayuda()
  103. wscript.echo vbnewline & "Uso: cscript.exe/nologo " & wscript.scriptname & " [formato] [parametro]" & vbnewline & _
  104. vbnewline & chr(9) & "Formato" & chr(9) & "Parametro" & vbnewline & chr(9) & "/F" & chr(9) & "Ruta Carpeta" & vbnewline & _
  105. chr(9) & "/A" & chr(9) & "Ruta Archivo (Conteniendo listado)" & vbnewline & chr(9) & "/L" & chr(9) & "Lista de archivos separados por coma" & vbnewline & _
  106. chr(9) & "/P" & chr(9) & "Análisis de procesos en ejecución (Cualquier valor)" & vbnewline & vbnewline & "Ejemplos:" & vbnewline & chr(9) & "cscript.exe/nologo " & _
  107. wscript.scriptname & " /F" & " C:\WINDOWS" & vbnewline & chr(9) & "cscript.exe/nologo " & wscript.scriptname & " /A" & _
  108. " C:\Archivos.txt" & vbnewline & chr(9) & "cscript.exe/nologo " & wscript.scriptname & " /L" & " ""mstsc.exe,syskey.exe,appmgr.dll""" & _
  109. vbnewline & chr(9) & "cscript.exe/nologo " & wscript.scriptname & " /P -"
  110. wscript.quit
  111. End Sub

El script debe de lanzarse desde línea de comandos pasando los parámetros correspondientes, los cuales pueden verse en la ayuda (tanto desde ms-dos como con doble click)

Ej:
Código
  1. C:\Documents and Settings\Novlucker\Escritorio>cscript//nologo "filnspect.vbs" > Reporte.html

Como se ve además hay que redireccionar la salida (>) a un archivo de extensión html

Así se ve el resultado:
(http://s3.subirimagenes.com/imagen/previo/thump_2383720reporte.png) (http://www.subirimagenes.com/imagen-reporte-2383720.html)

Saludos ;D

Post original: Error de permisos al modificar msconfig (https://foro.elhacker.net/seguridad/error_de_permisos_al_modificar_msconfig-t252049.0.html;msg1220279#msg1220279)

Edito
:La web bajo la cual se realizaban las consultas, ha cambiado MUCHO la manera en la que se visualizan los archivos, por lo que ha dejado de ser funcional  :-\


Título: Re: filnspect [VBS]
Publicado por: aaronduran2 en 6 Mayo 2009, 00:38 am
Como te tienen dicho en otros posts, deberías hacer una recopilación de todos tus códigos, son buenísimos  :)


Título: Re: filnspect [VBS]
Publicado por: Novlucker en 6 Mayo 2009, 06:43 am
Gracias  ;D

Estoy viendo que otras opciones más le puedo agregar que pueda resultar útil  :P (al menos a mi XD)

Saludos


Título: Re: filnspect [VBS]
Publicado por: EddyW en 6 Mayo 2009, 17:26 pm
Citar
Definition = replace(Definition,""", """")
Esa linea me fue mal es la linea 59 despues lo edite y le aunmente una comilla que creo que faltaba y recien funciono..asi:
Citar
Definition = replace(Definition,"""", """")
Creo que faltaba no se, pero asi recien me funciono..
bueno lo demas esta muy bien me funciona perfecto..  :)
SaluDOS!!!


Título: Re: filnspect [VBS]
Publicado por: Novlucker en 6 Mayo 2009, 17:52 pm
Ju  :-X, estas seguro de haber copiado mi code? porque si te fijas, la línea 59 no tiene eso, sino que tiene Definition = replace(Definition,"&quot;", """"), es más, lo que comentas no esta en ningún sitio  :xD

Saludos


Título: Re: filnspect [VBS]
Publicado por: EddyW en 6 Mayo 2009, 17:59 pm
Ju :-X, estas seguro de haber copiado mi code? porque si te fijas, la línea 59 tiene eso, sino que tiene Definition = replace(Definition,""", """"), es más, lo que comentas no esta en ningún sitio :xD

Saludos
Si acabo de darme cuenta, creo que hay algunos errores en esto, copie el code y lo pege en el Block de notas pero lo pego todo en una linea..
luego puse citar en tu post y lo copie de ahi por esa razon salio asi..
no se si sera solo ami pero al copiar el code asi y pegarlo lo pega en una sola linea todo sin salto de linea, pero igual ya lo puse correctamente y funciona bien..
SaluDOS!!!


Título: Re: filnspect [VBS]
Publicado por: Novlucker en 6 Mayo 2009, 18:02 pm
A que adivino que navegador utilizas? IExplorer?  :rolleyes:

En iexplorer ocurre eso cuando copias un code, en Firefox no ocurre  :P

Saludos


Título: Re: filnspect [VBS]
Publicado por: EddyW en 6 Mayo 2009, 18:11 pm
A que adivino que navegador utilizas? IExplorer? :rolleyes:

En iexplorer ocurre eso cuando copias un code, en Firefox no ocurre :P

Saludos
Por desgracia si estoy usando IExplorer, no estoy en mi PC, en la mia uso Google Crome es mucho mas liviano y rapido y no sucede esto como en esta cosa..
SaluDOS!!!


Título: Re: filnspect [VBS]
Publicado por: Novlucker en 11 Mayo 2009, 16:43 pm
Simplemente comentar que como dije antes, estaba viendo que más le podía agregar al script, por lo que he añadido el parámetro "/P", el cual toma como input los procesos ejecutandose en la PC  :D , para lo cual entre otras cosas he debido de agregar una función para filtrar valores repetidos en la "colección"

Código
  1. C:\Documents and Settings\Novlucker\Escritorio>cscript/nologo filnspect.vbs
  2.  
  3. Uso: cscript.exe/nologo filnspect.vbs [formato] [parametro]
  4.  
  5.        Formato Parametro
  6.        /F      Ruta Carpeta
  7.        /A      Ruta Archivo (Conteniendo listado)
  8.        /L      Lista de archivos separados por coma
  9.        /P      Análisis de procesos en ejecución (Cualquier valor)
  10.  
  11. Ejemplos:
  12.        cscript.exe/nologo filnspect.vbs /F C:\WINDOWS
  13.        cscript.exe/nologo filnspect.vbs /A C:\Archivos.txt
  14.        cscript.exe/nologo filnspect.vbs /L "mstsc.exe,syskey.exe,appmgr.dll"
  15.        cscript.exe/nologo filnspect.vbs /P -
  16.  
  17. C:\Documents and Settings\Novlucker\Escritorio>

Saludos  :P

P.d: Tener en cuenta de que puede servir para dar un primer vistazo, pero solo para eso, ya que el análisis en si se basa en el nombre de ejecutables, y si nos referimos a malware, este puede tomar el nombre de ejecutables legítimos