Как загрузить сообщение с сервера

Обновлено: 02.07.2024

На моем хост-сервере Exchange недостаточно места. Я обычно использую Outlook Web Access для доступа к своей электронной почте. Я настроил Outlook для чтения моей электронной почты, но он оставляет всю электронную почту на сервере. Как я могу дать ему команду вытащить всю электронную почту и удалить ее с сервера?

Лучший способ вытащить вашу электронную почту - экспортировать содержимое почтового ящика в PST. Это позволит загрузить всю вашу электронную почту в один большой двоичный объект, который вы можете переместить на другой компьютер или даже загрузить в другой почтовый ящик Exchange.

Вот быстрый, как.

Я не пользовался Outlook некоторое время, но если память служит, есть два способа сделать это:

  • Создайте локальный файл PST.
  • Подключитесь к серверу как обычный клиент обмена.
  • Выделите все электронные письма, которые вы хотите сохранить
  • Вырежьте и вставьте их в файл PST.

ИЛИ ЖЕ

  • Создайте локальный файл PST.
  • Подключитесь к вашему серверу как клиент pop3

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

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

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

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

4. cURL + POST

Этот способ не требует наличия веб-сервера и, по идее, должен работать также и на Windows, поскольку там cURL предустановлена по умолчанию.

Суть очень проста. Каждый из нас множество раз выгружал файлы с компьютера на сайт, например, фотографию для профиля или файл в файлообменник. Мы используем веб-браузер, который методом POST отправляет файл. Вместо браузера можно отправлять файл с помощью команды curl, которая также умеет использовать метод POST.

На сервере создайте файл uploader.php:

С компьютера, с которого нужно выгрузить файл, запустите команду вида:

Если у вас серый 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. Бэкдоры

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

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

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

Заключение

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

Связанные статьи:

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

Здравствуйте! Подскажите как скачать файл с сервера после того как я подключился к нему по ssh?
Я знаю что могу набрать в консли находясь в домашней директории
scp user@expamle:/home/file.txt ~/Downloads
А какую команду нужно ввести находясь именно в терминале на сервере! А не в домашней директории
Сколько не гуглил везде пишут про именно ввыедение команды с домашней консоли
Небольшое добавление! У сервера белый ip, у моего компа нет

  • Вопрос задан более года назад
  • 2642 просмотра

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

15432

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

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

vechnokrainii

15432, если знаю белый ip то зачем тогда копипастить?. Белого ip к сожалению нет((
Я подключаюсь из офиса. Через общий роутер

15432

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

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

vechnokrainii

15432, Да через sftp я наешл спопосб. Но вот после подключение через ssh если такая возможность скачать на пк меня очень интересует)

15432

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

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

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

vechnokrainii

Валентин, да, но ваши примеры по scp работают только из домашнего терминала. А меня интересует именно после подключения по ssh в этой же консоли. Про сокеты ничего не понял. Недавно в этой теме)

mmmaaak

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

vechnokrainii

Да, но это только для больших объемов. В противном случае проще scp. Ну мне так кажется)
Хотя если не ошибаюсь то scp тоже умее сжимать файлы

jamakasi666

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

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

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

jamakasi666

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

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

jamakasi666

Zzzz9, будет работать. У вас идет подключение к серверу и через поднятое соединение внутри поднимается проброс порта\тонеля в любую сторону. Какой ip у клиента до лампочки, хоть серый, хоть за натом.

Задача сводится к тому, чтобы на сервере можно было бы открыть 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 может быть запрещён. Но чаще всего в конфигурации по умолчанию он включен.

Нежелательные электронные письма могут занимать много места в памяти вашего компьютера. Чтобы избежать этого, Microsoft предлагает параметр в Microsoft Outlook это определяет, сколько писем должно быть доступно для загрузки на ваш локальный компьютер. Итак, если ваша учетная запись электронной почты связана с Microsoft Exchange Server, например с Office 365 или Hotmail, то настроенный параметр автоматически установит лимит почты для вашего компьютера. При необходимости вы можете изменить эту настройку и сделать Outlook загружает все электронные письма с сервера.

Заставить Outlook загружать все электронные письма

Если вы используете службу почтового провайдера, отличную от той, которая предоставляется Microsoft Exchange Server, например Google, тогда Outlook просто проигнорирует параметр и загрузит все письма.

Чтобы загрузить все электронные письма с Exchange Server в Outlook-

  1. Подключиться к Microsoft Exchange по ссылке
  2. Измените настройки учетной записи Exchange.

1]Подключиться к Microsoft Exchange по ссылке

Outlook загружает все электронные письма

Самый простой способ загрузить все электронные письма с сервера Exchange — прокрутить папку до конца. Если в этой папке на сервере есть другие элементы, вы увидите ‘Нажмите здесь, чтобы узнать больше о Microsoft Exchange‘ связь.

Нажмите на ссылку, и через несколько секунд Outlook начнет загружать все электронные письма на ваш компьютер.

2]Изменить настройки учетной записи Exchange

Затем выберите «Настройки учетной записи‘снова из раскрывающегося меню.

Заставить Outlook загружать все электронные письма


Когда закончите, нажмите «Next ‘и перезапустите Outlook, когда будет предложено.


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