Уязвимость в протоколе Wi-Fi Protected Setup

Discussion in 'Беспроводные технологии/Wi-Fi/Wardriving' started by gpuhash, 30 Dec 2011.

  1. Monohrom

    Monohrom Active Member

    Joined:
    26 Jan 2020
    Messages:
    82
    Likes Received:
    132
    Reputations:
    2
  2. Monohrom

    Monohrom Active Member

    Joined:
    26 Jan 2020
    Messages:
    82
    Likes Received:
    132
    Reputations:
    2
    Если кто захочет разобраться с генерацией пин-кодов на TP-LINK то неплохой идеей будет посмотреть на Mercysys. Mercysys - это бренд туполинков и у них есть странности с генерацией пин-кода. https://3wifi.stascorp.com/find?bssid=38:6B:1C:0*:*:*
     

    Attached Files:

    4Fun likes this.
  3. Felis-Sapiens

    Felis-Sapiens Reservists Of Antichat

    Joined:
    21 Jul 2015
    Messages:
    616
    Likes Received:
    3,818
    Reputations:
    171
    Внутри группы со схожими пинами (скажем, 674....) разница между пинами равна разнице между суммой всех (или последних 3, по крайней мере) октетов BSSID.
     
    Isica, bluelife and binarymaster like this.
  4. Isica

    Isica Active Member

    Joined:
    17 Oct 2018
    Messages:
    133
    Likes Received:
    106
    Reputations:
    1
    Ещё бы знать, откуда берутся эти группы.
    Поглядеть бы выборку с моделями...
    PS
    А добавили бы колонку с моделью в стандартной выборке--цены бы Вам не было! ;)
     
    4Fun likes this.
  5. Monohrom

    Monohrom Active Member

    Joined:
    26 Jan 2020
    Messages:
    82
    Likes Received:
    132
    Reputations:
    2
    Пин-коды причём повторяются, вот пины из групы 674
    https://3wifi.stascorp.com/find?bssid=◯&pin=67487363
    https://3wifi.stascorp.com/find?bssid=◯&pin=67487509
    https://3wifi.stascorp.com/find?bssid=◯&pin=67487608
     
  6. Isica

    Isica Active Member

    Joined:
    17 Oct 2018
    Messages:
    133
    Likes Received:
    106
    Reputations:
    1
    А с чего бы им не повторяться при таком алго?

    PS
    А выборку кто-то уже сделал? Интересно: сколько всего известно констант-точек отсчёта?
     
    #4826 Isica, 3 Oct 2020
    Last edited: 3 Oct 2020
  7. Isica

    Isica Active Member

    Joined:
    17 Oct 2018
    Messages:
    133
    Likes Received:
    106
    Reputations:
    1
    Просьба к @binarymaster, @Felis-Sapiens и другим админам 3wifi (если таковые существуют): пожалуйста, поищите в базе другие OUI с этой уязвимостью, и сделайте по ним выборку с моделями устройств.
    Как-то так:
    Code:
    SELECT OUI, COUNT(DISTINCT(PIN))/COUNT(DISTINCT(PIN-CONV(LEFT(NIC,2),16,10)-CONV(MID(NIC,4,2),16,10)-CONV(RIGHT(NIC,2),16,10)))>2 y FROM [TABLE] GROUP BY OUI HAVING y ORDER BY OUI;
     
  8. Felis-Sapiens

    Felis-Sapiens Reservists Of Antichat

    Joined:
    21 Jul 2015
    Messages:
    616
    Likes Received:
    3,818
    Reputations:
    171
    Вот 945 шт.
    Я не админ.
     

    Attached Files:

    binarymaster, 4Fun and Isica like this.
  9. Isica

    Isica Active Member

    Joined:
    17 Oct 2018
    Messages:
    133
    Likes Received:
    106
    Reputations:
    1
    Нашёл я ещё несколько OUI с этой уязвимостью:
    Code:
    6C:59:40
    8C:F2:28
    C0:A5:DD
    C8:E7:D8
    E4:F3:F5
     
  10. Isica

    Isica Active Member

    Joined:
    17 Oct 2018
    Messages:
    133
    Likes Received:
    106
    Reputations:
    1
    А картина не так проста, как ожидалось:
    1) константы бывают и сингл-, кросс-модельными;
    2) и как мажорными, так и минорными (возможно, это не миноры, а просто не дефолтные пины, но некоторые из них уж очень похожи на мажоры!)
    3) кросс-OUI констант пока не выявлено, но данных для этого проанализировано слишком мало (всего 6 устройств из трёх малочисленных OUI и 3 костанты соответственно)
    Выборка по OUI C0:A5:DD и C8:E7:D8 может прояснить ситуацию.
    А пока:
    Code:
    +---------+-----+---+-----------------------------------------------------------------+
    | const   | n   | m | Models                                                          |
    +---------+-----+---+-----------------------------------------------------------------+
    | 2732971 | 113 | 3 | 305R, hardware: 1.0 | 305R, hardware: 2.0 | 325R, hardware: 2.0 |
    | 6324054 |  33 | 3 | 301R, hardware: 1.0 | 305R, hardware: 2.0 | 305R, hardware: 1.0 |
    | 1418951 |  29 | 2 | 301R, hardware: 1.0 | 301R, hardware: 2.0                       |
    |  214517 |  26 | 2 | 301R, hardware: 1.0 | 301R, hardware: 2.0                       |
    | 6739656 |  21 | 2 | 301R, hardware: 1.0 | 305R, hardware: 1.0                       |
    | 1672762 |   9 | 2 | 301R, hardware: 1.0 | 301R, hardware: 2.0                       |
    | 2877196 |   4 | 2 | 301R, hardware: 1.0 | 301R, hardware: 2.0                       |
    | 6748288 | 262 | 1 | 301R, hardware: 2.0                                             |
    | 3032128 | 144 | 1 | 301R, hardware: 2.0                                             |
    | 1198183 |  76 | 1 | 301R, hardware: 2.0                                             |
    | 2299773 |  70 | 1 | 301R, hardware: 2.0                                             |
    | 7198110 |  39 | 1 | 305R, hardware: 2.0                                             |
    | 9288922 |  23 | 1 | 305R, hardware: 2.0                                             |
    | 5107645 |  22 | 1 | 301R, hardware: 2.0                                             |
    | 1782372 |  15 | 1 | 301R, hardware: 2.0                                             |
    | 5874232 |  14 | 1 | 301R, hardware: 2.0                                             |
    | 5737450 |   6 | 1 | 325R, hardware: 2.0                                             |
    | 9686483 |   5 | 1 | 325R, hardware: 2.0                                             |
    | 2980878 |   4 | 1 | 305R, hardware: 2.0                                             |
    |  324127 |   3 | 1 | 301R, hardware: 2.0                                             |
    | 7782299 |   3 | 1 | 305R, hardware: 2.0                                             |
    | 1144728 |   2 | 1 | 325R, hardware: 2.0                                             |
    | 4538175 |   2 | 1 | 305R, hardware: 1.0                                             |
    | 6321639 |   2 | 1 | 325R, hardware: 2.0                                             |
    | 8639731 |   2 | 1 | 325R, hardware: 2.0                                             |
    | 1144979 |   1 | 1 | 325R, hardware: 2.0                                             |
    | 1198192 |   1 | 1 | 301R, hardware: 2.0                                             |
    | 1419512 |   1 | 1 | 301R, hardware: 2.0                                             |
    | 1419669 |   1 | 1 | 301R, hardware: 2.0                                             |
    | 1419818 |   1 | 1 | 301R, hardware: 2.0                                             |
    | 1639824 |   1 | 1 | 301R, hardware: 1.0                                             |
    | 1781942 |   1 | 1 | 301R, hardware: 1.0                                             |
    | 1782255 |   1 | 1 | 301R, hardware: 1.0                                             |
    | 2300391 |   1 | 1 | 301R, hardware: 2.0                                             |
    | 2733061 |   1 | 1 | 305R, hardware: 1.0                                             |
    | 3616317 |   1 | 1 | 301R, hardware: 2.0                                             |
    | 4191216 |   1 | 1 | 325R, hardware: 2.0                                             |
    | 4863394 |   1 | 1 | 325R, hardware: 2.0                                             |
    | 6740099 |   1 | 1 | 301R, hardware: 2.0                                             |
    | 6740167 |   1 | 1 | 301R, hardware: 2.0                                             |
    | 7097342 |   1 | 1 | er MW300R rebranded                                             |
    | 3288806 |   2 | 0 | NULL                                                            |
    | 6776076 |   2 | 0 | NULL                                                            |
    | 9884461 |   2 | 0 | NULL                                                            |
    +---------+-----+---+-----------------------------------------------------------------+
    44 rows in set (0.01 sec)
    
    
    +---------+-----+---+-----------------------------------------------------------------+
    | const   | n   | m | Models                                                          |
    +---------+-----+---+-----------------------------------------------------------------+
    |  214517 |  26 | 2 | 301R, hardware: 1.0 | 301R, hardware: 2.0                       |
    |  324127 |   3 | 1 | 301R, hardware: 2.0                                             |
    | 1144728 |   2 | 1 | 325R, hardware: 2.0                                             |
    | 1144979 |   1 | 1 | 325R, hardware: 2.0                                             |
    | 1198183 |  76 | 1 | 301R, hardware: 2.0                                             |
    | 1198192 |   1 | 1 | 301R, hardware: 2.0                                             |
    | 1418951 |  29 | 2 | 301R, hardware: 1.0 | 301R, hardware: 2.0                       |
    | 1419512 |   1 | 1 | 301R, hardware: 2.0                                             |
    | 1419669 |   1 | 1 | 301R, hardware: 2.0                                             |
    | 1419818 |   1 | 1 | 301R, hardware: 2.0                                             |
    | 1639824 |   1 | 1 | 301R, hardware: 1.0                                             |
    | 1672762 |   9 | 2 | 301R, hardware: 1.0 | 301R, hardware: 2.0                       |
    | 1781942 |   1 | 1 | 301R, hardware: 1.0                                             |
    | 1782255 |   1 | 1 | 301R, hardware: 1.0                                             |
    | 1782372 |  15 | 1 | 301R, hardware: 2.0                                             |
    | 2299773 |  70 | 1 | 301R, hardware: 2.0                                             |
    | 2300391 |   1 | 1 | 301R, hardware: 2.0                                             |
    | 2732971 | 113 | 3 | 305R, hardware: 1.0 | 305R, hardware: 2.0 | 325R, hardware: 2.0 |
    | 2733061 |   1 | 1 | 305R, hardware: 1.0                                             |
    | 2877196 |   4 | 2 | 301R, hardware: 1.0 | 301R, hardware: 2.0                       |
    | 2980878 |   4 | 1 | 305R, hardware: 2.0                                             |
    | 3032128 | 144 | 1 | 301R, hardware: 2.0                                             |
    | 3288806 |   2 | 0 | NULL                                                            |
    | 3616317 |   1 | 1 | 301R, hardware: 2.0                                             |
    | 4191216 |   1 | 1 | 325R, hardware: 2.0                                             |
    | 4538175 |   2 | 1 | 305R, hardware: 1.0                                             |
    | 4863394 |   1 | 1 | 325R, hardware: 2.0                                             |
    | 5107645 |  22 | 1 | 301R, hardware: 2.0                                             |
    | 5737450 |   6 | 1 | 325R, hardware: 2.0                                             |
    | 5874232 |  14 | 1 | 301R, hardware: 2.0                                             |
    | 6321639 |   2 | 1 | 325R, hardware: 2.0                                             |
    | 6324054 |  33 | 3 | 301R, hardware: 1.0 | 305R, hardware: 2.0 | 305R, hardware: 1.0 |
    | 6739656 |  21 | 2 | 301R, hardware: 1.0 | 305R, hardware: 1.0                       |
    | 6740099 |   1 | 1 | 301R, hardware: 2.0                                             |
    | 6740167 |   1 | 1 | 301R, hardware: 2.0                                             |
    | 6748288 | 262 | 1 | 301R, hardware: 2.0                                             |
    | 6776076 |   2 | 0 | NULL                                                            |
    | 7097342 |   1 | 1 | er MW300R rebranded                                             |
    | 7198110 |  39 | 1 | 305R, hardware: 2.0                                             |
    | 7782299 |   3 | 1 | 305R, hardware: 2.0                                             |
    | 8639731 |   2 | 1 | 325R, hardware: 2.0                                             |
    | 9288922 |  23 | 1 | 305R, hardware: 2.0                                             |
    | 9686483 |   5 | 1 | 325R, hardware: 2.0                                             |
    | 9884461 |   2 | 0 | NULL                                                            |
    +---------+-----+---+-----------------------------------------------------------------+
    44 rows in set (0.01 sec)
    
    
    
     
    #4830 Isica, 5 Oct 2020
    Last edited: 5 Oct 2020
  11. binarymaster

    binarymaster Elder - Старейшина

    Joined:
    11 Dec 2010
    Messages:
    4,604
    Likes Received:
    9,793
    Reputations:
    120
    Поискать по запросу могу, но этот запрос не проходит, нет колонок OUI и NIC, есть только BSSID в десятиричном виде.
     
  12. Isica

    Isica Active Member

    Joined:
    17 Oct 2018
    Messages:
    133
    Likes Received:
    106
    Reputations:
    1
    Тогда так:
    Code:
    SELECT LPAD(CONV(BSSID>>24,10,16),6,'0') OUI, COUNT(DISTINCT(FLOOR(PIN/10)))/COUNT(DISTINCT(FLOOR(PIN/10))-(BSSID&255)-(BSSID>>8&255)-(BSSID>>16&255)) y FROM [TABLE] GROUP BY OUI HAVING y>2 ORDER BY OUI;
    
    А пока хотелось бы посмотреть выборку с моделями по C0:A5:DD и C8:E7:D8--там довольно много целевых устройств.
     
  13. binarymaster

    binarymaster Elder - Старейшина

    Joined:
    11 Dec 2010
    Messages:
    4,604
    Likes Received:
    9,793
    Reputations:
    120
    Я к запросу ещё добавил исключение записей без BSSID и без WPS PIN.
    Code:
    "00026F"    "2,7427"
    "001E6E"    "2,7857"
    "00271C"    "3,5567"
    "009ACD"    "2,0842"
    "00B0C0"    "12,2571"
    "020271"    "6,8252"
    "145F94"    "2,3586"
    "14A51A"    "2,6242"
    "14A9E3"    "5,0520"
    "1C0656"    "4,2500"
    "2008ED"    "2,0664"
    "20F3A3"    "6,5510"
    "240995"    "2,3696"
    "24DF6A"    "2,1497"
    "2C67FB"    "9,6480"
    "2C67FC"    "8,1705"
    "386B1C"    "26,3667"
    "404D8E"    "2,8790"
    "44C346"    "2,2225"
    "4E9EFF"    "2,0645"
    "5001D9"    "2,4718"
    "581F28"    "2,4818"
    "5C4CA9"    "2,5686"
    "5C7D5E"    "3,8778"
    "620271"    "2,6105"
    "6A0271"    "2,5712"
    "6A1AB2"    "22,6522"
    "6C7220"    "3,4319"
    "7062B8"    "3,4416"
    "720271"    "2,5680"
    "80717A"    "2,1666"
    "88DC96"    "5,0556"
    "9094E4"    "2,3640"
    "98F537"    "2,6238"
    "A08D16"    "2,0798"
    "ACCF85"    "2,1064"
    "B08900"    "2,3858"
    "B43052"    "2,3661"
    "B808D7"    "2,6950"
    "C0A0BB"    "3,6600"
    "C0A5DD"    "36,3333"
    "C4072F"    "2,7441"
    "C4A81D"    "2,8809"
    "C8E7D8"    "60,1724"
    "CA64C7"    "26,1000"
    "D06F82"    "3,1665"
    "D2154A"    "3,0000"
    "D4BF7F"    "3,3709"
    "D8FEE3"    "2,0379"
    "DC094C"    "2,3153"
    "ECCB30"    "2,2472"
    "F4559C"    "4,7755"
    "F48E92"    "2,7001"
    "F49FF3"    "2,0439"
    "F4C714"    "2,6667"
    
     
    hydra and Isica like this.
  14. Isica

    Isica Active Member

    Joined:
    17 Oct 2018
    Messages:
    133
    Likes Received:
    106
    Reputations:
    1
    Отлично! Теперь бы поглядеть с моделями те OUI, у которых коэффициентом попадания >5
     
  15. Monohrom

    Monohrom Active Member

    Joined:
    26 Jan 2020
    Messages:
    82
    Likes Received:
    132
    Reputations:
    2
    На роутерах на базе Realtek есть баг благодаря которому pixie dust может брать точки которые раньше брать было не возможно. Как спровоцировать баг неизвестно

    Под спойлерами выхлоп pixie dust. Тесты проводились на одной и той же точке. Это был Netis WF2411E_RU Router - RTL8xxx EV-2010-09-20.

    Pixiewps 1.4

    [?] Mode: 3 (RTL819x)
    [*] Seed N1: -
    [*] Seed ES1: -
    [*] Seed ES2: -
    [*] PSK1: ffa4717018d002846783d578d71d2c3d
    [*] PSK2: 883da0b1478636dd572a127aca92884c
    [*] ES1: 5b8d5b7523d09d623bb7521b5570725d
    [*] ES2: 5b8d5b7523d09d623bb7521b5570725d
    [+] WPS pin: 31160506

    [*] Time taken: 0 s 217 ms
    [?] Mode: 3 (RTL819x)
    [*] Seed N1: 1602253026 (Fri Oct 9 14:17:06 2020 UTC)
    [*] Seed ES1: 1602253027 (Fri Oct 9 14:17:07 2020 UTC)
    [*] Seed ES2: 1602253027 (Fri Oct 9 14:17:07 2020 UTC)
    [*] PSK1: 634b89396693a821826313e34fbe5b12
    [*] PSK2: ac85ba44712417e7daf5b0e59e3918ca
    [*] ES1: 52ba659069f573331c745e77357ded8e
    [*] ES2: 52ba659069f573331c745e77357ded8e
    [+] WPS pin: 31160506

    [*] Time taken: 0 s 217 ms

    Баг также проявляется на Тендах и регистраторах от Xiaomi: YICarCam
     
    TOX1C, Payer, hydra and 2 others like this.
  16. TOX1C

    TOX1C Elder - Старейшина

    Joined:
    24 Mar 2012
    Messages:
    1,065
    Likes Received:
    1,834
    Reputations:
    22
    Может баг возникает при первом подключении через wps после перезагрузки? Решил на удачу сломать нетис с сильным сигналом и плохими клиентами, и сразу словил этот баг.
    Code:
    pixiewps -e d0:14:1b:15:65:6e:96:b8:5f:ce:ad:2e:8e:76:33:0d:2b:1a:c1:57:6b:b0:26:e7:a3:28:c0:e1:ba:f8:cf:91:66:43:71:17:4c:08:ee:12:ec:92:b0:51:9c:54:87:9f:21:25:5b:e5:a8:77:0e:1f:a1:88:04:70:ef:42:3c:90:e3:4d:78:47:a6:fc:b4:92:45:63:d1:af:1d:b0:c4:81:ea:d9:85:2c:51:9b:f1:dd:42:9c:16:39:51:cf:69:18:1b:13:2a:ea:2a:36:84:ca:f3:5b:c5:4a:ca:1b:20:c8:8b:b3:b7:33:9f:f7:d5:6e:09:13:9d:77:f0:ac:58:07:90:97:93:82:51:db:be:75:e8:67:15:cc:6b:7c:0c:a9:45:fa:8d:d8:d6:61:be:b7:3b:41:40:32:79:8d:ad:ee:32:b5:dd:61:bf:10:5f:18:d8:92:17:76:0b:75:c5:d9:66:a5:a4:90:47:2c:eb:a9:e3:b4:22:4f:3d:89:fb:2b -r ba:bd:fa:ee:b1:3e:a0:ca:0a:6b:18:cd:14:88:78:48:88:07:18:d8:69:dc:7a:87:dd:f0:d9:93:9d:5e:f1:7e:dd:3c:11:e7:b6:12:4c:19:32:37:26:ef:51:5f:40:92:eb:fb:cd:d9:f9:d5:13:90:6c:ed:05:c3:4d:e1:88:11:79:56:ec:15:57:a1:64:21:69:a8:79:07:09:d6:14:83:f1:6f:ce:46:fd:59:f2:b8:ed:55:23:e0:83:4b:98:07:cb:16:fb:e0:cd:4b:00:fd:da:24:2f:f5:8c:0c:a8:e2:47:d3:e3:83:a6:66:49:c3:6a:29:6d:4d:11:49:be:e3:45:40:8c:bf:1b:4b:29:99:42:8d:c3:ed:6d:07:0d:00:ca:ca:eb:14:f1:1f:dd:84:dc:2e:3f:fc:0f:14:77:6f:0d:6e:66:64:0b:c3:03:c8:51:4c:72:80:4b:21:94:63:cf:ff:84:a7:39:bd:61:05:57:ed:eb:a5:57:cd:aa:e9 -s 40:ed:69:e8:26:19:89:fd:f9:52:34:7e:23:1e:80:5f:fc:d0:f7:9a:2f:ae:be:29:02:cc:8a:7b:8c:7c:f6:5f -z d4:0b:ad:de:54:a8:36:88:aa:e0:b5:22:ee:ca:d9:91:6a:06:7c:5e:6e:79:13:eb:2b:61:5c:ee:a7:2e:7f:de -a 2b:72:3c:0f:c8:ad:41:b9:cc:17:0d:08:91:9a:21:aa:7a:7f:8e:8a:d2:27:df:b3:52:83:98:57:44:99:87:ba -n 6a:2d:d5:53:3e:cf:3d:dc:6b:bd:35:29:0a:7d:7d:62 -m 50:e4:07:36:30:d6:10:f8:74:3a:74:72:87:d9:d0:27 -v 3 --force
    Code:
     Pixiewps 1.4
    
     [?] Mode:     3 (RTL819x)
     [*] Seed N1:  -
     [*] Seed ES1: -
     [*] Seed ES2: -
     [*] PSK1:     198320541c5e9596caa3dbc2cfd25634
     [*] PSK2:     33027afb9d27de4236880b776734f16e
     [*] ES1:      6a2dd5533ecf3ddc6bbd35290a7d7d62
     [*] ES2:      6a2dd5533ecf3ddc6bbd35290a7d7d62
     [+] WPS pin:  08367044
    
     [*] Time taken: 0 s 11 ms
    
    Такой же Netis WF2411E_RU, прошивка 2.4.41346

    Странно так же и то, что точка после этого бага продолжает использовать время в качестве рандома.
     
    4Fun likes this.
  17. VasiliyP

    VasiliyP Well-Known Member

    Joined:
    30 Aug 2011
    Messages:
    296
    Likes Received:
    567
    Reputations:
    8
    В вашем логе нет ничего особенного. Точка генерирует три "случайных" числа. Одно из них известно (-n 6a:2d... на входе pixewps). Два других (ES1, ES2) нужно подобрать. Так вот, если realtek генерирует эти три числа в течение одной секунды то они оказываются... равны. Потому что генератор каждый раз инициализируется номером текущей секунды (Seed N1). И подбирать номер той секунды попросту не нужно. Что мы и наблюдаем в логе.
    А если не равны? Тогда по известному числу (-n 6a:2d...) был бы подобран номер секунды (Seed N1) и проверялись бы Seed ES1,2 из предположения, что они по номеру где-то рядом.
     
    4Fun, binarymaster and TOX1C like this.
  18. 4Fun

    4Fun Well-Known Member

    Joined:
    25 Jul 2018
    Messages:
    447
    Likes Received:
    532
    Reputations:
    6
    В том-то и дело, что когда seed у E-Nonce, E-S1 и E-S2 основаны на времени и равны (или отличаются в секунду-две), они печатаются напротив "Seed N1:" и "Seed N2:", то есть пользователь видит 2 timestamp, совпадающих или отличающихся в 1-2 секунды — здесь же прочерки. Что значат эти прочерки, я не разобрался, т.к. чтение исходников Pixiewps на Си я пока что не поднимаю.
     
    #4838 4Fun, 1 Nov 2020
    Last edited: 1 Nov 2020
  19. VasiliyP

    VasiliyP Well-Known Member

    Joined:
    30 Aug 2011
    Messages:
    296
    Likes Received:
    567
    Reputations:
    8
    Прочерки означают, что эти значения не вычислялись. Они нужны только для вычисления E-S1,2. Поскольку E-S1,2 оказались известны, seed не нужно вычислять.
     
    binarymaster and TOX1C like this.
  20. 4Fun

    4Fun Well-Known Member

    Joined:
    25 Jul 2018
    Messages:
    447
    Likes Received:
    532
    Reputations:
    6
    Хорошо, тогда на чём основаны E-Nonce, E-S1 и E-S2, если они не вычисляются с помощью PRNG на основе текущего времени? Это какие-то константы? Если так, то об этом не говорилось в оригинальной презентации Доминика Бонгарда, а также в других источниках.