**Модуль LINUX** VIM команды ``` ```i, I change to insert mode h, j, k, l move left, down, up, right w, b, e, ge move word at a time [n][action/movement] do n times, e.g. 3w x, X remove a character a, A append f[char] move to next given char in line F[char] move to previous char in line ; and , repeat last f or F /yourtext and then: n, N Search text d[movement] delete by giving movement r[char] replaces character below cursor 0, $ move to start/end of line o, O add new line % Goto corresponding parentheses ci[movement] change inside of given movement D delete to end of line S clear current line; to insert mode gg / G move to start / end of buffer yy copy current line p Paste copied text after cursor. ``` ``` h - влево курсор k - вверх j - вниз l - вправо b - начало предыдущего слова w - начало след слова e - конец слова Если добавить цифру перед командой выше, то перекинет на это кол-во цифр Цифры перед словом 3go - превращает в gogogo Shift + % - перепрыгивание со скобок на другие скобки О - начало предложения Shift + $ - конец предложения shift + * - перепрыгивание на слово, начин с той буквы где курсор shift + # - обратная последовательность команды выше gg - начало файла Shift + G - конец файла 2+Shift+G - переход на начало 2-го абзаца / - поиск Прим: /text - ищет слова text в файле n - переключение на след слово text Shift+n - обратная последовательность верхней команды о,О - создает новую линию х - удаление под курсором r - позволяет под курсором заменить букву d - удаление команды dw - удаление первого слова справа от курсора d2w - удаляет 2 слова подряд после нажимая . - удаляет следующие слова подряд v - визуальное выделение e - выбирает слово d - удалить :w - сохранить :q - выход :q! - выход без сохранения :u - отмена Ctrl+r - готовность :help - помощь ``` **Команды linux** ls ![](https://i.imgur.com/936jFT6.jpg) ![](https://i.imgur.com/Q65lo6L.jpg) mkdir ![](https://i.imgur.com/lbL0Diw.jpg) echo ![](https://i.imgur.com/Q1QkrSV.jpg) Создание и удаление ссылок жесткие ссылки ![](https://i.imgur.com/9QVlKav.jpg) символьные ссылки ![](https://i.imgur.com/VhIrRZF.jpg) ![](https://i.imgur.com/JfbAR3v.jpg![](https://i.imgur.com/x48I84Z.jpg) rm ![](https://i.imgur.com/PrLgllX.jpg) **Подключение по ssh Linux** ssh-keygen cd /home/kali/.ssh ls -la sudo apt install openssh-server sudo systemctl start ssh.socket sudo systemctl enable ssh.socket ![](https://i.imgur.com/47HTZWH.png) ![](https://i.imgur.com/0OS0be1.jpg) Далее для удобства копирования команд подключаемся через хост машину к Kali ![](https://i.imgur.com/cl2F4nG.jpg) Вводим команду: cat ~/.ssh/id_rsa.pub | ssh parallels@10.211.55.5 "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys" Далее mkdir -p ~/.ssh cat id_rsa.pub > ~/.ssh/authorized_keys проверяем cat ~/.ssh/authorized_keys меняем права chmod -R go= ~/.ssh Подключаемся ssh parallels@10.211.55.5 ![](https://i.imgur.com/I21oEEx.jpg) ![](https://i.imgur.com/kf8u4q5.png) Вошли на Debian. Устанавливаем htop sudo apt install htop Запускаем htop ![](https://i.imgur.com/oVcRyr3.jpg) НАСТРОЙКА DHCP - в предыдушем уроке. Настраивал на микротике https://hackmd.io/@Mart/HkiNMEpGF **Bandit** ![](https://i.imgur.com/AIzhmVK.png) **Практическая работа 1** > Просмотрите информацию по всем сетевым интерфейсамкомандой ifconfig –a Устанавливаем на убунту пакет net-tools Он включают в себя следующее: > ifconfig netstat dig hostname route arp iptunnel sudo apt install net-tools -y После вводим на убунту ifconfig -a и команда заработала ![](https://i.imgur.com/y6TU6kU.png) 2.3 Настройка сетевых параметров через графический интерфейс. Из панели слева выберите SystemSettings(системные настройки) Network(сетевые настройки)Можно видеть список различных видов сети. Wired –проводнаясеть. Wireless –беспроводная сеть. В этой практической рабоет необходимо настроить проводную сеть. Выбираем необходимое подключение и для него выбираем «Options» «IPv4 Settings». Указываем сетевые настройки в соответствие со следующей таблицей: Адресс компьютера # 192.168.1.___ Например: 192.168.1.55 Маска подсети # 255.255.255.0 Основной шлюз # 192.168.1.1 Адреса DNS-серверов # 8.8.8.8 # 4.4.4.4 Убедитесь, что сетевой интерфейс удалось настроить, для этого введите команду ifconfig. > Добавляем ip адрес на debian через граф интерфейс > Далее командой sudo dhclient eth0 - настройка dhcp на интерфейс eth0 > Делаем restart - sudo service networking restart > Ping проходит успешно Помогла статья https://losst.ru/nastrojka-seti-iz-konsoli-ubuntu ![](https://i.imgur.com/4DvNCac.jpg) По факту - ping проходит с дефолтного айпишника. Предполагаю дело в том, что я не настраивал ip на kali (10.211.55.4) broadcast у машин отличается. Либо я не добавил еще один интерфейс на debian, а изменил только через графич system setting, плюс оставил тот же мас адрес. **Основы Linux** https://hackmd.io/@IgorLitvin/BJIgQqC-K **Модель прав доступа** ![](https://i.imgur.com/it3r6UF.jpg) * Изменение пользователя и группы владельца Чтобы изменить владельца или группу файла (или другого объекта) используется команды chown или chgrp соответственно. Сначала нужно передать имя группы или владельца, а потом список файлов. #chown root /etc/passwd #chgrp wheel /etc/passwd Вы также можете изменить пользователя и группу одновременно используя команду chown в другой форме: #chown root:wheel /etc/passwd Рекурсивное изменение прав #chown -R drobbins /home/drobbins chmod и chgrp - для изменения прав доступа $ chmod +x scriptfile.sh $ chmod -x scriptfile.sh Разделение между пользователем, группой и всеми остальными $ chmod go-w scriptfile.sh * Сброс разрешений Используя оператор равенства мы можем указать chmod, что хотим задать только указанные права доступа: $ chmod =rx scriptfile.sh $ chmod u=rx scriptfile.sh > umask Система использует значение umask чтобы понизить изначально задаваемые разрешения на что-то более разумное и безопасное. Вы можете просмотреть текущие настройки umask набрав umask в командной строке: $ umask 0022 В Linux-системах значением по умолчанию для umask является 0022, что позволяет другим читать ваши новые файлы (если они могут до них добраться), но не изменять их. Чтобы автоматически обеспечивать больший уровень защищенности для создаваемых файлов, можно изменить настройки umask: $ umask 0077 * Изменение suid и sgid Способ установки и удаления битов suid и sgid чрезвычайно прост. Вот так мы задаем бит suid: #chmod u+s /usr/bin/myapp А в следующем примере мы снимаем флаг sgid с директории. Вы увидите, как бит sgid работает с директориями немного ниже: #chmod g-s /home/drobbins * Директории и удаление любой пользователь в любой момент может напечатать rm -rf /tmp/* и уничтожить файлы всех остальных. Хорошая новость в том, что в Linux существует так называемый sticky бит. Когда для /tmp установлен sticky бит (командой chmod +t), единственные, кто могут удалить или переименовать файлы в /tmp — это либо владельцы этих файлов либо суперпользователь. * Неуловимый первый знак В завершение этого раздела мы наконец обратим внимание на первый знак, используемый в численном синтаксисе. Он используется для задания битов sticky, suid и sgid: suid sgid sticky режим on on on 7 on on off 6 on off on 5 on off off 4 off on on 3 off on off 2 off off on 1 off off off 0 #chmod 1775 /home/groupfiles В качестве домашней работы выясните что значит 1755 в настройках прав доступа. :) * 1 - пользователь, создавший файл может удалять или переименовывать * 7 - user rwx полные права * 7 - group rwx полные права * 5 - other r-x чтение и исполнение * Управление аккаунтами в Linux Итак, сами пользовательские аккаунты определены в /etc/passwd. Системы Linux вдобавок к /etc/passwd содержат его файл-компаньон /etc/shadow. Он, в отличие от /etc/passwd, доступен для чтения только суперпользователю и содержит зашифрованную информацию о паролях. Взглянем на образец строки из /etc/shadow: drobbins:$1$1234567890123456789012345678901:11664:0:-1:-1:-1:-1:0 Каждая строка определяет информацию о пароле конкретного аккаунта, поля в ней разделены знаком “:”. Первое поле определяет конкретный пользовательский аккаунт, которому соответствует данная «теневая» запись. Во втором поле содержится зашифрованный пароль. Оставшиеся поля описаны в таблице ниже: поле 3 — количество дней с 01.01.1970 до момента, когда пароль был изменен поле 4 — количество дней до того, как будет разрешено сменить пароль («0» — «менять в любое время») поле 5 — количество дней до того, как система заставит пользователя сменить пароль (“-1” — «никогда») поле 6 — количество дней до истечения срока действия пароля, когда пользователь получит предупреждение об этом (“-1” — «не предупреждать») поле 7 — количество дней после истечения срока действия пароля, по прошествии которых аккаунт будет автоматически отключен системой (“-1” — «не отключать») поле 8 — количество дней, прошедшее с момента отключения этого аккаунта (“-1” — «этот аккаунт включен») поле 9 — зарезервировано для будущего использования * 2.3 Ручное создание пользователей и групп Теперь, я покажу как создать аккаунты для пользователя и группы. Лучший путь узнать как это сделать это добавить нового пользователя в систему вручную. Для начала убедитесь что вашей переменной окружения EDITOR соответствует ваш любимый редактор: #echo $EDITOR vim Если это не так, то вы можете установить переменную EDITOR, набрав что-то, вроде: #export EDITOR=/usr/bin/emacs #vipw Теперь ваш редактор должен быть запущен с уже загруженным /etc/passwd экране. Изменяя системные файлы passwd и group обязательно используйте команды vipw и vigr. Они имеют повышенные меры предосторожности, оберегая ваши файлы от участи быть испорченными. * Редактирование /etc/passwd Итак, у вас уже есть готовый файл /etc/passwd, добавьте теперь следующую строку: testuser:x:3000:3000:LPI tutorial test user:/home/testuser:/bin/false * Редактирование /etc/shadow Сейчас нам нужно добавить запись в /etc/shadow для этого пользователя. Для этого наберите vipw -s. Вас как всегда встретит ваш любимый редактор в котором уже открыт файл /etc/shadow. Теперь скопируйте строку существующего пользовательского аккаунта (того, у которого есть пароль и запись которого длиннее стандартных записей системных аккаунтов) drobbins:$1$1234567890123456789012345678901:11664:0:-1:-1:-1:-1:0 Замените имя пользователя в скопированной строке на имя вашего пользователя и убедитесь что все поля (особенно старый пароль) установлены как вам надо: testuser:$1$1234567890123456789012345678901:11664:0:-1:-1:-1:-1:0 Теперь сохраните и закройте. ![](https://i.imgur.com/AkASTRD.jpg) **так и не понял почему в итоге такую ошибку выдал, после того как я вышел из редактора,не прописав ничего** * 2.4 Установка пароля задать пароль для вашего нового пользователя. #passwd testuser Enter new UNIX password: (enter a password for testuser) Retype new UNIX password: (enter testuser's new password again) Редактирование /etc/group наберите: #vigr Перед вами появится ваш /etc/group файл, готовый для редактирования.вам нужно добавить новую группу для этого пользователя, введите следующую строку: testuser:x:3000: Теперь сохраните и закройте. * 2.5 Создание домашней директории Выполните следующие команды для создания домашнего каталога testuser’а: #cd /home #mkdir testuser #chown testuser:testuser testuser #chmod o-rwx testuser * 3. Утилиты администрирования учетных записей newgrp — По умолчанию, любой файл, который создает пользователь, сразу же присваивается к группе, в которой он состоит, определенной в /etc/passwd. Если пользователь принадлежит к другим группам, он или она может набрать newgrp thisgroup чтобы стать членом группы thisgroup. Затем, любые новые созданные файлы унаследуют членство в thisgroup. chage — Команда chage используется для просмотра и изменения настроек срока действия паролей, сохраненных в /etc/shadow. gpasswd — Основная утилита управления группами groupadd/groupdel/groupmod — Используются для добавления/удаления/изменения групп в /etc/group useradd/userdel/usermod — Используются для добавления/удаления/изменения пользователей в /etc/passwd. Эти команды могут выполнять и другие полезные функции. Смотрите man для получения дополнительной информации. pwconv/grpconv — Используются для преобразования passwd и group файлов старого образца в новые shadow passwords. Фактически, все Linux системы уже используют shadow passwords, так что вам никогда не придется использовать эти команды. ![](https://i.imgur.com/oEGgPqF.png) * 4. Настройка пользовательского окружения 4.1 Знакомство с «fortune» ![](https://i.imgur.com/vCaL3nw.png) bashprofile Теперь давайте сделаем так чтобы fortune запускалось при каждой авторизации. Используя любимый текстовый редактор отредактируйте файл .bashprofile в вашей домашней директории. Если такого файла не существует, создайте его. Вставьте в его началo. fortune Попробуйте выйти из системы и зайдите обратно. 4.2 Оболочка входа. При запуске bash проходит файл .bashprofile в вашей домашней директории, запуская каждую строчку как будто набирая ее в командной строке. Это называется интерпретацией файла (file sourcing). Существуют два способа запуска bash в качестве оболочки входа. Первый используется когда вы впервые входите в систему: bash запускается с именем процесса -bash. Можно увидеть это в выводе списка процессов: $ ps u USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND chouser 404 0.0 0.0 2508 156 tty2 S 2001 0:00 -bash ![](https://i.imgur.com/3wgl54Q.jpg) Если bash запущена интерактивно, без авторизации, она проигнорирует /etc/profile и ~/.bashprofile вместо этого обработает ~/.bashrc. interactive login profile rc yes yes source ignore yes no ignore source no yes source ignore no no ignore ignore Проверка на интерактивность Хорошей идеей является использование переменной PS1 для проверки факта интерактивности текущей сессии перед выводом текста: if [ -n "$PS1" ]; then fortune fi export ![](https://i.imgur.com/nPjYsgv.jpg) 4.3 Экспортирование переменных можете отметить переменную на экспорт, передав её встроенной команде export: $ FOO=foo $ BAR=bar $ export BAR $ echo $FOO $BAR foo bar $ bash $ echo $FOO $BAR bar В этом примере были заданы обе переменные FOO и BAR, но только BAR была помечена для экспорта. Когда был запущен новый bash он потерял значение переменной FOO. Если вы выйдите из этого нового* bash*, вы увидите что первоначальные значения обоих переменных FOO и BAR не изменились. $ exit $ echo $FOO $BAR foo bar Export и set -x В связи с вышеописанным поведением, переменные могут быть указаны в ~/.bashprofile или /etc/profile и помечены для экспорта, для того, чтобы в дальнейшем не было необходимости указывать их снова. Но есть несколько опций которые не могут быть экспортированы, и поэтому они должны быть заданы в ~/.bashrc и в вашем профиле последовательно. Эти опции настраиваются при помощи встроенной команды set: $ set -x Опция -x заставляет bash вывести на экран каждую команду, которую он собирается выполнить: $ echo $FOO $ echo foo foo Чтобы выключить опцию -x, используйте set +x. **К дальнейшим разделам не приступал еще, но планирую доработать задания** # **Доп занятия по Linux** ![](https://i.imgur.com/W4lsDGz.png) ![](https://i.imgur.com/3bPxDkV.jpg) ![](https://i.imgur.com/ZqJIFiP.png) ![](https://i.imgur.com/Qg4rD92.png) ![](https://i.imgur.com/velxgEg.png) ![](https://i.imgur.com/lz37aFq.png) ![](https://i.imgur.com/k9yqSWt.png) * Если что то настраиваем то меняем SSH port с 22 на другой ![](https://i.imgur.com/GbBu0MK.png) * Metasploit ![](https://i.imgur.com/MiZ7KTp.png) Bitvise - программа для подключения по SSH **IPTABLES** * Входящая цепочка соединений - Input * Иходящий - Output * Проходящий трафик - Forward -D - удалить -F - удалить всю цепочку -p -протокол (tcp,udp) -Accept - разрешить -Reject - отклонить -Drop - скинуть -Log - залогировать пакет -q - отпарвить пакет в польз приложение -prerouting -postrouting -filter (фильтрация пакетов) iptables-save - сохранить данные Чем правило выше , тем быстрее применение этого правила iptables -I INPUT 1 -p tcp -j DROP -поставили правило на 1 место ![](https://i.imgur.com/0GuAson.png) Позволяет блокировать доступ с определенного IP ![](https://i.imgur.com/asUZdfs.jpg) **NMAP** ![](https://i.imgur.com/knquBN8.png) ![](https://i.imgur.com/cfaVI82.jpg) nmap 192.168.88.70 -p445 -sV(версия) -sC(скрипты по умолчанию) ![](https://i.imgur.com/J0ZqLGP.jpg) ![](https://i.imgur.com/VcyFPlA.jpg) ![](https://i.imgur.com/5YoqLNs.jpg) -p- показывает какие порты -p- -sV -oA nmap-scan Зомби сканирование - [Опции выбора метода сканирования](https://muff.kiev.ua/content/nmap-network-mapper-utilita-dlya-skanirovaniya-i-issledovaniya-bezopasnosti-seti) Руководство по [NMAP](https://nmap.org/man/ru/index.html) **Базовое тестирование безопасности** ![](https://i.imgur.com/NV8Z7Y3.png) **Автоматический поиск уязвимостей** ![](https://i.imgur.com/bOo5Bno.png) LInux expoit suggester - запускать от метасплойта **Проверка целостности пакетов** ![](https://i.imgur.com/I8w9n8r.png) * searchsploit - локальное зеркало exploitdb * sploitus.com **Bash** ![](https://i.imgur.com/orJEQrK.jpg) цикл for ![](https://i.imgur.com/ed8g7W5.png) ![](https://i.imgur.com/DBf7Boa.png) while цикл ]**Cron** ![](https://i.imgur.com/Vj81gEZ.jpg) минута, день, месяц, день недели ![](https://i.imgur.com/VA9p5FC.jpg) ![](https://i.imgur.com/Kfd28QL.jpg) while ![](https://i.imgur.com/E25wypH.png)