Содержание статьи

 

Как можно вернуть Firefox в первоначальное состояние без переустановки?

Нужно проделать так называемую очистку (на «сленге» Firefox). Делается она довольно просто: открываем новую вкладку и в строке поиска вводим

about:support

Откроется страничка Troubleshooting Information, на которой вверху будет кнопка Refresh Firefox, она-то нам и нужна. Нажимаем, соглашаемся с изменениями — и вуаля, получаем нашу лису в первозданном виде.

 

Расскажи про Master-Slave репликацию БД, на примере той же MySQL

Думаю, нет смысла рассказывать, что такое репликация, так что сразу к делу. Будем считать, что у нас два сервера с БД: один, соответственно, мастер, другой — слейв.

Master сервер, 10.10.0.1
Slave сервер, 10.10.0.2

На сервере, который у нас является мастером, вносим правки в my.cnf:

# Выбираем ID сервера, произвольное число, лучше начинать с 1
server-id = 1
# Путь к бинарному логу
log_bin = /var/log/mysql/mysql-bin.log
# Название базы данных, которая будет реплицироваться
binlog_do_db = newdatabase

Ребутаем мускуль:

/etc/init.d/mysql restart

Теперь нужно создать юзера, из-под которого будет происходить репликация.

mysql -u root -p

Создаем и назначаем права пользователю для реплики:

GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;

Блокируем все таблицы в нашей базе данных:

USE newdatabase;
FLUSH TABLES WITH READ LOCK;

Проверяем статус мастер-сервера:

SHOW MASTER STATUS;

Увидим табличку со значениями, нам из нее нужны значения столбцов file и position, их нужно будет использовать для запуска слейва. В моем случае это mysql-bin.000001 и 107. Делаем дамп базы данных:

mysqldump -u root -p newdatabase > newdatabase.sql

Разблокируем таблицы в консоли MySQL:

UNLOCK TABLES;

И в настройках my.cnf на слейве делаем следующее:

# ID слейва, удобно выбирать следующим числом после мастера
server-id = 2
# Путь к relay-логу
relay-log = /var/log/mysql/mysql-relay-bin.log
# Путь к bin-логу на мастере
log_bin = /var/log/mysql/mysql-bin.log
# База данных для репликации
binlog_do_db = newdatabase

Остается включить репликацию, для этого на слейве выполняем команду

CHANGE MASTER TO MASTER_HOST='10.10.0.1', MASTER_USER='slave_user', MASTER_PASSWORD='password',                 MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 107;

Напоминаю, что последние два значения мы берем с мастера. Запускаем репликацию:

START SLAVE;

Все. Как видишь, на самом деле это не так сложно. Чтобы проверить статус репликации на слейве, выполни команду:

SHOW SLAVE STATUS\G
Репликация
Репликация
 

Какие наиболее актуальные скиллы стоит выделить для пентестера?

Все, конечно же, зависит от специализации, но я бы выделил следующие. Нужно понимать, как работает операционная система, это первостепенно. Затем понадобятся хорошие фундаментальные знания сетей и протоколов, без этого ты не сможешь не только толком понять такие атаки, как MITM или ARP Spoof, но и удачно их проэксплуатировать. Умение писать на скриптовых языках, таких как bash. Для примера можно глянуть видео «Introducing to Bash Scripting: Automating Recon» — как видно из названия, bash можно использовать не только для мини-скриптов в пять строк. Сюда же можно отнести языки программирования — конечно, знать все невозможно, но опять-таки, уметь набросать себе какую-то программулину весьма полезно. Ну и пожалуй, самое главное — это делать то, что тебе действительно нравится, благодаря этому ты сможешь все.

 

Играюсь с виртуалками на базе дебиан, как бы мне их соединить в одну сеть и подключить к интернету?

Для начала нам нужно настроить сами виртуальные машины, чтобы у первой было две сетевые карточки (одна для внутренней сети, другая для внешней), соответственно, на второй машине достаточно одной сетевой карты. Приступаем к самой настройке. Допустим, что на первой машине у нас следующие интерфейсы:

  • eth0 — к ней подключен интернет;
  • eth1 — к ней подключена локальная сеть.

Настроим eth1, для этого выполним

sudo ifconfig eth1 192.168.0.1 netmask 255.255.255.0
sudo ifconfig eth1 up

