Как быстро скачивать файлы с браузера через консоль
Причины для того чтобы для скачивания файлов из интернета использовать консоль, могут быть совершенно разными. Мне например раньше просто было интересно, а затем я понял что так выходит просто на порядок быстрее. Хотя если уж совсем честно говорить, то не только быстрее но и консоль способна предоставить несколько больше возможностей. Например если вы скачиваете себе программу большого объёма и вдруг происходит потеря интернет соединения. При обычном скачивании с браузера вам приходится начинать загрузку сначала. В консоли Линукс, Вы можете продолжить закачку файла с остановленного места. Но обо всем по порядку.
Для скачивания файлов из интернета, у нас есть замечательная утилита wget. С помощью данной утилиты можно скачивать совершенно любые файлы из сети и даже сайты. Но я Вам хочу рассказать о том, что Вам думаю пригодится больше чем скачивание интернет сайтов. Итак для того чтобы при помощи данной консольной программы скачать какой-либо фаил из интернета, Вам необходимо в консоли Линукс ввести
Как Вы видите все достаточно просто, если скачиваемый один фаил. Но если Вам необходимо скачать подряд два, три, сорок три файла подряд, количество собственно не важно. Главное что если вы будете скачивать их по одному с сети, это будет достаточно неудобно. Вот здесь утилита wget будет для Вас намного удобнее. Это связано с тем, что Вы можете записать сначала все адреса с которых Вы будете скачивать файлы в нехитрый текстовый фаил и консольная утилита wget будет скачивать их по порядку. Что же Вам для этого необходимо?
Открываете любой, простой текстовый редактор, какой Вам больше нравится (vim,debit,kate,nano) не столь суть важно. В поле где редактируется текст, построчно, вводите ссылки тех файлов которые Вы собираете скачать. Выглядеть это будет так.
Сохраняете содержимое в фаил с каким-либо названием. Например, дайте ему название (загрузить) без кавычек. Вот и подошли мы к тому чтобы запустить команду для скачивания файлов, ссылки на которые мы записали в наш фаил (загрузить). Пишите команду
После того как Вы запустите данную команду, она сама начнет скачивать файлы по порядку и остановится лишь когда скачает их все.
Так же бывает что соединение с интернетом обрывается и тогда нам приходится скачивать файл заново. Чтобы избежать закачки файла заново и немного сэкономить трафик вы можете дать команду для продолжения прерванной закачки. Так как после того как вы запустите программу, повлиять на неё вы уже не сможете, а чтобы задать следующую команду Вам необходимо прервать работу программы, используйте сочетание клавиш Ctrl-C. Чтобы продолжить прерванную загрузку введите в освободившейся консоли команду.
Если же вам необходимо скачать в какую-либо определенную папку, а не в ту в которой у Вас терминал открыт используйте команду.
Этичный хакинг и тестирование на проникновение, информационная безопасность
Это небольшая шпаргалка, как скопировать файлы с уже скомпрометированной системы. Типичные ситуации:
- на веб сайте найдена уязвимость Удалённое выполнение кода
- получены учётные данные пользователя, позволяющие подключиться по SSH (например, с помощью брут-форса)
Я перечислю несколько способов, как скопировать файл с сервера, я не сомневаюсь, что вы сможете придумать ещё столько же или больше (кстати, делитесь ими в комментариях), выбор конкретного способа зависит от условий и от личных предпочтений.
Условия могут быть разные:
1. cat + копирование с экрана/браузера
Простейший способ, с помощью команды cat выводится содержимое файла. Он подходит только для текстовых файлов. При выполнении команды по SSH, содержимое файла выводится в консоли, при выполнении через уязвимое веб-приложение, содержимое файла выводится на странице сайта:
Если делаете через выполнение команд в веб-браузере, то для нормального отображения откройте исходный код веб-страницы:
2. base64 + копирование с экрана/браузера
Этот способ похож на предыдущий, его можно применять для скачивания бинарных файлов, если другой возможности нет.
Для понимания сути, изучите следующие команды:
Содержимое исполнимого файла /usr/bin/ls (команда ls) кодируется в Base64 и сохраняется в файл ls.txt:
Можно посмотреть, что в файле ls.txt размещён текст, который можно скопировать/вставить:
Теперь этот текст декодируем и сохраняем в файл ls.bin:
С помощью команды chmod делаем файл ls.bin исполнимым:
Проверяем работоспособность этого файла:
Суть в том, что с помощью base64 можно копированием-вставкой передавать бинарные файлы без возможности выгрузить их с сервера другим способом.
3. Помещение файла в директорию сайта и скачивание с веб-сервера
Допустим, папка сайта это /var/www/html/, тогда копируем нужный нам файл в неё следующей командой:
Чтобы узнать текущую папку, где выполняется уязвимый скрипт, выполните команду pwd:
Типичные папки с сайтами:
/etc/apache2/ — директория с настройками веб-сервера (когда служба называется apache2 — то есть в таких системах как Debian и производных)
Если неизвестно где папки сайтов, то нужно смотреть конфигурационные файлы Apache, там же можно узнать адрес сайта, если вдруг вы его не знаете (такое может быть, если сервер скомпрометирован по SSH):
Чтобы посмотреть, запущен ли вообще веб-сервер:
Если файлов много, то их можно заархивировать:
Если программа zip недоступна, то используйте tar:
Или другие программы для архивации, для этого смотрите также «Работа с архивами в Linux».
4. cURL + POST
Этот способ не требует наличия веб-сервера и, по идее, должен работать также и на Windows, поскольку там cURL предустановлена по умолчанию.
Суть очень проста. Каждый из нас множество раз выгружал файлы с компьютера на сайт, например, фотографию для профиля или файл в файлообменник. Мы используем веб-браузер, который методом POST отправляет файл. Вместо браузера можно отправлять файл с помощью команды curl, которая также умеет использовать метод POST.
На сервере создайте файл uploader.php:
С компьютера, с которого нужно выгрузить файл, запустите команду вида:
Обратите внимание на символ @ - он нужен для того, чтобы параметру file было присвоено не значение строки «/путь/до/файла», а содержимое того самого файла, который находится по пути /путь/до/файла.
Если у вас серый IP адрес (к которому невозможно подключиться из Интернета), то в этой ситуации поможет программа ngrok. То есть в предыдущей команды вместо СЕРВЕР/uploader.php можно указать домен третьего уровня ngrok, от которого идёт туннель к вашему локальному веб-серверу.
5. ngrok
Программа ngrok отсутствует по умолчанию, поэтому нужно начать с установки:
Не забудьте заменить ВАШ_AUTHTOKEN на настоящее значение.
Эта долгая установка точно стоит своих усилий, дело в том, что теперь можно сделать сетевой абсолютно ЛЮБУЮ папку на компьютере Linux! Например:
6. Встроенный сервер PHP
У PHP есть встроенный веб сервер. Сам PHP довольно часто присутствует на компьютерах Linux, а если это веб-сервер, то присутствует практически всегда.
Нужно запускать командой вида:
В качестве IP нужно указать IP адрес удалённого компьютера, узнать его можно командой:
PORT можно указать любой, но для использования портов ниже 1024 нужны привилегии суперпользователя.
7. SSH и перенаправление вывода на текущую систему
SSH можно использовать для копирования текстовых файлов:
А также и для копирования бинарных файлов:
8. scp
Программа scp является частью SSH и предназначена специально для копирования файлов в любом направлении. То есть если у вас есть возможность подключиться по SSH, то намного удобнее воспользоваться scp.
Вид команды для копирования с удалённого компьютера на локальный компьютер:
Больше подробностей смотрите в разделе «Как пользоваться утилитой scp».
9. Сетевая файловая система SSHFS
Если у вас есть возможность подключиться по SSH, то вы можете смонтировать удалённую файловую систему как свою локальную командой вида:
10. Ncat, Netcat, nc
На HOST1 выполните:
На HOST1 запустите:
И на HOST2 выполните:
11. Бэкдоры
Самый распространённый вариант для веб-серверов. Можно скачать бэкдор с веб-интерфейсом:
А можно использовать более привычные шеллы с обфускацией и сокрытием передаваемых запросов от логов веб-сервера.
Больше подробностей смотрите по ссылкам:
Заключение
Конечно, способов скачать файл с удалённого компьютера через шелл или уязвимость веб сайта намного больше. Пишите в комментариях свои любимые способы!
Связанные статьи:
факультете информационной безопасности от GeekBrains? Комплексная годовая программа практического обучения с охватом всех основных тем, а также с дополнительными курсами в подарок. По итогам обучения выдаётся свидетельство установленного образца и сертификат. По этой ссылке специальная скидка на любые факультеты и курсы!
Загрузка файлов - это довольно простая операция, которую мы можем выполнять множество раз в день, даже не задумываясь в графическом интерфейсе с помощью браузера. Это очень просто и быстро, достаточно кликнуть мышкой. Но дело в том, что у вас может не всегда быть доступ к графическому интерфейсу, а на серверах графического интерфейса нету вовсе.
Что же делать, когда нужно скачать файл Linux через терминал? Для этого существует несколько утилит и даже консольных браузеров. В этой статье мы рассмотрим самые популярные способы загрузки файла в Linux, которые применяются наиболее часто. Рассмотрим примеры применения таких утилит и их возможности.
Как скачать файл в Linux с помощью wget
Утилита wget - это одна из самых популярных консольных утилит для загрузки файлов. Мы уже рассматривали как пользоваться этой утилитой в отдельной статье. С помощью wget можно сделать намного больше чем просто загрузить файл linux. Вы можете скачать все файлы со страницы или же полностью загрузить весь веб-сайт. Но сейчас нас будет интересовать только самая простая ситуация.
Чтобы скачать файл Linux консоль выполните такую команду:
$ wget адрес_файла
Например, если нам нужно скачать исходники какой-либо программы для сборки и установки с GitHub. Если нет браузера, но есть ссылка на архив с исходниками, то скачать их очень просто:
Во время загрузки утилита отображает простенький статус бар, в котором вы можете наблюдать за процессом загрузки. Загруженный файл будет находиться в текущей папке, по умолчанию, это ваша домашняя папка, если вы ее не изменяли. Дальше можно выполнять все нужные операции с файлом.
Скрипт будет выполнен сразу после загрузки. Также вы можете указать имя для нового файла с помощью той же опции:
Загрузка файла с помощью curl
Утилита curl предназначена для решения задач другого типа задач. Она больше подходит для отладки приложений и просмотра заголовков. Но иногда применяется и для загрузки файлов. По умолчанию, curl будет отправлять полученные данные сразу в стандартный вывод, поэтому она более удобна для загрузки скриптов:
Когда загрузка файла в linux будет завершена, он будет находится в текущей папке. Вывод утилиты состоит из нескольких колонок, по которым можно детально отследить как происходит процесс загрузки:
- % - показывает на сколько процентов загрузка завершена на данный момент;
- Total - полный размер файла;
- Reсeived - количество полученных данных;
- Xferd - количество отправленных на сервер данных, работает только при выгрузке файла;
- Average Speed Dload - средняя скорость загрузки;
- AVerage Speed Upload - скорость отдачи для выгрузки файлов;
- Time Total - отображает время, которое уйдет на загрузку всего файла;
- Time Spend - сколько времени потрачено на загрузку файла;
- Time Left - время, которое осталось до конца загрузки файла;
- Current Speed - отображает текущую скорость загрузки или отдачи.
Если вы хотите скачать файл из командной строки linux и сохранить его с произвольным именем, используйте опцию -o в нижнем регистре:
Скачивание файла с помощью aria2
Например, чтобы скачать файл используйте такую команду:
Здесь тоже будет отображаться небольшой статус-бар с подробной информацией про состояние загрузки. Чтобы начать загрузку торрента. достаточно передать торрент файл или magnet ссылку:
Еще одна ситуация, когда вам нужно скачать файл из командной строки linux, вы знаете где его найти, но у вас нет прямой ссылки. Тогда все ранее описанные утилиты не помогут. Но вы можете использовать один из консольных браузеров, например, elinks. Если эта программа еще не установлена, то вы можете найти ее в официальных репозиториях своих дистрибутивов.
Запустите браузер, например, с помощью команды:
В первом окне нажмите Enter:
Когда вы откроете сайт, останется только выбрать URL для загрузки:
Далее выберите что нужно сделать с файлом, например, сохранить (save), а также выберите имя для нового файла:
В следующем окне вы увидите информацию о состоянии загрузки:
Выводы
В этой статье мы рассмотрели как скачать файл Linux через терминал с помощью специальных утилит и консольного браузера. В обычной домашней системе нет большой необходимости для таких действий, но на сервере это может очень сильно помочь. Надеюсь, эта информация была полезной для вас. Если у вас остались вопросы, спрашивайте в комментариях!
Кроме скачивания файлов, есть возможность сохранять веб страницы или даже целые веб-сайты, благодаря функции открытия ссылок на страницах. Такую возможность еще называют рекурсивной загрузкой. Это все мы и рассмотрим в сегодняшней статье, но начнем, как всегда, с синтаксиса и основных опций утилиты.
Синтаксис Wget
Команда wget linux имеет очень простой синтаксис:
$ wget опции аддресс_ссылки
Можно указать не один URL для загрузки, а сразу несколько. Опции указывать не обязательно, но в большинстве случаев они используются для настройки параметров загрузки.
Опции
Синтаксис опций очень свободный. У каждой опции, как правило есть как длинное, так и короткое имя. Их можно записывать как до URL, так и после. Между опцией и ее значением не обязательно ставить пробел, например вы можете написать -o log или -olog. Эти значения эквивалентны. Также если у опций нет параметров, не обязательно начинать каждую с дефиса, можно записать их все вместе: -drc и -d -r -c. Эти параметры wget тоже эквивалентны.
А теперь давайте перейдем к списку опций. У wget слишком много опций, мы разберем только основные.
- -V(--version) - вывести версию программы
- -h (--help) - вывести справку
- -b(--background) - работать в фоновом режиме
- -oфайл(--out-file) - указать лог файл
- -d(--debug) - включить режим отладки
- -v (--verbose) - выводить максимум информации о работе утилиты
- -q (--quiet) - выводить минимум информации о работе
- -iфайл (--input-file) - прочитать URL из файла
- --force-html - читать файл указанный в предыдущем параметре как html
- -t (--tries) - количество попыток подключения к серверу
- -O файл(--output-document) - файл в который будут сохранены полученные данные
- -с (--continue) - продолжить ранее прерванную загрузку
- -S (--server-response) - вывести ответ сервера
- --spider - проверить работоспособность URL
- -T время (--timeout) - таймаут подключения к серверу
- --limit-rate - ограничить скорость загрузки
- -w (--wait) - интервал между запросами
- -Q(--quota) - максимальный размер загрузки
- -4 (--inet4only) - использовать протокол ipv4
- -6 (--inet6only) - использовать протокол ipv6
- -U (--user-agent)- строка USER AGENT отправляемая серверу
- -r (--recursive)- рекурсивная работа утилиты
- -l (--level) - глубина при рекурсивном сканировании
- -k(--convert-links) - конвертировать ссылки в локальные при загрузке страниц
- -P (--directory-prefix) - каталог, в который будут загружаться файлы
- -m(--mirror) - скачать сайт на локальную машину
- -p(--page-requisites) - во время загрузки сайта скачивать все необходимые ресурсы
Кончено это не все ключи wget, но здесь и так слишком много теории, теперь давайте перейдем к практике. Примеры wget намного интереснее.
Использование wget Linux
Команда wget linux, обычно поставляется по умолчанию в большинстве дистрибутивов, но если нет, ее можно очень просто установить. Например установка с помощью yum будет выглядеть следующим образом:
yum -y install wget
А в дистрибутивах основанных на Debian:
sudo apt install wget
Теперь перейдем непосредственно к примерам:
1. Загрузка файла
Команда wget linux скачает один файл и сохранит его в текущей директории. Во время загрузки мы увидим прогресс, размер файла, дату его последнего изменения, а также скорость загрузки:
2. Сохранить файл с другим именем
Опция -О позволяет задать имя сохраняемому файлу, например, скачать файл wget с именем wget.zip:
Вы можете скачать несколько файлов одной командой даже по разным протоколам, просто указав их URL:
4. Взять URL из файла
Вы можете сохранить несколько URL в файл, а затем загрузить их все, передав файл опции -i. Например создадим файл tmp.txt, со ссылками для загрузки wget, а затем скачаем его:
wget -i /wget/tmp.txt
5. Продолжить загрузку
Утилита wget linux рассчитана на работу в медленных и нестабильных сетях. Поэтому если вы загружали большой файл, и во время загрузки было потеряно соединение, то вы можете скачать файл wget с помощью опции -c.
6. Загрузка файлов в фоне
Опция -b заставляет программу работать в фоновом режиме, весь вывод будет записан в лог файл, для настройки лог файла используются специальные ключи wget:
7. Ограничение скорости загрузки
Команда wget linux позволяет не только продолжать загрузку файлов, но и ограничивать скорость загрузки. Для этого есть опция --limit-rate. Например ограничим скорость до 100 килобит:
Здесь доступны, как и в других подобных командах индексы для указания скорости - k - килобит, m - мегабит, g - гигабит, и так далее.
8. Подключение по логину и паролю
9. Загрузить и выполнить
Вы, наверное, уже видели такие команды. wget позволяет сразу же выполнять скачанные скрипты:
10. Сохранить файл в папке
По умолчанию wget сохраняет файл в текущую папку, но это поведение очень легко изменить с помощью опции -P:
11. Передать информацию о браузере
12. Количество попыток загрузки
По умолчанию wget пытается повторить загрузку 20 раз, перед тем как завершить работу с ошибкой. Количество раз можно изменить с помощью опции --tries:
13. Квота загрузки
Если вам доступно только ограниченное количество трафика, вы можете указать утилите, какое количество информации можно скачивать, например разрешим скачать файлов из списка только на десять мегабайт:
wget -Q10m -i download-list.txt
Здесь работают те же индексы для указания размера - k, m, g, и т д.
Wget позволяет не только скачивать одиночные файлы, но и целые сайты, чтобы вы могли их потом просматривать в офлайне. Использование wget, чтобы скачать сайт в linux выглядит вот так:
wget --mirror -p --convert-links -P ./ аддресс_сайт
Выводы
Вот и все, теперь использование wget не будет для вас таким непонятным. Если я упустил что-то важное о команде или у вас остались вопросы, спрашивайте в комментариях!
Открывая любую страницу обозреватель скачивает страницу и практически все файлы отображающиеся на этой странице в директорию на диске.
За исключением видео и музыкальных файлов. Для скачивания видео и музыки в кэш нажмите кнопку воспроизведения .
Следовательно, наша задача достать файлы из этой директории.
Дальше совсем немного хакерских действий для получения требуемого.
Сохранить как
Для самого простого скачивания картинок в любом браузере нужно:
- Нажать правой кнопкой мыши на требуемой картинке.
- В появившемся меню выбрать пункт похожий на Save image as (Сохранить картинку как) или Save target as (Сохранить цель как) .
- Далее обычное диалоговое окно сохранения файла.
Инструменты разработчика
Во многих случая картинку нельзя просто так сохранить, например она является фоном и перекрыта другими элементами страницы.
В таком случае нужно воспользоваться инструментами разработчика, этими инструментами обычно пользуются программисты и хакеры.
Мы рассмотрим работу с инструментами на примере обозревателя Chrome, в других браузерах эти инструменты и действия аналогичны.
Открыть "Инструменты разработчика"
Инструментарий разработчика Chrome называется Developer tools (Инструменты разработчика).
- Открыть Меню View (Вид)
- Открыть подменю Developer (Разработчик)
- Нажать подменю Developer tools (Инструменты разработчика)
Или комбинацией Ctrl+Shift+J для Windows и Linux и Cmd+Alt+I для Mac OS.
Картинки могут использоваться на странице, как непосредственно, картинка, так и в качестве фона элементов страницы. Порядок действий немного различается, но суть, как всегда - одна.
- Открывает инструменты разработчика.
- Переходим на вкладку Elements (Элементы).
- Нажимаем на значок указателя.
- Наводим мышью на интересующий элемент страницы и нажимаем на него.
Атрибут "src"
Если картинка используется в элементе
- Нажимаем на ссылку в атрибуте src правой кнопкой мыши.
- В появившемся меню выбираем Open link in new tab (Открыть ссылку в новой вкладке).
- Переходим на открывшуюся вкладку.
- Сохраняем файл через меню File / Save as (Файл/Сохранить как).
Атрибуты стиля
Если картинка используется как фон найденного элемента, то адрес картинки нужно искать в настройках стиля элемента.
- Переходим в правую половинку и открываем вкладку Styles (Стили).
- В стилях ищем что-то похожее на адрес картинки.
- Щелкаем на адресе правой кнопкой мыши для открытия выпадающего меню.
- Выбираем Open link in new tab (Открыть ссылку в новой вкладке).
- Переходим на открытую вкладку.
- Сохраняем картинку нажав комбинацию Ctrl + S или через меню File / Save as (Файл / Сохранить как).
- Откройте Developer tools (Инструментарий разработчика).
- Перейдите на вкладку Network (Сеть) .
- Перегрузите страницу
- Нажмите, если есть, кнопку воспроизведения на интересующей вас музыке или видео.
- В таблице сетевых обращений ищите запрос файлов с видео или аудио расширениями, обычно это .mp4, .avi, .mpeg, а аудиофайлы .mp3, .wav и т.д.
- На найденном файле нажимаем правой кнопкой и снова выбираем Open link in new tab (Открыть ссылку в новой вкладке) .
- Переходим на открытую страницу и сохраняем файл через меню File / Save page as (Файл / Сохранить страницу как/Файл)
Можно сохранить страницу целиком в отдельную директорию и поискать нужные файлы вручную, открывая их поочередно.
- Открываем в обозревателе нужную страницу.
- В меню файл выбираем пункт Save page as (Сохранить страницу как).
- В диалоговом окне выбираем директорию и имя файла сохраняемой страницы.
- Обычно страница сохраняется как выбранное имя с расширением .html и директорией с таким же именем содержащей все файлы ресурсов.
- Переходим в директорию ресурсов и ищем требуемый файл.
Заключение
Добавляем скачанные файлы в видеоредактор и нажимаем кнопку создать видео.
Что можно делать с загруженными файлам узнайте в наших пошаговых инструкциях и уроках:
Читайте также: