2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Couldn't open a raw socket
Сообщение03.10.2019, 14:31 
Я вот попытался запустить nmap на Ubuntu...
Набираю "sudo nmap -sS айпишник".
Оно ругается "Couldn't open a raw socket. Error: Permission denied (13)".
Что делать?
Я нагугливал, что это может происходить при запуске Ubuntu через WSL. Но я-то запускаю через VirtualBox...

 
 
 
 Re: Couldn't open a raw socket
Сообщение03.10.2019, 14:52 
В каком режиме виртуальная машина подключена к сети? NAT? Мост? Виртуальный сетевой адаптер?

Возможно, процесс виртуальной машины не имеет прав создавать raw sockets, пытаясь эмулировать их для гостевой ОС?

 
 
 
 Re: Couldn't open a raw socket
Сообщение03.10.2019, 15:01 
aitap в сообщении #1418845 писал(а):
В каком режиме виртуальная машина подключена к сети?

NAT.

 
 
 
 Re: Couldn't open a raw socket
Сообщение04.10.2019, 12:30 
Ситуация более странная, чем мне казалось.

Что напечатает команда?
Используется синтаксис Bash
sudo perl -MSocket -E'say $<; socket($fh, AF_INET, SOCK_RAW, 255) and say fileno $fh or die $!'


Какой версии ядро (uname -a)? Это может быть баг.

 
 
 
 Re: Couldn't open a raw socket
Сообщение04.10.2019, 13:02 
Первая команда возвращает 0 и 3. Во второй, версия, вроде бы, 4.15.0-29-generic.

 
 
 
 Re: Couldn't open a raw socket
Сообщение04.10.2019, 23:22 
kotenok gav в сообщении #1419069 писал(а):
Первая команда возвращает 0 и 3.

Это чертовски странно, поскольку мы создаём сокет точно таким же образом, как это делает Nmap, а сообщение об ошибке возникает только при неудачном возврате из функции выше. Nmap врёт? Nmap оказывается ограничен неправильно написанным профилем AppArmor? В /etc/sudoers спрятана настройка, согласно которой nmap нужно запускать без прав суперпользователя? На всякий случай, что скажет sudo strace -e socket nmap -sS адрес?

 
 
 
 Re: Couldn't open a raw socket
Сообщение05.10.2019, 11:34 
--- SIGCHILD {si_signo=SIGCHILD, si_code=CLD_EXITED, si_pid=5570, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---
--- SIGCHILD {si_signo=SIGCHILD, si_code=CLD_EXITED, si_pid=5572, si_uid=0, si_status=0, si_utime=0, si_stime=9} ---
Starting Nmap 7.80 ( https://nmap.org ) at тутвремя
Couldn't open a raw socket. Error: Permission denied (13)
+++ exited with 1 +++

 
 
 
 Re: Couldn't open a raw socket
Сообщение05.10.2019, 21:37 
kotenok gav в сообщении #1419263 писал(а):
SIGCHILD


Новые странности! Откуда дочерние процессы? Как будто по команде nmap запускается обёртка, которая запускает дочерний процесс с неправильными правами доступа, а не сам nmap.

Давайте ещё посмотрим на sudo strace -f -e process,socket nmap -sS адрес. Заодно мы по самой первой строке вывода, execve(...), узнаем, что именно за процесс запускается по команде nmap.

 
 
 
 Re: Couldn't open a raw socket
Сообщение07.10.2019, 16:48 
Строчек там невероятно много, первая:
execve("/snap/bin/nmap", ["nmap", "-sS", "айпи"], 0x7ffcbc2e4d08 /* 18 vars */) = 0

-- 08 окт 2019, 00:32 --

Скрины:
Изображение
Изображение
Изображение
Изображение
Изображение

-- 08 окт 2019, 00:37 --

aitap
И последние 4 скрина:
Изображение
Изображение
Изображение
Изображение

 
 
 
 Re: Couldn't open a raw socket
Сообщение07.10.2019, 18:17 
Всё понятно. snap-пакеты запускаются в специальной песочнице, которая ограничивает их в целях защиты данных пользователя. Поможет ли команда sudo snap connect nmap:network-control расширить границы песочницы? (Я очень мало знаю про snap, но команду рекомендуют на странице данного пакета.)

Если нет, о невозможности создать raw-сокеты можно пожаловаться автору пакета.

Вместо snap-пакета можно также установить классический пакет, который запускается вне песочницы:
Используется синтаксис Bash
sudo apt install nmap
sudo /usr/bin/nmap -sS адрес

 
 
 
 Re: Couldn't open a raw socket
Сообщение21.02.2020, 13:55 
Запоздалое спасибо!

 
 
 [ Сообщений: 11 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group