Как быстро скачивать файлы с браузера через консоль

Обновлено: 12.05.2024

Этичный хакинг и тестирование на проникновение, информационная безопасность

Это небольшая шпаргалка, как скопировать файлы с уже скомпрометированной системы. Типичные ситуации:

  • на веб сайте найдена уязвимость Удалённое выполнение кода
  • получены учётные данные пользователя, позволяющие подключиться по 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.

Вид команды для копирования с удалённого компьютера на локальный компьютер:

9. Сетевая файловая система SSHFS

Если у вас есть возможность подключиться по SSH, то вы можете смонтировать удалённую файловую систему как свою локальную командой вида:

10. Ncat, Netcat, nc

На HOST1 выполните:

На HOST1 запустите:

И на HOST2 выполните:

11. Бэкдоры

Самый распространённый вариант для веб-серверов. Можно скачать бэкдор с веб-интерфейсом:

А можно использовать более привычные шеллы с обфускацией и сокрытием передаваемых запросов от логов веб-сервера.

Больше подробностей смотрите по ссылкам:

Заключение

Конечно, способов скачать файл с удалённого компьютера через шелл или уязвимость веб сайта намного больше. Пишите в комментариях свои любимые способы!

Загрузка файлов - это довольно простая операция, которую мы можем выполнять множество раз в день, даже не задумываясь в графическом интерфейсе с помощью браузера. Это очень просто и быстро, достаточно кликнуть мышкой. Но дело в том, что у вас может не всегда быть доступ к графическому интерфейсу, а на серверах графического интерфейса нету вовсе.

Что же делать, когда нужно скачать файл 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 будет для Вас намного удобнее. Это связано с тем, что Вы можете записать сначала все адреса с которых Вы будете скачивать файлы в нехитрый текстовый фаил и консольная утилита wget будет скачивать их по порядку. Что же Вам для этого необходимо?

Открываете любой, простой текстовый редактор, какой Вам больше нравится (vim,debit,kate,nano) не столь суть важно. В поле где редактируется текст, построчно, вводите ссылки тех файлов которые Вы собираете скачать. Выглядеть это будет так.


Сохраняете содержимое в фаил с каким-либо названием. Например, дайте ему название (загрузить) без кавычек. Вот и подошли мы к тому чтобы запустить команду для скачивания файлов, ссылки на которые мы записали в наш фаил (загрузить). Пишите команду


После того как Вы запустите данную команду, она сама начнет скачивать файлы по порядку и остановится лишь когда скачает их все.


Так же бывает что соединение с интернетом обрывается и тогда нам приходится скачивать файл заново. Чтобы избежать закачки файла заново и немного сэкономить трафик вы можете дать команду для продолжения прерванной закачки. Так как после того как вы запустите программу, повлиять на неё вы уже не сможете, а чтобы задать следующую команду Вам необходимо прервать работу программы, используйте сочетание клавиш Ctrl-C. Чтобы продолжить прерванную загрузку введите в освободившейся консоли команду.


Если же вам необходимо скачать в какую-либо определенную папку, а не в ту в которой у Вас терминал открыт используйте команду.


wget --directory-prefix=/путь/куда/скачиваем/файлы -i загрузить

  • Получить ссылку
  • Facebook
  • Twitter
  • Pinterest
  • Электронная почта
  • Другие приложения

Ярлыки

  • Получить ссылку
  • Facebook
  • Twitter
  • Pinterest
  • Электронная почта
  • Другие приложения

Комментарии

Настройка bash терминала под себя

Сегодня, в очередной раз разбираясь с работой в консоли Линукс я решил, для удобства немного подредактировать свой файл .bashrc Данный фаил отвечает за то что выводится на экран во время нашей работы в bash . Вообще настроек в bash существует достаточно много и я ещё не со всеми разобрался, да и не все пока разбирал. Например я пока не разбирал цветную настройку консоли. А знаю что консоль можно разукрасить практически как новогоднюю Ёлку. Но всему своё время. Изменений в файле " .bashrc " на сегодня я хоть и сделал не так и много, но это уже позволяет значительно упростить мою работу и обучение работе с консолью. Файл " .bashrc " находится в нашей домашней директории вот здесь

