Создание и использование комплекта инструментов "живого ответа" для Unix
ARP
Таблица ARP (Address Resolution Protocol - Протокол определения адресов) устанавливает соответствие между физическим машинным MAC-адресом Ethernet-карты и соответствующим IP-адресом в подсети. Поскольку большинство сетей не обеспечивают безопасность локальной подсети, связывая определенный MAC-адрес с IP-адресом, используя коммутаторы, то любой может изменить свою ARP -таблицу или IP-адрес и вызвать смуту. Это происходит, например, когда один из служащих маскируется под другого служащего во внутренней сети. Используя команду ARP, вы можете видеть, какой MAC-адрес соответствовал определенному IP-адресу в течение последних нескольких минут, и это поможет вам выследить жулика.
Программа ARP обычно расположена в каталоге /sbin или /usr/sbin, в зависимости от версии Unix, которую вы используете.
Реализация
Команда используется для просмотра ARP -таблицы машины-жертвы. Очень похожа на команду, которая используется при живом ответе в Windows:
victim# ./arp -an
С системы-жертвы возвращается следующая таблица ARP:
? (192.168.1.1) at 00:BD:81:43:07:03 [ether] on eth0
Результаты показывают, что машина с IP-адресом 192.168.1.1 имеет MAC-адрес 00:BD:81:43:07:03. Эта дополнительная часть информации помогает нам при отслеживании адреса 192.168.1.1 из нашей сети, когда мы не регулируем IP-адреса сами. Мы можем проверять каждую машину, пока не найдем MAC-адрес 00:BD:81:43:07:03.
ls
Использование команды ls в Unix подобно использованию команды dir при выполнении живого ответа в Windows. Мы можем использовать ее, чтобы собрать те файлы системы, к которым недавно обращались или которые недавно изменялись. Неплохо выполнить эту команду, чтобы ни одна временная метка в системе не была потеряна на случай, если в процессе живого ответа будет сделана ошибка. Команда ls обычно находится в каталоге /bin.
Реализация
Чтобы собрать файлы, к которым кто-либо обращался в последнее время, выполните следующую команду:
victim# ls-alR --time=atime/
Соответствующие файлы, возвращенные в результате этой команды, показаны в следующем фрагменте. Сначала, мы видим файлы из каталога /etc.
-rw-r--r-- 1 root root 7470 Mar 21 06:32 mime.types -rw-r--r-- 1 root root 1048 Mar 7 2000 minicom.users -rw-r--r-- 1 root kjohnson 196 Mar 22 00:17 motd -rw-r--r-- 1 root root 90 Mar 22 00:23 mtab -rw-r--r-- 1 root root 1925 Feb 9 2000 mtools.conf
Затем мы видим файлы в подкаталоге home каталога /kjohnson:
/home/kjohnson: total 240 drwx------ 2 root kjohnson 4096 Mar 22 00:30 . drwxr-xr-x 7 root root 4096 Mar 22 00:30 .. -rw------- 1 root kjohnson 216 Mar 22 00:18 .bash_history -rw-r--r-- 1 root kjohnson 24 Mar 22 00:18 .bash_logout -rw-r--r-- 1 root kjohnson 230 Mar 21 23:40 .bash_profile -rw-r--r-- 1 root kjohnson 124 Mar 21 23:40 .bashrc -rw-r--r-- 1 root kjohnson 3394 Mar 21 23:39 .screenrc -rwxr-xr-x 1 root kjohnson 210096 Mar 22 00:13 1
Чтобы собрать файлы, которые в последнее время модифицировались, выполняем следующую команду:
victim# ls-alR - time=mtime/
Если команда не сработала, это может означать, что модифицированные файлы уже были отображены по умолчанию (так обстоит дело в системе Linux).
Если файлы, модифицированные в ближайшее время, были показаны по умолчанию, то вместо предыдущей команды можно использовать следующую:
victim# ls-alR/
В результате этой команды были отображены следующие файлы. Сначала видим подозрительные файлы в каталоге /etc.
-rw-r--r-- 1 root root 7470 Mar 21 06:32 mime.types -rw-r--r-- 1 root root 1048 Mar 7 2000 minicom.users -rw-r--r-- 1 root kjohnson 196 Mar 22 00:17 motd -rw-r--r-- 1 root root 90 Mar 22 00:23 mtab -rw-r--r-- 1 root root 1925 Feb 9 2000 mtools.conf
Затем смотрим файлы из подкаталога home каталога /kjohnson.
/home/kjohnson: total 240 drwx------ 2 root kjohnson 4096 Mar 22 00:18 . drwxr-xr-x 7 root root 4096 Mar 21 23:39 .. -rw------- 1 root kjohnson 216 Mar 22 00:18 .bash_history -rw-r--r-- 1 root kjohnson 24 Mar 21 23:39 .bash_logout -rw-r--r-- 1 root kjohnson 230 Mar 21 23:39 .bash_profile -rw-r--r-- 1 root kjohnson 124 Mar 21 23:39 .bashrc -rw-r--r-- 1 root kjohnson 3394 Mar 21 23:39 .screenrc -rwxr-xr-x 1 root kjohnson 210096 Mar 21 23:43 1
Чтобы собрать данные о том, когда изменялась какая-либо информация в пределах inode (структура данных, содержащая разрешения файла; место на диске, где может быть найдена остальная часть файла, а также метки даты и времени), выполняется следующая команда:
victim# ls -alR --time=ctime /
Эта команда даст почти такие же результаты как та, которую мы использовали для получения последних модифицированных файлов в начале этого раздела. Другие результаты могут получиться только в том случае, если были изменены свойства файла без изменения содержимого самого файла.
В подкаталоге home каталога /kjohnson мы видим подозрительный файл с именем 1. Сейчас он может не иметь для нас большого значения, но он будет играть важную роль позже в разделе "Пример из жизни".
w
Для системы Unix существует команда w, подобная команде loggedon, которую мы использовали с системой Windows. Эта команда отображает всех пользователей, в настоящее время вошедших в систему, и их исходящие IP-адреса. Эта команда полезна при расследовании неправомочного использования учетных записей в системе Unix.
Команда w расположена в каталоге /usr/bin.
Реализация
Чтобы использовать команду w, наберите следующее:
victim# w
Вывод команды w на нашей машине-жертве выглядит следующим образом:
12:24am up 1:38, 1 user, load average: 0.02, 0.02, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT Root tty1 - 10:44pm 0.00s 0.71s 0.03s w
Поскольку мы вошли в систему в качестве привилегированного (root) пользователя с консоли (обозначено символом " - " в столбце FROM ), мы не видим никакой подозрительной деятельности.
last и lastb
Чтобы посмотреть последние входы пользователей в систему на определенной системе Unix, используются команды last и lastb. Команды last и lastb отображают последние, успешные или неудавшиеся, входы в систему, соответственно. Команда last помогает получить свидетельства о фактах неправомочного использования учетной записи в нашей системе, в то время как команда lastb может обнаружить свидетельства использования грубой силы против нашей машины.
Команды last и lastb обычно расположены в каталоге /usr/bin.
Реализация
В сценарии своего расследования вам нужно сделать дамп всех попыток входа в систему. Это должно выполняться следующей командой (при использовании команды lastb, замените last на lastb):
victim# last
Команда выведет следующие результаты с нашей машины-жертвы:
mpepe pts/0 192.168.1.1 Thu Mar 21 23:37 - 00:24 (00:46) root tty1 Thu Mar 21 22:44 still logged in reboot system boot 2.2.14-5.0 Fri Mar 22 03:42 (-3:-6) root tty1 Fri Mar 22 03:39 - down (00:00) reboot system boot 2.2.14-5.0 Fri Mar 22 03:09 (00:30) reboot system boot 2.2.14-5.0 Thu Mar 21 09:04 (18:36) wtmp begins Thu Mar 21 09:04:17 2002
Как видим, регистрация входа в систему пользователя kjohnson отсутствует. Мы можем сделать еще несколько заключений: или файлы регистрации были испорчены взломщиком, или он взломал учетную запись mpepe и переключил пользователя, используя команду su, на учетную запись kjohnson.