Теперь нам нужно разрешить направление пакетов. Чтобы сделать это, отредактируем файл /etc/sysctl.conf:

sudo nano /etc/sysctl.conf

А затем раскомментим строчку:

net.ipv4.ip_forward=1

Для того чтобы применить это правило до перезагрузки, выполним:

sysctl -w net.ipv4.ip_forward="1"

Остается добавить правило в iptables:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Чтобы сохранить правила после перезагрузки, сделаем следующие действия, сохраним настройки в файл:

iptables-save > /etc/iptables.up.rules

И добавляем в конец файла

sudo nano /etc/network/interfaces

эту строчку, для автоматической подгрузки правил:

pre-up iptables-restore < /etc/iptables.up.rules

Также в этот файл добавляем правила роутинга:

up route add -net 192.168.0.0 netmask 255.255.255.0 dev eth1
up route add -net 0.0.0.0 netmask 255.255.255.255 dev eth0

Для второго компьютера, соответственно, нужно будет указать шлюз 192.168.0.1.

 

Какую книжку можешь посоветовать по электронике?

Я думаю, что наиболее крутая книжка — это «Искусство схемотехники», написанная американскими специалистами Паулем Хоровицем и Уинфилдом Хиллом. Кстати, сейчас вышло новое издание, в котором добавили несколько новых глав и обновили материал (доступна, правда, только английская версия).

Искусство схемотехники
Искусство схемотехники
 

Иногда требуется дизассемблер, но софта под рукой порой может не быть. Что порекомендуешь?

Попробуй ODAWeb — довольно занятная штука, особенно если реально серьезных инструментов нет под рукой или просто хочется чего-то простого и лайтового.

 

Есть ли какие-нибудь вики по XSS?

Да, есть! Держи ссылку на XSS Challenge Wiki, здесь собраны различные квесты по XSS, как известные, так и не очень. Но на всех можно поучиться, поковырять и сделать соответствующие выводы.

 

Как можно поиграться с С и заодно c безопасностью винды?

Для этого тебе должен помочь проект mimikatz, он как раз написан для изучения С и, что самое главное, для экспериментов с безопасностью Windows.

 

Нравится питон, возможно ли на нем писать на андроид-девайсе?

Одно из интересных и заслуживающих внимания приложений — QPython. Он содержит интерпретатор Python, консоль, редактор и SL4A-библиотеку для Android. Присутствует поддержка PIP, включает в себя много полезных библиотек. На своем мобильном устройстве можно писать веб-приложения, игры или приложения для самого андроида с доступом к функциям телефона.

QPython
QPython
 

На чем лучше писать под винду — на bat или PowerShell?

Это довольно непростой вопрос. С одной стороны, PowerShell — это будущее, он более функционален и современен, с его помощью можно автоматизировать в системе практически все что угодно. Многие считают, что он очень сложен, но это не так, главное — желание. С другой стороны, действительно серьезные многострочные скрипты пишутся не так часто, а для небольших, связанных с бэкапом, переносом файлов и прочими мелкими задачами, ничего лучше bat просто нет. Поэтому частенько на практике встречаются комбайны из переплетения скриптовых языков, когда логика написана на том же PowerShell, а условия и проверки на bat. Так что тут каждый выбирает сам, что ему ближе и удобнее использовать.

 

Надоело держать на столе несколько клавиатур, что есть интересное на рынке для мобильных устройств и для того же ноутбука?

Одним из интересных девайсов, пожалуй, будет клавиатура со встроенной подставкой для cмартфона/планшета толщиной до 10,5 мм и шириной до 25,8 мм и поворотным регулятором Easy-Switch, позволяющим легко выбрать одно из трех подключенных беспроводных устройств. Называется эта клава Logitech Bluetooth Multi-Device Keyboard K480. Также можно посмотреть в сторону клавиатуры от MS, Universal Mobile Keyboard, которая хоть и имеет определенные сходства с K480, все же отличается. О ней, кстати, писали на сайте «Хакера». Ну и в завершение хочется отметить клавиатуры на солнечных батареях от различных производителей, что тоже имеет свои плюсы и минусы. Самое главное — определиться с тем, как эксплуатировать клаву: будешь ли ты ее носить с собой, или же она будет жить только на столе, и, что немаловажно, какого типа кнопки тебе нужны, а уже от этого отталкиваться при выборе.

 

Как бы мне смоделировать DoS-атаку SYN-пакетами с разных источников?

