Иногда бывает так, что нужно быстро развернуть FTP-сервер для того чтобы туда что-нибудь быстро залить. Например, кейс — во время пентеста, у меня есть скрипт для слива базы Active Directory, данный скрипт исполняется на уязвимой машине при логоне Domain Admin учётки 😏 (да-да и такое бывает, постоянно). При логоне, отрабатывает скрипт, который стандартными средствами Windows с помощью FTP-клиента передаёт слитую базу на FTP-сервер взломщика.
Можно конечно поднять что-нибудь из серии vsFTPd, proFTPd, pure-FTPd, etc, но во-первых — это установка лишнего пакета в систему, во-вторых — это конфигурирование FTP-сервера, а конфиги некоторых бывают довольно упоротыми, в итоге ты можешь потратить то самое драгоценное время на ковыряние в конфигах FTP-сервера, что при пентесте является непозволительной роскошью.
Оказывается, есть очень интересный модуль на питоне — pyftpdlib, у которого очень богатые возможности.
Если мы хотим по-быстрому развернуть FTP-сервер с помощью pyftpdlib, то выполняем следующее:
# pip install pyftpdlib
Если нет pip, то:
# apt install python2.7-pyftpdlib
*админы могут автоматически отслеживать несанкционированную установку пакетов в системе
# python -m pyftpdlib -p 21 —directory=/srv/ftp/incoming -w -D
-p — TCP-порт к которому привязываем FTP-сервер (можно и 8080 под обычным юзером)
-w — разрешаем записывать в директорию, которую указали (не забываем проверить права на запись)
-D — режим дебага, чтобы наблюдать за процессом и проще отловить какие-либо ошибки
Различные примеры использования можно посмотреть тут
$ python -c ‘import sys; sys.path.insert(0, «/tmp/pyftplib»)’$ python -m pyftpdlib -p 8080 —directory=/srv/ftp/incoming -w -D