# Лабораторная работа 4

***

## Выполнение лабораторной работы

### Требования к отчёту:
- Формат отчёта **DOCX**
- Название отчёта должно содержать номер группы (А1 или А2), фамилию и номер лабораторной работы (Л3): **А1 Иванов ИБ Л4.docx**
- Содержание отчёта:
    - Титульный лист
    - Описание проделанной работы и вводимых запросов
    - Скриншоты результатов выполнения и их описание
    - Вывод

***

### Цель работы

Получить теоретические и практические навыки социальной инженерии и методов противодействия.

### 1. Теоретическая часть

***Информация*** – является одним из важнейших активов компании. Информация может составлять коммерческую тайну компании, т.е. при существующих или возможных обстоятельствах увеличить доходы, избежать неоправданных расходов, сохранить положение на рынке товаров, работ, услуг или принести иную коммерческую выгоду компании. Соответственно, такую информацию необходимо защищать. 

Поскольку в любой компании работают люди, то неизбежно возникает влияние человеческого фактора на все процессы организации. В том числе и на процесс защиты конфиденциальной информации.

Человеческий фактор — устойчивое выражение, которым обозначают психические способности человека как потенциальный и актуальный источник (причину) информационных проблем при использовании этим человеком современных технологий.

Любые действия человека, связанные с нарушением режима безопасности можно разделить на две большие категории: **умышленные** и **неумышленные** действия.

К **умышленным** действиям относятся кражи информации сотрудниками, модификация информации, либо её уничтожение (диверсии). Это крайний случай и с ним приходиться бороться постфактум, привлекая сотрудников безопасности и полиции.

К **неумышленным** действиям относятся: утрата носителей информации, уничтожение или искажение информации по неосторожности. Человек не осознаёт, что его действия приводят к нарушению режима коммерческой тайны. Так же к неумышленным действиям относиться «помощь» не тем лицам, или так называемая социальная инженерия. Когда сотрудник не осознаёт, что его действия направлены на нарушение режима коммерческой тайны, но при этом тот, кто его просит это сделать, чётко знает, что нарушает режим.

***Социальная инженерия*** — это метод (атак) несанкционированного доступа к информации или системам хранения информации без использования технических средств. Метод основан на использовании слабостей человеческого фактора и является очень эффективным. Злоумышленник получает информацию, например, путем сбора информации о служащих объекта атаки, с помощью обычного телефонного звонка или путем проникновения в организацию под видом ее служащего. Злоумышленник может позвонить работнику компании (под видом технической службы) и выведать пароль, сославшись на необходимость решения небольшой проблемы в компьютерной системе. Очень часто этот трюк проходит. Самое сильное оружие в этом случае — приятный голос и актёрские способности злоумышленника. Имена служащих удается узнать после череды звонков и изучения имён руководителей на сайте компании и других источников открытой информации (отчётов, рекламы и т.п.). Используя реальные имена в разговоре со службой технической поддержки, злоумышленник рассказывает придуманную историю, что не может попасть на важное совещание на сайте со своей учетной записью удаленного доступа. Другим подспорьем в данном методе являются исследование мусорных контейнеров организаций, виртуальных мусорных корзин, кража портативного компьютера и других носителей информации. Данный метод используется, когда злоумышленник наметил в качестве жертвы конкретную компанию.

#### Техники социальной инженерии

Все техники социальной инженерии основаны на особенностях принятия решений людьми.

***Претекстинг*** — это действие, отработанное по заранее составленному сценарию (претексту). В результате цель (жертва) должна выдать определённую информацию, или совершить определённое действие. Этот вид атак применяется обычно по телефону. Чаще эта техника включает в себя больше, чем просто ложь, и требует каких-либо предварительных исследований (например, персонализации: выяснение имени сотрудника, занимаемой им должности и названия проектов, над которыми он работает), с тем, чтобы обеспечить доверие цели.

***Фишинг*** — техника, направленная на жульническое получение конфиденциальной информации. Обычно злоумышленник посылает цели e-mail, подделанный под официальное письмо — от банка или платёжной системы — требующее «проверки» определённой информации, или совершения определённых действий. Это письмо обычно содержит ссылку на фальшивую web-страницу, имитирующую официальную, с корпоративным логотипом и содержимым, и содержащую форму, требующую ввести конфиденциальную информацию — от домашнего адреса до пин-кода банковской карты.

