"Разузнаване чрез отворени източници за информация (на английски: Open source intelligence, OSINT) е един от способите за разузнаване на американските тайни служби. Включва търсене, подбор и сбор на информация от общодостъпни източници и нейният анализ. В разузнавателната общност терминът „открит“ указва общодостъпността на източника (за разлика от секретните източници и източниците с ограничено ползване), и не е свързан с отворен код или public intelligence." Wikipedia

При OSINT често пъти се налага да се търсят адреси за електронна поща, свързани с даден домейн, негови поддомейни, хостове, имена на служители, изтекли криптографски ключове, данни за отворени портове и друга подобна информация. От гледна точка на (етичните) хакери тук има едно важно уточнение - това трябва да стане без целевата страна да научи. Разбира се, сканиране за подомейни, IP адреси и портове е възможно да се реализира лесно с множество разнородни инструменти, но ако то е насочено към целевите системи, това би генерирало редица аларми, а подобни действия лесно се откриват от SOC и специализирани системи като SIEM.

Голяма част от горепосочената търсена информация е включена в публични източници. Като пример можете да потърсите своя адрес за електронна поща в Google ... и ако сте късметлии, той няма да е там.

Подобен подход се използва от инструмента theHarvester, позволяващ пасивно и активно търсене в множество публични сайтове - Google, Bing (за Linux феновете - да, тази търсачка все още ползва), DuckDuckGo, Shodan, Censys и много други.


