Как скачать с сервера
Перейти к содержимому

Как скачать с сервера

  • автор:

Как скачать файл с сервера находясь на сервере?

/Downloads
А какую команду нужно ввести находясь именно в терминале на сервере! А не в домашней директории
Сколько не гуглил везде пишут про именно ввыедение команды с домашней консоли
Небольшое добавление! У сервера белый ip, у моего компа нет

  • Вопрос задан более двух лет назад
  • 5497 просмотров

Простой 7 комментариев

  • Facebook
  • Вконтакте
  • Twitter

15432

cat /home/file.txt, а потом скопипастить из терминала

scp /home/file.txt home@77.190.45.201:/home/downloads
(подставьте IP и юзера домашнего компа, но нужен белый IP)

vechnokrainii

15432

Вечно Крайний, просто два разных варианта

я понял, что вы хотите, но всё либо через sftp, да scp предлагают

vechnokrainii

15432

Эм, ну «scp /локальный/путь сервер:/удаленный/путь» копирует туда, а если поменять местами аргументы — то скопирует оттуда. А если у тебя еще и переиспользование ssh сокета настроено — то у тебя автодополнение по tab путей будет работать в команде scp (ну т.е. ты открываешь ssh до сервера, а в соседней консоли scp вызываешь — и вот так вот). Для такой настройки в /etc/ssh/ssh_config пропиши в конец строчки:

и в /tmp у тебя будут создаваться сокеты.

vechnokrainii

mmmaaak

  • Facebook
  • Вконтакте
  • Twitter

vechnokrainii

jamakasi666

Можно такое сделать. Если я все правильно понял из вопроса.
При подключении по SSH делаете через него port forwarding.
А ваш ПК.
Б сервер.
подключаетесь по ssh от А к Б, делаете проброс порта от Б(условно 222) к А(порт ssh). Это указывается при подключении.
После подключения уже находясь на машине Б сможете дать
scp foobar.txt usernameA@localhost:222:/some/remote/directory

Т.е. вы находясь на удаленном сервере через ssh тунель пробрасываете порт до ssh вашего ПК и сможете подключаться по ssh\scp к нему обратно.

Мудрено но так можно.

  • Facebook
  • Вконтакте
  • Twitter

jamakasi666

Zzzz9, гугл в помощь, если кратко:
1) можно пробросить порт\порты от локальной машины на удаленную
2) можно пробросить порт\порты от удаленной машины на локальную
3) можно поднять vpn средствами самой ssh
Во всех случаях порты могут указывать не только на локальные\удаленные но и на машины которые доступны для локальной\удаленной стороны.

SSH очень гибкая и функциональная штука которая может гору фишек.

jamakasi666

Задача сводится к тому, чтобы на сервере можно было бы открыть ssh-соединение до компьютера, находящегося за nat где-то в офисе. И это можно сделать! Для этого в ssh есть Port Forwarding.

ssh -R 12345:127.0.0.1:22 user@example