Самое простое — это использовать специальные инструменты, например hping с опцией --rand-source. Для атаки команда будет иметь вид

hping3 -c 10000 -S -p 22 --flood --rand-source 127.0.0.1

После этого мы будем задалбливать целевой хост SYN-пакетами по 22-му порту TCP-пакетами с рандомными источниками в режиме флуда хост с адресом 127.0.0.1.

 

Не подкинешь хороший мануал по Awk?

Легко! Держи хороший мануал, с помощью которого можно разобраться, что вообще такое Awk и как с ним работать, в конце приятный бонус в виде большого количества готовых примеров использования.

MariaDB или MySQL — что лучше?

Про мускул есть много данных, поэтому я сосредоточусь именно на MariaDB. В дополнение к стандартным механизмам хранения данных — MyISAM, Blackhole, CSV, Memory и Archive — РСУБД MariaDB содержит огромный список, больше десятка способов хранения данных. Вот лишь некоторые из них: Aria, XtraDB (прозрачная замена InnoDB), FederatedX.

Безопасная и быстрая репликация: групповое завершение (commit) записи для лога транзакций (binary log). Данная фишка позволяет получить двухкратный прирост производительности для инсталляций, использующих репликацию. Улучшена подсистема асинхронного ввода/вывода для механизма хранения данных InnoDB в операционных системах семейства Windows. Индексы для механизма хранения данных MEMORY (HEAP) теперь еще быстрее. Тесты производительности подтверждают 24%-й рост производительности на операциях вставки (INSERT) данных для целочисленных (integer) индексов, а также 60%-й рост производительности для индексов с использованием символьных (CHAR) типов данных.

Использование механизма хранения данных Aria позволяет выполнять комплексные запросы без использования временных таблиц, создаваемых на устройствах хранения (HDD/SSD/SAS/FC) за счет агрессивных методов кеширования в оперативной памяти. Весь исходный код MariaDB распространяется под лицензиями GPL, LPGL или BSD. MariaDB не содержит закрытых модулей или компонентов, наподобие тех, что содержатся в MySQL Enterprise Edition. Однако это не влияет на доступный функционал MariaDB. Все технологии, существующие в закрытой версии MySQL 5.5 Enterprise Edition, в полном объеме представлены и в MariaDB.

Ну что, заинтересовал? По мне, так этот продукт стоит того, чтобы его попробовать в своих проектах.

MariaDB vs MySQL
MariaDB vs MySQL

 

Как можно разогнать Ubuntu?

Шаг 1. Оптимизация начальной загрузки. В Ubuntu по умолчанию установлена утилита readahead, которая позволяет ускорить загрузку системы. Для того чтобы эта утилита давала максимальный эффект, рекомендуется время от времени загружать систему с параметром profile, который обновляет кеши readahead. Чтобы сделать это, надо во время загрузки компьютера зайти в меню GRUB, зажав Shift при включении компьютера, затем выбрать строку c названием Ubuntu и нажать кнопку E для редактирования параметров загрузки. Необходимо добавить слово profile в конец строки. Для загрузки системы нажми или F10. С этой опцией система будет загружаться дольше обычного, так как будет производиться сбор информации. После полной загрузки нужно еще раз перезагрузиться.

Эти действия обновляют информацию обо всех используемых на этапе загрузки библиотеках и утилитах в файле /etc/readahead/boot, а в /etc/readahead/desktop — информацию о загрузке десктоп-окружения. При следующей загрузке сервис readahead, при помощи программы /sbin/readahead-list, загрузит библиотеки и программы, упоминающиеся в индексе, в page cache, что немного уменьшит время загрузки.

Шаг 2. Оптимизация файловой системы. Отключение журнала для корневого раздела. Выполним в терминале

sudo gedit /etc/fstab

Найди следующую после комментария, похожего на «/ was on /dev/sda2 during installation», строку и приведи ее к виду

# / was on /dev/sda2 during installation
UUID=f4d4d73d-4141-4701-a7e2-ec41664483a7 / ext3 defaults,errors=remount-ro,noatime,data=writeback 0 1

добавив ,noatime,data=writeback. Теперь введи следующую команду в консоли:

sudo gedit /etc/default/grub

и приведи строку

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

к следующему виду

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash rootflags=data=writeback"

Сохрани файл. Обнови конфигурацию загрузчика:

sudo update-grub

Если у тебя раздел отформатирован в одну из файловых систем из семейства ext, выполни следующую команду:

sudo tune2fs -o journal_data_writeback /dev/sdb2

Шаг 3. Отключение ненужных демонов. В зависимости от задач, выполняемых компьютером, некоторые из этих демонов можно отключить и таким образом сэкономить на времени запуска системы и уменьшить нагрузку на систему во время работы. Для этого воспользуемся утилитой sysv-rc-conf.

sudo apt-get install sysv-rc-conf
sudo sysv-rc-conf

Управление осуществляется несколькими клавишами: пробел — ставим/убираем крестик, + + — остановка/запуск процесса, Q — выход. Цифры в верхней строчке — это уровни выполнения. Для отключения сервиса надо просто убрать крестик со всех уровней.

Шаг 4. Отключение ненужного в автозагрузке. Начиная с версии 11.10 все системные программы в автозагрузке скрыты директивой NoDisplay. В окне «Автозапуск программ» отображаются только программы, добавленные пользователем. Для отображения всех программ надо ввести в терминале команду

cd /etc/xdg/autostart && sudo sed --in-place 's/NoDisplay=true/NoDisplay=false/g' *.desktop

Теперь осталось аккуратно отключить то, что не используется, и перезагрузиться. Для возвращения окна «Автозапуск программ» в исходное состояние можно воспользоваться командой:

cd /etc/xdg/autostart && sudo sed --in-place 's/NoDisplay=false/NoDisplay=true/g' *.desktop

Шаг 5. Ускорение запуска программ с помощью preload. Preload — демон, который собирает информацию о наиболее часто используемых программах и кеширует их и используемые ими библиотеки, что приводит к повышению скорости загрузки программ. Для установки нужно просто выполнить в терминале

sudo apt-get install preload

После установки preload перезагрузи компьютер и выполни в консоли команды

sudo touch /var/lib/preload/preload.state
sudo chmod 600 /var/lib/preload/preload.state
sudo /etc/init.d/preload restart

Проверить работу Preload можно, посмотрев содержимое preload.state

sudo cat /var/lib/preload/preload.state

Если файл не пуст, значит, демон работает. Настройки preload по умолчанию подходят большинству, поэтому изменять что-либо в файле /etc/preload.conf необязательно.

Два монитора или один для работы?

Pros. Конечно же, два! На одном можно писать код, а на другом сразу видеть результаты своего умственного труда плюс какие-нибудь графики или тесты делать. Или, скажем, открыть различные логи в реальном времени и править конфиги, смотря за состоянием системы. Это мегаудобно и наглядно. Я уже не говорю про открытые книжки или маны на втором мониторе, а также про возможность развернуть один монитор вертикально.

Cons. Два — это громоздко, да и они должны быть одинаковыми, а то может не совпасть соотношение сторон, и в итоге будет «вырви глаз» по разрешению экрана. Да и зачем два? Вполне хватает одного широкоформатного, даже 23-дюймовый с хорошей матрицей дает отличный обзор и возможности по компоновке окон на экране.

2 комментария

  1. Аватар

    heavis

    01.07.2015 в 07:10

    «Какую книжку можешь посоветовать по электронике?» — http://habrahabr.ru/post/259505/ . Говорят, круто.

  2. Аватар

    SmartButton

    12.07.2015 в 20:41

    Здравствуй, Хакер. Читаю Вас с 2015 года. Сам изучаю программирование на c# и delphi 7. Очень интересуюсь информационной безопасностью и технологиями. Посоветуйте ЛЮБОЙ МАТЕРИАЛ ДЛЯ САМОРАЗВИТИЯ И ПОНИМАНИЯ ОСНОВ В КРИПТОГРАФИИ, ИНТЕРНЕТ ТЕХНОЛОГИЯХ, ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ И САМОЕ ГЛАВНОЕ ЧТО-ТО ЛЛЯ ПОНИМАНИЯ СТАТЕЙ ВАШЕГО ЖУРНАЛА(А ТО УЖЕ ЗАДОЛБАЛСЯ ЛАЗИТ ПО ВИКИПЕДИИ). ЗАРАНЕЕ СПАСИБО. МНЕНИЕ ВАШЕГО ЖУРНАЛА ОЧЕНЬ ВАЖНО ДЛЯ МЕНЯ.

Оставить мнение