*******************************************************************
*  _   _                                            _             *
* | |_| |__   ___    /\  /\__ _ _ ____   _____  ___| |_ ___ _ __  *
* | __|  _ \ / _ \  / /_/ / _` | '__\ \ / / _ \/ __| __/ _ \ '__| *
* | |_| | | |  __/ / __  / (_| | |   \ V /  __/\__ \ ||  __/ |    *
*  \__|_| |_|\___| \/ /_/ \__,_|_|    \_/ \___||___/\__\___|_|    *
*                                                                 *
* theHarvester 3.0.6 v260                                         *
* Coded by Christian Martorella                                   *
* Edge-Security Research                                          *
* cmartorella@edge-security.com                                   *
*                                                                 *
*******************************************************************


usage: theHarvester.py [-h] -d DOMAIN [-l LIMIT] [-S START] [-g]
                       [-p PORT_SCAN] [-s] [-v VIRTUAL_HOST] [-e DNS_SERVER]
                       [-t DNS_TLD] [-n DNS_LOOKUP] [-c] [-f FILENAME]
                       [-b SOURCE]

theHarvester is a open source intelligence gathering tool(OSINT) that is used
for recon

optional arguments:
  -h, --help            show this help message and exit
  -d DOMAIN, --domain DOMAIN
                        company name or domain to search
  -l LIMIT, --limit LIMIT
                        limit the number of search results, default=500
  -S START, --start START
                        start with result number X, default=0
  -g, --google-dork     use Google Dorks for google search
  -p PORT_SCAN, --port-scan PORT_SCAN
                        scan the detected hosts and check for Takeovers
                        (21,22,80,443,8080) default=False, params=True
  -s, --shodan          use Shodan to query discovered hosts
  -v VIRTUAL_HOST, --virtual-host VIRTUAL_HOST
                        verify host name via DNS resolution and search for
                        virtual hosts params=basic, default=False
  -e DNS_SERVER, --dns-server DNS_SERVER
                        DNS server to use for lookup
  -t DNS_TLD, --dns-tld DNS_TLD
                        perform a DNS TLD expansion discovery, default False
  -n DNS_LOOKUP, --dns-lookup DNS_LOOKUP
                        enable DNS server lookup, default=False, params=True
  -c, --dns-brute       perform a DNS brute force on the domain
  -f FILENAME, --filename FILENAME
                        save the results to an HTML and/or XML file
  -b SOURCE, --source SOURCE
                        source: baidu, bing, bingapi, censys, crtsh, cymon,
                        dogpile, duckduckgo, google, googleCSE, google-
                        certificates, google-profiles, hunter, intelx,
                        linkedin, netcraft, pgp, securityTrails, threatcrowd,
                        trello, twitter, vhost, virustotal, yahoo, all

Бърза справка за домейна ict.academy показа сравнително малко резултати, но и един неочакван.

./theHarvester.py -d ict.academy -b all -l 100

*******************************************************************
*  _   _                                            _             *
* | |_| |__   ___    /\  /\__ _ _ ____   _____  ___| |_ ___ _ __  *
* | __|  _ \ / _ \  / /_/ / _` | '__\ \ / / _ \/ __| __/ _ \ '__| *
* | |_| | | |  __/ / __  / (_| | |   \ V /  __/\__ \ ||  __/ |    *
*  \__|_| |_|\___| \/ /_/ \__,_|_|    \_/ \___||___/\__\___|_|    *
*                                                                 *
* theHarvester 3.0.6 v260                                         *
* Coded by Christian Martorella                                   *
* Edge-Security Research                                          *
* cmartorella@edge-security.com                                   *
*                                                                 *
*******************************************************************


[*] Target: ict.academy

[*] Full harvest on ict.academy
[*] Searching Baidu.
        ...

[*] No IPs found.

[*] Emails found: 9
----------------------
certification@ict.academy
e.datri@ict-academy
info@ict-academy
info@ict.academy
markus.lintuala@ict-academy
mikko.lundahl@ict-academy
olli.janatuinen@ict-academy
scuole@ict-academy
u0022@ict.academy

[*] Hosts found: 9
---------------------
eh.ict.academy:81.161.248.186
sni133498.cloudflaressl.com:empty
tao.ict.academy:81.161.248.186
wiki.ict.academy:81.161.248.186
www.ict-academy:empty
www.ict.academy:81.161.248.186

Определено трябва да проверим u0022@ict.academy, защото подобен адрес за електронна поща не сме създавали. Ето и едно от предимствата на OSINT анализа - можете да научите нещо за вашите системи, което не знаете.

Работата с theHarvester е лесна, но една специализирана Linux дистрибуция предлага още повече улеснения. Buscador включва множество инструменти за OSINT, чието приложение се улеснява от скриптове, изискващи единствено да се въведе целевия домейн или други търсени данни.

Сканирането на домейна на университета, в който водя лекции, изискваше избор на инструмент и около 6 минути изчакване.

Открити са 300 адреса за електронна поща (ограничението е от параметър на theHarvester) и 182 хоста.

Инструментът sublist3r също успява да генерира интересна информация за поддомейните.

Разглеждайки Buscador с доц. Радослав Милчев от БАРЗИКТ попаднахме на уязвима Web страница, поддържана от публична институция у нас. Страницата не беше защитена от тривиалната атака SQL Injection и само в рамките на няколко минути се оказа, че е възможно да се получи административен достъп до панела за управление на съдържанието на портала. Свързахме се с колегите, поддържащи страницата и им изпратихме данните за откритите от нас уязвимости. Тук обаче възникна един важен въпрос - как е най-правилно да се постъпи в подобна ситуация?

Личното ми мнение е, че засегната страна трябва да бъде уведомена, но трудно може да се предположи, каква ще бъде насрещната реакцията. Реакциите могат да бъдат няколко:

  1. Добронамерено да се приеме получената информация и да се вземат необходимите превантивни мерки;
  2. Информацията да се неглижира и да не се коригират уязвимостите, което е предпоставка за потенциални бъдещи успешни атаки и/или изтичане на данни;
  3. Да се пуснат жалби срещу уведомяващата страна, което в световен мащаб не е прецедент.

Замислете се и за нашият начин на мислене. Ако съседа позвъни и каже "паркирал си доста зле, може да ти отнесат огледалото", много хора биха реагирали с "добре, добре", "#%№$@!№...", но има и такива, които биха погледнали и преместили автомобила си, е възможно е първите две групи да открият, че огледалото вече не е част от тяхното МПС. За съжаление подобна е реакцията и при поставения по-горе въпрос.

Съществува и подхода "Responsible disclosure", при който разработчика или ползвателя на уязвимата страна се уведомява, изчаква се, защото е необходимо технологично време за софтуерни, конфигурационни или хардуерни промени и ако не са взети мерки, данните за уязвимостта се публикуват в публичното пространство.

Считаме, че правилната (етична) позиция е засегната страна да бъде уведомена и ще продължим да спазваме тази практика.