Пример: 9) Список всех открытых файлов для определенного устройства (lsof )
Следующая команда может использоваться для вывода списка всех открытых файлов на / dev / vda1.
Примечание: в этом случае тип устройства является виртуальным, обычно это может быть тип / dev / hd <number> / sd {number}
~]# lsof /dev/vda1 | more COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd 1 root cwd DIR 253,1 4096 2 / systemd 1 root rtd DIR 253,1 4096 2 / systemd 1 root txt REG 253,1 1577264 262271 /lib/systemd/systemd systemd 1 root mem REG 253,1 18976 262252 /lib/x86_64-linux-gnu/libuuid.so.1.3.0 systemd 1 root mem REG 253,1 262408 262245 /lib/x86_64-linux-gnu/libblkid.so.1.1.0 systemd 1 root mem REG 253,1 14608 266364 /lib/x86_64-linux-gnu/libdl-2.23.so systemd 1 root mem REG 253,1 456632 262207 /lib/x86_64-linux-gnu/libpcre.so.3.13.2 systemd 1 root mem REG 253,1 1868984 266362 /lib/x86_64-linux-gnu/libc-2.23.so systemd 1 root mem REG 253,1 138696 266361 /lib/x86_64-linux-gnu/libpthread-2.23.so systemd 1 root mem REG 253,1 286824 261756 /lib/x86_64-linux-gnu/libmount.so.1.1.0
Установка и настройка
В данном разделе представлена инструкция по установки и настройке PostgreSQL для разных ОС
Установка
Если установка происходит на macOS, то процесс установки можно запустить командой:
brew install postgresql
На Linux СУБД устанавливается так:
sudo apt-get install postgresql postgresql-contrib
После того, как все загружено и установлено, можно проверить, все ли в порядке, и какая стоит версия PostgreSQL. Для этого выполните следующую команду:
postgres --version
Инструкция по установке в цифровом формате
Настройка
Работа с PostgreSQL может быть произведена через командную строку (терминал) с использованием утилиты psql – инструмент командной строки PostgreSQL.
Необходимо ввести следующую команду:
psql postgres (для выхода из интерфейса используйте \q)
Этой командой запускается утилита psql. Хотя есть много сторонних инструментов для администрирования PostgreSQL, нет необходимости их устанавливать, т. к. psql удобен и отлично работает.
Если нужна помощь, введите (или ) в psql-терминале. Появится список всех доступных параметров справки. Вы можете ввести , если вам нужна помощь по конкретной команде. Например, если ввести в консоли psql, отобразится синтаксис команды .
1 Description update rows of a table 2 WITH RECURSIVE with_query [, 3 UPDATE ONLY table_name * AS alias 4 SET { column_name = { expression | DEFAULT } | 5 ( column_name [, ) = ( { expression | DEFAULT } [, ) | 6 ( column_name [, ) = ( sub-SELECT ) 7 } [, 8 FROM from_list 9 WHERE condition | WHERE CURRENT OF cursor_name 10 RETURNING * | output_expression AS output_name [,
Для начала необходимо проверить наличие существующих пользователей и баз данных. Выполните следующую команду, чтобы вывести список всех баз данных:
\list или \l
Рисунок 1 — Результат выполнения операции \l
На рисунке выше вы видите три базы данных по умолчанию и суперпользователя postgres, которые создаются при установке PostgreSQL.
Чтобы вывести список всех пользователей, выполните команду . Атрибуты пользователя postgres говорят нам, что он суперпользователь.
Рисунок 2 — Результат выполнения операции \du
История релизов
Дата | Версия | Описание (комментарии) |
---|---|---|
1986 | SQL-86(SQL-87) | Первая версия, стандартизованная ANSI. |
1989 | SQL-89 | Эта версия включает незначительные изменения, которые добавляют ограничения целостности. |
1992 | SQL-92(SQL2) | Эта версия включает в себя основные изменения в языке SQL. Многие системы баз данных используют этот стандарт для своего языка спецификации. |
1999 | SQL:1999(SQL3) | В этой версии представлено много новых функций, таких как сопоставление регулярных выражений, триггеры, некоторые объектно-ориентированные функции и возможности OLAP. SQL:1999 также добавляет BOOLEAN тип данных, но многие коммерческие серверы баз данных не поддерживают его как тип столбца. Между тем SQL:1999 считается устаревшим. |
2003 | SQL:2003 | Эта версия включает незначительные изменения ко всем частям SQL:1999. Эта версия также добавляет новые функции, такие как:
|
2006 | SQL:2006 | Эта версия определяет способы импорта, хранения и управления данными XML. Кроме того, он позволяет приложениям использовать XQuery для запроса данных в формате XML. |
2008 | SQL:2008 | Эта версия добавляет такие функции, как оператор TRUNCATE TABLE, предложение FETCH и триггеры INSTEAD OF. |
2011 | SQL:2011 | Эта версия добавляет улучшения для оконных функций и предложения FETCH. |
2016 | SQL:2016 | Эта версия добавляет различные функции для работы с данными JSON. |
2019 | SQL:2019 | Эта версия указывает тип данных многомерных массивов (MDarray). |
Выполнить более глубокое сканирование
Если мы удалим опцию также попытается порты на устройствах. Порты — это пронумерованные конечные точки для сетевых подключений на устройствах. Рассмотрим жилой дом. Все квартиры имеют одинаковый адрес улицы (эквивалент IP-адреса), но каждая квартира имеет свой номер (эквивалент порта).
Каждая программа или услуга в устройстве имеет номер порта. Сетевой трафик доставляется на IP-адрес и порт, а не только на IP-адрес. Некоторые номера портов предварительно выделены или зарезервированы. Они всегда используются для передачи сетевого трафика определенного типа. Порт 22, например, зарезервирован для соединений SSH, а порт 80 зарезервирован для веб-трафика HTTP.
Мы будем использовать для сканирования портов на каждом устройстве и сообщаем, какие из них открыты.
nmap 192.168.4.0/24
На этот раз мы получаем более подробную информацию о каждом устройстве. Нам сказали, что в сети 13 активных устройств. Подожди минуту; у нас было 15 устройств минуту назад.
Количество устройств может сильно различаться при запуске этих сканирований. Скорее всего, это связано с тем, что мобильные устройства прибывают и покидают помещения, или оборудование включается и выключается. Также имейте в виду, что при включении устройства, которое было выключено, оно может не иметь тот же IP-адрес, что и в прошлый раз, когда оно использовалось. может, но не может.
Было много выходных. Давайте сделаем это снова и запишем это в файл.
nmap 192.168.4.0/24> nmap-list.txt
И теперь мы можем перечислить файл с , и искать его, если мы хотим.
меньше nmap-list.txt
отчет вы ищете что-то, что не можете объяснить или что-то необычное. Когда вы просматриваете свой список, запишите IP-адреса любых устройств, которые вы хотите исследовать дальше.
Согласно списку, который мы создали ранее, 192.168.4.10 — Raspberry Pi. Это будет запускать один дистрибутив Linux или другой. Так, что использует порт 445? Он описывается как «Microsoft-DS». Microsoft, на Пи под управлением Linux? Мы непременно рассмотрим это.
192.168.4.11 был помечен как «Неизвестный» в предыдущем сканировании. У него много открытых портов; нам нужно знать, что это такое.
192.168.4.18 также был идентифицирован как Raspberry Pi. Но у Pi и устройства 192.168.4.21 открыт порт 8888, который описывается как используемый «sun-answerbook». Sun AnswerBook — это многолетняя устаревшая (элементарная) система поиска документации. Излишне говорить, что я нигде не установлен. Это нужно смотреть.
Устройство 192.168.4.22 ранее было идентифицировано как принтер Samsung, что подтверждается тегом «принтер»
Что привлекло мое внимание, так это наличие и наличие порта HTTP 80. Этот порт зарезервирован для трафика сайта
Включает ли мой принтер веб-сайт?
Устройство 192.168.4.31, как сообщается, изготовлено компанией Elitegroup Computer Systems. Я никогда о них не слышал, и у устройства много открытых портов, поэтому мы разберемся с этим.
Чем больше портов открывает устройство, тем больше у него шансов проникнуть киберпреступнику, если он напрямую подключен к Интернету. Это как дом. Чем больше у вас дверей и окон, тем больше потенциальных точек входа у грабителя.
Команды copy echo
Обозначения stdin и stdout (стандартный ввод и вывод) интерпретируются по-разному: в psql они относятся ко входному и выходному потокам. В контексте серверного процесса stdin представляет источник данных команды COPY, a stdout представляет выходной поток запроса.
- \echo строка. Заданная строка передается в стандартный вывод. Команда часто используется при написании сценариев, поскольку с ее помощью можно включить в вывод сценария данные, не предоставляемые СУБД (например, комментарии).
- \д . Команда выполнения буфера. Как и символ точки с запятой (:) в конце команды SQL, передает текущее содержимое буфера запроса серверу для обработки. Аргумент позволяет сохранить итоговый набор в заданном файле или передать его следующей программе для дальнейшей обработки.
- \i файл. Чтение входных данных из файла с заданным именем. Содержимое файла интерпретируется так, словно оно было введено непосредственно в приглашении psql.
- \1o_export old файл. Экспортирование больших объектов с заданным идентификатором объекта (OID) в локальную файловую систему. Отличается от функции сервера 1o_export() так же, как команда \copy в psql отличается от команды COPY в SQL.
- \lo_import файл . Импортирование больших объектов из локальной файловой системы в базу данных. К объекту можно присоединить необязательный комментарий; это рекомендуется делать, поскольку в противном случае на него можно будет ссылаться только по значению OID, которое придется запоминать для дальнейшего использования. Если присоединить к объекту комментарий, то команда \lo_list выведет комментарий вместе со значением OID объекта, что упростит его поиск после импортирования.
- \о [ файл \ /команда ]. Перенаправление вывода (например, результатов выборки) в файл или его передача системной команде для дальнейшей обработки. Если аргумент не задан, перенаправление прекращается и происходит восстановление стандартного вывода. Особого внимания заслуживает возможность конвейерной (pipe) передачи вывода системным командам (например, дгер), что позволяет проводить поиск по шаблонам в выходных данных запросов и управляющих команд psql.
- \qecho строка. Заданная строка направляется в канал вывода, заданный командой \о (вместо stdout). Команда обычно используется для включения дополнительной информации в выходной поток psql.
- \w файл \ /команда. Текущий буфер запроса направляется в заданный файл или передается системной команде для дальнейшей обработки.
Установка Nmap
Nmap — это многоплатформенная программа, которую можно установить во всех основных операционных системах. Первоначально он был выпущен как инструмент только для Linux, а позже был перенесен на другие системы, такие как BSD, Windows и macOS.
Если вы предпочитаете графический интерфейс, а не командную строку, Nmap также имеет графический пользовательский интерфейс под названием Zenmap.
Официальные бинарные пакеты доступны для загрузки со страницы загрузки Nmap.
Процедура установки проста и зависит от вашей операционной системы.
Установка Nmap в Ubuntu и Debian
Nmap доступен из репозиториев Ubuntu и Debian по умолчанию. Чтобы установить его, запустите:
sudo apt update sudo apt install nmap
На CentOS и других производных от Red Hat запускаются:
sudo dnf install nmap
Установка Nmap на macOS
Пользователи macOS могут установить Nmap, загрузив установочный пакет «.dmg» с сайта Nmap или через Homebrew:
brew install nmap
Установка Nmap в Windows
Версия Nmap для Windows имеет некоторые ограничения и, как правило, немного медленнее, чем версия для UNIX.
Самый простой вариант установки Nmap в Windows — это загрузить и запустить самоустанавливающийся exe-файл.
Вы можете запустить Nmap в Windows либо из командной строки, либо запустив программу Zenmap. Для получения дополнительной информации о том, как использовать Nmap в Windows, ознакомьтесь с .
Описание скрипта (description)
Данный раздел содержит описание скрипта, комментарии автора, пример отображения результата выполнения скрипта на экран, дополнительные возможности.
Для нашего скрипта, подбирающего логины/пароли к PostgeSQL, описание будет выглядеть следующим образом:
description = [[ Brute force all services running on a target host. The results are returned in a table with each path, detected method, login and/or password. ]] --- -- @usage -- nmap --script hydra <target_ip> -- -- @output -- PORT STATE SERVICE -- 80/tcp open http -- | hydra: -- | path method login password -- | 127.0.0.1/private/index.html Digest log pass -- |_ 127.0.0.1/simple/index.txt Basic user qwerty -- -- @args hydra.lpath: the path to the file with logins. For example, -- nmap --script hydra --script-args="lpath=/home/my_logins.txt" <target_ip> -- @args hydra.ppath: the path to the file with passwords. For example, -- nmap --script hydra --script-args="ppath=/home/my_pass.txt" <target_ip>
Здесь
-- — комментарий; --` ` — многострочный комментарий; @usage, @output, @args — пример вызова скрипта, вывода результата на экран, необходимые аргументы при вызове.
Выше в мы видим формат запуска скрипта. В данном случае указано только имя скрипта (hydra). Это становится возможным, если скрипт положить в директорию , в противном случае придется указывать абсолютный или относительный путь до него. В последующем сделаем возможным задание аргументов при запуске скрипта. Аргументы задаются с помощью флага . В нашем случае мы будем задавать путь до файла с логинами () и до файла с паролями (). Аргументы необязательны: по умолчанию будем искать файлы с именами и в текущей директории.
Обнаружение хостов
Как, мы видим из справки Nmap первым пунктом идет обнаружение хостов. Само по себе это понятие довольно широкое, и состоит из первоначального обнаружения активных IP адресов. Этот этап ещё принято называть пинг сканированием. Тут нужно понимать что можно сканировать как, всем привычными, ICMP запросами, так и комбинируя их с TCP, UDP и ARP запросами. Обнаружив хост Nmap автоматически просканирует его порты если не задан параметр отменяющий это действие.
Опции Nmap для обнаружения хостов:
-sL Сканирование с целью составления списка.При выборе данной опции будет перечислен весь диапазона IP адресов в сети с присвоенными им именами (если такие есть). В конце списка будет отображено общее количество найденных IP. Если в качестве цели будет задано доменное имя то будет показан IP и его Reverse DNS.
-sP Пинг сканирование.Эта опция определяет активные хосты т.е. те которые отвечают на запросы и выводит их список. Если запустить эту опцию с правами root, то, также будут задействованы ARP запросы. Благодаря этому мы узнаем mac-адреса работающих устройств в сети.
- -PnПропустить пинг сканирование. При использовании этой опции Nmap будет считать, что все IP в исследуемой сети активны и будет сканировать весь диапазон IP адресов, в том числе все порты на каждом IP.
- -PS / -PA / -PUЭто команды для получения списка портов. Разница только в пакетах, которые будут отправлены хосту: PS — это TCP SYN, PA — это TCP ACK. Принципиальной разницы на самом деле нет. Но если есть вероятность, что соединение блокируется брандмауэр, лучше использовать TCP ACK. Ну, а PU (нужен root) — это UDP пингование. Используется для получения ICMP пакета с ошибкой «порт недостежим». Все остальные ошибки, в том числе отсутствие ответа говорят о том что хост не работает.В дополнение к указанным опциям можно указать какие именно типы ICMP пакетов использовать. Делается это опциями -PE; -PP; -PM — это эхо запрос, запрос временной метки и запрос адресной маски соответственно. Останавливаться отдельно на них не буду потому что такие запросы с большой долей вероятности будут заблокированы хостом или брандмауэром.
-PO Команда для получения списка протоколов пингованием с использованием IP протокола (для запуска необходим root). В этом случае должны приходить ответы по протоколу указанному в запросе. Это означает что протокол активен. Если приходит ответ что хост не достижим, это даёт понять, что протокол не поддерживается.
-PRЭто ARP пингование. Наиболее оптимальный способ сканирования, позволяющий определить активные хосты, службы и порты ими использующиеся (для запуска необходим root).
—traceroute Опция позволяющая выполнить трасировку т.е. отследить путь к хосту. Она применяется вместе с любым видом сканирования и работает на основании данных полученных в результате него (для запуска необходим root)
Сканирование сети и портов
Комбинируя некоторые из вышеперечисленных переключателей и методов, мы можем получить лучшую видимость хостов, потенциально защищенных механизмами защиты, такими как межсетевые экраны или системы предотвращения вторжений.
Системные администраторы также могут извлечь выгоду из этого типа способности к подрывной деятельности, понимая, как и где применять любые требуемые правила фильтрации или ужесточающие стандарты. Кроме того, подмена определенных сетевых условий, таких как исходный IP или MAC-адрес через Nmap, может быть полезна при обнаружении несанкционированного использования системных ресурсов и определенных атак на доступность.
TCP SYN ping scan | nmap -sn -PS <target> or nmap -sS |
Scanning multiple ports | nmap -sn -PS80,100-1000 <target> |
TCP ACK ping scan | nmap -sn -PA <target> or nmap -sA |
UDP ping scan | nmap -sn -PU <target> |
ICMP ping scan | nmap -sn -PE <target> |
SCTP INIT ping scan | nmap -sn -PY <target> or nmap -sY |
IP protocol ping scan (tracing) | nmap -sn -PO –packet-trace <target> |
Scan random number of hosts | nmap -iR |
Broadcast ping scan | nmap –script broadcast-ping –packet-trace |
Xmas scan (Sets the FIN, PSH, and URG flags) | nmap -sX <target> |
UDP scan (with verbosity) | nmap -sU -v <target> |
Scan a firewall (split TCP header into tiny fragments) | nmap -f <target> |
Cloak a scan with decoys | nmap -D <decoy1> <target>Ex: nmap -D 192.168.1.101,192.168.1.102 <target> |
Spoof source IP address | nmap -S <IP_Address> <target> |
Spoof MAC address) | nmap –spoof-mac <target> |
Scan using a random MAC address | nmap -v -sT -PN –spoof-mac 0 <target> |
Часто встречающиеся ошибки 1С и общие способы их решения Промо
Статья рассчитана в первую очередь на тех, кто недостаточно много работал с 1С и не успел набить шишек при встрече с часто встречающимися ошибками. Обычно можно определить для себя несколько действий благодаря которым можно определить решится ли проблема за несколько минут или же потребует дополнительного анализа. В первое время сталкиваясь с простыми ошибками тратил уйму времени на то, чтобы с ними разобраться. Конечно, интернет сильно помогает в таких вопросах, но не всегда есть возможность им воспользоваться. Поэтому надеюсь, что эта статья поможет кому-нибудь сэкономить время.
Элитегруп Компьютерные Системы
Последние два вопроса у меня были о двух устройствах с именами производителей, которые я не узнал, а именно: Liteon и Elitegroup Computer Systems.
Давайте изменим тактику. Другая команда, которая полезна для определения идентичности устройств в вашей сети, это . используется для работы с таблицей протокола разрешения адресов на вашем компьютере с Linux. Он используется для перевода с IP-адреса (или сетевого имени) на MAC-адрес .
Если не установлен на вашем компьютере, вы можете установить его следующим образом.
В Ubuntu используйте :
sudo apt-get установить net-tools
На Fedora используйте :
sudo dnf установить net-tools
На Манджаро используйте :
sudo pacman -Сю нет-инструменты
Чтобы получить список устройств и их сетевых имен — если им было присвоено одно — просто введите и нажмите Enter.
Это вывод моей исследовательской машины:
Имена в первом столбце — это имена компьютеров (также называемые именами хостов или сетевыми именами), которые были назначены устройствам. Некоторые из них я установил (например, , Cloudbase и Marineville ), а некоторые из них были установлены производителем (например, Vigor.router).
Вывод дает нам два способа перекрестных ссылок на него с выводом из . Поскольку MAC-адреса для устройств перечислены, мы можем обратиться к выходным данным для дальнейшей идентификации устройств.
Кроме того, поскольку вы можете использовать имя машины с и поскольку отображает базовый IP-адрес, вы можете связать имена компьютеров с IP-адресами, используя для каждого имени по очереди.
Например, давайте пропингуем Nostromo.local и выясним его IP-адрес
Обратите внимание, что имена машин нечувствительны к регистру
ping nostromo.local
Вы должны использовать Ctrl + C, чтобы остановить .
Вывод показывает нам, что его IP-адрес 192.168.4.15. И это, случается, устройство, которое обнаружилось в первом сканировании Nmap с Liteon в качестве производителя.
Компания Liteon производит компьютерные компоненты, которые используются многими производителями компьютеров. В данном случае это карта Wi-Fi Liteon внутри ноутбука Asus. Итак, как мы уже отмечали ранее, имя производителя, которое возвращает является его лучшим предположением. Как узнал, что карта Wi-Fi Liteon установлена на ноутбуке Asus?
И наконец. MAC-адрес для устройства, произведенного Elitegroup Computer Systems, совпадает с адресом в списке для устройства, которое я назвал LibreELEC.local.
Это Intel NUC с медиаплеером LibreELEC . Так что у этого NUC есть материнская плата от компании Elitegroup Computer Systems.
И вот мы, все загадки раскрыты.
Sun AnswerBook?
Следующей загадкой было описание «солнечного автоответчика» для Raspberry Pi с IP-адресом 192.168.4.18. Такое же описание «солнечного автоответчика» появилось для устройства в 192.168.4.21. Устройство 192.168.4.21 — настольный компьютер Linux.
делает предположение об использовании порта из списка известных ассоциаций программного обеспечения. Конечно, если какое-либо из этих сопоставлений портов больше не применимо — возможно, программное обеспечение больше не используется и устарело — вы можете получить неверные описания портов в результатах сканирования. Вероятно, именно так и было, система Sun AnswerBook восходит к началу 1990-х годов и является не чем иным, как далекой памятью — для тех, кто о ней даже слышал.
Итак, если это не какое-то древнее программное обеспечение Sun Microsystems , что общего между этими двумя устройствами, Raspberry Pi и настольным компьютером?
Поиски в Интернете не принесли ничего полезного. Было много хитов. Кажется, что-то с веб-интерфейсом, который не хочет использовать порт 80, похоже, выберет порт 8888 как запасной вариант. Поэтому следующим логическим шагом было попытаться подключиться к этому порту с помощью браузера.
Я использовал 192.168.4.18:8888 в качестве адреса в своем браузере. Это формат для указания IP-адреса и порта в браузере. Используйте двоеточие для отделения IP-адреса от номера порта.
Веб-сайт действительно открылся.
Это административный портал для любых устройств, на которых работает Resilio Sync .
Я всегда использую командную строку, поэтому я полностью забыл об этой возможности. Таким образом, список записей Sun AnswerBook был полной красной сельдью, и служба за портом 8888 была идентифицирована.
Основные команды PostgreSQL в интерактивном режиме:
- \connect db_name – подключиться к базе с именем db_name
- \du – список пользователей
- \dp (или \z) – список таблиц, представлений, последовательностей, прав доступа к ним
- \di – индексы
- \ds – последовательности
- \dt – список таблиц
- \dt+ — список всех таблиц с описанием
- \dt *s* — список всех таблиц, содержащих s в имени
- \dv – представления
- \dS – системные таблицы
- \d+ – описание таблицы
- \o – пересылка результатов запроса в файл
- \l – список баз данных
- \i – читать входящие данные из файла
- \e – открывает текущее содержимое буфера запроса в редакторе (если иное не указано в окружении переменной EDITOR, то будет использоваться по умолчанию vi)
- \d “table_name” – описание таблицы
- \i запуск команды из внешнего файла, например \i /my/directory/my.sql
- \pset – команда настройки параметров форматирования
- \echo – выводит сообщение
- \set – устанавливает значение переменной среды. Без параметров выводит список текущих переменных (\unset – удаляет).
- \? – справочник psql
- \help – справочник SQL
- \q (или Ctrl+D) – выход с программы