# FTP

Основные команды для работы с ftp\
На win клиент встроен.\
На linux: `apt-get install ftp` или можно воспользоваться более безопасными версиями (sftp, vcftpd и др)

`bitvise` - клиент для `SSH/SFTP` и др для винды

Windows GUI FTP Client - `FileZilla`

```
Подключение к ftp> ftp 10.10.10.10
anonymous - анонимный пользователь (любой пароль)
Список папок>dir
Забрать файл>get filename.ext
Отключиться от ftp-сервера>bye
Текущая директория на локальном компьютере>lpwd
Текущая директория на ftp-сервере>pwd
Изменить тек директорию на локальном компе>lcd /path
Сохранить несколько файлов> mget или mget .php (можно добавить ключ -i, чтобы не подтверждать скачивание каждого файла)
Удалить файл> delete file.txt
Загрузить файл(ы)> [m]put file[*].txt
Открыть другой ftp-сервер> open ftp.new.ru
Справка> help [command]
```

rhelp - команды сервера, которые поддерживаются

quote - отправить команду и выполнить ее там (которые в rhelp вернулись)

{% embed url="https://en.wikipedia.org/wiki/List_of_FTP_commands" %}

Пример сессии (как в ftp-anon.nse)

```
$ nc <ip> <port>
USER anonymous
PASS test
PASV
LIST
```

PASV - это переход в пассивный режим. Приходит подобный ответ:\
`227 Entering Passive Mode (192, 168, 2, 34, 45, 234)`

Коннектимся к таргету 192.168.2.34:((45 << 8) + 234)\
После этого, результат команды LIST придет на этот таргет
