Arsenal Modify By Wanli

Arsenal Modify By Wanli

0x01 前言

日常渗透中,不同阶段所使用的工具是不同的,除开自动化一条龙的脚本之外,很多时候是需要反复的进入不同的文件夹运行不同的命令,每次使用工具的时候命令可能也是一样的,那么是否有种方式将常用的工具,常用的命令集成在一起,渗透的时候仅需给定目标,就可以调用工具自动执行命令。之前流行过的GUI_Tools是一个,有了图形化页面,点击即可运行,但是一个是在Windows环境下界面实在不敢恭维,一个是无法更好的交互(或者也许我没找到交互的方式)。后来无意间发现了阿浪师傅写的一个自用的命令行调用工具,也就是Wanli的初始版本。最开始也在公众号文章说过,最初的设定是“把常用的工具给做了一个调用整合到一个程序内,功能拓展比较方便,目前是根据自己的一些习惯写的,比如目录扫描、子域名爆破+验证、漏洞扫描”。就相当于一个快捷启动工具,与GUI_Tools不同的是,Wanli可以更好的交互,执行自定义的命令。当然,并无比较的意思,两个师傅的工具都有在用(手动狗头 :)。

Wanli的项目地址:GitHub - ExpLangcn/WanLi: 方便红队人员对目标站点进行安全检测,快速获取资产。It is convenient for red team personnel to conduct security detection on the target site and quickly obtain assets.

与最初的版本不同,最新的Wanli定位发生了变化,由自用的调度工具变为了偏向红队的收集漏扫一体化工具,效果同样顶呱呱。本篇文章依据Wanli的初始版本。

0x02 Modify

得益于阿浪师傅的框架,只需要修改几个地方即可实现功能拓展:

  1. 定义工具的配置信息;

2.在主函数利用cmd2注册参数;

3.最后定义参数需要执行的名令

贴上一张效果图:

main

暂时是加入了个人比较常用的工具,例如目录扫描dirsearch,poc验证afrog、nuclei等。

首先修改config.py,加入自定义工具的配置信息:

Untitled

接着修改lib.cmd.wanli.py,编写工具执行的命令函数:

Untitled

以nuclei函数为例,完整的命令如下:

nuclei.exe -l url.txt -p socks5://1.1.1.1:1080 -s medium,high,critical -rate-limit 100 -bulk-size 25 -concurrency 25 -stats -si 300 -retries 3

整条命令稍显很长,不容易记忆,将它写入函数之后,自动的执行。

最后修改main函数,主要框架如下:

pocscan_nuclei_parser = Cmd2ArgumentParser()
    pocscan_nuclei_parser.add_argument("-u", nargs='?', help="扫描单个目标")
    pocscan_nuclei_parser.add_argument("-f", nargs='?', help="指定文本进行批量漏洞扫描")
    pocscan_nuclei_parser.add_argument("-p", nargs='?', help="设置socks代理进行批量漏洞扫描")

    @cmd2.with_argparser(pocscan_nuclei_parser)
    def do_pocscan_nuclei(self, args):
        '''nuclei进行漏洞扫描'''
        if args.u:
            url = args.u
            lib.cmd.wanli.nuclei_single(url)
        if args.f:
            file = args.f
            lib.cmd.wanli.nuclei_file(file)
        if args.p:
            proxy = args.p
            lib.cmd.wanli.nuclei_proxy(proxy)

此时运行主函数,pocscan_nuclei参数就已经注册到程序里面,只需要给定参数即可启动运行,且得益于Windows窗口的特性,使用start cmd /k参数,无需等待当前命令执行结束即可直接运行下一条命令,运行结束后自动的停在当前目录,并不会退出,方便查看结果同时节省了反复切换目录的时间。

动态效果运行图:
run

最后的动图其实后面还有一些,但是转换的时候好像丢了,,2333