/.bashrc , как видите знак тильды указывает на то что фаил находится в Вашей домашней директории, как я это уже говорил ранее в статье, когда описывал команды для передвижения по директориям в системе Линукс, в консоли. Точка с которой начинается название файла говорит нам о том чт

  • Получить ссылку
  • Facebook
  • Twitter
  • Pinterest
  • Электронная почта
  • Другие приложения

Скачиваем deb-пакеты с зависимостями для offline-установки

Сегодня вот задумался над тем что же делать если доступа в интернет не будет, а понадобится установить какую-либо программу. Ведь программы в Linux Ubuntu устанавливаются из интернет-репозиториев. Кстати это работает и в Kubuntu, Lubuntu. Остальные не проверял. А как взять необходимые для установки deb-пакеты? Если на компьютере ещё нет интернета, хотя бы программу для подключения к интернету, например ту же программу wvdial. Чтобы можно было подключить например мой модем в консоли. Хоть я и разобрался как подключать 3g USB-модем при помощи pppd . Но а вдруг понадобится. Для того чтобы получить список интернет адресов где находятся наши deb-пакеты я использую программу apt-get , в виде команды apt-get --print-uris --yes здесь --print-uris возвращает URL адреса на экран. Для вывода данной команды права суперпользователя ненужны, так что sudo вводить Вам не понадобится. apt-get --print-uris --yes install wvdial Но чтобы отсеить результаты и оставить одни URL-адреса. Я использую

Здравствуйте. Нужно скачать файлы из консоли. сисяш с Х и конкуерор тормозит безбожно.



****нехорошие люди, ссылка непрямая. так бы сразу им. спасибо, но никак.



Прямая ссылка есть?




Ясно. То есть тебе надо точно тыркнуть по элементу, чтоб ее получить?


я тебя не понимаю


Я тебя тоже.
Я намекаю тут, что можно на пистоне какой написать простой скрипт, в котором представится браузером и получить ссыль, а дальше вгетом.


намекаю тут, что можно на пистоне какой написать простой скрипт,

почему файрфокс то мне не может представить данные о ссылке?



почему файрфокс то мне не может представить данные о ссылке?

Учти, что подобные сайты всячески препятствуют попыткам скачивания файлов без просмотра рекламы. Может быть, тебе придётся ещё и cookie и User Agent скопировать.

proud_anon ★★★★★ ( 21.05.15 11:47:33 )
Последнее исправление: proud_anon 21.05.15 11:49:34 (всего исправлений: 2)




В каком смысле не рабочая?


ну, я копировал ссылку на загрузку, а вгет скачал какаую то фигню, вместо 198мб архива с файлами


ну, я копировал ссылку на загрузку, а вгет скачал какаую то фигню, вместо 198мб архива с файлами

Попробуй натравить file или посмотреть текстовым редактором или браузером, там, скорее всего, HTML от сервера с приветом тебе.

Предполагаю, что они либо проверяют cookie и user agent, либо очень строго разрешают доступ по каждой прямой ссылке не более одного раза.

Да, и если твоя главная жалоба — на скорость загрузки, она может быть урезана на стороне сервера.


У меня только что получилось загрузить и скачать тестовый файл просто через FlashGot → wget


file RghLx
RghLx: HTML document, UTF-8 Unicode text, with very long lines, with CRLF, LF line terminators


да, он передаёт зачем то сразу ссылку на локальный вгет. нафига? после чего ссылка видимо меняется и больше её скачать нельзя

wget уже советовали?


Проще, правда, либо поднять там иксы и Firefox, либо обойтись как-нибудь без dropmefiles.


Проще, правда, либо поднять там иксы и Firefox, либо обойтись как-нибудь без dropmefiles.

оп-тред не читай, сразу отвечай.


собственно я и ухищряюсь, чтобы не скачивать локально. На загрузку файлов тут ограничения есть. залью на третий безлимитный ресурс и оттуда утяну.


А ты не думал, что ссылка будет работать только для одного IP? Пока ты на одном компьютере (в одной локальной сети за NATом) работаешь, то фокус с копированием ссылки+печенек+UA работает, а когда пробуешь с другого внешнего IP сделать то же самое, то фигвам и реклама.

Читайте также: