介绍一款牛逼的渗透测试框架

简介

工欲善其事必先利其器,一件好的工具能给我们渗透测试提高很多效率,今天就介绍一款我个人觉得非常牛逼的渗透测试框架,———PentestDB(https://github.com/alpha1e0/pentestdb.git)

安装

PentestDB支持windows/linux/macos,需安装python 2.6.x 或 2.7.x运行。

git clone https://github.com/alpha1e0/pentestdb.git
安装依赖:

项目中的脚本文件依赖于lxml,linux系统一般默认安装lxml,如果没有可通过以下方式安装:

pip install lxml
apt-get install lxml
yum install lxml

windows用户: 我对windows不怎么了解,具体就自行百度了。

解决nmap依赖

项目中的C段扫描依赖于nmap扫描器,到https://nmap.org/download.html下载nmap,在windows下需要设置环境变量,让系统能够找到nmap.exe。还是那句话,在windows下怎么添加环境变量,我就不班门弄斧了,自行百度吧。linux是不需要的。

使用:
1.Exploit系统

pen.py的exploit子命令提供了exploit模块相关操作,exploit模块是一个轻量级的exploit框架,可以编写各种web漏洞的exploit:

  • 搜索exploit信息
  • 增加、删除、修改exploit信息
  • 执行某个exploit
  • 搜索并批量执行exploit exploit保存在项目根目录下的exploit目录下 例如:
#列举、搜索、注册、更新、删除
pen.py exploit -l
pen.py exploit -q appName:joomla
pen.py exploit --register exploit
pen.py exploit --update cms_joomla_3_4_session_object_injection.py
pen.py exploit -d "Joomla 1.5~3.4 session对象注入漏洞exploit"
pen.py exploit --detail "Joomla 1.5~3.4 session对象注入漏洞exploit" 


#执行exploit
pen.py exploit -e cms_joomla_3_4_session_object_injection.py -u http://127.0.0.1:1234 --attack
pen.py exploit -s appName:joomla -u http://127.0.0.1:1234 --verify
pen.py exploit -s appName:joomla -u @url.txt
2.服务端应用识别

pen.py的service子命令提供了服务端应用识别的功能,能够识别服务器信息,包括:

操作系统 web服务器 web中间件 CMS等

例如:

pen.py service http://xxx.com
# 开启CMS识别加强模式
pen.py service http://xxx.com --cms
3.社工密码字典生成

pen.py的password子命令提供了根据社工信息生成密码字典的功能,能够设置不同关键字生成密码字典

该模块可通过以下要素组合生成密码:

  • 全名,–fullname,名字中各个字中间加空格,例如”lin zhi ling”
  • 昵称,–nickname
  • 英文名称,–englishname
  • 伴侣名字,–partnername
  • 生日,–birthday
  • 手机号,–phone
  • QQ号,–qq
  • 公司名称,–company
  • 域名,–domian
  • 老密码,–oldpasswd
  • 关键字,–keyword
  • 关键数字,–keynumbers

例如:

pen.py password --fullname "lin zhi ling" --birthday 1980-1-1 --phone 12344445555 --qq 34233888 -o password.txt
4.URI敏感文件爆破

pen.py的uribrute子命令提供了URI敏感文件爆破,URI爆破字典生成的功能

例如:

# 生成web打包备份、敏感文件字典,后缀名使用jsp和jspx,自定义关键字xxx,指定输出结果dict.txt
pen.py uribrute -t webbak,interestfile -e jspx,jsp --keyword "xxx" -o dict.txt

# 爆破目标站点,使用safeurl bypass waf
pen.py uribrute -b -u http://127.0.0.1/discuz/6.0/ --safeurl "http://127.0.0.1/discuz/6.0/"

#  爆破url.txt中的所有站点,爆破敏感文件,自定义notfound页面关键字为“找不到页面”
pen.py uribrute -b -u @urls.txt -t interestfile --notfound "找不到页面"
5.Google Hacking功能

pen.py的search子命令提供了Google Hacking的功能,目前支持以下搜索引擎:

  • bing
  • google
  • baidu

例如:

pen.py search "inurl:viewthread.php" -s 10 -o tmp.txt

# --unique设定域名唯一,相同域名只记录一个搜索结果:
pen.py search "inurl:viewthread.php" -s 10 --unique -o tmp.txt

注意,由于百度关闭了 localsearch 功能,因此目前 baidu 方式目前暂不可用。

6.子域名爆破

pen.py的domain子命令提供了子域名爆破功能:

  • 域传送漏洞检测、利用
  • DNS字典爆破
  • Google Hacking搜索

注:支持输出到html文件,使用-o xxx.html做为输出文件即可 例如:

# 使用域传送技术、Google Hacking对aaa.com 进行子域名爆破
pen.py domamin aaa.com -t zg

# 使用字典爆破子域名,自定义字典文件domain_large.txt,同时指定爆破顶级域名
pen.py domain aaa.com -t d --dict domain_large.txt --topdomian
7.C段扫描

pen.py的subnet子命令提供了C段扫描功能。

注:支持输出到html文件,使用-o xxx.html做为输出文件即可

例如:

pen.py subnet test.com -o result.html
8.编码

pen.py的encode子命令提供了编码的功能

编码方式-t/–type支持:

url url-all hex decimal unicode unicode-all md5 sha base64 base32 html html-all php-chr utf7 utf7-all 其中**-all编码会编码所有字符包括非特殊字符

非ASCII编码-m/–method支持:

utf8 gbk gb2312 big5 utf16 utf7 等所有python支持的编码方式

例如:

pen.py encode -t unicode "aaa=你好"
pen.py encode -t url-all -m gbk "id=你好"
pen.py encode -t md5 "aaaaaaaa"
9.解码

pen.py的decode子命令提供了解码的功能,并提供非ASCII编码编码推测功能

解码方式-t/–type支持:

auto(默认) hex url unicode decimal base64 base32 html php-chr utf7 其中auto方式会自动检测url类型、hex类型的字符串并进行解码

非ASCII编码-m/–method支持:

utf8 gbk gb2312 big5 utf16 utf7 等所有python支持的编码方式

例如:

pen.py decode -t base64 5ZOI5ZOI
pen.py decode -m utf8 aaa%E5%93%88%E5%93%88
pen.py encode -t hex "\x61\x61\xe5\x93\x88\xe5\x93\x88"

# 推测编码
pen.py decode -d "\x61\x61\xe5\x93\x88\xe5\x93\x88"

我就列举了一些常用的功能,还有很多非常不错的功能,如“ Mail账户验证/爆破”、“文件处理功能”,“字典维护”等等。 我就不一一列举了,感兴趣的可以去项目地址自行查看“https://github.com/alpha1e0/pentestdb.git”。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏owent

可执行文件压缩

最近看Rust相关东西的时候看到一篇关于压缩可执行文件的文章。压缩可执行文件对嵌入式开发特别有用,但是延伸一下用来减少我们游戏行业里预编译的工具二进制包大小和A...

52110
来自专栏菩提树下的杨过

flex4/flash builder中动态加载Module并与之交互的正确方式

关于flex中动态加载Module的文章,网上有很多,但多半是基于flex3的,如果在flash builder/flex4中按他们所提供的方法去做,最后将mo...

19370
来自专栏FreeBuf

Windows下SLmail邮件服务器缓冲区溢出理解及实验

本次缓冲区溢出实验是在Windows7 Unlimit 64位下的SLmail邮件服务溢出测试。 注:SLmail并不是一个特别常用的邮件服务应用,本次实验仅限...

42150
来自专栏技术博文

memcache和redis的区别

1.定义 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API Memcac...

380100
来自专栏塔奇克马敲代码

第 8 章 IO库

20450
来自专栏java思维导图

开源项目renren-fast解读,让java不再难懂(二)

1、百度百科的解释: XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览...

29940
来自专栏张善友的专栏

.net 2.0 你是如何使用事务处理?

     事务处理作为企业级开发必备的基础设施, .net 2.0通过System.Transactions对事务提供强大的支持.你还是在使用.net 1.x下...

22760
来自专栏后台全栈之路

基于汇编的 C/C++ 协程 - 实现

将 libco 和 libevent 两者的功能糅合起来,所以我把我的工程,命名为 libcoevent,意为 “基于 libevent 的同步协程服务器编程框...

62230
来自专栏林德熙的博客

WPF 编译为 AnyCPU 和 x86 有什么区别

本文告诉大家,编译为 AnyCpu 和 AnyCPU(Prefer 32-bit)和 x86 有什么区别

37110
来自专栏GIS讲堂

GDAL的java环境配置以及将shp转换为json

前两天,有位同仁再问我一个问题,问题大概是介个样子的:打包shp数据位zip格式并上传,上传完成后再在web上展示出来。这个需求,以前在Arcgis Onlin...

20930

扫码关注云+社区

领取腾讯云代金券