This commit is contained in:
2026-07-30 11:35:10 +05:00
commit 8a3ec978ad
113 changed files with 3384 additions and 0 deletions
+7
View File
@@ -0,0 +1,7 @@
%% Zoottelkeeper: Beginning of the autogenerated index file list %%
[[English/dictionary|dictionary]]
[[English/Homework|Homework]]
[[English/Infinitives and -ing forms|Infinitives and -ing forms]]
[[English/Modal verbs|Modal verbs]]
[[English/Preposition|Preposition]]
%% Zoottelkeeper: End of the autogenerated index file list %%
+7
View File
@@ -0,0 +1,7 @@
Nowadays, there are many ways to always be in contact: using messengers like Telegram or Signal or watching somebody's social networks. There are both advantages and disadvantages to always being online.
No one can deny that mobile networks and calls are very important today, they allow you to solve problems immediately: call the police or ambulance, write messages to parents or classmates. On the one hand, mobile phones allow you to pay with NFC and have fast contact with friends, parents, government structures, or businesses.
On the other hand, the big part of mobile phone users are the target for hackers and cheaters, who can easily steal your personal data, money, and accounts. Although it is true that a mobile phone is necessary nowadays, we should also remember that the Internet is a big danger to your finances and privacy.
In conclusion, even though a mobile phone can be helpful when you have a problem, it is necessary to protect your device using antivirus and protect your personal data (you can find some simple but useful advice on the Internet).
+7
View File
@@ -0,0 +1,7 @@
1. Некоторые глаголы могут сопровождаться инфинитивом с **to** или **-ing** формой, но с изменением смысла:
1. They stopped talking when the teacher came in. (Они перестали разговаривать когда вошел учитель)
2. I saw my friend in town and stopped to talk to him. (Я увидел моего друга в городе и остановился поговорить с ним)
2. Глаголы *feel, hear, see, watch* сопровождаются: **объект + инфинитив без *to* для завершенных действий** и **объект + -ing** для действий, которые происходят в моменте
1. I watched him open the door. (Я увидел как он открывает дверь)
2. I watched him walking down the street. (Я увидел его идущим вниз по улице)
3. Мы можем использовать **-ing*** форму так же как и обычные существительные, так же как дополнение или подлежащеею
View File
+15
View File
@@ -0,0 +1,15 @@
*at:* not at all (совсем нет), at last (наконец), at fault (по вине, виновный), at once (сразу же), at stake (на кону), at first (по началу)
*by:* by mistake (по ошибке), by accident (по случайности)
*for:* for the time being (пока что), for good (навсегда), for now (на данный момент), for one thing (с одной стороны)
*in* in control (тот, кто контролирует), in doubt (в сомнениях), in the wrong (неправ), in any case (в любом случае), in that case (в таком случае), in common (иметь что-то общее), in fact (в действительности), in trouble (в проблемной ситуации)
*on* one the one hand ... on the other hand (с одной стороны ... с другой стороны)
on second thoughts (хотя), on the whole (в целом), on purpose (специально, нарочно)
*under* under arrest (под арестом), under control (под контролем), under the impression (под впечатлением), under pressure (под давлением), under age (младше по возрасту),
*of* to be of interest (быть интересным), of course (конечно)
+47
View File
@@ -0,0 +1,47 @@
rude - грубый
staring - вглядываться
argue - спорить
whisper - шептать
purpose - цель *(done it on purpose - делать это нарочно)*
whole - целое
impression - впечатление, отпечаток
prairie - прерии
restricted - ограничен
marshy - болота
flood - топить
plains -
meadow - луг
browse - щипать (щипать траву)
huckleberry - голубика
shrub - кустарник
harsh - грубый, жесткий, неблагоприятный
leaf - лист
solution - Решение (раствор)
carry - нести
carrying out - проводить\выполнять
amused - забавно\довольны
respond - отвечать (инфинитив)
combat - преступность
involved - включать в себя
to mug - уличная кража
rape - изнасилование
proxy - примерно, приблизительно
approxymately - приблизительно
coincidence - совпадение
effort - усилие, попытка
deter - отталкивать
circumstances - обстоятельства
**Human sounds**
Clear your throat - звук прочистки горла, почти как кашель
cough (коф) - кашель
gasp - вздохи от удивления
hiccup (хиккап) - икать
sigh (сай) - выдох (из-за усталости, облегчения, неодобрения)
slurp - звук облизования (чего-то мокрого, такого так лапша)
sneeze - чихать
sniff - принюхиваться \ вдыхать при насморке
snore - храп
tut - цоканье
@@ -0,0 +1,228 @@
---
excalidraw-plugin: parsed
tags: [excalidraw]
---
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving'
# Excalidraw Data
## Text Elements
%%
## Drawing
```compressed-json
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
```
%%
+3
View File
@@ -0,0 +1,3 @@
%% Zoottelkeeper: Beginning of the autogenerated index file list %%
[[Excalidraw/Drawing 2026-05-05 21.04.57.excalidraw|Drawing 2026-05-05 21.04.57.excalidraw]]
%% Zoottelkeeper: End of the autogenerated index file list %%
+6
View File
@@ -0,0 +1,6 @@
%% Zoottelkeeper: Beginning of the autogenerated index file list %%
[[L1/Как устроены ALERT в SIEM|Как устроены ALERT в SIEM]]
[[L1/Средства защиты и мониторинга/Средства защиты и мониторинга|Средства защиты и мониторинга]]
[[L1/Теория/Теория|Теория]]
[[L1/photos/photos|photos]]
%% Zoottelkeeper: End of the autogenerated index file list %%
Binary file not shown.

After

Width:  |  Height:  |  Size: 580 KiB

