​​🔍 Автоматизируем поиск хостов через Censys



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



Сегодня поговорим про Censys. Так же как и в Shodan здесь есть консольный инструмент, который требуется установить:



pip install censys



и задать свои API ID и Secret, через команду:



censys config



Теперь все готово к работе и мы можем поискать новые хосты. Базовая команда для поиска по списку доменов будет выглядеть как-то так:



cat domain.list | xargs -I@ bash -c 'censys search "services.tls.certificates.leaf_data.subject.common_name:@" --index-type hosts -o @.ssl.censys.json'



Затем выводим все IP и добавляем их в файл censys.list:



cat *censys.json | jq -c '.[] | {ip: .ip}' | sed 's/[^0-9,.]*//g' | anew censys.list



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



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



Например, мы можем найти все хосты с BIG-IP:



cat domain.list | xargs -I@ bash -c 'censys search "(services.tls.certificates.leaf_data.subject.common_name:@) and services.software.product=\"BIG-IP LTM\"" --index-type hosts -o @.bigip.ssl.censys.json'



или все хосты с Confluence:



cat domain.list | xargs -I@ bash -c 'censys search "(services.tls.certificates.leaf_data.subject.common_name:@) and services.software.product=\"Confluence\"" --index-type hosts -o @.confluence.ssl.censys.json'



или все хосты с кодом ответа 200:



cat domain.list | xargs -I@ bash -c 'censys search "(services.tls.certificates.leaf_data.subject.common_name:@) and services.http.response.status_code:200" --index-type hosts -o @.200.ssl.censys.json'



#web #recon