***"Троянский конь"***- эта техника эксплуатирует любопытство, либо алчность цели. Злоумышленник отправляет e-mail, содержащий во вложении важное обновление антивируса, или даже свежий компромат на сотрудника. Такая техника остаётся эффективной, пока пользователи будут слепо кликать по любым вложениям.

***"Дорожное яблоко"*** - этот метод атаки представляет собой адаптацию троянского коня, и состоит в использовании физических носителей. Злоумышленник может подбросить инфицированный CD, или карту памяти, в месте, где носитель может быть легко найден (коридор, лифт, парковка). Носитель подделывается под официальный, и сопровождается подписью, призванной вызвать любопытство.

Пример: Злоумышленник может подбросить CD, снабжённый корпоративным логотипом, и ссылкой на официальный сайт компании цели, и снабдить его надписью «Заработная плата руководящего состава Q1 2010». Диск может быть оставлен на полу лифта, или в вестибюле. Сотрудник по незнанию может подобрать диск, и вставить его в компьютер, чтобы удовлетворить своё любопытство.

***"Кви про кво"*** - лоумышленник может позвонить по случайному номеру в компанию, и представиться сотрудником техподдержки, опрашивающим, есть ли какие-либо технические проблемы. В случае, если они есть, в процессе их «решения» цель вводит команды, которые позволяют злоумышленнику запустить вредоносное программное обеспечение.

***Обратная социальная инженерия*** - целью обратной социальной инженерии является заставить цель саму обратиться к злоумышленнику за «помощью». С этой целью злоумышленник может применить следующие техники:
Диверсия: Создание обратимой неполадки на компьютере жертвы.
Реклама: Злоумышленник подсовывает жертве объявление вида «Если возникли неполадки с компьютером, позвоните по такому-то номеру» (это в большей степени касается сотрудников, которые находятся в командировке или отпуске).
Меры противодействия

Самый основной способ защиты от социальной инженерии — это обучение. Так как тот, кто предупреждён – тот вооружён. И незнание в свою очередь не освобождает от ответственности. Все работники компании должны знать об опасности раскрытия информации и способах ее предотвращения. 
Кроме того, сотрудники компании должны иметь четкие инструкции о том, как, на какие темы говорить с собеседником, какую информацию для точной аутентификации собеседника им необходимо у него получить. 

Вот некоторые правила, которые будут полезны:

1. Все пользовательские пароли являются собственностью компании. Всем сотрудникам должно быть разъяснено в день приема на работу, что те пароли, которые им выдали, нельзя использовать в каких бы то ни было других целях, например, для авторизации на интернет-сайтах (известно, что человеку трудно держать в голове все пароли и коды доступа, поэтому он часто пользуется одним паролем для разных ситуаций). 

    Как такая уязвимость может быть использована в социальной инженерии? Допустим, сотрудник компании стал жертвой фишинга. В результате его пароль на некотором интернет-сайте стал известен третьим лицам. Если этот пароль совпадает с тем, который используется в компании, возникает потенциальная угроза безопасности самой компании. 

    В принципе, даже не обязательно, чтобы сотрудник компании становился жертвой фишинга. Нет никаких гарантий, что на сайтах, где он авторизуется, соблюдается необходимый уровень безопасности. Так что, потенциальная угроза всегда существует. 

2. Все сотрудники должны быть проинструктированы, как вести себя с посетителями. Необходимы четкие правила для установления личности посетителя и его сопровождения. При посетителе всегда должен находиться кто-то из сотрудников компании. Если сотрудник компании встречает посетителя, бродящего по зданию в одиночку, то он должен иметь необходимые инструкции для корректного выяснения того, с какой целью посетитель оказался в этой части здания и где его сопровождение. 

3. Должно существовать правило корректного раскрытия только действительно необходимой информации по телефону и при личном разговоре, а также процедура проверки является ли тот, кто что-либо запрашивает действительным сотрудником компании. Не секрет, что большая часть информации добывается злоумышленником при непосредственном общении с сотрудниками компании. Надо учесть еще тот факт, что в крупных компаниях сотрудники могут не знать друг друга, поэтому злоумышленник может запросто прикинуться сотрудником, которому требуется помощь. 