При этом не только открывается сессия с example, но и на удалённом сервере на localhost (127.0.0.1) sshd начинает слушать порт 12345. Все коннекты на этот порт по ssh-соединению (то есть зашифрованно прокидываются на исходную машину на 127.0.0.1:22. Что и требовалось.

Например, можно на удалённой машине зайти на свою:

ssh -p 12345 me@localhost

Можно скопировать файл:

scp -P 12345 /dev/zero me@localhost

Можно даже sftp:

sftp -o Port=12345 me@localhost

Возможен проброс порта и в обратную сторону, с локальной машины на удалённую, с помощью ключа -L. Например, пусть есть сервер в офисе с внешним IP, с которого доступен внутренний адрес 192.168.1.2 с Windows и включённым RDP. Нам надо на него попасть, не заморачиваясь с поднятием VPN.

ssh -L 31415:192.168.1.2:3389 user@example

Затем в RDP-клиенте вместо 192.168.1.2 вводим 127.0.0.1:31415

PS: Нужно отметить, что в настройках sshd PortForwarding может быть запрещён. Но чаще всего в конфигурации по умолчанию он включен.

HackWare.ru

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

Как скачать файл с сервера

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

  • на веб сайте найдена уязвимость Удалённое выполнение кода
  • получены учётные данные пользователя, позволяющие подключиться по SSH (например, с помощью брут-форса)

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

Условия могут быть разные:

  • по уровню привилегий:
  • мы пользователь www-data или http (если команды выполняются через уязвимый веб-сайт), в этом случае у нас есть права на запись в директорию веб-сервера
  • мы пользователь без sudo, в этом случае мы можем записывать файлы в свою домашнюю директорию, а также в /tmp
  • мы пользователь с sudo, мы можем делать что угодно
  • по способу выполнения команд:
  • выполняется через уязвимое веб-приложение, в этом случае запуск сложных команд может быть затруднён из-за фильтрации кавычек и других специальных символов
  • команды выполняются при подключении по SSH, удобный способ, можно выполнять команды с любыми символами

1. cat + копирование с экрана/браузера

Простейший способ, с помощью команды cat выводится содержимое файла. Он подходит только для текстовых файлов. При выполнении команды по SSH, содержимое файла выводится в консоли, при выполнении через уязвимое веб-приложение, содержимое файла выводится на странице сайта:

Если делаете через выполнение команд в веб-браузере, то для нормального отображения откройте исходный код веб-страницы:

2. base64 + копирование с экрана/браузера

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

Для понимания сути, изучите следующие команды:

Содержимое исполнимого файла /usr/bin/ls (команда ls) кодируется в Base64 и сохраняется в файл ls.txt:

Можно посмотреть, что в файле ls.txt размещён текст, который можно скопировать/вставить:

Теперь этот текст декодируем и сохраняем в файл ls.bin:

С помощью команды chmod делаем файл ls.bin исполнимым:

Проверяем работоспособность этого файла:

Суть в том, что с помощью base64 можно копированием-вставкой передавать бинарные файлы без возможности выгрузить их с сервера другим способом.

3. Помещение файла в директорию сайта и скачивание с веб-сервера

Допустим у нас есть право записи в директорию веб-сайта (мы выполняем команды через уязвимое веб-приложение). Адрес сайта not-secure-site.org. Тогда мы можем скопировать файл в директорию сайта и скачать его веб-браузером.

Допустим, папка сайта это /var/www/html/, тогда копируем нужный нам файл в неё следующей командой:

Теперь этот файл будет доступен по ссылке http://not-secure-site.org/passwd.txt

Чтобы узнать текущую папку, где выполняется уязвимый скрипт, выполните команду pwd:

Типичные папки с сайтами:

  • /srv/http/ — некоторые дистрибутивы (например, Arch Linux) хранят здесь файлы веб-сервера.
  • /var/www/html/ — директория с файлами веб-сайтов веб-сервера Apache в Debian и производных дистрибутивах.

/etc/apache2/ — директория с настройками веб-сервера (когда служба называется apache2 — то есть в таких системах как Debian и производных)

Если неизвестно где папки сайтов, то нужно смотреть конфигурационные файлы Apache, там же можно узнать адрес сайта, если вдруг вы его не знаете (такое может быть, если сервер скомпрометирован по SSH):

  • /etc/apache2/conf/httpd.conf — главный конфигурационный файл Apache
  • /etc/apache2/conf/sites-enabled/ — включённые виртуальные хосты Apache

/etc/httpd/ — директория с настройками веб-сервера (когда служба называется httpd — то есть в таких системах как Arch Linux и производных)

  • /etc/httpd/conf/httpd.conf — главный конфигурационный файл Apache
  • /etc/httpd/conf/sites-enabled/ — включённые виртуальные хосты Apache

Чтобы посмотреть, запущен ли вообще веб-сервер:

Если файлов много, то их можно заархивировать:

Если программа 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, а если это веб-сервер, то присутствует практически всегда.

Особенность использования веб-сервера PHP от использования веб-сервера системы в том, вы запускаете PHP от своего текущего пользователя, а не от www-data или http, т. е. у вас другие права на доступ к файлам.

Нужно запускать командой вида:

В качестве IP нужно указать IP адрес удалённого компьютера, узнать его можно командой:

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

Обратите внимание, что листинг файлов в директории отсутствует, то есть открывая в веб-браузере ссылку нужно указать имя конкретного файла, который присутствует в директории /путь/до/папки, пример ссылки http://192.168.0.89:8484/файл

7. SSH и перенаправление вывода на текущую систему

SSH можно использовать для копирования текстовых файлов:

А также и для копирования бинарных файлов:

8. scp

Программа scp является частью SSH и предназначена специально для копирования файлов в любом направлении. То есть если у вас есть возможность подключиться по SSH, то намного удобнее воспользоваться scp.

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

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

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

10. Ncat, Netcat, nc

Чтобы отправить файл через TCP порт 9899 с HOST2 (клиент) на HOST1 (сервер):

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

Чтобы отправить в другом направлении (с HOST1 на HOST2), превратив Ncat в сервер «одного файла»:

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

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

11. Бэкдоры

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

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

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

  • Weevely
  • PhpSploit
  • webshells

Заключение

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *