功能简介:可以按照指定编排的配置文件,按顺序执行并监听
使用场景:可以用在前期信息收集的步骤上,将一些常见的脚本进行归纳,并编写成配置文档进行自动化处理
优点:可以扩展性强,只需要输入命令脚本,命令是多种多样的,但有些工具中执行的命令是固化的
缺点:内置转化工具少,如果输出的文档不能是指定的名称,则工具在自动化链条上无法进行有效连接
详细介绍:
此工具分为 hobby.exe + go.html 组成,go.html为配置文件
文件格式为xml格式
以下是示例
<!-- 配置文件说明
<process> 每个都是一个步骤
<tag></tag> 必需值 由大到小依次执行,如果相同则并发
<thread></thread> 多开进程(注意是进程)数量(脚本无法使用)搭配<thread-content> | <thread-out>使用
<thread-out><thread-out> 目标输出文件地址
<thread-content></thread-content> 目标输入文件地址
<cmd></cmd> 命令脚本,如果无法执行就填写绝对值路径,也可以用相对路径
<plugin></plugin> 自带脚本命令,可以使用-hp查看
</process> -->
<root>
<process>
<tag>
1
</tag>
<thread>
5
</thread>
<thread-content>
./ip.txt
</thread-content>
<thread-out>
./444.txt
</thread-out>
<cmd>
python g2.py -s ./ip.txt -o ./444.txt
</cmd>
</process>
<process>
<tag>
1
</tag>
<thread>
1
</thread>
<thread-content>
</thread-content>
<thread-out>
</thread-out>
<cmd>
python g1.py -t 2
</cmd>
</process>
<process>
<tag>
2
</tag>
<plugin>
{csvbyname2txt ip_fofa_output.csv domain fofa.txt}
</plugin>
</process>
<process>
<tag>
2
</tag>
<plugin>
{csvbycol2txt ip_fofa_output.csv 1 fofa2.txt}
</plugin>
</process>
</root>
以上这个配置文件,描述了一个自动化脚本执行的过程
可以简单叙述成
在同一时间执行 python g2.py -s ./ip.txt -o ./444.txt
和 python g1.py -t 2
,并且在第一个命令中对其使用多进程,并发数为5,即同时存在5个进程,并且将自动拆分输入文件,以及自动合并输出文件
在以上步骤运行结束后,同时运行{csvbyname2txt ip_fofa_output.csv domain fofa.txt}
自带脚本命令,可以在-ph中查看,例如
PS C:\Users\Administrator\Desktop\Hobby> go run .\main.go -ph
使用例子:{csvbyname2txt fofa.csv domain fofa.txt}
解释:将fofa.csv中名为domain列的内容导出为fofa.txt(已去重)
脚本说明:
原型:csvbycol2txt(fileName string, columnIndex int, outputFileName string)
原型:csvbyname2txt(fileName string, columnName string, outputFileName string)
整个程序运行过程
PS C:\Users\Administrator\Desktop\Hobby> go run .\main.go
(线程1)[执行中...]{python g2.py -s ./cache/bb96c7d7-7cd6-4f/ip_2.txt -o ./cache/bb96c7d7-7cd6-4f/444_2.txt} >> {225296 4 11}
(线程3)[执行中...]{python g2.py -s ./cache/bb96c7d7-7cd6-4f/ip_4.txt -o ./cache/bb96c7d7-7cd6-4f/444_4.txt} >> {231892 4 11}
(线程0)[执行中...]{python g2.py -s ./cache/bb96c7d7-7cd6-4f/ip_1.txt -o ./cache/bb96c7d7-7cd6-4f/444_1.txt} >> {221688 4 11}
[执行结束]{python g1.py -t 2}
(线程2)[执行中...]{python g2.py -s ./cache/bb96c7d7-7cd6-4f/ip_3.txt -o ./cache/bb96c7d7-7cd6-4f/444_3.txt} >> {234736 4 11}
(线程4)[执行中...]{python g2.py -s ./cache/bb96c7d7-7cd6-4f/ip_5.txt -o ./cache/bb96c7d7-7cd6-4f/444_5.txt} >> {227760 4 11}
(线程1)[执行结束]{python g2.py -s ./cache/bb96c7d7-7cd6-4f/ip_2.txt -o ./cache/bb96c7d7-7cd6-4f/444_2.txt}
(线程0)[执行结束]{python g2.py -s ./cache/bb96c7d7-7cd6-4f/ip_1.txt -o ./cache/bb96c7d7-7cd6-4f/444_1.txt}
(线程4)[执行结束]{python g2.py -s ./cache/bb96c7d7-7cd6-4f/ip_5.txt -o ./cache/bb96c7d7-7cd6-4f/444_5.txt}
(线程3)[执行结束]{python g2.py -s ./cache/bb96c7d7-7cd6-4f/ip_4.txt -o ./cache/bb96c7d7-7cd6-4f/444_4.txt}
(线程2)[执行结束]{python g2.py -s ./cache/bb96c7d7-7cd6-4f/ip_3.txt -o ./cache/bb96c7d7-7cd6-4f/444_3.txt}
[结果聚合完成]{python g2.py -s ./ip.txt -o ./444.txt}
[脚本执行结束]{csvbycol2txt ip_fofa_output.csv 1 fofa2.txt}
[脚本执行结束]{csvbyname2txt ip_fofa_output.csv domain fofa.txt}
以下是hobby的其他功能
PS C:\Users\Administrator\Desktop\Hobby> go run .\main.go -h
Usage of C:\Users\ADMINI~1\AppData\Local\Temp\go-build2016420776\b001\exe\main.exe:
-c string
配置文件地址 (default "go.html")
-ph
显示插件信息
-t int
进程显示刷新时间 (default 2)
配置文件:
添加了新标记 Return-mark(内置脚本返回标记),可以用于接受内置脚本返回的值
添加了
内置脚本:
添加了
ddcsv:检测指定文件内是否出现指定大小的csv文件
logprint:主要用于调试
request:封装好了http请求,可以进行全面的http请求,支持多线程
socket:封装号的socket请求,可以自定义写入内容,也有内置的
并且加入实时键盘控制,现在有exit,show,save,shell,cls,back
命令(因为数据是以链表形式存入的,方便dug)
忘记说了,之前使用的是pid进行监测程序状态,但是发现有些程序会出现半天不动的情况,现在将输出的管道指向文件,并且每隔一段时间监测文件更新状态
pass/xxx/
(xxx为进程内部UUID)