本帖最后由 Aedoo 于 2018-3-21 09:58 编辑
(如果你觉得本篇文章让你获得了知识,请务必在下方点个赞,谢谢表哥们!)
0x00 前言
当我们使用Python完成了我们自创的小工具,比如一些字典生成、端口扫描、弱服务爆破等等等。
你是否想添加自己的装x的Logo(如sqlmap和metasploit)以及简明的说明文档(如Nmap和Hydra)吗?
如下,
sqlmap的Logo:
1.png (28.83 KB, 下载次数: 132)
2017-12-26 12:42 上传
Nmap的说明文档:
2.png (60.38 KB, 下载次数: 133)
2017-12-26 12:42 上传
本文接下来介绍Linux下的figlet工具以及Python的撰写工具帮助模块optparse。
0x01 Linux下的figlet使用
figlet是Linux下的一款工具,用于将输入的字符串输出为各种奇形怪状的Logo,可用于撰写自己的工具后,插入代表着自己原创工具的Logo标识。
ubuntu下安装figlet:
sudo apt-get install figlet
centos下安装figlet:(可能需要到墙外的世界)
[root@centos6 src]# tar zxf figlet-2.2.5.tar.gz
[root@centos6 src]# cd figlet-2.2.5
[root@centos6 figlet-2.2.5]# make figlet
安装之后查看一下帮助文件(centos):
3.png (21.24 KB, 下载次数: 115)
2017-12-26 12:42 上传
我们常用的语法就是:
[AppleScript] 纯文本查看 复制代码./figlet Aedoo -f fonts/standard.flf
Aedoo为我们要生成Logo的字符串。
-f fonts/standard.flf 为选择不通风格的模板。
另外的,-w 输出的宽度 、-C 选择一个控制文件(也在fonts目录下)
由于centos使用解压缩并编译运行,我们可以查看工具的字体模板,在目录fonts里。
4.png (16.23 KB, 下载次数: 123)
2017-12-26 12:42 上传
后缀为flf为字体模板文件,后缀为flc为控制文件。
我们随机选择几个字体文件试一下效果(请注意,我当前目录为fonts):
5.png (13.7 KB, 下载次数: 138)
2017-12-26 12:42 上传
6.png (14.31 KB, 下载次数: 146)
2017-12-26 12:42 上传
7.png (12.95 KB, 下载次数: 133)
2017-12-26 12:42 上传
8.png (12.52 KB, 下载次数: 142)
2017-12-26 12:42 上传
除此之外,还有不少有趣的模板,大家可自行安装使用。
0x02 Python工具模块optparse
optparse是一款打造自己的工具的模块(python2.7自带),他可以向我们的工具中加入帮助信息,大家对linux下的工具一定有印象吧,使用--help查看帮助文档。此模块正是打造这样的帮助文档。
a.导入模块
[Python] 纯文本查看 复制代码from optparse import OptionParser
当然也可以直接import optparse,只不过写代码的时候比较麻烦
b.实例化一个OptionParser类的对象
[Python] 纯文本查看 复制代码parser = OptionParser()
c.添加说明文档,这里举两个例子进行讲解(编码问题请点击纯文本查看)
[Python] 纯文本查看 复制代码parser.add_option("-i", dest="redis_ip", help="Input IP Duan Like 192.168.1.1/24")
上述这行代码的add_option()方法是向parser中添加。
-f 输入时紧跟此参数的一个字符串为此参数的值
--file 等同于-f
dest="file" 将紧跟-f的字符串赋值给file
help="****" 此参数的说明
[Python] 纯文本查看 复制代码parser.add_option("-t", dest="thread_count", type="int", default=10, help="The Thread Number")
(编码问题请点击纯文本查看)
type="int" 此参数的默认类型为int型
default=10 当不输入此参数时,此参数默认为10
d.赋值
[Python] 纯文本查看 复制代码(options, args) = parser.parse_args()
将上述添加的参数一一赋值。
如果:
python **.py -f php -t 100
此时options.file 是-f参数后面紧跟的输入的值,options.count是-t参数紧跟的值,赋值后:
options.file=php
options.count=100
完整使用代码如下:
9.png (34.79 KB, 下载次数: 129)
2017-12-26 12:42 上传
print是用来测试是否赋值成功的,赋值成功之后,就可以调用options.redis_ip来使用了。
在cmdshell中运行此py文件:
10.png (23.63 KB, 下载次数: 138)
2017-12-26 12:42 上传
运行效果如上。
尝试赋值一下:
11.png (5.03 KB, 下载次数: 128)
2017-12-26 12:42 上传
成功调用。
0x03 完整的工具实例效果图
使用多线程写了个Redis批量爆破的工具,放一下完整的效果图。
12.png (31.37 KB, 下载次数: 130)
2017-12-26 12:42 上传
应该不会很Low吧。。。。。
0x04 文中的测试代码分享
test.zip
(361 Bytes, 下载次数: 26)
2017-12-26 12:51 上传
点击文件名下载附件
下载积分: 魔法币 -5
如有问题,请回复留言,我会作答。