Все описанные меры достаточно простые, однако большинство сотрудников забывают про эти меры и про тот уровень ответственности, который на них возложен при подписании обязательств о неразглашении коммерческой тайны. Компанией тратятся огромные финансовые средства на обеспечение информационной безопасности техническими методами, однако эти технические средства могут быть обойдены, если сотрудники не будут применять меры по противодействию социальным инженерам, а службы безопасности не будут периодически проверять бдительность персонала компании. Тем самым средства, направленные на обеспечение информационной безопасности, будут потрачены впустую.

Примеры социальной инженерии из реальной практики: 

- Вам на почту приходит уведомление о необходимости обновить информацию о себе на официальном сайте. Для этого предлагается перейти по ссылке, размещенной в письме. 

    <image src="assets/L4_5.jpg">

    В результате вся информация, которую вы вводили на странице, ушла в руки мошенников, а сайт оказался поддельным (хотя выглядел как настоящий). 

    <image src="assets/L4_6.jpg">

    Фишинг – создание подложных страниц (копий ресурсов), дальнейшая рассылка писем или обзвон пользователей – это классика, которая работает всегда. Примерно в 80% случаях - успешный результат. Почему? Во-первых, доверие – одно из фундаментальных свойств людей и основа существования любого общества. Вторым фактором можно назвать лень: людям проще, принять риск, чем что-то проверять, куда-то звонить и вообще сомневаться. Третьей причиной можно назвать простодушие и невнимательность.

- На собеседовании кандидат просит вас распечатать резюме с флэш-накопителя. В этом файле находится код, который эксплуатирует известную уязвимость в офисном ПО и устанавливает вредоносную программу в системе (backdoor). Она, в свою очередь, организует реверсивное соединение с сервером в сети Интернет, контролируемым злоумышленником. Социотехнические методы тоже весьма успешны, например, внедрение закладки, причем не только программной, как в описанном примере, но и аппаратной. Это может быть мобильный компьютер с двумя сетевыми интерфейсами, который подключается между корпоративной сетью и сетевым принтером, находящимся в коридоре офиса компании. 

- Кредитный инспектор ушел с рабочего места по срочному делу, при этом забыв заблокировать рабочую сессию и оставив свой ключ ЭЦП на столе. Пользуясь его отсутствием, кто-то из коллег оформил повторную выдачу денежных средств по документам на один кредит. Вскрылось это только во время закрытия финансового месяца. «Выманить» сотрудника с рабочего места – очень действенная мера при условии, что он находится в комнате один. В этом случае он попадает под влияние иллюзии контроля: никого нет рядом, посетители почти не заходят – прикроем дверь, и все в порядке. Тот фактор, что большинство сотрудников не имеют привычки блокировать свою рабочую станцию при выходе из помещения, создает благоприятнейшие условия для кражи нужной информации, внедрения программных или аппаратных закладок или даже совершения мошенничеств и краж, как в описанном примере. 

- Утром девушке-секретарю позвонил новый директор регионального офиса, который не смог присутствовать на собрании. Говоря уверенно и быстро, он попросил срочно (!) прислать ему протокол собрания для подготовки отчета Председателю правления, фамилию которого он назвал. Правда, корпоративная почта со вчерашнего дня не работает, но протокол нужен срочно, поэтому он продиктовал адрес на бесплатном почтовом сервере. Секретарь отправила протокол. 

- Оставив объявление на avito, ждёте звонков от потенциальных покупателей. Но вместо звонка получаете смс сообщение следующего содержания: «Добрый день! Обмен рассматриваете? `N2jsu.info/v/?m` С доплатой?». Перейдя по ссылке на телефон может попасть вредоносное приложение или исполниться код, проэксплуатировав уязвимость. А дальше все данные с вашего устройства могут быть похищены. 

### 2.	Практическая часть

