# Какие есть области знаний в веб-пентесте

### Технологии браузеров

Веб-пентест — это взлом веб-приложений. Поэтому необходимо понимать основные технологии, которые используют в индустрии, как и понимать особенности их работы: HTML, JavaScript, HTTP, веб-сокеты, CSS, SOP, CORS, хранилища.

### Разработки серверной части

В идеале — понимать не только основы, но и детали, которые применяют в работе. Знание частностей языков и технологий помогут проще обнаруживать уязвимости.&#x20;

Стоит начать с PHP, фреймворков, систем управления контентом. Дальше можно что пожестче: Java, Python, Node.JS, C#, Golang. Повторимся, главное — знать особенности языков и типовые ошибки, которые могут допустить разработчики.

### Код

Выделили эту область в отдельную категорию. Начинающему пентестеру совсем необязательно уметь писать код. Но всё-таки неплохо, если вы сможете писать на одном скриптовом языке: Python, PHP или JavaScript. Вышка — если умеете на нескольких.

### Бизнес логика

Понимание бизнес-логики и логики работы системы поможет проводить анализ на выявление ошибок. Многие уязвимости связаны именно с ней.

### Сетевые службы

Понимание Proxy, VPN, AD. Для начала не стоит уделять этому сильно внимания, но рано или поздно придется подтянуть знания. Без этого никак.

### Софт

Навыки работы с софтом для аудита и эксплуатации уязвимостей: SQLMap, Nmap, Metasploit, Burp Suite. Это база, инструментов намного больше.

### Linux

Очевидность, но не для всех. Мы сейчас говорим не просто о возможностях командной строки, а про управление сервисами и пользователями, правами, сетью, менеджерами пакетов. Это прям стартерпак.

### Windows Server

Здесь помогут знания о механизмах управления сетью устройств и сетевым оборудованием. От Active Directory до сетевых протоколов DNS, DHCP и ARP. Тут стоит понимать не только устройство, но и возможности настроек.

### CISCO

Тут уже знания для более прокаченных. Знать архитектуру корпоративных сетей CISCO, понимать настройки, маршрутизацию, VLAN и Trunk порты. А ещё уметь мониторить трафик и управлять корпоративной сетью.

### OSINT

Разведка по открытым источникам помогает при решении задач: найти сотрудника компании, идентифицировать личность для дальнейших действий. OSINT — довольно широкая область знаний. Пентестеру прежде всего нужно разбираться в инструментах.

