Скрытие файлов
Если злоумышленнику удастся сохранить на взломанной системе установленные им программы, это значительно облегчит его задачу при повторном проникновении. Но, с другой стороны, именно по наличию неизвестно откуда взявшихся программ системный администратор может судить о том, что компьютер был взломан. Таким образом, злоумышленнику нужно предпринять какие-то шаги, чтобы как можно лучше скрыть файлы, которые потребуется запустить при последующих атаках.
attrib
Самый простой способ сокрытия файлов состоит в том, чтобы после их копирования в выбранный каталог воспользоваться старой командой DOS attrib, как показано в следующем примере.
attrib +h [каталог]
После использования такой команды при просмотре содержимого каталога из командной строки все файлы и каталоги окажутся скрытыми. Однако эта команда окажется бесполезной, если в проводнике Windows установлен режим Show All Files.
Использование потоков в файлах NTFS
Если на целевом узле используется файловая система NTFS, то для сокрытия файлов взломщик может воспользоваться еще одним приемом. Дело в том, что система NTFS поддерживает несколько потоков (stream) информации внутри файла. Система поддержки потоков в NTFS трактуется компанией Microsoft как "механизм добавления дополнительных атрибутов или информации к файлу без реструктуризации файловой системы". Например, потоки используются при включенном режиме совместимости NTFS с файловой системой Macintosh. Однако к этому же механизму можно прибегнуть и для сокрытия в потоках набора инструментов, установленных хакером.
В следующем примере показано, как исполняемый файл утилиты netcat помещается в поток, присоединенный к файлу oso00l.009, находящемуся в каталоге winnt\system32\os2. Впоследствии этот файл может быть извлечен для взлома других удаленных систем. Этот файл был выбран из-за того, что он вряд ли вызовет подозрения, но вместо него можно использовать любой другой файл.
Для того чтобы создать файловый поток, нужно иметь в своем распоряжении утилиту ср из набора NTRK, поддерживающую стандарт POSIX. Синтаксис ее использования прост. Через двоеточие, помещенное после имени файла-контейнера нужно указать имя записываемого в поток файла:
ср <файл> oso00l.009:<файл>
Например:
ср nc.exe oso00l.009:nс.ехе
Данная команда помещает файл nc.exe в поток nc.exe файла oso001. 009. Для того чтобы извлечь утилиту netcat из потока, необходимо воспользоваться следующей командой:
ср oso001.009:nc.exe nc.exe
При этом изменится дата модификации файла oso00l. 009, но его размер останется прежним (некоторые версии утилиты ср не изменяют даты). Таким образом, скрытые файлы, объединенные с помощью механизма потоков с обычными файлами операционной системы, очень трудно обнаружить.
Для удаления файла, находящегося в потоке, необходимо скопировать файл-носитель на диск, отформатированный в системе FAT, а затем скопировать его обратно на диск с файловой системой NTFS.
Файл с несколькими потоками по-прежнему можно запустить на выполнение. Правда, из-за ограничений командного интерпретатора cmd .exe этого нельзя сделать непосредственно, т.е. введя имя файла в командной строке (например, oso001. 009: nс. ехе), но зато можно воспользоваться командой START, как показано в следующем примере:
start oso001.009:nс.ехе
Контрмеры: поиск потоков
Единственным надежным средством, с помощью которого можно обнаружить потоки в файлах NTFS, является утилита Streamfinder компании March Information Systems. Недавно ее приобрела компания Internet Security Systems (ISS), которая, по всей видимости, больше не будет распространять эту утилиту через европейский Web-узел. Копию утилиты Streamfinder можно получить по адресу http://www.hackingexposed.com. Еще одним хорошим средством выявления файловых потоков является утилита sfind Ди-джея Гласера (JD Glaser).