### 2.1. Поиск информации
Первым этапом при социальной инженерии является сбор информации. Чем больше личной информации будет в последующей атаке, тем более вероятно, что она закончится успехом. Если, к примеру, в обращении будет стоять должность и ФИО жертвы это более вероятно сработает, нежели чем безымянное обращение.
Наилучшим способом получить информацию является Google. Для удобства поиска поисковые системы типа google, yandex и другие придумали специальные операторы такие как inurl, url, intext, filetype и т.д. Их много, но для простого поиска вам понадобятся только основные из них. Далее будет рассмотрено несколько примеров. 

Пример поиска в Google:

```sh
site:.ru inurl:news intext:security
```     

Это значит, что мы ищем в домене .RU сайты, в адресе которых есть строка *"news"* и в тексте страницы есть слово *"security"*, к примеру:

http://<u>new</u>sall.ru/info.php?category=security


с текстом внутри страницы:

“Все новости из категории <u>security</u>”

#### Некоторые операторы с примерами:

**INURL**:

Поиск будет проводиться только в адресе страницы.

Запрос: 
```sh
inurl:userid=55
```
Результат: 

http://gamesforyou.com/search.php?userid=55&info=1

**SITE**:

Поиск только на определенном сайте включая поддомены.

Запрос: 
```sh
site:mpei.ru
```
Результат: 

Сайты, имеющие отношение к МЭИ

**INTEXT**:

Поиск только в тексте документа игнорируя адреса, хедеры, титлы и т.д.

Запрос: 
```sh
intext:"Кафедра занимает лидирующее место в области подготовки специалистов по теории управления, методам обработки данных и информационным технологиям"
```
Результат:

http://uit.mpei.ru/
 
"Кафедра управления и интеллектуальных технологий была создана в 1935 году. Кафедра занимает лидирующее место ..."

**FILETYPE**: или **EXT**:

Поиск по расширению файла. Можно искать фотки, архивы, текстовые файлы, логи, базы данных и прочее.

Пример: 
```sh
filetype:sql
```

Результат: 

http://208.86.225.239/flitetech_4_2017.sql

(Дамп в формате `.sql`)

**INTITLE**:

Поиск по сайтам между тегами `<title>`Найдем этот текст`</title>`

**CACHE**:

Находит копию страницы даже если эта страница уже недоступна по адресу в Интернете или изменила свое содержание. Иными словами, эта команда проводит поиск в кэше Google.

**INFO**:

Покажет страницу, содержащую ссылки на варианты поиска: поиск по похожим страницам, обратные ссылки, и страницы, содержащие такую же ссылку. Эта команда означает то же самое, что и вписать в строку поиска данный адрес веб-страницы.

**LINK**:

Возвращает список страниц, которые ссылаются на заданный сайт. 

**RELATED**:

Поиск страниц похожих на эту.

**Дополнительно**:

"-" (минус) - это знак исключения, то есть не искать или без этого текста. Обычно исключается -google -dev -git это девелоперские сайты.

" " (кавычки) - это искать точную фразу.

#### Примеры использования

Попробуйте выполнить их и просмотреть результаты поиска:

***В отчёте указать запрос, описать его параметры и представить результат в виде ссылки**

***После каждго запроса выполнить скриншот ссылки на страницу в поисковом запросе Google и страницы найденных данных. Объяснить принадлежность найденных данных, связав их с запросом**

1.	Ищем sql-файлы (возможно дампы сайтов)

```sh
intext:@gmail.com filetype:sql size -git -google -dev
```      

2.	Ищем данные кредиток:

```sh
filetype:txt intext:card intext:cvv  -git -google -dev
``` 
 
3.	Ищем почты с паролями:

```sh
site:pastebin.com intext:@mail.ru combo
```

4.	Листинг файлов запущенный на любой версии Apache 

```sh
"Apache/* Server at" intitle:index.of
```

5.	Запрос возвращающий версию сервера, тип ОС, список дочерних процессов и текущие подключения

```sh
intitle:"Apache::Status" (inurl:server-status | inurl: status.html | inurl:apache.html)
```

6.	Поиск Устройств в сети. К примеру, поиск принтера Brother HL
```sh
inurl:"printer/main.html" intext:"settings"
```

7.	На многих веб-камерах интерфейс или вообще без пароля или защищен дефолтными значениями. Попробуем найти одну из таких камер
```sh
intitle:"webcamxp" "Flash JPEG Stream"
```