@@ -0,0 +1,19 @@
![[Pasted image 20251117200258.png]]
| № | объект | описание | пример |
| --- | -------------------- | --------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| 1 | Время предупреждения | Показывает время создание алерта, обычно на несколько минут позже события | Alert time: March 21, 15:32 |
| 2 | Название | Коротко описывает суть произошедего, основываясь на названии политик | Необычные локации логина, письма фишинга, подбор паролей, утечки |
| 3 | Важность | Основывается на срочности, обычно устанавливается инженером по обнаружению. | - (green) Low / Informational<br>- (yellow) Medium / Moderate<br>- (orange) High / Severe<br>- (Red) Critical / Urgent |
| 4 | Статус | Информирует о том, что кто-то на данный момент работает | - (🆕) New / Unassigned<br>- (🔄) In Progress / Pending<br>- (✅) Closed / Resolved |
| 5 | Вердикт | По-другому классификация, помечает реальность угрозы. | - (🔴) True Positive / Real Threat<br>- (🟢) False Positive / No Threat |
| 6 | Ответсвенный | Показывает прикрепленного аналитика, оценивающего алерт | |
| 7 | Описание | Описывает что случилось подробнее | Логика создания аллерта, почему помечено как атака |
| 8 | Уточнения | Коментарий аналитика, то, что стриггирило предупреждение | Хостнейм, команда и т.д. |
## Структура репорта
1. ***Кто*** - какой юзер
2. ***Что*** - что произошло
3. ***Когда*** - когда действие началось и закончилось
4. ***Где*** - устройство, IP, сайт и т.д
5. ***Почему*** - Самое главное для описание вердикта
@@ -0,0 +1,7 @@
***EDR (Endpoint Direction & Responce)*** непрерывно отслеживает данные об угрозах на рабочих станциях и других конечных устройствах. Задача EDR - выявлять бреши в защите в режиме реального времени и оперативно реагировать на потенциальные угрозы.
Содержит в себе такие полезные функции:
- сбор артефактов, нетипичных журналов событий из системы
- интерактивный веб-шелл для выполнения удаленно команд на хосте
- возможно удаленно и централизовано настраивать аудит событий или фильтрацию
На сегодняшний день наиболее эффективны коммерческие решения EDR, но так же есть Open-source EDR решение, например [SOLDR](https://vxcontrol.com/) или [Wazuh](https://wazuh.com/).
@@ -0,0 +1,21 @@
***SIEM (Security Information Event Manager)*** - система управления информацией и событиями в системе безопасности.
Помогает объединить в одной точке данные об инцидентах ИБ. Система собирает информацию из журналов событий средств защиты, сетевого оборудования, рабочих станций сотрудников и других ресурсов - тем самым исключает необходимость проверять их по отдельности и снижает риск возникновения слепых зон.
Какие задачи решает SIEM?
- преобразование данных (нормализация) из различных источников в единообразный и пригодный для обработки формат;
- мониторинг и консолидация событий безопасности со всех систем и устройств в корпоративной сети;
- обогащение данных о событиях связанной информацией из других ресурсов;
- регистрация инцидентов на основе заданных правил корреляции - взаимосвязей между событиями и их цепочками, в том числе из разных источников;
- информирование оператора об инциденте через чат-бота, email, уведомление или другими способами;
- хранение исторических данных о всех событиях ИБ и поддержка при расследовании инцидентов;
- анализ и управление рисками безопасности, проверка на соответствие стандартам и требованиям регуляторов;
- формирование отчетных документов для внутренних целей и контролирующих органов.
***Компоненты SIEM***
- агенты, устанавливаемые на инспектируемую информационную систему
- коллекторы на агентах, которые по сути, представляют собой модули (библиотеки) для понимания конкретного журнала событий или системы.
- серверы - коллекторы, предназначенные для предварительной аккумуляции событий от множества источников
- сервер-коррелятор, отвечающий за сбор информации от коллекторов и агентов, обработку по правилам и алгоритмам корреляции
- сервер без данных и хранилища, отвечающий за хранение журналов событий.
@@ -0,0 +1,3 @@
***TIP (Threat Intelligence Platform)*** - средство обработки входящего Threat Intelligence(TI)
***TI*** содержит в себе совокупность индикаторов компрометаци(Indicator Of Compromise)
@@ -0,0 +1,5 @@
%% Zoottelkeeper: Beginning of the autogenerated index file list %%
[[L1/Средства защиты и мониторинга/EDR|EDR]]
[[L1/Средства защиты и мониторинга/SIEM|SIEM]]
[[L1/Средства защиты и мониторинга/TIP|TIP]]
%% Zoottelkeeper: End of the autogenerated index file list %%
+10
View File
@@ -0,0 +1,10 @@
Цепочка состоит из этапов:
- Разведка
- Вооружение
- Доставка
- Эксплуатация
- Установка
- Управление и контроль (Command and Control, C&C, C2)
- Достижение конечной цели
![[rus 1.2 Обзор целеи_ злоумышленников, стандартные сценария поведения и этапы — горизонтально.png]]
+17
View File
@@ -0,0 +1,17 @@
В отличие от Kill Chain, MITRE ATT&CK описывает конкретные технические детали действий, выполняемых над целью, и связывает их в общую тактику.
Всего описано 14 тактик:
- разведка (Reconnaissance)
- подготовка ресурсов (Resource Development)
- первоначальный доступ (Initial Acces)
- выполнение (Execution)
- закрепление в системе (Persistance)
- повышение привилегий (Privelege Escalation)
- обход систем защиты (Defence Evasion)
- доступ к учетным данным (Credential Acces)
- исследование (Discovery)
- дальнейшее перемещение (Lateral Movement)
- сбор данных (Collect)
- Управление и контроль (C&C, C2)
- эксфильтрация данных (Exfiltration)
- воздействие (impact)
@@ -0,0 +1,48 @@
#### Угрозы по месту
***Внутренние***. Связаны с уязвимостями, заложенными в самой системе или компонентах, то есть без участия человека. Пример: уязвимость в ПО или аппаратуре, которую могут использовать злоумышленники.
***В пределах видимости***. Включают перехватывающую и прослушивающую аппаратуру, кражу данных с физических носителей (флешек, жестких дисков и т.п.), камер наблюдения и другого оборудования и устройств.
***Внешние***. Происходят извне - например, через каналы связи. К таким угрозам относятся атаки хакеров, попытки взлома, фишинг, социальная инженерия и другие методы атак.
#### Угрозы по видимости
***Активные***. Это прежде всего внесение изменений в систему. Это может быть внедрение вредоносного ПО, изменение конфигурации системы или повреждение данных.
***Пассивные***. Зачастую даже более опасные, поскольку они незаметны, т.е происходят без внесения видимых изменений в информационные журналы (логи)
#### Угрозы по доступу
**Несанкционированный доступ.** Попытка получения доступа без разрешения или авторизации. Например, когда сотрудник компании пытается получить нежелательный доступ к конфиденциальным данным, используя чужие учетные данные. В этом случае можно обнаружить подозрительную активность — несколько неудачных попыток ввода пароля — и заблокировать доступ.
**Утечка или повреждение данных.** Происходит в результате ошибочных или неправомерных действий сотрудника с доступом. В таком случае сотрудник компании преднамеренно или непреднамеренно нарушает правила ИБ и вызывает утечку или повреждение данных либо всей системы. Пример такой угрозы — когда сотрудник компании случайно удаляет важные файлы или программу, что приводит к потере данных и нарушению работы системы.
#### Угрозы по цели
**Угрозы данным.** Попытки несанкционированного доступа с целью кражи данных или их изменения, порчи, удаления.
**Угрозы программной среде.** Атаки на программное обеспечение, попытки внедрения вредоносного ПО или изменения программных компонентов.
**Угрозы аппаратному обеспечению.** Физическое повреждение оборудования, кража или неправомерный доступ к аппаратным компонентам.
**Угрозы поддерживающей инфраструктуре.** Атаки на сетевую инфраструктуру, серверы и базы данных.
#### Угрозы по объективности
Классификация угроз информационной безопасности по уровню объективности включает объективные, субъективные и случайные угрозы.
**К объективным относятся:**
- технические средства излучения, например, электромагнитные, звуковые, электрические;
- активируемые угрозы — вредоносное ПО и бэкдоры, программные «закладки» и закладки аппаратуры;
- особенности объекта — его расположение, наличие контролируемой зоны, каналов обмена информацией;
- особенности носителей, например, электроакустические модификации, детали под воздействием электромагнитных полей и т.д.
**Субъективные угрозы включают:**
- ошибки при установке ПО и в процессе эксплуатации;
- повреждение данных или ненадлежащая работа с ними — неправильная работа с личными данными, нарушения режима защищенности, преобразование или уничтожение данных.
**К случайным угрозам относят:**
- сбои и отказы в работе корпоративной инфраструктуры;
- неисправность, повреждения сетевых коммуникаций или систем киберзащиты.
@@ -0,0 +1,21 @@
***Конфиденциальность*** - сохранение целостности, защиты от утечки сведений, которые не предназначены для общего использования и несут интеллектуальную, экономическую ценность для обладателя.
Отвечает на следующие вопросы:
- Насколько защищена информация?
- Насколько она должна быть защищена?
К механизмам защиты конфиденциальности относятся шифрование, пароли, аутентификация, брандмауэра и т.д.
Так же в этот раздел попадает физическая защита.
***Целостность*** - состояние информации, при котором отсутствует любое её изменение, либо изменение осуществляется только преднамеренно субъектами, имеющими на него права.
Для определения целостности информации можно использовать следующие вопросы:
- Насколько верна информация?
- Была ли она изменена или повреждена?
Хеширование, цифровые подписи и контрольные суммы помогают отслеживать и проверять целостность.
***Доступность*** - возможность своевременного и надёжного использования информации или сервисов.
Отвечает на вопрос "Всегда ли данные, которые должны быть доступны пользователю, доступны?"
К категории доступности также относятся стратегии резервного копирования и аварийного восстановления данных в случае повреждения или утраты. 
Следует заметить, что в зависимости от задач бизнеса фокус может смещаться, например, в некоторых случаях компании важнее доступность информации, нежели её конфиденциальность.
@@ -0,0 +1,6 @@
Злоумышленник нацелен на следующие данные:
- Доменные имена,
- Почтовые адреса сотрудников
- Соцсети организации или ее сотрудников
- Исходный код из репозиториев в системах контроля версий
@@ -0,0 +1,12 @@
***Honeytoken*** - ложная информация, которая размещается в системе или на сайте компании, что бы привлечь внимание злоумышленников и определить факт НСД к ланным. Может быть представлен в виде фиктивных учеток, файлов или документов, которые содержат ложную информацию.
Зачастую honeytoken является частью honeypot систем.
***Honeypot*** - это система или сеть, которая создается с целью привлечения злоумышленников и анализа их действийю Она имитирует слабые места, могут заинтересовать потенциальных нарушителей безопасности.
Размещение Honeytoken'ов в организации, как правило, включает в себя несколько шагов:
1. Создание Honeytoken в зависимости от эмулируемых данных (например, поддомен организации)
2. Honeytoken размещается на рессурсе внешнего периметра организации, например, поддельные учетные данные используемые для удаленного доступа к высокочувствительным рессурсам, намеренно размещаются в обсуждении на форуме.
3. Систему управления honeytoken связывают с IDS или SIEM.
4. После срабатывания оповещения вступает в силу план реагирования на инциденты организации.
5. Данные, собраные в результате анализа события срабатывания обнаружения, затем могут быть использованы для принятия мер безопасности. Информация, полученная в результате использования дает преставление о частях сети, подвергающихся наибольшему риску, а так же о типах инструментов, необходимых для защиты этих областей.
@@ -0,0 +1,4 @@
%% Zoottelkeeper: Beginning of the autogenerated index file list %%
[[L1/Теория/Обнаружение OSINT'a/DNS Canarytoken|DNS Canarytoken]]
[[L1/Теория/Обнаружение OSINT'a/Honeytoken|Honeytoken]]
%% Zoottelkeeper: End of the autogenerated index file list %%
@@ -0,0 +1,8 @@
#### Классификация хакеров по типу их намерений
**Хактивисты** - люди, взламывающие системы в знак протеста, что бы дать отпор предполагаемой политической или социальной несправедливости. Часто пытаются разоблачить государственные или корпоративные преступления путем взлома защищенных систем и раскрытия секретной информации.
**Группировки, спонсируемые государством (APT - Advanced Persistent Threat)** - хакеры, спонсируемые государством. Как и black-hat, так и white-hat.
**Информатор (Злонамеренный инсайдер)** - тот, кто работает в организации и решает раскрыть информацию или украсть ее изнутри. Известным примером инсайдера является Эдвард Сноуден, который обнародовал секретную информацию, полученную во время его работы в АНБ, чтобы раскрыть программы массовой слежки со стороны правительства США.
**Скрипт-кидди или хакеры в зеленых шляпах** - неопытные хакеры, которые стремятся стать белыми или черными шляпами - зеленые шляпы, а скрипт кидди используют соц. инженерию и скрипты других хакеров.
+14
View File
@@ -0,0 +1,14 @@
Риск является центральной точкой другой триады: **угрозы, уязвимости и активы**
Если у вас нет ничего, что может быть украдено, то скорее всего вы ничем не рискуете. Если ваша система безупречна (вспомним сервер на подводной лодке), то уязвимостей нет. Если никому не нужны ваши активы или нет способов для их кражи, то вы свободны от угроз.
***Актив*** - ресурсы, которыми владеет или контролирует бизнес, в материальной или нематериальной форме, используемый для создания экономической выгоды.
- Информация или данные
- сетевое оборудование
- серверы\компьютеры
- ПО
- персонал
- процессы
***Уязвимость*** - недостаток программно-технического средства или информационной системы в целом, который может быть использован для реализации угроз безопасности информации. Эти уязвимости являются внутренними факторами. Патчи или дополнительные меры безопасности могут устранить эти недостатки. Иногда уязвимость находится вне вашего контроля, например при использовании закрытого ПО. Задача инженера ИБ - компенсировать эти слабости.
***Угроза*** - это любое состояние, которое может привести к краже, потере, повреждению или компроментации актива. К угрозам относятся стихийные бедствия, кибераткаи или вредоносное ПО.
+9
View File
@@ -0,0 +1,9 @@
%% Zoottelkeeper: Beginning of the autogenerated index file list %%
[[L1/Теория/Cyber Kill Chain|Cyber Kill Chain]]
[[L1/Теория/MITRE ATT&CK|MITRE ATT&CK]]
[[L1/Теория/Классификация угроз|Классификация угроз]]
[[L1/Теория/Концепты информационной безопасности (КЦД)|Концепты информационной безопасности (КЦД)]]
[[L1/Теория/Обнаружение OSINT'a/Обнаружение OSINT'a|Обнаружение OSINT'a]]
[[L1/Теория/Основные понятия|Основные понятия]]
[[L1/Теория/Риски|Риски]]
%% Zoottelkeeper: End of the autogenerated index file list %%
+1
View File
@@ -0,0 +1 @@
3.10
+3
View File
@@ -0,0 +1,3 @@
%% Zoottelkeeper: Beginning of the autogenerated index file list %%
[[Programming/C/Основы языка С|Основы языка С]]
%% Zoottelkeeper: End of the autogenerated index file list %%
@@ -0,0 +1,68 @@
# Переменные
**Переменные** имеют тип, имя и значение.
Перед использованием необходимо объявить.
```C
int var;
```
Нельзя использовать данные имена, так как они являются зарезервированныыми. **`break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while`.**
Что бы присвоить значение, нужно написать:
```C
var = 1;
```
Как пример кода
```C
#include <stdio.h>
int main(void)
{
int number;
number = 2;
printf("%d", number);
return 0
}
```
Но и при определении тоже можно указать значение:
```C
int var = 1;
```
Или сразу можно инициировать сразу несколько:
```C
int var1 =1, var2 = 2, var3 = 3;
```
# Типы данных
| Тип данных | Описанеие | Суффикс |
| ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------- |
| **char** | Один символ, 1 байт | |
| **unsigned char** | Один символ, 1 байтб любое значение от 0 до 255 | |
| **signed char** | Один символ, 1 байт, от -128 до 127 | |
| **short (short int, signed short и signed short int)** | 2 байта в памяти, число в диапазоне –32768 до 32767. | |
| **unsigned short** | 2 байта в памяти, целое число в диапазоне от 0 до 65535 | |
| **Int** | представляет целое число. В зависимости от архитектуры процессора может занимать 2 байта (16 бит) или 4 байта (32 бита). Если брать основные платформы - 64-разрядные Windows, Linux (вместе с Android) и MacOS, то размер int составляет 4 байта. Диапазон предельных значений соответственно также может варьироваться от –32768 до 32767 (при 2 байтах) или от −2 147 483 648 до 2 147 483 647 (при 4 байтах) и выше. | |
| **unsigned int** | представляет положительное целое число. В зависимости от архитектуры процессора может занимать 2 байта (16 бит) или 4 байта (32 бита), и из-за этого диапазон предельных значений может меняться: от 0 до 65535 (для 2 байт), либо от 0 до 4 294 967 295 (для 4 байт). | u U |
| **long** | представляет целое число и занимает в памяти 4 байта (32 бита) или 8 байт (64 бита). В зависимости от размера может находиться в в диапазоне от -2 147 483 648 до 2 147 483 647 (4 байта), либо в диапазоне от -9223372036854775807 до +9 223 372 036 854 775 807 (8 байт).<br><br>Если брать распростренные платформы, то на 64-разрядном Windows long занимает 4 байта, а на 64-разрядных Linux/MacOS - 8 байт. | |
| **unsigned long** | представляет целое число и занимает в памяти 4 байта (32 бита) или 8 байт (64 бита). В зависимости от размера может находиться в в диапазоне от 0 до 4 294 967 295 (4 байта) или в диапазоне от 0 до 18 446 744 073 709 551 615 (8 байт). | ul UL |
| **long long** | представляет целое число в диапазоне от -9223372036854775807 до +9 223 372 036 854 775 807. Занимает в памяти, как правило, 8 байт (64 бита). | ll LL |
| **unsigned long long** | представляет целое число в диапазоне от 0 до 18 446 744 073 709 551 615. Занимает в памяти, как правило, 8 байт (64 бита). | ull ULL |
| **float** | представляет вещественное число одинарной точности с плавающей точкой в диапазоне +/- 3.4E-38 до 3.4E+38. В памяти занимает 4 байта (32 бита) | |
| **double** | представляет вещественное число двойной точности с плавающей точкой в диапазоне +/- 1.7E-308 до 1.7E+308. В памяти занимает 8 байт (64 бита) | |
| **long double** | представляет вещественное число двойной точности с плавающей точкой в диапазоне +/- 3.4E-4932 до 1.1E+4932. В памяти занимает 10 байт (80 бит). На некоторых системах может занимать 96 и 128 бит. | |
| **void** | без обозначения | |
# Вывод в консоль
| Тип данных | Спецификация |
| ------------------------------------- | ------------ |
| char | %c |
| string | %s |
| int (cо знаком) | %d |
| int (со знаком) | %i |
| целые положительные числа<br>unsigned | %u |
| | |
+11
View File
@@ -0,0 +1,11 @@
%% Zoottelkeeper: Beginning of the autogenerated index file list %%
[[Programming/ML/biology_neuron.excalidraw|biology_neuron.excalidraw]]
[[Programming/ML/math_neuron.excalidraw|math_neuron.excalidraw]]
[[Programming/ML/Pytorch basics|Pytorch basics]]
[[Programming/ML/pytorch база|pytorch база]]
[[Programming/ML/Гиперпараметры|Гиперпараметры]]
[[Programming/ML/Градиентный спуск|Градиентный спуск]]
[[Programming/ML/Линейная регрессия|Линейная регрессия]]
[[Programming/ML/Работа с числовыми данными|Работа с числовыми данными]]
[[Programming/ML/Структура обучения|Структура обучения]]
%% Zoottelkeeper: End of the autogenerated index file list %%
+29
View File
@@ -0,0 +1,29 @@
## Подготовка данных
По мимо подготовки датасета реализуется 2 обязательных класса:
1. Обязательный класс. В него мы подаем путь до датасета и трансформации, которые необходимо провести.
```python
dataset = DatasetNameDataset(path=.... , transforms=....)
```
Вот так выглядит сам класс:
```python
class DatasetNameDataset(Dataset): # название класса
def __init__(self, *args, **kwargs) # инициализация
def __len__(self):
pass # Вот тут функционал поиска длины датасета
def __getitem__(self, index):
pass # Функционал поиска по индексу, где мы должны получить в ответе данные и ответ к ним (sample, target)
```
2. Класс pytorch DataLoader
```python
DataLoader(dataset=dataset, batch_size=BATCH_SIZE, shuffle=False)
```
где:
- **dataset*** - наш датасет
- **batch*** - 'пакет' из ***BATCH_SIZE*** чилса данных и ответов к ним.
- **shuffle*** - либо разрешаем либо запрещаем перемешивать данные при каждой итерации
И для задач классификации, ровно как и для задач регрессии, данные классы идентичны.
**НО** различаются они только тем, какие именно данные в них подаются и какой ответ мы получаем.
+127
View File
@@ -0,0 +1,127 @@
---
excalidraw-plugin: parsed
tags: [excalidraw]
---
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving'
# Excalidraw Data
## Text Elements
Тело нейрона ^TPR6MpRV
Дендриты ^xFsgboCE
По ним сигнал от других
неронов приходит ^8GqxhI09
Аксон ^Nj46eXgx
Он передает сигнал
другим нейронам ^OLSF2nzN
Синапсы ^ILxPZehY
Аксоны других нейронов ^PpieQyfU
Место соприкосновения
дендрита и аксона ^MNC8k2qA
%%
## Drawing
```compressed-json
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
```
%%
+710
View File
@@ -0,0 +1,710 @@
---
excalidraw-plugin: parsed
tags: [excalidraw]
---
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving'
# Excalidraw Data
## Text Elements
Сумматор ^eoXigQE7
Входы ^c6LNyn5Z
Выход ^Reatmwcx
функция
активации ^p1CnkaHD
Синаптические
Веса ^CzCd87Gi
X0 ^KG7wTDwN
X1 ^pKqpp5NE
X2 ^9jdgFHlz
y = f(z) = f(w0*x0 + w1*x1 + w2*x2 + b) =
= f( Wi*Xi + b) = f(<w,x> + b) ^ydZiMmwT
w0 ^KgPEhrJf
w2 ^5YsZzuIT
w1 ^gmIPe7en
b ^TA0ZpGxk
Смещение ^4oMkKFQ2
Пороговая функция активации ^Fby5rINQ
f(z) = ^Wtzc7elR
0, if z <= 0 ^2VLlX4H8
1, if z > 0 ^Juu93i4z
<w,x> + b) = 0 ^3bkWDhVu
x1 ^G2NuXLrN
x0 ^3MI8BRyG
w ^yqXadioN
Разделяющая поверхность
нейрона линейна ^1NbMMJz8
Разделяющая поверхность - плоскость,
которая задается весами w и смещением b, которая делит
пространство возможных входных комбинаций на две части ^rou9L5MR
Сигмоида ^8HwMXvnR
σ(x) = ^4L6qPsOe
1 ^Nnfk13tN
1 + e ^txthKxIm
-x ^QUIpDQes
при ^wekvuPDB
x ^Uh3Bj5cp
∞ ^g5UCrHR2
1 ^YYVVBXfn
σ(x) ^m8YuxLqA
при ^6rQqQHkA
x ^6LqTbBdP
-∞ ^UGwEgn1Q
σ(x) ^Xl8ixRFq
0 ^E6NmW00n
0 < σ(x) < 1 ^CKGACLnw
x ^26s858cp
f(x) ^H2XGOclX
1 ^A2qeX3Ho
0 ^md9DJ92d
%%
## Drawing
```compressed-json
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
```
%%
+28
View File
@@ -0,0 +1,28 @@
```python
import torch
torch.zeros([x, y])
```
Создаст тензор наполенный нулями, где x - количество строчек, y - количество столбцов
```python
torch.ones([p, x, y])
```
Создаст тензор наполненный единичками, где x - количество строчек, y - количество столбцов, p - количество плоскостей.
```python
x = torch.Tensor([[1,2,3,4],
[5, 6 7]])
```
Создание произвольного тензора
```python
x.shape
## ИЛИ
x.size()
```
Получение информации о размере тензора
```python
x.dtype
```
Получение информации о типе данных тензора
@@ -0,0 +1,10 @@
***Сходимость*** - подбор весов и смещения для получения максимально близкого к эталонному значению предсказания.
***Гиперпараметры*** - переменные, управляющие различными аспектами обучения.
***Итерация*** - единоразовое обновление значений весов и смещения во время градиентного спуска.
1. **Скорость обучения*** - число float, которое мы задаём, влияет на скорость сходимости модели. Если скорость низкая, то может занимать много времени. Если скорость слишком высокая, то модель никогда не сойдется, а будет колебаться вокруг весов и смещения, которые снижают потери. Во время выполнения градиентного спуска, значения градиента умножаются на значения скорости.
2. ***Batch-size (Размер пакета)*** - определяет количество параметров, обрабатываемых моделью перед обновлением весов и смещения. Два распространённых метода получения правильного градиента в *среднем*, без необходимости просматривать каждый пример в наборе данных перед обновлением весов и смещения:
- **Стохастический градиентный спуск (SGD)** - использует только один пример (batch-size = 1) на итерацию. При большом количестве итераций работает, но создаёт шум - вариации во время обучения, которые приводят к увеличению потерь, а не снижению. Термин *стохастический* обозначает, что пример, входящий в каждую партию, выбирается случайно.
- ***Мини-пакетный стохастический градиентный спуск (smal-batch SGD)*** - компромисс между полным пакетом и SGD. Для *N* количества точек данных, размер пакета может быть любым числом между *1* и *N*. Модель случайно выбирает параметры, включаемые в каждый пакет, усредняет их градиенты, а затем обновляет веса и смещения *один раз за итерацию*.
3. ***Эпоха*** - Модель обработала каждый пример в датасете для обучения *один раз*. Например, для датасета из 1000 примеров и мини-пакета из *100 примеров*, потребуется *10 итераций* для завершения *1 эпохи*.
@@ -0,0 +1,11 @@
***Градинет*** - вектор, своим направлением указывающий направление наискорейшего роста некоторой скалярной величины.
***Градиентный спуск*** - математический метод, который итеративно находит веса и смещения, обеспечивающие модель с наименьшей функцией потерь. Градиентный спуск находит оптимальные веса и смещения, повторяя процесс заданное количество итераций.
Происходит это по данному алгоритму:
1. Расчет потерь при текущем весе (m) и смещении (b)
2. Определение направления перемещения весов (m) и смещения (b), что бы уменьшить потери
3. Слегка изменить значение веса и смещения в направлении, которое было определено.
4. Повтор алгоритма до тех пор, пока значение потерь не уменьшится еще меньше.
@@ -0,0 +1,59 @@
**Линейная регрессия*** - статистический метод, используемый для поиска взаимосвязи между переменными. В контексте машинного обучения линейная регрессия находит взаимосвязь между признаками и меткой.
***Пример*** - значения одной строки с признаками и подписью. Примеры в контролируемом машинном обучении делятся на 2 основные категории:
1. Подписанные примеры состоят из одного или более признака с подписью. Используются для обучения.
2. Не подписанные примеры состоят из одного или более признака, но без подписи. Используются для получения вывода.
Подписанные и не подписанные примеры:
![[Pasted image 20260104121346.png]]
***Признак (особенность)*** - вводная переменная машинного обучения. **Пример*** содержит в себе один или более признаков.
***Метка (подпись)*** - в контексте машинного обучения, показывает ответ для **Примера***.
Допустим. в случае обучения модели на фильтрацию спама, метка будет указывать, является ли данный пример спамом или нет.
## Уравнение линейной регрессии
В алгебраических терминах модель будет определяться как:
``` math
y = mx + b
```
где:
- y - значение, которое мы хотим предсказать
- m - наклон прямой
- x - входное значение
- b - точка пересечения с осью y
В машинном обучении мы записываем уравнение следующим образом:
```math
y' = b + w1*x1
```
где:
- y' - прогнозируемая метка (выход)
- b - смещение модели. (По сути пересечение с осью y в алгебраическом представлении.)
- w1 - вес признака. То же самое понятие что и наклон в алгебраическом уравнении.
- x1 - признак, входные данные
В процессе обучения модель рассчитывает вес и смещение, которые позволяют получить наилучшую модель.
![[Pasted image 20260104123038.png]]
А в случае если характеристик больше, уравнение будет иметь вид:
```
y = b + W1*X1 + W2*X2 + ... + Wn*Xn
```
где n - последний признак.
## Потеря
***Потери*** - числовая метрика, описывающая степень неточности предсказаний модели. Потери измеряют расстояние между предсказаниями модели и фактическими метками. Цель обучение модели - минимизировать потери, сведя их к минимальному возможному значению.
В машинном обучении потери измеряют разницу между предсказанным значением и фактическим, фокусируясь на расстоянии, а не направлении. ***То есть берется модуль разности фактической точки и предсказанной***
Два наиболее распространённых способа удаления знака:
- Абсолютное значение разности фактического значения и прогноза
- Квадрат разницы между фактическим значением и прогнозом
## Виды потерь
| Тип убытка | Определение | Уравнение |
| ------------------------------------------------ | --------------------------------------------------------------------------------- | ---------------------------------------------- |
| **Потеря L1** | Сумма абсолютных <br>значений разницы между <br>фактическим значением и прогнозом | $\sum\|факт - прогноз\|$ |
| **Средняя <br>абсолютная ошибка (MAE)** | Среднее значение потери L1 для набора <br>из N параметров | $\frac{1}{N}\sum\|факт - прогноз\|$ |
| **Потеря L2** | Сумма квадратов разностей между<br>фактическим значением и прогнозом | $\sum(факт - прогноз)^2$ |
| **Среднеквадратическая<br>ошибка (MSE)** | Среднее значение потерь L2 для набора из N параметров | $\frac{1}{N}\sum(факт - прогноз)^2$ |
| **Корень среднеквадратической<br>ошибки (RMSE)** | Корень для MSE | $\sqrt{\frac{1}{N} \sum \|факт - прогноз\|^2}$ |
Главная разница L1 и L2 - возведение в степень. Если потеря большая, возведение в степень сделает ее еще больше. Если же разница маленькая (меньше 1), то степень сделает её еще меньше.
Поэтому метрики такие как ***MAE или RMSE*** могут быть более подходящими в сравнении с L2 или MSE, так как они являются более понятными для людей, а так же они измеряют ошибку в той же шкале, что и значение прогноза модели.
==Примечание: MAE и RMSE могут существенно различаться. MAE представляет собой среднюю ошибку прогнозирования, тогда как RMSE представляет собой «разброс» ошибок и в большей степени искажается при больших ошибках.==
@@ -0,0 +1,20 @@
Модель принимает массив значений с плавающей запятой, называющийся *вектор признаков.*
***Вектор признаков*** - список примеров, включающих в себя признаки. В каждом примере приводятся разные значения, выглядит вектор признаков примерно так:
```
[0.78, 0.56]
```
Однако векторы используют обработаные значения, т.е нормализованные. Самые распространённые методы проектирования функций:
- ***Нормализация*** - преобразование числовых значений в заданый диапазон (например [-1,1])
- ***Биннинг (он же групирование)*** - преобразование одного признака в несколько бинарных признаков, называемых интервалами или ячейками, обычно на диапазоне значений.
Например можно разделить данные о температуре, где меньше 10 градусов - холодно, от 11 до 24 - умеренно, больше 25 - жарко
### Визуализация
Для более понятной работы с данными рекомендуется визуализировать данные с помощью pandas и matplotlib, для подтверждения гепотиз.
### Статистика
Рекомендуется собирать базовые статистические даннные
- средннее значение и медианное
- стандартное отклонение
- Значение в квартильных делениях (0, 25, 50, 75,100)
если дельта между 0 и 25 значительно отличается от дельты 75-100, то датасет содержит выбросы.
@@ -0,0 +1,53 @@
Обучение строится на данных, которые мы используем, и бывает нескольких типов:
***1. Обучение с учителем*** - мы размечаем данные, т.е к самим данным прикрепляем то, что мы хотим что бы нейросеть нам выдавала.
***2. Обучение без учителя***
***3. Обучение с подкреплением***
| **Обучение с учителем** | **Обучение без учитея** |
| :---------------------: | :----------------------------------------: |
| регрессия | генеративно-состязательная нейросеть (GAN) |
| классификация | |
| сегментация | |
| генерация текста | |
### Какие задачи можно решать при обучении с учителем?
| **Задача регресии** | **задача классификации** |
| ------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| на выходе получаем информацию,<br>которая не связана друг с другом,<br>например координаты глаз на картинке<br>[350,290] | на выходе получаем вероятность пренадлежности к классу,<br>например при классификации кошек и <br>собак [0.01, 0.99], где 0.01 - вероятность что это собака, а 0.99 - что кот |
## Этапы обучения
### 1. Подготовка данных
Данные сначала необходимо ***преобразовать*** (обычно имеется ввиду ***нормализация*** - преобразование данных к неким безмерным еденицам, диапазон которых задается, например [0;1] или [-1;1] . Фактически до нормализации данные имеют меру, например в датасете в разных колонках содержится информация о длине дороги и градусах ее искривлениях. ). После преобразования идет разбиение датасета на части:
***1. Обучение*** - примерно 80% исходного датасета нормализуется и используется для обучения модели. Далее разбиваем датасет на части - **тренировочная** и **валидационная**. На тренировочной учим, на валидационной - проверяем действительно ли учились или делали вид что учились.
***2. Тестирование*** - оставшиеся 20% остаются для тестирования обученной модели.
Фактически, размер соотношение Обучения/Тестирования может меняться от датасета к датасету, тут необходимо на личном опыте определить необходимую пропорцию.
***ПРО ТЕСТОВЫЕ ДАННЫЕ ДО КОНЦА ОБУЧЕНИЯ МЫ ЗАБЫВАЕ М И НЕ ТРОГАЕМ ИХ ВООБЩЕ***
### 2. Построение модели
Фактически необходимо определить количество слоёв модели, а так же написать главные функции.:
***1. Функция потерь*** - она буквлаьно определяет, какую задачу решает нейронная сеть
***2. Метод оптимизации градиентного спуска*** - отвечает за обучение и его скорость.
### 3. Тренировка модели
***1. Тренировка модели*** - используем часть датасета для обучения (**train set**)
***2. Валидация модели*** - используем часть датасета для валидации (проверки качества обучения) (**val set**)
Тренировка это:
***1. Подача данных из датасета в модель***
***2. Подача полученных ответов и реальных ответов в функцию потерь для сравнения***
***3. Обратное распространение ошибки*** - узнаём как и на сколько сильно влияет каждый вес на ошибку
***4. Корректировка весов***
Валидация:
***1. Подача валиадционных данных***
***2. Подача полученных значений и реальных значений в функцию потерь***
***3. Анализ функции потерь***
***Эпоха*** - одна итерация Тренировки и Валидации. Их может быть сколько угодно.
### 4. Тестирование
***1. Подача тестовых данных***
***2. Подача полученных значений и реальных значений в функцию потерь***
***3. Анализ функции потерь***
Отличие от валидации в том, что данные тестирования нейронка не видела, и фактически результат функции потерь на тестовых данных и будет результатом обучения.
Binary file not shown.
+6
View File
@@ -0,0 +1,6 @@
%% Zoottelkeeper: Beginning of the autogenerated index file list %%
[[Programming/OAP/oop.py|oop.py]]
[[Programming/OAP/varrirors.py|varrirors.py]]
[[Programming/OAP/Warrior2.py|Warrior2.py]]
[[Programming/OAP/ООП|ООП]]
%% Zoottelkeeper: End of the autogenerated index file list %%
+68
View File
@@ -0,0 +1,68 @@
from random import randint
class Warrior:
def __init__(self):
self.name = None
self.hp = 100
self.damage = 10
self.defense = 10
self.ultimate = False
def info(self):
print('___________________')
print('Name: {}'.format(self.name))
print('HP: {}'.format(self.hp))
print('___________________')
def attack(self, enemy):
self.damage = randint(5, 50)
if self.damage >= 50 and not self.ultimate:
self.ultimate = True
enemy.hp -= self.damage
enemy.hp = max(0, enemy.hp)
print(f"{self.name} uses an ULTIMATE attack! Hit -{self.damage}. {enemy.name}'s HP: {enemy.hp}")
elif self.damage <= 30:
if self.damage > enemy.defense:
enemy.hp -= self.damage
enemy.hp = max(0, enemy.hp)
print(f"{self.name} attacks! Hit -{self.damage}. {enemy.name}'s HP: {enemy.hp}")
else:
print(f"{enemy.name} is parrying {self.name}'s attack!")
if enemy.hp <= 0:
print(f"\n{enemy.name} is defeated!")
class Swordsman(Warrior):
def __init__(self, name):
super().__init__()
self.name = name
self.hp = 100
self.damage = 0
self.defense = 20
self.ultimate = False
class Dragon(Warrior):
def __init__(self, name):
super().__init__()
self.name = name
self.hp = 200
self.damage = 0
self.defense = 0
self.ultimate = False
hero = Swordsman('Hero')
dragon = Dragon('Dragon')
while hero.hp > 0 and dragon.hp > 0:
attacker, defender = (hero, dragon) if randint(0, 1) == 1 else (dragon, hero)
attacker.attack(defender)
if defender.hp <= 0:
print(f"\n{attacker.name} is the winner!")
hero.info()
dragon.info()
break
+13
View File
@@ -0,0 +1,13 @@
class Human:
def __init__(self):
self.health = 100
self.money = 100
class Student(Human):
def __init__(self, name, age):
super().__init__()
self.name = name
self.age = age
student1 = Student("kir", 20)
print(student1.money)
+51
View File
@@ -0,0 +1,51 @@
class Dish():
def __init__(self, name, price):
self.price = price
self.name = name
def prepare():
pass
class MainCource(Dish):
def __init__(self, name, price, weight):
super().__init__(name, price)
self.weight = weight
def prepare(self):
return f"Ваше блюдо {self.name} массой {self.weight} готовится!"
class Drink(Dish):
def __init__(self, name, price, capacity):
super().__init__(name, price)
self.capacity = capacity
def prepare(self):
return f"Ваш напиток {self.name} объемом {self.capacity} мл готовится!"
class Desert(Dish):
def __init__(self, name, price, kkal):
super().__init__(name, price)
self.kkal = kkal
def prepare(self):
return f"Ваш дессерт {self.name} каллорийностью {self.kkal} готовится!"
class Wallet():
def __init__(self, vol):
self.vol = vol
def __add__(self):
add = input("На сколько едениц вы хотите пополнить кошелек?\n>> ")
self.vol += add
class Order():
def __init__(self, dish1, dish2, di):
print("### Добро пожаловать, Александр! Это ваша любимая шаурмечка. Что будете брать сегодня?####")
print(f"У меня есть {wallet.vol} рублей.")
for dish in order:
print(dish.prepare())
wallet.vol = wallet.vol - dish.price
print(f'Вкусно поел! Осталось {wallet.vol} рублей.')
+54
View File
@@ -0,0 +1,54 @@
from random import randint
class Warrior:
def __init__(self, name):
self.name = name
self.hp = 100
self.type = ''
self.damage = 0
self.ultimate = False
self.parrying = 0
def info(self):
print('___________________')
print('Name: {}'.format(self.name))
print('HP: {}'.format(self.hp))
print('Type: {}'.format(self.type))
print('___________________')
def attack(self, enemy):
self.damage = randint(5, 50)
if self.damage >= 50 and not self.ultimate:
self.ultimate = True
enemy.hp -= self.damage
enemy.hp = max(0, enemy.hp)
print(f"{self.name} uses an ULTIMATE attack! Hit -{self.damage}. {enemy.name}'s HP: {enemy.hp}")
elif self.damage <= 30:
if self.damage > enemy.parrying:
enemy.hp -= self.damage
enemy.hp = max(0, enemy.hp)
print(f"{self.name} attacks! Hit -{self.damage}. {enemy.name}'s HP: {enemy.hp}")
else:
print(f"{enemy.name} is parrying {self.name} attack!")
if enemy.hp <= 0:
print(f"{enemy.name} is defeated!")
swordsman = Warrior('adam',)
swordsman.type = 'swordsman'
swordsman.parrying = 20
mag = Warrior('eva')
mag.type = 'magician'
mag.parrying = 15
while mag.hp > 0 and swordsman.hp > 0:
# Decide randomly who attacks
attacker, defender = (swordsman, mag) if randint(0, 1) == 0 else (mag, swordsman)
attacker.attack(defender)
# Check if the defender is defeated
if defender.hp <= 0:
print(f"\n{attacker.name} is the winner!")
print(f"{swordsman.info()}\n{mag.info()}")
break
+54
View File
@@ -0,0 +1,54 @@
**ООП** – парадигма программирования в которой все объекты представляются в виде экземпляров классов. Каждый класс обладает своими атрибутами и методами.
**Атрибуты** - данные, характеризующие класс.
**Методы** - функции, которые экземпляр класса может выполнять. С помощью методов можно влиять на атрибуты классов.
```python
class Human:
name = 'human'
age = 0
sex = "male"
def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
def info(self):
print("Name:", self.name)
print("Age:", self.age)
print("Sex:", self.sex)
def Speak(self):
print(f"Hello, i'm {self.name}")
kirill = Human(name="kirill", age=17, sex="male")
katya = Human(name='Kate', age=18, sex="female")
```
## Наследование в ООП
**Наследование** в ООП это концепция, позволяющая классу, наследовать атрибуты и методы от другого класса.
![[th-1161040066.jpg]]
```python
class Human():
def __init__(self):
self.health = 100;
self.strenth = 100;
self.brain = 100;
self.money = 0
class Student(Human):
Human.health = 70
Human.money = 0
Human.brain = -10
Human.strenth = 70
student1 = Student()
print(student1.brain)
```
### Перегрузка операторов
**Перегрузка операторов** - возможность определять собственное поведение для стандартных операторов языка python при работе с объектами пользовательских классов.
+7
View File
@@ -0,0 +1,7 @@
%% Zoottelkeeper: Beginning of the autogenerated index file list %%
[[Programming/C/C|C]]
[[Programming/images/images|images]]
[[Programming/ML/ML|ML]]
[[Programming/N-company.db|N-company.db]]
[[Programming/OAP/OAP|OAP]]
%% Zoottelkeeper: End of the autogenerated index file list %%
Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

+4
View File
@@ -0,0 +1,4 @@
%% Zoottelkeeper: Beginning of the autogenerated index file list %%
[[Study/Vipnet|Vipnet]]
[[Study/ЭВМ|ЭВМ]]
%% Zoottelkeeper: End of the autogenerated index file list %%
+9
View File
@@ -0,0 +1,9 @@
Межсетевые мастер ключи, в отличие от основного ключа (действующего пределах одной сети) межсетевой предназначен для осуществления межсетевого взаимодействия. Бывает двух видов:
1. Симетричный
- Индивидуальный
- Универсальный
2. Ассиметричный
- Открытый
- Закрытый
## Ключевая информация
+25
View File
@@ -0,0 +1,25 @@
**Информация** - интерпретация данных (раскрытие смысла содержания)
**Данные** - зарегистрированный сигнал.
**Сигнал** - изменяющийся во времени физический процесс.
Информация обладает динамическим характером, она существует только в момент взаимодействия данных и методов. Всё остальное время она пребывает в состоянии данных.
Таким образом, информация существует только в момент протекания информационного процесса.
Информационный процесс - процесс, связанный с определенной операцией над информацией.
Операции: Прием, передача, хранение, изменение и удаление.
ГОСТ 2.105.2019г. О Оформлениии документов
| Абзац | Основной текст | Заголовок | Подзаголовок | Таблица <br>цифры | Таблица текст |
| :-----------------------------: | :-------------: | :-------------: | :-------------: | :---------------: | :-------------: |
| выравнивание | по ширине | по ширине | по ширине | по центру | по ширине |
| отступ<br>_слева_<br>_справа_ | 0 | 0 | 0 | 0 | 0 |
| интервал<br>_сверху_<br>_снизу_ | 0 | <br>18<br>12 | <br>12<br>12 | 0 | 0 |
| первая строка | 1,25 | 1,25 | 1,25 | 0 | 0 |
| межстрочный интервал | 1,5 | 1,5 | 1,5 | 1 | 1 |
| Шрифт | | | | | |
| названиие | Times New Roman | Times New Roman | Times New Roman | Times New Roman | Times New Roman |
| кегель | 14 | 16 | 14 | 10-12 | 10-12 |
| начертание | обычное | Полужирный | Полужирный | обычный | обычный |
+3
View File
@@ -0,0 +1,3 @@
%% Zoottelkeeper: Beginning of the autogenerated index file list %%
[[cybersec/AD/Active Directory Basics|Active Directory Basics]]
%% Zoottelkeeper: End of the autogenerated index file list %%
+28
View File
@@ -0,0 +1,28 @@
Сервер, на котором запущен Active Directory называется ***Доменный контроллер***
Главные примеущества:
1. Централизованное управление пользователями
2. Управление политиками безопасности - вы можете настроить политику на доменном контроллере и применить её на всю сеть
### Пользователи
Пользователи одна из самых распространённых типов объектов в **AD**. Пользователи могут быть аутентифицированны доменом и им могут быть выданы привелегии, такие как чтение файлов и использование притеров. Пользователи делятся на 2 типа:
1. **Люди** - пользователи, отражающие человека в компании, который пользуется компьютером.
2. **Сервисы** - пользователи, созданные для корректной работы сервисов (базы данных и т.д). Такие пользователи очень сильно ограниченны в правах и имеют доступ только к тем привелегиям, которые необходимы для их корректной работы.
### Машины
Еще один тип объектов. Когда компьютер присоединяется к домену, объект создается. Так же подчиняются политикам безопасности, но имеют учётную запись локального администратора, имеющая полный доступ к рессурсам машины.
### Группы
Группы позволяют объединить пользователей и машины для удобного управления правами и привелегиями. Так же подчинаются политикам безопасности и имеют привелегии на рессурсы в сети.
### Группы по умолчанию
После установки AD создаются группы по умолчанию:
| Группа | Описание |
| -------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| Администраторы домена | Юзеры этой групы имеют админ права на всем домене. По умолчанию могут администрировать любой ПК включая Доменный Контроллер |
| Операторы Сервера | Пользователи могут администировать Доменный Контроллер. Они не могут изменять членство в каких-либо других группах. |
| Операторы Резервного Копирования | Юзеры имеют доступ к любому файлу игнорируя права. Используются для создания резевных копий. |
| Операторы Аккаунтов | Юзеры могут создавать или изменять другие аккаунты в домене |
| Доменные пользователи | Все пользователи домена |
| Доменные компы | Все компы домена |
| Доменные Контроллеры | Все Доменные контроллеры |
@@ -0,0 +1,3 @@
%% Zoottelkeeper: Beginning of the autogenerated index file list %%
[[cybersec/Computer science/Архитектура компьютера|Архитектура компьютера]]
%% Zoottelkeeper: End of the autogenerated index file list %%
+3
View File
@@ -0,0 +1,3 @@
%% Zoottelkeeper: Beginning of the autogenerated index file list %%
[[cybersec/Forensic/Network layers|Network layers]]
%% Zoottelkeeper: End of the autogenerated index file list %%
+148
View File
@@ -0,0 +1,148 @@
**NTA (Network Traffic Analysis) - Анализ сетевого трафика** включает в себя:
1. **Collecting traffic** - сбор трафика в режиме real time
2. **Setting a baseline for day-to-day network communications** - Установка базового уровня для повседневной сетевой связи.
3. **Identifying and analyzing** - идентификация и анализ трафика на нестандартных портах, подозрительных хостах и различных проблем с протоколами.
4. **Detecting** - распознавание вирусов в сети, таких как программы-вымогатели, эксплойты и не стандартные события.
| Инструмент | Описание |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **tcpdump** | утилита командной строки, которая спомощью LibPcap захватывает и интерпретирует сетевой трафик из сетевого интерфейса или файла захвата |
| **Tshark** | Анализатор, похожий на tcpdump, захватывает пакеты из действующей сети или читает и декодирует файлы. Wireshark только в консоли |
| **Wireshark** | Графический анализатор сетевого трафика. Захватывает и декодирует кадры по сети и позволяет глубже изучить окружающую среду. Может запускать множество различных анализаторов трафика, что бы охарактеризовать протоколы и приложения и получить представление о том, что происходит |
| **NGrep** | как grep только для сети, работает pcap файлами |
| **tcpick** | анализатор пакетов в командной строке, специализируется на отслеживании и повторной сборке TCP потоков. |
| **Network Teps** | Тапы - устройства, способные снимать копию трафика и отправлять в другое место для анализа. Могут быть линейными и внеполосными. Могут активно перехватывать и анализировать трафик напрямую или пассивно, возвращая исходный пакет обратно в сеть, будто ничего не происходило |
| **Networking Span Ports** | Способ копирования кадров с сетевых устройств второго или третьего уровня во вреся исходящей или входящей обработки и отправки их в точку сбора. |
| **Elastic Stack** | кульминация инструментов, которые могут получать данные из многих источников, принимать их и визуализировать, что бы обеспечить их посик и анализ |
| **SIEMS** | являются центральной точкой анализа и визуализации данных |
# Процесс анализа трафика
![[Pasted image 20250105162015.png]]
1. **Получение трафика**
2. **Удаление шума с помощью фильтрации** - фильтрация трафика от ненужной нам информации
3. **Анализ и исследование трафика** - Осмотр отфильтрованного трафика, проверка на наличие подозрительных хостов, подключений к редкоиспользуемым портам и проверка флагов в заголовке TCP.
4. **Обнаружение и оповещение**
5. **Исправление и мониторинг трафика**
Пятый пункт фактически начинает процесс с самого начала, т.е. сам по себе процес всегда зациклен и должен выполнятся.
# OSI\TCP-IP
![[Pasted image 20250105164935.png]]
![[Pasted image 20250105165103.png]]
![[Pasted image 20250105165110.png]]
**MAC Address** - 48 битный, 6 байтный адрес, представленный в шестнадцатиричном формате. Используется на 2 уровне OSI или на 1 уровне TCP-IP, обеспечивая связь между хостами. Каждая сетевая карта имеет уникальный, встроенный MAC адрес, прошитый с ней при изготовлении.
![[Pasted image 20250105165916.png]]
**octet** - В сетевой терминологии октет (octet) обозначает последовательность из 8 битов. С помощью октетов определяют данные, передаваемые в сети. Например, в виде байтов (1 байт = 1 октет). В этом случае октеты могут представлять символы, числа или другую информацию, передаваемую через сетевое соединение.
***IP address*** - (Internet protocol address) уникальный числовой идентификатор устройства в сети интернет, отвечает за маршрутизацию пакетов.
**IPv4** - самый распространненный вид ip адреса, состоит из 4 байтов (32битное число), записывается в десятичной системе исчисления в виде четырех чисел, от 0 до 255, разделенных точкамим, например **192.168.0.1**
# IPv6
**IPv6** - состоит из 16 байтов (128 битов), записывается в виде восьми четырехзначных шестнадцатеричных чисел, разделенных двоеточием, например **`2001:0db8:85a3:0000:0000:8a2e:0370:7334`**.
В данном случае "пропуски" относятся к сокращению записи **IPv6-адресов**. IPv6-адреса состоят из восьми групп по четыре шестнадцатеричных цифры (каждая группа разделена двоеточием). Если одна или несколько групп состоят из нулей, их можно **опустить**, чтобы сократить запись.
### Что значит опускание нулей?
1. **Ведущие нули в группе можно не указывать.**
Например:
Группа `00ab` может быть записана как `ab`.
2. **Последовательность групп, содержащих только нули, можно заменить двойным двоеточием (`::`).**
Например:
Адрес `fe80:0:0:0:0:0:0:1` содержит 6 групп из нулей подряд. Эти нулевые группы можно заменить двойным двоеточием:
**`fe80::1`**.
3. **Двойное двоеточие можно использовать только один раз в адресе.**
Это ограничение существует для того, чтобы однозначно восстановить полный адрес. Если использовать `::` дважды, было бы непонятно, сколько групп нулей пропущено в каждом месте.
### Пример объяснения сокращения
Рассмотрим адрес:
`2001:0db8:0000:0000:0000:ff00:0042:8329`
1. Уберем ведущие нули в каждой группе:
**`2001:db8:0:0:0:ff00:42:8329`**
2. Заменим подряд идущие группы из нулей двойным двоеточием:
**`2001:db8::ff00:42:8329`**
Если вы встретите адрес с двойным двоеточием, например, `2001:db8::1`, это означает, что пропущенные группы заполнены нулями:
**`2001:0db8:0000:0000:0000:0000:0000:0001`**.
### Тип адресации IPv6
| Тип | Описание |
| --------- | ----------------------------------------------------------------------- |
| Unicast | Адрема для одного интерфейса |
| Anycast | Адреса для нескольких интерфейсов, где только один получает пакеты |
| Multicast | Адреса для нескольких интерфейсов, где они получают один и тот же пакет |
| Broadcast | Не существует и реализуется с помощью Multicast |
## TCP трехстороннее рукопожатие
Основные флаги TCP:
1. **SYN** - синхронизация
2. **ACK** - подтверждение
### Что происходит когда клиент запрашивает связь с сервером по TCP?
1. Клиент оправляет пакет с флагом **SYN** и другими согласованными параметрами в заголовке TCP
1. Это пакет синхронизации. Он будет установлен только в первом пакете от хоста и сервера и позволяет установить сеанс, позволяя с обоих концов согласовать порядковый номер для начала связи
2. Это играет решающую роль в отслеживании пакетов. Наряду с синхронизацией порядкового номера, на этом этапе согласуются многие другие параметры.
2. Сервет отвечает TCP пакетом, внутри которого установлен **SYN** флаг для согласования порядкового номера и флаг **ACK** для подтверждения предыдущего пакета **SYN**, отправленного клиентом.
1. Сервер так же включит любые изменения в параметры TCP, которые ему необходимо установить в полях заголовка.
3. Клиент ответит TCP пакетом, включающим в себя **ACK** для подтверждения согласия на согласование. Этот пакет завершает трехстороннее рукопожатие (three-way handshake) и устанавливает соединение между клиентом и сервером.
![[Pasted image 20250105183609.png]]
Если посмотреть на красный квадрат, то мы увидим пример трехстороннего рукопожатия. Сначала клиент отправляет **SYN** флаг серверу, на что сервер отвечает **SYN** для согласования порядкового номера и **ACK** для подтверждения предыдущего **SYN**. После чего идет последний пакет **ACK** от клиента, который завершает рукопожатия и устанавливает соединение.
Зеленым подчеркнуты 2 числа - одно из них это случайный номер "старшего" порта (клиенского порта, назначенного из диапазона динамических портов (**49152–65535**) операционной системой ) и "младшего" порта (порта на стороне сервера, на котором сервер принимает входящие подключения. Обычно это порт из диапазона **01023** ). В данном случае порт **80** это младший порт, стандартный порт для HTTP соединения, а **57678** - старший порт со стороны клиента.
### Окончание соединения TCP
![[Pasted image 20250105185359.png]]
Флаг **FIN** используется для обозначения необходимости разрыва соединения, и отправитель запрашивает завершение соединения.
Клиент подтверждает получение данных и отправляет **FIN** и **ACK** что бы завершить сессию. Сервер подтверждает получение **FIN** от клиента и отправляет **FIN ACK**. В итоге, клиент подтверждает закрытие сессии и закрывает соединение.
Всегда перед закрытием соединения мы увидим такую комбинацию:
1. **`FIN, ACK`**
2. **`FIN, ACK`**,
3. **`ACK`**
# FTP
**FTP** - file transfer protocol. Протокол позволяет быстро передавать данные между вычислительными устройствами. **Признан небезопасным и браузеры не поддерживают с 2020 года***. Использует **20 порт** для передачи данных и **21 порт** для получения данных.
Может работать в 2х режимах: **active** (по умолчанию) и **passive**.
**Active** в этом типе FTP клиент инициирует установление соединения с FTP-сервером, после чего сервер открывает новый порт для передачи данных, которые клиент должен принять. По умолчанию сервер использует порт 20 для передачи данных, а клиент использует порт 21 для установления соединения. Проблема этого типа FTP заключается в том, что многие сети блокируют входящие соединения на порту 20. **Passive** - в этом типе FTP клиент инициирует установление соединения с FTP-сервером, после чего сервер отвечает клиенту со своим IP-адресом и номером порта, который клиент может использовать для передачи данных. Этот тип FTP широко используется в Интернете, так как клиентам не нужно открывать новые порты для передачи данных, что делает его более безопасным и надежным.
#### FTP Commands
| Команда | Описание |
| ------- | ---------------------------------------------------------------------- |
| ftp | запускает программу FTP-клиента в командной строке |
| open | устанавливает соединение с FTP-сервером |
| user | вводит имя пользователя для аутентификации на FTP-сервере |
| pass | вводит пароль для аутентификации на FTP-сервере |
| cd | изменяет текущую директорию на FTP-сервере |
| lcd | изменяет текущую директорию на локальном компьютере |
| ls | показывает содержимое текущей директории на FTP-сервере |
| dir | показывает содержимое текущей директории на FTP-сервере в виде таблицы |
| get | скачивает файл с FTP-сервера на локальный компьютер |
| mget | скачивает несколько файлов с FTP-сервера на локальный компьютер |
| put | загружает файл с локального компьютера на FTP-сервер |
| mput | загружает несколько файлов с локального компьютера на FTP-сервер |
| delete | удаляет файл на FTP-сервере |
| mdelete | удаляет несколько файлов на FTP-сервере |
| quit | закрывает соединение с FTP-сервером и выходит из программы FTP-клиента |
# SMB
**SMB** - Server Message Block - протокол удалённого доступа, позволяющий совместно использовать ресурсы хостов. Требует аутентификации пользователя что бы гарантировать что у пользователя есть права на использование этого ресурса и выполнения действий.
| Название механизма | порты |
| ------------------ | ----------- |
| NetBios | UDP 137/138 |
| TCP | TCP 445 |
| NetBios | TCP 139 |
## Анализ трафика
**Анализ тарфика** - детальное исследование события или процесса, определение его происхождения и влияния, принятие конкретных мер предосторожности и действий для предотвращения угроз. Касаемо сетевого трафика - обработка полученного дампа, устранение шума, проверка на наличие подозрительных моментов.
| **Dependencies** | **Passive** | **Active** | **Description** |
| ----------------------------------------- | ----------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Permission` | `☑` | `☑` | В зависимости от организации, в которой мы работаем, сбор данных может противоречить политике или даже закону в некоторых чувствительных областях, таких как здравоохранение или банковское дело. Обязательно всегда получайте разрешение в письменной форме от лица, обладающего соответствующими полномочиями, чтобы предоставить вам его. Мы можем называть себя хакерами, но мы хотим оставаться в свете с юридической и этической точки зрения. |
| `Mirrored Port` | `☑` | ☐ | Сетевой интерфейс коммутатора или маршрутизатора, настроенный для копирования данных из других источников в этот конкретный интерфейс, а также возможность перевода вашего сетевого адаптера в неразборчивый режим. Копирование пакетов на наш порт позволяет нам проверять любой трафик, предназначенный для других каналов, который мы обычно не можем видеть. Поскольку VLAN и порты коммутатора не будут пересылать трафик за пределы своего широковещательного домена, нам необходимо подключиться к сегменту или скопировать этот трафик на наш конкретный порт. Когда речь идет о беспроводной связи, пассивная технология может быть немного сложнее. Мы должны быть подключены к SSID, от которого мы хотим захватывать трафик. Простое пассивное прослушивание радиоволн вокруг нас предоставит нам множество рекламных объявлений SSID, но не более того. |
| `Capture Tool` | `☑` | `☑` | Способ поглощения трафика. Достаточно компьютера с доступом к таким инструментам, как TCPDump, Wireshark, Netminer или другим. Имейте в виду, что при работе с данными PCAP эти файлы могут быстро стать очень большими. Каждый раз, когда мы применяем к нему фильтр в таких инструментах, как Wireshark, приложение снова анализирует эти данные. Это может быть ресурсоемкий процесс, поэтому убедитесь, что на хосте достаточно ресурсов. |
| `In-line Placement` | ☐ | `☑` | Установка Tap в линию требует изменения топологии сети, в которой вы работаете. Хосты источника и назначения не заметят разницы в трафике, но ради маршрутизации и коммутации это будет невидимый следующий переход трафика. проходит по пути к месту назначения. |
| `Network Tap or Host With Multiple NIC's` | ☐ | `☑` | Компьютер с двумя сетевыми адаптерами или такое устройство, как сетевой перехватчик, необходим для обеспечения бесперебойной передачи данных, которые мы проверяем. Думайте об этом как о добавлении еще одного маршрутизатора в середину канала. Для активного захвата трафика мы будем дублировать данные непосредственно из источников. Лучшее место для ответвления — на третьем уровне связи между коммутируемыми сегментами. Это позволяет захватывать любую маршрутизацию трафика за пределами локальной сети. Коммутируемый порт или сегментация VLAN не отфильтровывают наше мнение здесь. |
| `Storage and Processing Power` | `☑` | `☑` | Вам понадобится много места для хранения и вычислительная мощность для захвата трафика. Гораздо больше трафика проходит по каналу третьего уровня, чем только внутри коммутируемой локальной сети. Подумайте об этом так; Когда мы пассивно захватываем трафик внутри локальной сети, это похоже на наливание воды в чашку из фонтана. Это постоянный поток, но управляемый. Активный захват трафика по маршрутизируемому каналу больше похож на использование шланга для наполнения чашки воды. За потоком стоит гораздо большее давление, и хосту может потребоваться большая обработка и хранение. |
# TCPdump
Базовые команды
| Команда | Результат |
| ------- | ---------------------------- |
| -D | Покажет доступные интерфейсы |
+3
View File
@@ -0,0 +1,3 @@
***DHCP (Dynamic Host Configuration Protocol)*** - это протокол на уровне приложений (application level), который базируется на **UDP** - сервер открывает UDP 67 порт, а клиент UDP 68 порт для прослушивания.
DHCP придерживается 4 шагов:
+15
View File
@@ -0,0 +1,15 @@
**DNS** - простой путь общения между девайсами в интернете без запоминания большого количества чисел. Т.е вместо того, что бы писать 8.8.8.8 - можно просто написать google.com.
Виды DNS
1. TLD (Top-Level Domain) - домен первого уровня, самый популярный и расспространённый вид домена. Делиться на 2 вида доменов:
- Generic Top-Level (.com, .org)
- Country Code Top-Level (.ru, .us)
2. Second-Level Domain - часть домена, которая является названием сайта, например у google.com - google это Second-Level Domain
3. Subdomain - admin.tryhackme.com - где admin это часть субдомена
Типы DNS записей
1. ***A record*** - включает в себя *IPv4* адресс
2. ***AAAA record*** - включает в себя *IPv6* адресс
3. ***CNAME*** - включает в себя другое доменное имя. К примеру онлай магазин thm имеет домен store.tryhackme.com, который возвращает *CNAME* запись shops.shopify.com
4. ***MX*** - включает в себя адрес email
5. ***TXT*** - любая txt запись
+15
View File
@@ -0,0 +1,15 @@
****
**Firewall** - (фаерволл, брандмауэр) используется для фильтрации трафика.
Фильтрация происходит по таким факторам как:
1. Откуда исходит трафик?
2. Куда направляется трафик?
3. Для какого порта?
4. Какой протокол используется?
(в некоторых случаях возможна фильтрация по содержанию)
Поговорим про две основные категории:
| Категория | Описание |
| --------- | --------------------------------------------------------------------------- |
| Stateful | этот брандмауэр определяет поведение устройства на основе всего соединения. |
| Stateless | Устанавливает статические правила для индивидуальных пакетов |
+9
View File
@@ -0,0 +1,9 @@
%% Zoottelkeeper: Beginning of the autogenerated index file list %%
[[cybersec/Network/DHCP|DHCP]]
[[cybersec/Network/DNS|DNS]]
[[cybersec/Network/Firewall|Firewall]]
[[cybersec/Network/photoes/photoes|photoes]]
[[cybersec/Network/Введение в сети.|Введение в сети.]]
[[cybersec/Network/Топологии|Топологии]]
[[cybersec/Network/Что такое Vless, Vmess, shadowsocks|Что такое Vless, Vmess, shadowsocks]]
%% Zoottelkeeper: End of the autogenerated index file list %%
Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

@@ -0,0 +1,29 @@
**OSI** - теоритическая модель, показывающая как работает сеть.
| Название уровня | Описание уровня |
| ----------------------------------- | --------------------------------------------------------------- |
| 7. Приложение (**Application**) | На этом уровне работают протаколы **HTTP**, **FTP** и подобные. |
| 6. Представление (**Presentation**) | Сжатие и шифрование, добавление meta данных. |
| 5. Сессионный (**Session**) | Поддержка соединения и синхронизация. |
| 4. Транспортный (**Transport**) | TCP, UDP, порты и так далее. |
| 3. Сетевой (**Network**) | IP, Маршрутизация, пакеты |
| 2. Канальный (**Datalink**) | MAC адреса, комутирование (switch) |
| 1.Физический (**Physical**) | Пересылка данных по кабелю, оптоволокну и так далее. |
## MAC address
**MAC address** - 48 битный адрес, является уникальным идентификатором сетевого оборудования (сетевой карты и т.д). Имеет вид **XX:XX:XX:XX:XX:XX**. Используется на 2 уровне **OSI**.
## IP address
**IP address** - internet protocol - набор символов, позволяющий компьютерам идентифицировать друг друга.
**IPv4** - 32 битный адрес, записывающийся как числа десятичной системы исчисления, разделённые точкой. Разделен на 4 блока, максимальная величина которых - 255.
Пример IP адреса - **192.168.1.50**
**IPv6** - 128 битный адрес, записывающийся как числа шеснадцатиричной системы исчисления, разделенные двоеточием.
## Подсети
**Маска подсети** - показывает, какая часть адрса указывает на адрес сети, а какая на конкретное устройство.
## NAT
**NAT** - позволяет через один IP подключить несколько компьютеров. (Эту тему расскроем подробнее позже)
# Основные типы сетей
+14
View File
@@ -0,0 +1,14 @@
**Двуточечная топология** - топология, при которой два хоста соеденены кабелем напрямую.
![[Pasted image 20250307092204.png]]
**Шинная топология** - топология, при которой все хосты соеденены с общей шиной. Так как среда передачи общая, отправлять данные может только один хост может отправлять данные, остальные же - только читать и оценивать.
![[Pasted image 20250307092214.png]]
**Звездная топология** - все хосты подключаются к **ценральному** устройству (обычно это хаб, коммутатор или маршрутизатор) которое управляет пакетами и трафиком.![[Pasted image 20250312213119.png]]
**Кольцевая топология** -
На физическом уровне:
- В каждый хост подключается по 2 кабеля, один для получения информации, другой - для отправки.
На логическом уровне:
Базируется на физическом уровне звездной топологии, где дистребьютер симулирует кольцо, перенаправляя трафик от одного порта к следующему..
![[Pasted image 20250312220104.png]]
@@ -0,0 +1,32 @@
Перед тем, как обсуждать протоколы, предлагаю ознакомится со статьей про proxy, если вдруг кто-то из читающих еще не знает что это такое: [тык](https://selectel.ru/blog/what-is-proxy/)
Для понимания, что такое Vless, Vmess, shadowsocks нам надо разобрать что такое ***V2Ray***.
***V2Ray*** - гипкая платформа для прокси, позволяющая шифровать, маршрутизировать и скрывать трафик. Как она работает?
1. **Клиент отправляет запрос**
2. **Данные шифруются**
- Клиент шифрует трафик с использованием настроенного протокола (например, VMess, Shadowsocks, Trojan или других).
- Шифрование делает трафик нечитаемым для провайдера и систем наблюдения, скрывая содержимое и даже сам факт использования прокси.
3. **Данные передаются на сервер**
- Шифрованный трафик отправляется на сервер V2Ray через выбранный транспортный протокол:
- **TCP** (надежная передача данных),
- **WebSocket** (имитация веб-трафика),
- **QUIC** (быстрая передача с меньшими задержками),
- **TLS** (шифрование поверх HTTPS для сокрытия трафика).
- Сервер может быть настроен так, чтобы имитировать обычные HTTPS-запросы, что помогает обходить блокировки.
4. **Обработка на сервере**:
- Сервер V2Ray принимает зашифрованные данные, расшифровывает их и перенаправляет на нужный ресурс (например, веб-сайт, API, или другой сервер).
- Сервер маскирует запрос, делая его похожим на обычный HTTP/HTTPS-трафик, чтобы избежать обнаружения.
5. **Ответ от сервера**:
- Ответ от запрашиваемого ресурса поступает на сервер V2Ray.
- Сервер шифрует данные и передаёт их обратно клиенту.
6. **Клиент расшифровывает данные**:
- Клиент получает зашифрованные данные от сервера, расшифровывает их и передаёт исходному приложению (например, браузеру).
**Shadowsocks** - бесплатный open-source протокол, широко используемый в китае для обхода блокировок. Сам по себе не является прокси, но как правило является клиентским ПО, помогающее подключится к стороннему прокси серверу SOCKS5. После подключения трафик будет перенаправлен в прокси.
**Vless** - это протокол управления пользователем для аутентификации/связи клиент-сервер, который НЕ работает без какого-либо другого метода шифрования, такого как XTLS в случае Xray. Более безопасен и производителен, в сравнении с оригинальным V2Ray.
**Vmess** - протокол, использующий AES, RSA и HMAC для шифрования трафика, а TCP, UDP, mKCP и WebSocket в качестве способов передачи. Не считается безопасным с 2020 года, поскольку GFW (Great Firewall) в китае совершенствует свои методы перехвата пакетов.
Сравнение на личном опыте. У меня поднят https://github.com/Gozargah/Marzban, который позволяет выбирать протоколы для подключения, и vless самый быстрый и стабильный из троих.
+241
View File
@@ -0,0 +1,241 @@
## Перемещение по файловой системе и работа с ней.
### 1. cd
```
cd </path/to/directory>
```
Сокращенное _change directory_. Позволяет перемещаться по файловой системе.
Путь может быть как абсолютным (_начмнаться с /_), так и относительным (_подразумевается расположение пути относительно текущего_).
![Рис. 1](https://kmb.cybber.ru/bash/img/1.png)
- **cd** без параметров перемещает в домашнюю директорию пользователя.
- **cd -** перемещает по прошлому пути.
- **.** (точка) текущая директория
- **..** (две точки) родительская директория
- **~** (тильда) домашняя директория пользователя
### 2. pwd
```
pwd
```
Cокращение от _print work directory_. Выводит текущий абсолютный путь.
![Рис. 2](https://kmb.cybber.ru/bash/img/2.png)
### 3. ls
```
ls </path/to/directory>
```
Сокращение от list. Отбражает все **файлы** и **директории** в директории </path/to/directory>.
![Рис. 3](https://kmb.cybber.ru/bash/img/3.png)
- **ls** без параметров отображает все файлы и директории по **текущему** пути
- **ls -a** отображает скрытые файлы и папки
- **ls -l** отображает расширенную информацию о файлах и папках
### 4. cat
```
cat <file_name>
```
Отображает содержимое файла file_name.
![Рис. 4](https://kmb.cybber.ru/bash/img/4.png)
### 5. less
```
less <file_name>
```
Отображает содержимое файла file_name, выводит только содержимое помещающееся в окно терминала. Навигация по файлу возможна **клавишами-стрелками**, кнопка "q" закрывает просмотр.
![Рис. 5](https://kmb.cybber.ru/bash/img/5.png)
![Рис. 5-5](https://kmb.cybber.ru/bash/img/5-5.png)
### 6. file
```
file <file_name>
```
Выводит на экран тип файла. Настоящий тип, а не указанный в расширении.
![Рис. 6](https://kmb.cybber.ru/bash/img/6.png)
### 7. cp
```
cp <file1> <file2>
```
Сокращение от **copy**. Копирует файл **file1** по пути **file2**.
### 8. mv
```
mv file1 file2
```
Сокращение от **move**.
Перемещает файл **file1** по пути **file2**.
### 9. rm
```
rm <file1>
```
Сокращение от **remove**.
Удаляет файл **file1**.
- **rm -r** удаляет директорию
### 10. mkdir
```
mkdir <directory>
```
Сокращение от **make directory**.
Создает директории с именем **directory**.
### 11. locate
```
locate <file>
```
Возвращает все пути с вхождениями **file** в них.
### 12. man
```
man <cmd>
```
Отображает справку по команде **cmd**.
### 13. echo
```
echo <string>
```
Выводит заданную строку **string** на экран.
### 14. strings
```
strings <file1>
```
Выводит все строки с печатными символами из файла **file1** на экран.
## Перенаправление вывода
Bash позволяет перенаправлять стандартный вывод в файлы с помощью оператора **>**. Если файл не существовал, он будет создан, иначе он будет перезаписан.
```
$ echo hello! > 1.txt
$ ls
1.txt
$ cat 1.txt
hello!
```
Если требуется _дописать_ строку в файл используется оператор **>>**.
## Конвейер
Если нужно перенаправить вывод одной команды на вход другой используется оператор **|**.
```
$ locate bin | less
```
## Поиск по содержимому файлов
```
$ grep [opts] "pattern" file
```
```
$ cat file | grep [opts] "pattern"
```
**-v** - вывести строки, где не всречается образец
**-i** - игнорировать регистр символов
**-n** - печатать номера строк
**-a** - искать по бинарным файлам
**-E** - расширенные регулярные выражения
**-o** - вывести только совпадающую с образцом часть строки
## Регулярные выражения
```
$ egrep [opts] "pattern" file
```
```
$ cat file | egrep [opts] "pattern"
```
`^` `"^license"` - начало строки
`$` `"license$"` - конец строки
`[abc]` `"[0-9]"` - любой символ из перечисленных
`[^abc]` `"[^ ]1"` - любой кроме перечисленных
`[ab]{8}` `"w{3}"` - повторяется несколько раз
`(abc)` `"(license)"` - группа символов
`.` `"Li.en.e"` - любой символ
`*` `"\([a-z ]*\"` - повторить ноль или больше раз
`+` `"\(a.+\)"` - повторить один или больше раз
`?` `"(copy)?right"` - повторить ноль или один раз
## Обработка текста
Вывести символы со 2 по 5 каждой строки
```
$ cat file | cut -c 2-5
```
Отсортировать строки по алфавиту
```
$ cat file | sort
```
Удалить одинаковые строки, идущие подряд
```
$ cat file | uniq
```
Вывести уникальные строки
```
$ cat file | sort | uniq
```
```
$ cat file | awk 'program'
```
`'{print $0}'` - вывести каждую строку `'{print $1}'` - вывести первое слово каждой строки `'{print "1: " $1 ", 2: " $2}'` - вывести для каждой строки 1:<слово 1>, 2:<слово 2>
+4
View File
@@ -0,0 +1,4 @@
%% Zoottelkeeper: Beginning of the autogenerated index file list %%
[[cybersec/OS/Bash commands|Bash commands]]
[[cybersec/OS/Powershell commands|Powershell commands]]
%% Zoottelkeeper: End of the autogenerated index file list %%
+8
View File
@@ -0,0 +1,8 @@
**Get-Command** - получение списка всех доступных команд и алиасов
Как пример можно использовать `Get-Command -CommandType "Function"` что бы получить вывод всех команд, тип которых - функция.
**Get-Help** - аналогично команде `man` в Linux позволяет получить информацию о команде: атрибуты, способ использования и примеры.
`Get-Help [command] -examples` позволяет получить примеры использования команды.
**Find-Module** и **Install-Module** - используются для того, что бы найти и установить дополнительный модуль (как в unix системах - установка доп. софта)
`Find-Module -Name "PowerShell*"`
`Install-Module -Name "PowerShellGet"`
+8
View File
@@ -0,0 +1,8 @@
Когда мы используем **metasploit framework** то мы работаем с консолью. Для запуска этой консоли необходимо прописать `msfconsole`
Перед тем как погружаться, нам необходимо понимать эти базовые вещи:
1. **Exploit** - часть кода которая испольует уязвимость
2. **Vulnerability** - уязвимость
3. **Payload** - "Полезная" нагрузка эксплоита
## msfconsole
+111
View File
@@ -0,0 +1,111 @@
Когда мы сканируем с помощью nmap, есть 3 базовых типа сканирования:
1. **TCP connect scans** `-sT`
2. **SYN Полуоткрытое сканирование** `-sS`
3. **UDP scans** `-sU`
Дополнительно есть несколько не так часто используемых, некоторые из них мы также рассмотрим (хотя и менее подробно). Это:
1. **TCP null scans** `-sN`
2. **TCP FIN scans** `-sF
3. **TCP Xmas Scans** `-sX`
Многие из них (за исключением UDP) мы используем в очень похожих целях, однако, способ их работы отличаются друг от друга. Это означет то, что один из базовой тройки вероятнее всего будет вашим выбором в большинстве ситуаций, но не стоит забывать о существовании других возможных типов сканирования.
## TCP connect scans `-sT`
Что бы понимать как работает этот вид сканирования, нужно понимать концепцию ***Трехстороннего TCP рукопожатия***. Давайте вспомним что это обозначает. ***RFC 9293***
***Трехстороннее TCP рукопожатие*** состоит из трёх (ну не четырех же =) ) стадий.
1. Клиент (в нашем случае атакующий) отсылает TCP запрос к целевой системе с флагом `SYN`.
2. Сервер признает этот TCP запрос, включающий в себя `SYN` флаг, отсылается ответ с флагами `SYN` и `ASK`.
3. Клиент получает ответ и отправляет подтверждение с флагом `ASK`
![[Pasted image 20250416202446.png]]![[Pasted image 20250416202511.png]]
Каким образом это связано с работой nmap? Очень просто. Чтобы понять, работает ли порт или нет, nmap пытается установить **TCP** соединение и отправить `SYN` флаг. Если nmap проучает `SYN\ASK` ответ, это значит что порт открыт. Nmap помечает его открытым и завершает рукопожатие отправкой `ASK` флага.
Если же nmap получает ответ с флагом `RST` (Reset), то это означает что порт закрыт.
![[Pasted image 20250416203106.png]]
Если же открыт фаервол, обычно он просто роняет подключение. Тоесть, **nmap** отправляет `ASK` флаг, но в ответ ничего не получает. В данном случае порт помечается как **filtered**.
## SYN scans `-sS`
Так же как и TCP сканирование, SYN использует подключение к TCP портам, но работает немного иначе. Этот вид сканирования часто называют скрытым.
Если TCP сканирование полностью следует ***Трехстороннему рукопожатию***, то **SYN** сканирование после ответа от сервера с флагами `SYN\ASK` отпрвляет флаг `RST` обрывая соединение.
![[Pasted image 20250417102631.png]]![[Pasted image 20250417102751.png]]
Данный вид сканирование имеет множество приемуществ для нас как для хакеров:
1. Он может использоваться для обхода старых систем обнаружения, которым необходимо ***полное трехстороннее рукопожатие***.
2. **SYN** сканирование не логируется приложениями, открытыми на портах (это является стандартной практикой логгировать соединение когда оно будет установленно)
3. **SYN** сканирование банально быстрее.
Конечно есть некоторое количество минусов:
1. Необходимо запускать с правами админа (sudo) что бы оно работало нормально на линуксе, так как SYN сканирование создает сырые пакеты, что является привелегией админа.
2. Нестабильные сервисы иногда падают в процессе сканирования, это может быть проблемой если тестируется прод.
Не считая способа поиска открытых портов, в основном работа **TCP** сканирования и **SYN** сканирования идентичны.
## UDP сканирование
В отличие от TCP, у UDP нет никакого подтверждения о получении пакета. Буквально отсылается пакет, с надеждой на то, что он был получен. Это делает его широкоиспользуемым там, где нужна скорость (например - видеотрансляции). Но отсутствие подтверждения получения пакета сильно услажняет возможность сканирования.
Когда пакет отсылается на открытый UDP порт, ответа не должно последовать. Если это так и есть, то **nmap** помечает порт как открытый или отфильтрованный.
Если же пакет был отправлен на закрытый UDP порт, то назад возвращается **ICMP (ping)** пакет, содержащий сообщение что порт не доступен. В этом случае nmap помечает порт как закрытый.
UDP сканирование достаточно медленное, поэтому рекомендуется ипользовать `--top-ports <number>` флаг при сканировании.
```bash
nmap -sU --top-ports 20 <target>
```
Данная команда будет сканировать топ 20 самых используемых UDP портов.
## NULL FIN Xmas TCP port scan
Данные типы сканирования используются гораздо реже чем те, которые мы рассмотрели ранее, и поэтому не будем сильно останавливаться на них.
***NULL Scans***
**NULL** сканирование, флаг `-sN`, отправляет TCP запрос без заданных флагов. Если порт закрыт, то вернется `RST`.
![[Pasted image 20250417111734.png]]
***FIN Scans***
**FIN** сканирование, флаг `-sF` отправляет TCP запрос с флагом завершения `FIN`. Если порт закрыт, то вернется `RST`.
![[Pasted image 20250417112443.png]]
***XMAS***
**Xmass** сканирование, флаг `-sX`, отсылает TCP пакет с флагами `PSH, URG, FIN` Если порт закрыт, то вернется `RST`.
![[Pasted image 20250417122554.png]]
Эти типы сканирования использются для обхода фаерволов, так как многие блокируют входящий TCP трафик, котрый содержит `SYN` флаг. Но не нужно думать что они 100% эффективны в современных системах защиты.
## ICMP Network scaning
Во время первого соединения с целью, наша первая цель - составление карты сети.
Единственная возможность сделать это используя nmap - подготовить "проверку пингом". Nmap отправляет **ICMP** пакет на каждый доступный IP address. Когда получен ответ - ip маркируется как живой.
Флаг для вызова `-sn`
## NSE (Nmap Scripting Engine)
Мощное рассширение, сильно расширяющее возможности nmap. NSE написаны на ***LUA***, и могут быть использованны для множества вещей, начиная с таких как сканирование на уязвимости, заканчивая эксплуатацией этих уязвимостей.
Доступно множество категорий, вот некоторые из них:
1. `safe` - не имеют эффекта на цели
2. `intrusive` - не безопасны, влияют на цель
3. `vuln` - поиск уязвимостей
4. `exploit` - эксплуатация уязвимостей
5. `auth` - Обход аутентификации (например: получение доступа к анонимному ftp серверу)
6. `brute` - Подбор паролей и логинов
7. `discovery` - попытка запроса запущенных сервисов
Более подробно можно узнать тут: https://nmap.org/book/nse-usage.html
Команда что бы запустить скрипт:
```bash
--script=<script-name>
```
Что бы передать какой-то аргумент:
```bash
--script-args
```
Что бы прочитать помощь:
```bash
nmap --srcipt-help <script-name>
```
+7
View File
@@ -0,0 +1,7 @@
%% Zoottelkeeper: Beginning of the autogenerated index file list %%
[[cybersec/Pentest/Metasploit|Metasploit]]
[[cybersec/Pentest/NMAP|NMAP]]
[[cybersec/Pentest/Основы пентеста|Основы пентеста]]
[[cybersec/Pentest/Разведка|Разведка]]
[[cybersec/Pentest/Читщит pentest standoff|Читщит pentest standoff]]
%% Zoottelkeeper: End of the autogenerated index file list %%
@@ -0,0 +1,151 @@
**Целевая система** - исследуемый объект или комплекс объектов информационной системы, в результате воздействия злоумышленника на который может непосредственно произойти недопустимое для компании событие.
**Pentest (Тестирование на проникновение)** - анализ защищенности целевой системы в результате которой реализуются уязвимости или недопустимые события путем моделирования атак злоумышленников.
**Уязвимость** - недостаток целевой системы, который может быть использован для реализации недопустимого события (угроз безопасности).
**Недопустимое событие** - событие, приводящее к значительному нарушению деятельности компании.
### Классификации пентеста
**По отношению к инфраструктуре компании:**
1. Внешний - эксперт по тестированию на проникновение ведет свою деятельность вне контролируемой зоны компании.
2. Внутренний - эксперт по тестированию на проникновение ведет свою деятельности внутри контролируемой зоны компании.
**По методу работ:**
- **Black Box** - информация об инфраструктуре и целевой системе отсутствует, тестировщик добывает информацию применяя OSINT.
- **Gray Box** - у эксперта частично присутствует информация о целевой системе (учетки, пароли, ящики, адреса админок)
- **White Box** - у эксперта есть вся информация о целевой системе (документация, учетки админов и пользователей с паролями, исходный код при наличии, перечень ПО и т.д.)
**По типу целевой системы:**
- Тестирование веб приложений
- Тестирование инфраструктуры
- Тестирование приложений
- Тестирование беспроводных сетей.
## Методики и стандарты
_Международные_
1. _OWASP Top Ten_ - это стандартный документ, посвященный безопасной разработке веб-приложений. Он представляет собой широкий консенсус относительно наиболее важных рисков безопасности веб-приложений.
2. _OWASP Web Security Testing Guide (WSTG)_ - исчерпывающая методика по тестированию кибербезопасности для разработчиков веб-приложений и специалистов по безопасности.
3. _OWASP Mobile Application Security_ - представляет собой стандарт безопасности для мобильных приложений (OWASP MASVS) и подробное руководство по тестированию.
4. _OWASP Application Security Verification Standard_ - описывает основу для тестирования средств контроля технической безопасности веб-приложений, а также предоставляет разработчикам список требований для безопасной разработки.
5. _ISO/IEC 27001_ - стандарт Международной организации по стандартизации (ISO) и Международной электротехнической комиссии (IEC) для систем управления информационной безопасностью. Описывает требования по проведению тестирования на проникновение как часть процесса управления рисками.
6. _NIST SP 800-115_ - стандарт Национального института стандартов и технологий США (National Institute of Standards and Technology), описывающий методику тестирования на проникновение.
7. _OSSTMM_ - методика, разработанная Open Information Security Foundation (OISF), описывает широкий набор методов и подходов для тестирования на проникновение.
8. _WASC_ - в данной методике собраны недостатки и классы атак, которые представляют угрозу для веб-приложений и пользователей.
9. _PTES_ - открытое руководство, охватывающее все этапы выполнения тестирования на проникновение, начиная от сбора информации и заканчивая подготовкой отчета.
10. _PCI DSS (Payment Card Industry Data Security Standard)_ **-** включает в себя требования по проведению пентестов для систем, обрабатывающих платежные данные.
11. _CREST (Council of Registered Ethical Security Testers)_ **-** организация CREST разрабатывает и поддерживает стандарты для профессиональных пентестеров. Их рекомендации охватывают различные аспекты тестирования, включая мобильные устройства и физическую безопасность.
_Отечественные_
1. _Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации "Типовое техническое задание на выполнение работ по оценке уровня защищенности информационной инфраструктуры"_ - данный документ описывает объем и состав работ, а также требуемые отчетные документы в рамках работ по тестированию на проникновение в компании.
## Инфраструктура
**Инфраструктура** - совокупность множества ПО, оборудования, сетей и сервисов, образующих информационную систему компании.
![[Pasted image 20250317210934.png]]
Рисунок 1 -Схема тестирования компании на проникновение.
## Разведка
Разведка представляет из себя анализ внешнего периметра системы компании (внешние сервисы и веб-приложения), либо анализ внутерннего периметра компании.
На этапе разветки собирается вся доступная информация о компании в Интернете\Даркнете (учетки, пароли, корп. почта, перечень активов и другие источники).
Собирается следующая информация:
1. Перечень активов и данные об их назначении через сканирование доступной сети
2. Перечень открытых портов и сервисов (с указанием версий) работающих на данных портах.
3. Перечень используемых технологий и ПО
4. Определение ОС, их версий и возможной сборки.
5. Учетки
6. Файлы конфигурации и ошибки в них.
## Первоначальный доступ
**Первоначальный доступ** - на данном этапе атакующий получает доступ с возможностью выполнения команд на скомпроментированном активе или возможность управления им с целью доставки необходимых инструментариев и реализации дальнейших этапов тестирования на проникновение.
На данном этапе реализуется:
1. **Рассылка фишинговых писем**
2. Проверка возможности получения доступа с применением выявленных учетных данных к различным сервисам, например `FTP` или `SMB, SSH, RDP`
3. Попытка эксплуатации ранее выявленных уязвимостей в сервисах и компонентах целевой системы на этапе разведки.
## Закрепление
**Закрепление** - в рамках данного этапа реализуется комплекс мер для организации отказоустойчивого канала (возможность повторного запуска процесса с бэкконнектом при его прирывании).
Для закрепления могут использоваться следующшие подходы:
1. `Создание задачи` на запуск исполняемого файла
2. `Добавление в автозапуск` исполняемого файла
3. `Создание службы` запуска исполняемого файла
4. `Изменение скриптов`
5. `Создание учётки`
## Повышение привелегий
**Повышение привелегий** - реализация мер для получения привелегилированных прав в ОС.
Можно реализовать через:
1. `Работающие скрипты`, которые запускаются из-под рута.
2. `Работающие службы`, которые запускаются из-под рута.
3. `Задачи`, зпускаемые в ОС.
4. `Привелегии` текущей учетки
5. `Обход локальных ограничений` в двоичных файлах
## Внутреняя разведка
**Внутренняя разведка** - этап, целью которого является изучение информации хранящейся на активе (учетки, иформация об активах, тех. документация и иная) или в сети для дальнейшего использования в цепочке атак.
**Разведка актива**:
1. `Учётки записи и пароли`
2. `Техническая документация`
3. Информация об используемом `ПО`
4. Запущенные `процессы` и активные `сессии`
5. `ARP`-записи
6. `Информация о хосте`
**Разведка сети**:
- Результаты сканирования сетевых сканеров
- Сбор информации в AD
## ОФОРМЛЕНИЕ ОТЧЕТА
**Отчет содержит в себе следующие разделы:**
1. Информацию о системе и используемых технологиях
2. Краткую информацию о выявленных уязвимостях и недопустимых событиях
3. Выявленные следы компрометации (найденные утечки, информация о готовящихся атаках, наличие подозрительных объектов или логов в рамках тестирования)
4. перечень первоочередных и долгосрочных мер для устранения уязвимостей и контролю их отсутствия
# **Технический отчет**
Этот отчет необходим в первую очередь подразделениям информационной безопасности и ИТ-службам. В данном документе более детально описывается реализация уязвимостей и недопустимых событий, а также рекомендации по их устранению.
_Содержание отчета:_
1. период проведения работ;
2. информация о целевой системе;
3. применяемые методики и инструментарии;
4. этапы проведения тестирования (берутся из разработанной методики из пункта 3);
5. информация о найденных уязвимостях и недопустимых событиях;
6. расчет защищенности целевой системы;
7. приложения с подробным описанием выявленных уязвимостей и недопустимых событий с рекомендациями по устранению.
На каждую выявленную уязвимость в приложении необходимо оформлять карточку выявленного недостатка, _пример карточки указан ниже:_
**Название:**  <Название выявленной уязвимости>
**Критичность:** Информационная/Низкая/Средняя/Высокая
**CVSS:** x.x - где х.х числовой показатель, например, 6.3
**CVSS-вектор:** CVSS:3.0/XX:X/XX:X/XX:X/XX:X/X:X/X:X/X:X/X:X, ссылка на калькулятор [https://www.first.org/cvss/calculator/3.0](https://www.first.org/cvss/calculator/3.0)
**Требуемая квалификация атакующего:** Низкая/Средняя/Высокая 
**Описание:** <Детальное представление уязвимости>
**Реализация:** <Описать шаги, приводящие к реализации уязвимости>
**Рекомендации по устранению:** <Перечень действий для устранения возможности реализации данной уязвимости>
Для оформления карточки реализации недопустимого события _используется следующий формат карточки:_
**Название:** <Название реализованного недопустимого события>
**Цепочка связанных уязвимостей:** <уязвимость 1>,<уязвимость 2>,...,<уязвимость N>
**Описание:** <Детальное описание недопустимого события>
**Реализация: <Описать шаги, приводящие к реализации недопустимого события>
**Рекомендации по устранению:** <Перечень действий для устранения возможности реализации недопустимого события>
+59
View File
@@ -0,0 +1,59 @@
## Цель
На данном этапе мы только начинаем взаимодействовать с целевой системой и нам важно собрать как можно больше информации о ней.
Выделяют несколько видов разведки:
1. **Пассивная разведка** - нет взаимодействия с целевой системой
2. **Активная разведка** - идет прямое взаимодействие с системой (сканирование `IP` адресов, фазинг директорий веб приложений, сканирование сети и т.п.).
Так же взависимости от условия проведения работ начальное взаимодействие с целевой системой может быть:
- **С внешнего контура компании** (веб приложение, внешние почтовые сервисы и другие доступные из сети интернет)
- **С внутреннего периметра компании** (подключаемые через коммутационное оборудование, сервера, АРМ-пользователей и т.п.)
## Разведка по открытым источникам (OSINT)
**Open Source Intelligence (Разведка по открытым источникам** - направление деятельности, включающее в себя поиск, выбор и сбор разведовательной информации из общедоступных источников, а так же её анализ.
Вся эта информация может быть использована нами для проведения тестирования на проникновение, например
1. **Перечень сотрудников** - для формирования логинов и почтовых адресов.
2. **Почтовые адреса** - для фишинговых атак.
3. **Слитые базы логинов и паролей** - спреинг и брутфорс сервисов.
4. **Информация об активах, структуре сети и используемых программных решениях и средствах защиты информации** - построение вектора атак и подготовка инструментария для скрытого перемещения в целевой системе.
Что бы найти корп. email  [https://www.skymem.info](https://www.skymem.info/)
Проверка на наличие слитых паролей можно проводить с помощью различных ботов или https://breachdirectory.org - сайт.
## Разведка целевой системы
**Существует 2 подхода**:
1. С внешнего контура компании (Веб приложения, внешние почтовые сервисы и все, что доступно из Интернета)
2. С внутреннего периметра компании (Подключение через коммутационное оборудование, сервера и т.д.)
### Внешний контур компании
*Получить первоначальный доступ в периметр компании*:
1. Уязвимые внешние сервисы на внешнем контуре - веб-приложения, почтовые сервисы, терминальные шлюзы
2. Фишинговые рассылки
*Какую информацию необходимо собрать?*
- Логины
- Пароли\хеши
- Почтовые ящики
- Данные по активам, открытых портах, работающих на них сервисах и актуальных уязвимостях
**Какие шаги необходимо сделать в рамках данного этапа?**
1. Выявление пулов IP адресов компании
2. Выявление активных хостов, открытых портов, служб и их версий. В основном пользуемся **Nmap**
3. Поиск уязвимостей в базе данных эксплойтов.
- 1. [https://www.exploit-db.com](https://www.exploit-db.com)
2. [https://packetstormsecurity.com/files/tags/exploit/](https://packetstormsecurity.com/files/tags/exploit/)
3. [https://0day.today](https://0day.today)
4. Выявление веб-приложений и эксплуатация уязвимостей согласно методике *OWASP WSTG*
1. `Burp Suite`, `OWASP ZAP` - для ручного поисков векторов и эксплуатации.
2. `Nuclei`, `nikto`, `Acunetix`, `sqlmap`, `tplmap` - для автоматического поиска векторов и ручной/автоматической эксплуатации.
5. Анализ документов, конфигов и других данных, которые могут содержать *критическую и компрометирующую* информацию. Логины, почтовые ящики, пароли, адреса сервисов и т.д.
1. `Feroxbuster`, `ffuf`, `gobuster`, `dirsearch` - инструменты для обнаружения скрытых файлов и директорий.
2. Дорки (Yandex, Google и т.д.) - конкретизирующие поисковые запросы в известных поисковых системах
```bash
site:gazprom.ru filetype:pdf mail #Google
site:gazprom.ru mime:pdf mail #Yandex
```
6. Эксплуатация ошибок в бизнес-логике, конфигурации сервисов и веб-приложений.
7. Сбор информации и подготовка шаблонов для фишинговой компании. В рамках поиска данной информации необходимо изучить страницу контактов, профили пользователей, доки в веб-приложениях на предмет почтовых ящиков.
### Внутренний периметр
Здесь мы так же имеем 2 вектора
@@ -0,0 +1,20 @@
## Внешний периметр и его разновидности
Рассмотрим два наиболее частых варианта:
1. **Классичесикий** - аналогичный внешнему периметру компаний на полигоне Standoff. Может быть представлен несколькими эксплуатируемыми веб-приложениями, среди которых обязательно будет сайт компании, и VPN сервер.
![[Pasted image 20250411213749.png]]
2. **С гейтами** - гейт это сервер с одним или несколькими веб приложениями, имеющий сетевую связность с внутренней сетью
![[Pasted image 20250411213719.png]]
## Как ломать внешний периметр?
1. **Вариант 1** - собрать информацию с веб-сервисов внешнего периметра. Тут можно обнаружить VPN конфигурацию, адреса электронной почты доменных пользователей для подключения к внутренней сети. Дополнительно, можно провести фишинговую атаку - отправить письма под учеткой, предоставленной огранизаторами.
2. **Вариант 2** - сбор информации (адресов почты ) с серверов внешнего периметра и последующая фишинговая атака с полезной нагрузкой, которая позволяет установить обратное соединение с пк сотрудника компании.
Если встретили ифру с гейтами - самое очевидное, попытаться исполнить RCE (удаленное исполнение кода)
## Разведка сети и скан портов
С самого начала проверяем работающие узлы, а затем уже открытые порты и доступные сетевые сервисы. Таким образом, разведка внешнего периметра пройдет быстрее.
**Сканирование сети** происходит через:
- nmap и всё что сделангол на его основе
- masscan
Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 435 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

+22
View File
@@ -0,0 +1,22 @@
%% Zoottelkeeper: Beginning of the autogenerated index file list %%
[[cybersec/Photos/Pasted image 20250105162015.png|Pasted image 20250105162015.png]]
[[cybersec/Photos/Pasted image 20250105164935.png|Pasted image 20250105164935.png]]
[[cybersec/Photos/Pasted image 20250105165103.png|Pasted image 20250105165103.png]]
[[cybersec/Photos/Pasted image 20250105165110.png|Pasted image 20250105165110.png]]
[[cybersec/Photos/Pasted image 20250105165916.png|Pasted image 20250105165916.png]]
[[cybersec/Photos/Pasted image 20250105183609.png|Pasted image 20250105183609.png]]
[[cybersec/Photos/Pasted image 20250105185359.png|Pasted image 20250105185359.png]]
[[cybersec/Photos/Pasted image 20250317210934.png|Pasted image 20250317210934.png]]
[[cybersec/Photos/Pasted image 20250411213719.png|Pasted image 20250411213719.png]]
[[cybersec/Photos/Pasted image 20250411213749.png|Pasted image 20250411213749.png]]
[[cybersec/Photos/Pasted image 20250413192203.png|Pasted image 20250413192203.png]]
[[cybersec/Photos/Pasted image 20250416202446.png|Pasted image 20250416202446.png]]
[[cybersec/Photos/Pasted image 20250416202511.png|Pasted image 20250416202511.png]]
[[cybersec/Photos/Pasted image 20250416203106.png|Pasted image 20250416203106.png]]
[[cybersec/Photos/Pasted image 20250417102631.png|Pasted image 20250417102631.png]]
[[cybersec/Photos/Pasted image 20250417102751.png|Pasted image 20250417102751.png]]
[[cybersec/Photos/Pasted image 20250417111734.png|Pasted image 20250417111734.png]]
[[cybersec/Photos/Pasted image 20250417112443.png|Pasted image 20250417112443.png]]
[[cybersec/Photos/Pasted image 20250417122554.png|Pasted image 20250417122554.png]]
[[cybersec/Photos/Protocol cheatsheat|Protocol cheatsheat]]
%% Zoottelkeeper: End of the autogenerated index file list %%
+39
View File
@@ -0,0 +1,39 @@
## FTP / SFTP
**Порт** - tcp 21 (default)
**Основные комманды**:
- ls - просмотр директории
- get - получение файла
- mget - получение множества файлов
- put - загрузка файла на сервер
- mput - множественная загрузка файлов
- mkdir - создание директори
- cd - переход в директорию
- pwd - просмотр актуальной директории
- cdup - перемещение в конревую директорию
- ! - доступ к терминалу в своем пк не выходя из ftp
- rename - переименование
- delete - удаление
- mdelete - множественное удаление
## SMB
SMB - server message block/
**Порт** - 445 tcp
**Основные команды**:
- smbclient -L host - просмотр доступных папок на хосте
- smbclient \\\\host\\directory password - подключение к директории
Все остальные команы (FTP команды такие же)
![[Pasted image 20250413192203.png]]
## Redis
**Port** - 6379 TCP (default)
**Commands**:
- redis-cli -h hostname - подключение к удаленному хосту
- INFO - команда показывает информацию и статистику сервера
- SELECT database - выбор бызы данных
Сайты с командами редиса
https://www.koderhq.com/tutorial/redis/basic-commands/#basic
https://www.javaguides.net/2024/11/redis-commands-cheat-sheet.html
+48
View File
@@ -0,0 +1,48 @@
**Access control (ограничение доступа)** - приложение, накладывающее ограничения на то, кто или что авторизовано для выбранных действий или запрашиваемых рессурсов. В контексте веб-приложений, ограничение доступа зависит от аутентификации и менеджменте сессий.
1. **Аутентификация** позволяет определить, что пользователь является тем, кем он представляется.
2. **Менеджер сессий** - идентифицирует какие последующие HTTP запросы были сделаны одним и тем же пользователем.
3. **Ограничение доступа** определяет, может ли юзер выполнить действие, которое он захотел выполнить.
Сломанное ограничение доступа часто встречается и представляют из себя критические уязвимости. Разработка и управление системой ограничения доступа это комплексная проблема.
### Вертикальный контроль доступа
**Вертикальный контроль доступа** - механизмы, которые ограничивают доступ к конфиденциальным функциям определенным типам пользователей.
Благодаря вертикальному контролю, разные типы пользователей имеют доступ к различным функциям приложения. К примеру, админ может модифицировать или удалять любой пользовательский аккаунт, в отличие от простого пользователя, который не имеет доступа к этим функциям.
### Горизонтальный контроль доступа
**Горизонтальный контроль доступа** - механизм, ограничивающий доступ к ресурсам конкретным пользователям.
При горизонтальном контроле доступа, разные пользователи имеют доступ к подмножеству рессрсов одного типа. К примеру - приложение банка позволяет пользователю видеть транзакции и оплачивать с помощью их собственного аккаунта, но не с помощью аккаунта других пользователей.
### Контексто-зависимый контроль доступа
**Контексто-зависимый контроль доступа** - механизм, ограничивающий доступ к функционалу и ресурсам, основывающийся состоянии приложения или взаимодействия пользователя с ним.
Контексто-зависимый контроль доступа запрещает пользователю выполнять действия в неправильном порядке. К примеру - пользователь не может менять состав заказа после его оплаты.
## Примеры сломанного контроля доступа
### Эскалация вертикального контроля доступа
Если пользователь может повысить доступ к функционалу, к которому у него не должно быть доступа, то это эскалация вертикального контроля доступа. К примеру, если обычный пользователь может получить доступ к странице администратора, где он может удалять аккаунты других пользователей, это и есть эскалация.
**Незащищенный функционал**
В большинстве случаев, эскалация привелегий вертикального контроля доступа происходит, когда сервис не обеспечивает соблюдение какой-либо защиты для чуствительного функционала. например, ссылки могут быть связаны со страницей приветствия администратора, но не со страницы приветствия пользователя.
Суть в том, что не защищают админскую панель, а просто прячат **robots.txt**
Или напрямую в тексте скрипта приложения.
### Горизонтальная эскалация привеленгий
**Горизонтальная эскалация** происходит, если пользователь получает доступ к ресурсам, которые предназначенны для другого пользователя, вместо собственных ресурсов такого же типа.
Пример: если атакующий может получить доступ к записям других пользователей, словно это его записи - это горизонтальная эсказация.
`https://insecure-website.com/myaccount?id=123`
если такующий изменяет `id` и получает доступ к аккаунту другого пользователя - это и есть эскалация. (В моем техникуме, на платформе procolledge была горизонтальная эскалация привелегий.)

Some files were not shown because too many files have changed in this diff Show More