Пример: поисковик интернет вещей — [Shodan](https://www.shodan.io/).  С ним можно найти поддомены, серверы, ip-камеры и другое оборудование тестируемой организации. Вот пример поиска всех устройств с открытым 22 портом по России в Краснодаре:

<figure><img src="https://lh7-us.googleusercontent.com/3G4Y5Wj4AMG8J7QdxfyvyfdAGA4YIx-y6v_GWfKYHKxlGghrcrjRCDMbKxxOLZw_vOCdEGshI9TVqSQhekZ_6ZT8Pe6NX56l-fM34KSxIONldSVFsn1DHey3nLh1v-G-GtikPGqY1qOi5LmbQx4g3h8" alt=""><figcaption></figcaption></figure>

В данном случае мы не ищем что-то по тестируемой организации, а просто показываем его функционал. Из этого запроса в Shodan мы узнали, что в Краснодаре есть устройства с открытым 22 портом (еще бы не было), всего их 2 661. Большинство устройств в ведении «Ростелекома», «Мегафона», «Вымпелкома» и «Кубань-Телекома».

Ещё один пример OSINT-инструмента — [Sherlock](https://github.com/sherlock-project/sherlock). Он ищет никнейм при запросе во множестве соцсетей и сайтов. Это позволяет составить профиль человека и если в скоупе пентеста есть социальная-инженерия — можно использовать информацию добытую с помощью Sherlock например для этих целей.

<figure><img src="https://lh7-us.googleusercontent.com/jehgW_lHDCEZqOAIyy2qlOsUh1-D6kUMynF8EhrmXB4gNSr26l6OvBWz1WL2HnVY0X67p22E3WRKlF_chD7xYF0kMr5iFD1S7cmZ3DPcyJ5COX0jxaQfdcUXtwq_3cVONM_gZ0Q2630aUuLu6EdKgb0" alt=""><figcaption></figcaption></figure>

Выше пример использования Sherlock для поиска данных по пользователю hackerman1337.  Пользователь много где зарегистрирован, особенно на сайтах IT-тематики. Тут мы можем предположить, что этот человек может быть разработчиком, так как у него есть GitHub, GitLab и Docker Hub.

### Социальная инженерия

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

Социальная инженерия всегда на грани добра и зла, потому что приходится делать плохое (обманывать и вводить в заблуждение) ради хорошего (успешного пентеста и безопасности организации). Поэтому первое: социальную инженерию при пентесте не стоит применять без разрешения заказчика.&#x20;

К техникам социальной инженерии относятся:

* Фишинг → отправка жертве вредоносного электронного письма
* Вишинг → подделка голоса на знакомый жертве и выманивание данных посредством звонка
* Смишинг → Отправка жертве вредоносных СМС

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

Для социальной инженерии также есть инструменты, например, [The Social-Engineer Toolkit](https://github.com/trustedsec/social-engineer-toolkit).  В нем сразу есть все что нужно для социальной инженерии, достаточно взглянуть на его основное меню:

<figure><img src="https://lh7-us.googleusercontent.com/s5marZGR5Acd4IQKxxDz8s-lxCgV--wE-grghQAYTwT7DLLCSf3twah0uHbxvhxYZnJjitkBXSJ4IjkE70XaRxvT4z2v9b4RAiQHtSNpqQWa70PuXnpD_guQ-bVvAFDKTpBfRva4MUg_P031O0PpMEU" alt=""><figcaption></figcaption></figure>

Выбор широкий: от целевого фишинга до подставных Wi-Fi точек доступа и генерации QR-кодов. Очень полезен в кейсах, где вам нужно проверять периметр организации. Например, развесить везде QR, который ведёт на вредоносную ссылку. Это может помочь попасть в периметр организации, например, под учетной записью сотрудника, который перешел по вашему QR-коду.

### Криптография

Теория о том, как устроена защита сведений: помогает понять, как работают современные алгоритмы зашифровки и расшифровки. Это поможет находить слабые места и декодировать сообщения. Мы как раз писали и об [алгоритмах шифрования](https://notes.kraken-security.ru/kraken/krupicy-znanii/kakie-est-algoritmy-shifrovaniya), и о [хешировании](https://notes.kraken-security.ru/kraken/krupicy-znanii/obzor-populyarnykh-algoritmov-kheshirovaniya).

### Следование за OWASP

OWASP или Open Web Application Security Project — [открытый проект](https://owasp.org/) по обеспечению безопасности приложений, где есть важные материалы: от топов распространенных уязвимостей до вебинаров (всё на англ). Их рекомендации высоко ценят независимые аудиторы, так что стоит постоянно прислушиваться, что говорит и о чём пишет фонд. Вот, например,[ гайд, как тестить приложения](https://owasp.org/www-project-web-security-testing-guide/).

### Основы безопасной разработки и DevSecOps

Видя противоречия между системой безопасной разработки и реальным кодом, вы сможете проще находить уязвимости. Тут и обработка пользовательского ввода, и управление сессией с зависимостями, и тестирование безопасности кода (CI/CD). Важно понимать принципы и роли в безопасной разработке.

### Контейнеризация

Тут стоит знать принципы и хотя бы основы, а еще инструменты: Docker,  Kubernetes. Контейнерная архитектура — тренд в разработке. С точки зрения безопасности, понимая базу, можно будет находить уязвимости в контроле доступа, управлением конфигурацией и мониторингом.\
\
Здесь мы говорили только веб-пентесте. Если добавить инфраструктурный пентест, областей знаний будет намного больше. И забыли упомянуть главное: пентест — это я прежде всего знание уязвимостей и возможность их эксплуатации. Чем больше вы их знаете, тем больше прокачиваетесь как специалист.  Стоит начать с [MITM](https://notes.kraken-security.ru/kraken/krupicy-znanii/ob-atake-mitm), XSS, SQL-инъекций, SSTI, SSI.\
\ <br>

\ <br>