Для поиска дорков можно использовать специально созданную для этого базу – Google Hacking Database (GHDB - https://www.exploit-db.com/google-hacking-database/). Подробная статья, описывающая работу с данной базой - https://habrahabr.ru/post/283210/

### 2.2. Подготовка атаки
После поиска необходимой информации следует фаза подготовки атаки на пользователя. Очень часто это письмо, отправленное на почтовый ящик жертвы со звучным названием и содержанием («Приказ на исполнение», «Погашение задолженности», «Новый штраф ГИБДД» и т.д.) и безобидным вложением в виде документа (word, excel, rtf и т.д.) либо ссылкой на вредоносный сайт, содержащий уязвимость или фишинговую страницу. 
В данной лабораторной работе рассмотрим вариант создания документа Word, при открытии которого будет выполнен определенный код.
1.	Откройте Microsoft Office Word
2.	Нажмите комбинацию клавиш alt + F11, откроется окно редактирования макросов на языке Visual Basic

<image src="assets/L4_1.jpg">

3.	Нажмите два раза на документ (“ThisDocument”) в области “Project”.
4.	Выполните команду в командной строке:
`where calc.exe` и скопируйте полный путь к файлу
5.	Для выполнения кода при открытии документа необходимо объявить функцию Private Sub Document_Open() (в параметрах команды Shell необходимо передать путь к исполняемому файлу из предыдущего пункта:
```sh
Private Sub Document_Open()
    RetVal = Shell("C:\Windows\System32\calc.exe", 1)
End Sub
```

6.	Сохраните файл в формате docm
Теперь откройте созданный файл. При разрешающих политиках выполнения макросов, должен запуститься калькулятор. 

***Скриншот вредоносного макроса и окна Word с калькулятором**

В данном примере была выполнена безобидная операция запуска калькулятора. Обычно это намного более сложная последовательность выполнения команд, в том числе загрузка исполняемого файла с серверов злоумышленников и последующий его запуск. 

Это самый простой способ и защита от него – установка флага безопасности макросов в настройках приложений (возможно задать специальными политиками).

Более сложный способ – это использование одной из огромного количества уязвимостей в Microsoft Office. Пример использования такой уязвимости (CVE-2017-11882).

Эта ошибка была изначально замечена в октябре 2016 года. Все необходимое включено в Metasploit Framework. Metasploit помогает создать вредоносный файл RTF, который при открытии в уязвимых версиях Microsoft Word приведет к выполнению кода. Уязвимость состоит в том, когда объект OLE может сделать запрос http(s) и выполнить hta-код в ответ. 

**OLE** — технология связывания и внедрения объектов в другие документы и объекты, разработанная корпорацией Майкрософт.

OLE позволяет передавать часть работы от одной программы редактирования к другой и возвращать результаты назад. Установленная на персональном компьютере издательская система может послать текст на обработку в текстовый редактор, либо изображение в редактор изображений с помощью OLE-технологии.
Основное преимущество OLE —она позволяет создать главный файл, картотеку функций, к которой обращается программа. Этот файл может оперировать данными из исходной программы, которые после обработки возвращаются в исходный документ.

### 2.3. Атака
Для совершения атаки создаётся почтовый ящик, максимально похожий на ящик отправителя. Или, к примеру, имитирующий реально существующий адрес. 
Как вариант возможно использовать уязвимости подмены адреса (названной *MailSploit*), информация о которой была опубликована 5 декабря 2017 года. В результате исполнения этой уязвимости возможно полностью подменить адрес отправителя. 

В сердце MailSploit лежит проблема, связанная с тем, как почтовые серверы интерпретируют email-адреса, закодированные с помощью RFC-1342. Данный стандарт был принят еще в 1992 году, он позволяет использовать отличные от ASCII символы в хедерах. Дело в том, что по правилам содержимое хедера должно состоять только из символов ASCII. В итоге авторы почтовых стандартов используют RFC-1342 для автоматической конвертации не-ASCII символов в стандартный формат ASCII, чтобы избежать возникновения ошибок, когда письмо, тема или адрес которого содержат не-ASCII символы, проходит через сервер.

Большинство почтовых клиентов перекодируют RFC-1342 в привычный формат, но после не проверяют полученный результат на предмет вредоносности. Более того, если строка RFC-1342 содержит нулевой байт (null-byte) и более одного email-адреса, почтовый клиент распознает лишь адреса до нулевого байта, а все остальное останется «невидимым». Фактически, используя RFC-1342, атакующий может скрыть настоящий адрес письма, создав подделку, которую будет очень тяжело обнаружить. К примеру,

<image src="assets/L4_3.jpg">

превратится в почтовом клиенте в:

<image src="assets/L4_4.jpg">
 
При этом красным цветом выделен настоящий домен, которого почтовый клиент «не видит». Клиент распознает только первый адрес, potus@whitehouse.gov, тогда как @mailsploit.com, располагается уже после нулевого байта (\0). Хуже того, таким же образом в поле «From:» можно спрятать вредоносный код, который в ряде случаев будет выполнен после расшифровки почтовым клиентом.
Как оказалось, перед проблемой уязвимы 33 почтовых клиента, включая Apple Mail (macOS, iOSи watchOS), Mozilla Thunderbird, ряд клиентов Microsoft, Yahoo Mail, ProtonMail и так далее. При этом лишь 8 из 33 в настоящее время выпустили патчи, еще 12 производителей вообще никак не отреагировали на сообщения специалиста.

Таким образом жертва может получить вредоносный файл или ссылку в письме с абсолютно легитимным отправителем. Открыть данный файл и получить очень серьёзные проблемы.

### 3.	Что интернет знает о нас?
Все мы пользуемся сервисами google (поиском, youtube, картами, мобильными устройствами на базе Android и прочими сервисами). Так или иначе, но у Google остается огромное количество информации о наших действиях, которую они хранят. Как и кто пользуется этой информацией – хороший вопрос, который стоит задать себе. А что же знает о нас Google? Если у вас есть аккаунт в Google – можно легко проверить, какие данные о нас он знает, для этого достаточно залогиниться в свой аккаунт и перейти по ссылке - www.google.com/takeout . После перехода можно попробовать создать архив и посмотреть, какие данные хранятся в гугле (или какие данные нам предоставляют для выгрузки).

Другой пример – Facebook, а вернее группа компаний, так как ему принадлежит и Instagram и WhatsUp и много других сервисов. Для того, чтобы понять, какую информацию о нас собирает Facebook – можно зайти в разрешения, которые запрашивает приложение на вашем смартфоне. Их окажется достаточно много. Зачем Facebook столько данных о вас? И агрегирование этих данных с других приложений компании.

Далее немного об утечках – каждый день в мире кто-то ворует персональные данные пользователей с различных сайтов. Через уязвимости, через социальную инженерию, через инсайдеров в компаниях, много способов. Часто эти данные попадают в публичный доступ. К примеру, в телеграм-каналы:

https://t.me/dataleak – публикует новости об утечках данных

https://t.me/gitleaks  - публикуют утечки корпоративных данных из github

И другие, которые собирают утечки с различных ресурсов. Что если вы используете один и тот же пароль на нескольких сайтах и этот пароль окажется в одной из таких выборок? 

### 4.	Задание

1. Через GHDB найти по одному дорку для любых 5 категорий (всего их 14). Результаты представить следующим образом: 
 - запрос
 - описание запроса
 - результат в виде найденной ссылки
 - результат в виде скриншота страницы по ссылке
 - описание содержания страницы (доказательство принадлежности содержания запросу)


***Результаты должны быть уникальные: у каждого студента свой набор из 5 дорков**

***Найденные дорки рекомендуется занести в**  [таблицу](https://docs.google.com/spreadsheets/d/1JZffYiFXTM_8IfJ7qUTSIhQHxgc5lk3f6Y22Atr8OEg/edit?usp=sharing) **(производите вставку дорка через Ctrl+Shift+V или "Специальная вставка"->"Только значения", чтобы не нарушать форматирование таблицы)**

2.	Создать документ Microsoft Office, который при открытии выполняет перезагрузку компьютера через 10 секунд (перед проверкой убедитесь, что все данные сохранены).

***Для п.2 приложить скриншот вредоносного макроса**
