Содержание статьи
- Как можно вернуть Firefox в первоначальное состояние без переустановки?
- Расскажи про Master-Slave репликацию БД, на примере той же MySQL
- Какие наиболее актуальные скиллы стоит выделить для пентестера?
- Играюсь с виртуалками на базе дебиан, как бы мне их соединить в одну сеть и подключить к интернету?
- Какую книжку можешь посоветовать по электронике?
- Иногда требуется дизассемблер, но софта под рукой порой может не быть. Что порекомендуешь?
- Есть ли какие-нибудь вики по XSS?
- Как можно поиграться с С и заодно c безопасностью винды?
- Нравится питон, возможно ли на нем писать на андроид-девайсе?
- На чем лучше писать под винду — на bat или PowerShell?
- Надоело держать на столе несколько клавиатур, что есть интересное на рынке для мобильных устройств и для того же ноутбука?
- Как бы мне смоделировать DoS-атаку SYN-пакетами с разных источников?
- Не подкинешь хороший мануал по Awk?
- Как можно разогнать Ubuntu?
Как можно вернуть 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
Xakep #197. Социальная инженерия
Какие наиболее актуальные скиллы стоит выделить для пентестера?
Все, конечно же, зависит от специализации, но я бы выделил следующие. Нужно понимать, как работает операционная система, это первостепенно. Затем понадобятся хорошие фундаментальные знания сетей и протоколов, без этого ты не сможешь не только толком понять такие атаки, как 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, включает в себя много полезных библиотек. На своем мобильном устройстве можно писать веб-приложения, игры или приложения для самого андроида с доступом к функциям телефона.
На чем лучше писать под винду — на 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.
Ну что, заинтересовал? По мне, так этот продукт стоит того, чтобы его попробовать в своих проектах.
Как можно разогнать Ubuntu?
Шаг 1. Оптимизация начальной загрузки. В Ubuntu по умолчанию установлена утилита readahead, которая позволяет ускорить загрузку системы. Для того чтобы эта утилита давала максимальный эффект, рекомендуется время от времени загружать систему с параметром profile, который обновляет кеши readahead. Чтобы сделать это, надо во время загрузки компьютера зайти в меню GRUB, зажав Shift при включении компьютера, затем выбрать строку c названием Ubuntu и нажать кнопку E для редактирования параметров загрузки. Необходимо добавить слово profile в конец строки. Для загрузки системы нажми
Эти действия обновляют информацию обо всех используемых на этапе загрузки библиотеках и утилитах в файле /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-дюймовый с хорошей матрицей дает отличный обзор и возможности по компоновке окон на экране.