祈祷渗透工具包,渗透工具是什么意思

作者:hacker 分类:网站入侵 时间:2023-03-02 18:30:39 浏览:109

内容导读:导航目录:1、红队最喜欢的18种优秀的***安全渗透工具2、渗透测试工具有哪些3、打造自己的渗透测试框架—溯光4、渗透测试会用到哪些工具?***安全基础5、如何对网站进行渗透测试和漏洞扫描6、dsp...……

导航目录:

红队最喜欢的18 种优秀的 *** 安全渗透工具

Bishop labs用了两期博客,前后各总结了9个红队工具,共计18个红队使用的优秀渗透工具,其博客文章也提及,这份清单不是决定性的,也仅用于参考。

创建者: @IAmMandatory

用途:允许 谷歌 Chrome 浏览器将受害者的浏览器变成测试 *** 。

优点: CursedChrome 可以很容易地在红队参与期间模拟恶意浏览器扩展。用来劫持 Chrome 浏览器,绕过大多数 2FA 或其他可能存在的安全保护,并利用 cookie 来访问任何基于 *** 的目标。

创建者: @symbolcrash1

用途: Universal Loader 是一个 Golang 库,可以跨多个平台(Linux、Windows 和 OSX)从内存中加载共享库,而无需CGO。

优点: Universal Loader 可以用在新的 Apple M1 芯片上,值得一提的是,这个 Golang 库没有使用 memfd,这使它成为之一个这样做的 Golang Linux 加载器。由于这两个原因,Universal Loader 是一个相当令人印象深刻的红队工具。

创建者: QSecure Labs

用途: Overlord 是一个基于 Python 的控制台命令行界面,用于自动化红队基础设施。

优点: 在红队参与期间能够根据需要快速启动安全基础设施非常重要,该工具可以节省大量时间,然后可以将这些时间用于进行一些实际的黑客攻击。

创作者: @LittleJoeTables和@rkervell

用途: Sliver是一个用 Golang 编写的跨平台通用植入框架。

优点: 这个工具是两位 Bishop Fox 研究人员的创意,所以我们的偏见可能会表现出来。类似于商业工具Cobalt Strike。使 Sliver 值得注意的是诸如使用每个二进制混淆的动态代码生成、多个和可扩展的出口协议以及支持多个操作员同时控制植入物等功能。此外,它易于使用且运行速度快。

创作者: @tillson_

用途: 使用 Githound 来定位暴露的 API 密钥和其他围绕 GitHub 浮动的敏感信息。该工具通过模式匹配、提交 历史 搜索和“独特的结果评分系统”工作。

优点: 像 Githound 这样的秘密窃取工具并不少见,但这并没有使这个工具(或其他类似工具)的价值降低。Githound 的一些可能用例包括检测暴露的客户 API 密钥以及员工 API 令牌。如果您进行漏洞赏金,此工具可用于添加书签 - 有些人报告说,由于它,因此获得了数千美元的赏金。

创作者: @browninfosecguy

用途: 这个工具的名字说明了一切,在 PowerShell 中轻松地为 Microsoft Active Directory 设置实验室。

优点: 速度很快,效果很好。可以使用此工具来确保您针对 Active Directory 使用的任何漏洞利用都已完善,然后再将其引入客户端环境。对于只想更轻松地测试 Active Directory 的渗透测试员来说非常有用。

创建者: Microsoft Azure 红队

用途: 可以使用 Stormspotter 更好地可视化 Azure 攻击面;此工具可帮助您绘制 Azure 和 Azure Active Directory 对象。

优点: 类似渗透测试工具BloodHound概念类似,只是该工具是为 Azure 环境设计的。对于任何蓝色或紫色团队成员来说,从防御的角度来看,Stormspotter 也非常有用。

创建者: @Void_Sec

用途: ECG 实际上是一种商业工具。该工具是静态源代码扫描器,能够分析和检测 TCL/ADP 源代码中真实和复杂的安全漏洞。

优点: ECG是一种强大的工具,可以填补令人惊讶的空白。正如 VoidSec 在他们的官方文章中所指出的,TCL代码相当普遍;所以能够彻底分析漏洞可能会非常有帮助。没有很多其他工具可以满足这种独特的需求,无论是商业的还是其他的。

创建者: @TryCatchHCF

用途: 可以使用 DumpsterFire 构建“时间触发的分布式”安全事件来测试红队进攻和蓝队防守。

优点: DumpsterFire 将传统桌面练习提升到一个新的水平,它还使用自动化来在参与期间有效地进行多任务处理(并避开一些更乏味的事情)。DumpsterFire 允许的定制程度令人印象深刻;可以真正定制模拟安全事件来满足独一无二的情况。

10.GhostPack

创建者: SpecterOps ( @SpecterOps )

用途: 借助强大的后开发工具集 GhostPack,可以做各种事情;可以攻击 KeePass 2.X 数据库、复制锁定的文件、篡改 Active Directory 证书等。

优点: GhostPack 是一种满足黑客需求的“一站式商店”。包含的 13 个工具包括非常有用的 Rubeus、Seatbelt 和 SharpUp。Rubeus 是一个 C# 工具集,直接与 Active Directory 环境中的 Kerberos 协议交互,允许直接与 Kerberos 属性(例如票证和常规身份验证)进行通信,然后可以利用这些属性在 *** 中移动。Seatbelt 是一个 C# 项目,可用于面向安全的主机“安全检查”,而 SharpUp 是一个 C# 工具,可识别本地权限提升路径。这些工具被无数红队和 *** 渗透测试员使用。

创作者: Benjamin Delpy ( @gentilkiwi )

用途: Mimikatz 可以从 Windows 环境中提取密码和其他凭据。是一种非常流行的渗透测试工具,已经存在了十多年。但 Mimikatz 会定期维护和更新,以确保仍然是最前沿的工具

优点: 将 Mimikatz 视为 *** 渗透测试的瑞士军刀。带有几个内置工具,对 Kerberoasting、密码转储很有用,你能想到的,Mimikatz 都可以做到。而且 Mimikatz 不仅适用于那里的进攻性安全专业人员——防御性安全团队也可以从中受益(如果你发现自己处于紫色团队场景中,这也是个好兆头)。

创建者: Metasploit 项目 ( @metasploit ),由 Rapid7 与开源社区合作运营

用途: Metasploit 可以说是世界领先的渗透测试框架,由 HD Moore 于 2003 年创建。Metasploit 包括用于渗透测试几乎每个阶段的模块,这有助于其普及。包括约 250 个后利用模块,可用于捕获击键、收集 *** 信息、显示操作系统环境变量等。

优点: Metasploit 后开发模块非常庞大,有一个模块最突出——Meterpreter 有效载荷。Meterpreter 允许 探索 目标系统并执行代码,并且由于它通过内存 DLL 注入工作,因此不必冒险留下任何操作证据。Metasploit 后开发功能也非常通用,具有适用于 Windows、Linux 和 OS X 的模块。

创作者: 阿德里安·沃尔默( @mr_mitm )

用途: 此后利用工具旨在绕过端点检测和应用程序阻止列表。

优点: 可以使用 PowerHub 传输文件,而不会在测试环境中发出任何安全保护警报,这将使下一次渗透测试更加顺畅和轻松。使用此工具领先于 Windows Defender。

创建者: LOLBAS 项目和亚利桑那州安全工程与研究小组

用途: LOLBAS 是一个字典,用于在 Windows 机器上使用二进制文件查找可能的权限提升路径。LLOLBAS 是与 LOLBAS 协同工作的摄取器。摄取器会在 Windows 机器上的 LOLBAS 列表中查找所有二进制文件,因此无需猜测或对列表进行排序以查找它们(这可能很乏味)。

优点: LOLBAS 项目可搜索机器上可能的权限提升路径,而 LLOLBAS 允许针对特定机器定制这些路径。结合这两个工具,(几乎)在参与中势不可挡。作为一个额外的好处,如果出现需要它们的情况,可以方便地使用离线工具。

创作者: @nil0x42

用途: PHPSploit 充当功能齐全的 C2 框架,通过单行 PHP 后门在 Web 服务器上静默地持久化。

优点: PHPSploit 是非安全参与时手头上的一项了不起的工具——高效、用户友好且运行安静。正如其 GitHub 描述所述,PHPSploit 是“由偏执狂,为偏执狂设计的”。

创作者: 塞瓦加斯

用途: 可以使用 swap_digger 在后期开发或取证期间自动进行 Linux 交换分析。

优点: 在 Linux 交换空间中可以找到各种各样的好东西,从密码和电子邮件地址到 GPG 私钥。Swap_digger 可以梳理这些交换空间并找到高影响力的奖杯,这将使评估更加成功。

创建者: RedCode 实验室

用途: Bashark 是一个后开发工具包,顾名思义,是用编程语言 Bash 编写的。这是一个可以产生巨大结果的简单脚本。

优点: Bashark 工作快速而隐蔽,允许通过创建 Bash 函数来添加新命令,并清除在目标环境中使用脚本后可能留下的任何痕迹。

创作者: AlessandroZ

用途: 使用 BeRoot 项目查找可用于在 Windows、Linux 和 OS X 环境中提升权限的常见错误配置。

优点: 识别常见的错误配置是在 *** 中立足的最可靠 *** 之一,因此找到这些错误配置的速度越快越好。BeRoot 项目在这方面提供了极大的帮助。

本文,旨在介绍一些红队工具,供大家了解和参考研究之用,不建议任何人利用 *** 技术从事非法工作,破坏他人计算机等行为。渗透有风险,入坑需谨慎。法网恢恢,疏而不漏。请正确理解渗透含义,正确利用渗透技术,做 *** 安全服务的践行者。

渗透测试工具有哪些

1、Kali Linux

不使用Kali Linux作为基本渗透测试操作系统,算不上真正的黑客。Kali Linux是基于Debian的Linux发行版,

设计用于数字取证操作系统。每一季度更新一次。由Offensive Security Ltd维护和资助。更先由Offensive Security的Mati

Aharoni和Devon Kearns通过重写BackTrack来完成,BackTrack是他们之前写的用于取证的Linux发行版 。

Kali Linux的前身是BackTrack

Linux,有进攻性安全部门的专业人士维护,它在各个方面都进行了优化,可以作为进攻性渗透测试工具使用。

2、Nmap

Nmap是发现企业 *** 中任何类型的弱点或漏洞的绝佳工具,它也是审计的很好工具。该工具的作用是获取原始数据包并确定哪些主机在 *** 的特定段上可用,正在使用什么操作系统,以及识别特定主机的数据包防火墙或过滤器的不同类型和版本正在使用。Nmap对渗透测试过程的任何阶段都很有用并且还是免费的。

3、Wireshark

Wireshark是一个无处不在的工具,可用于了解通过 *** 的流量。虽然通常用于深入了解日常TCP/IP连接问题,但Wireshark支持对数百种协议的分析,包括对其中许多协议的实时分析和解密支持。如果不熟悉渗透测试,Wireshark是一个必须学习的工具。

4、John the Ripper

John the

Ripper是一个很流行的密码破解工具,是渗透测试工具包中的一个很必要的补充。它可以用来确定数据库中的未知弱点,通过从传统字典中找到的复杂和流行的单词列表,获取文本字符样本,并用与正在生成的密码相同的格式,对其进行加密来达到目的。

5、Hashcat

Hashcat自称世界上最快和更先进的密码恢复应用程序,可能并不是谦虚,懂Hashcat的人肯定知道它的价值。Hashcat让John the

Ripper一筹莫展。它是破解哈希的首选渗透测试工具,Hashcat支持多种密码猜测暴力攻击,包括字典和掩码攻击。

6、Hydra

Hydra在需要在线破解密码时发挥作用,例如SSH或FTP登录、IMAP、IRC、RDP等等。将Hydra指向你想破解的服务,如果你愿意,可以给它传递一个单词列表,然后扣动扳机。像Hydra这样的工具提醒人们为什么限制密码尝试和在几次登录尝试后断开用户连接可以成功地防御攻击者。

7、Sqlmap

Sqlmap,是非常有效的开源的SQL注入工具,并且自动化检测和利用SQL注入缺陷并接管数据库服务器的过程,就像它的网站所说的那样。Sqlmap支持所有常用目标,包括MySQL、oracle、PostgreSQL、Microsoft

SQL、server等。

打造自己的渗透测试框架—溯光

TrackRay简介

溯光,英文名“TrackRay”,意为逆光而行,追溯光源。同时致敬安全圈前辈开发的“溯雪”,“流光”。

溯光是一个开源的插件化渗透测试框架,框架自身实现了漏洞扫描功能,集成了知名安全工具:Metasploit、Nmap、Sqlmap、AWVS等。

溯光使用 Java 编写,SpringBoot 作为基础框架,JPA + HSQLDB嵌入式数据库做持久化,Maven 管理依赖,Jython 实现 Python 插件调用,quartz 做任务调度,freemarker + thymeleaf 做视图层,Websocket 实现命令行式插件交互。

框架可扩展性高,支持 Java、Python、 *** ON 等方式编写插件,有“漏洞扫描插件”、“爬虫插件”、“MVC插件”、“内部插件”、“无交互插件”和“可交互插件” 等插件类型。

功能展示

主页

登录

任务创建

任务列表

任务详情

无交互接口插件调用

MVC插件示例

交互式插件控制台

MSF 控制台

依赖环境

JDK 1.8

Python 2.7

Maven

Git

Metasploit

Nmap(建议安装)

SQLMAP(建议安装)

AWVS

**加粗为必须环境,没有安装程序则无法正常编译运行

不论是 Windows 还是 linux 一定需要先安装 JDK1.8 和 Maven。安装过程这里不做演示。保证 JDK 和 Maven 都在系统环境变量,能执行java -version 和 mvn --version即可。

安装过程

之一步

手动启动 AWVS 服务

登录后台,生成一个API密匙。

复制密匙和 AWVS 的地址。

找到web/src/main/resources/application.properties配置文件。

修改如下部分

第二步

找到你 python 的第三方库目录。

Windows 的一般在 python 安装目录下的/Lib/site-packages

Linux 下可以通过输出 sys.path 来找第三方包路径

我的是 D:/Python2/Lib/site-packages

同样找到web/src/main/resources/application.properties配置文件。

修改python.package.path参数

第三步

安装 Maven 后找到仓库位置。

如果没有在 settings.xml 里配置指定仓库目录,默认会在当前用户目录中生成一个 .m2的目录

找到仓库目录后修改 application.properties 的 maven.repository.path参数

第四步

这个是 DNSLOG 回显检测漏洞时需要的。

去 ceye.io 注册一个账号,拿到给你分配的域名和 TOKEN。

修改配置文件

第五步

启动 msf 和 sqlmapapi。

如果你是 kali 操作系统,可以直接运行startdep.sh。

如果是其他系统,则要找到 metasploit 和 sqlmap 的目录分别执行

启动成功后修改配置文件

第六步

编译打包程序

等待依赖下载完成和编译完成,如果以上操作都没有出现问题则会提示 BUILD SUCCESS

编译成功后会在当前目录打包一个trackray.jar就是溯光的主程序。

然后直接执行startup.bat或startup.sh溯光就会启动服务。

没有抛出异常或ERROR日志,访问 8080 端口正常。

服务启动正常后,登录 iZone 社区账号。

**开发插件建议使用 Intellij IDEA IDE,需要安装 lombok 插件。

目录结构

插件

AbstractPlugin

这是交互式插件和非交互式插件的父类。

BASE常量

其中的静态常量 BASE 是 /resources/include/ 的所在目录。

如果你的插件需要额外的静态资源,那么你可以在 /resources/include 目录里创建一个和插件 KEY 相同的文件夹,便于识别,如果没有在 @Plugin 注解中设置 value 则默认的插件 KEY 就是当前类名首字母小写。

如 Typecho001 = typecho001

check(Map param)

这是用于检验是否合规的 *** ,需要被强制重写,当返回 true 时才会调用 start() ***

param 参数是从前台传过来的参数键值对。

常被用于检验参数格式是否正确或漏洞是否存在。

after()

在 start() *** 之前调用

before()

在 start() *** 之后调用

start()

这是一个抽象 *** ,所有继承了该类的子类都需要重写这个 *** 。

在 check *** 通过后会调用 start() ***

start() *** 返回值最终会会当做插件结果,响应给前台。

shell()

调用当前系统 shell 来辅助完成插件功能。

executor()

插件执行的主 ***

crawlerPage

http请求对象(不推荐使用)

fetcher

执行 http 请求对象(不推荐使用)

errorMsg

当校验不通过时,返回给前台的信息。

param

前台传过来的参数键值对

requests

HTTP 发包工具(推荐使用)

hackKit

hack 常用工具包

无交互插件

无交互插件需要你填写好所有要填写的参数,直接请求接口来执行插件。

默认需要去继承 CommonPlugin类。

这是一个抽象类,继承了 AbstractPlugin

主要多出来两个属性:request 和 response。

继承了 CommonPlugin 的类可以通过调用这两个属性来控制请求和响应内容。

无交互插件同时也需要使用 @Rule 和 @Plugin 插件,这两个注解后面会讲到。

在 ,找到相应的插件填写好参数提交即可完成调用。

或直接调用接口。

交互式插件

交互式插件一般在命令行控制台中调用,可以允许你通过命令行交互来完成插件的调用。

交互式插件由 Websocket 实现,想要写一个交互式插件,首先要继承 WebSocketPlugin 类。

同时设置 @Rule 注解的 websocket 参数为 true ,如果需要异步交互需要将 sync 也设置为 true。

内部插件

内部插件是不可以通过外部去调用的,需要继承 InnerPlugin 并使用 @Plugin 注解,通常在漏洞扫描时时会调用。

例如 “网页爬虫”,“指纹识别”,“端口扫描” 等,都是通过调用内部插件实现的。

还有用于检测 SSRF 等漏洞用的 FuckCeye 插件也属于内部插件。

通过 spring 的自动注入,来注入内部插件到当前对象。

例子可参考 WebLogicWLSRCE.java

爬虫插件

爬虫插件会在扫描任务被勾选“网页爬虫”时调用,每爬取一条请求就会调用一次爬虫插件。

爬虫插件需要继承 CrawlerPlugin,继承该类必须重写 check 和 process *** 。

check *** 用于检验请求是否符合插件规则,以免产生多余请求。

当 check *** 返回为 true 时会调用 process *** 。

process *** 里写插件主要检测代码。

addVulnerable()

当插件检测出漏洞时,可以通过调用 addVulnerable() *** 来向数据库插入一条漏洞。

requests

requests 属性为请求工具包,处理 https 和 http 都很方便。

response

response 属性为当前爬虫得到的 HTTP 响应。

task

task 属性为当前任务对象,如果你的爬虫插件不是检测漏洞而希望是检测一些敏感信息的话可以修改 task.getResult() 里的属性。

参考 FingerProbe.java 或 InfoProbe.java。

target

爬虫爬取到的 URL 对象。

fetcher crawlerPage

http 请求对象(不建议使用)。

漏洞扫描插件

漏洞扫描插件会在,扫描任务中勾选“漏洞攻击模块”时调用。

漏洞扫描插件分为三种

1.独立插件

独立的漏洞扫描插件需要继承 AbstractExploit 并使用 @Plugin 或 @Exploit

AbstractExploit 中有以下需要了解的 *** 和属性。

requests

http / https 发包工具

target 当前扫描任务的地址。

task

当前扫描任务对象。

check()

check 是一个抽象 *** ,需要被子类强制重写。

该 *** 一般用于检验是否符合当前漏洞扫描插件的规则,以免产生多与请求。

attack()

attack 也是一个抽象 *** ,需要被子类强制重写。

该 *** 是检测漏洞的主 *** 。

before()

在 attack *** 前执行

after()

在 attack *** 后执行

addVulnerable()

当插件检测出漏洞时,可以通过调用 addVulnerable() *** 来向数据库插入一条漏洞。

fetcher crawlerPage

http 请求对象(不建议使用)。

2.漏洞规则

位于

实际上这是一个“内部插件”,会在勾选漏洞模块攻击时调用。

有一些漏洞检测 *** 很简单,只通过简单的判断响应体就能识别出来,也就没有必要再去写一个独立的插件而占用空间了。

在 doSwitch() *** 中会先去根据当前任务的指纹识别结果走一遍 switch 流程。

swtich 的每一个 case 都是 WEB 指纹的枚举对象。

当 switch 找到当前任务 WEB 指纹对应的 case 后,case 内的代码会通过构建一个漏洞规则添加到 loaders *** 里。

如果规则是通用的,可以写在 switch 的外面。

3.kunpeng *** ON插件

kunpeng 是一个 go 语言编写的 poc 测试框架,这里我对 kunpeng 的 *** ON 插件做了一个支持。

只需要按照 kunpeng json 插件的格式规范创建一个 json 文件到 /resources/json 目录。

在扫描任务勾选“漏洞攻击模块”时会被调用,或通过 MVC 插件调用 。

MVC 插件

位于

MVC 插件的特点在于,他可以像是在写一个功能一样,而非简单的接口式调用。

MVC 插件需要继承 MVCPlugin 类,并使用 @Rule,@Plugin 注解。

MVCPlugin 内置了一个 ModelAndView 对象, 是 SpringMVC 提供的。

可以通过 setViewName() 来指定视图层的网页模板。

通过 addObject(key,value) 向视图层网页模板注入参数。

这里的视图层是使用 thymeleaf 实现的,需要懂 thymeleaf 的语法。

例子可以参考:com.trackray.module.inner. *** ONPlugin

继承 MVCPlugin 必须要重写一个 index *** ,这是插件的入口。

如果需要写其他的功能,就得再创建一个 public 返回值为 void 的无参 *** 。

并且要在该 *** 上使用 @Function 注解,该注解的 value 参数如果不填写的话则默认的 requestMapping 地址为 *** 名。

例如

最后还需要在 /module/src/main/resources/templates 创建一个目录名为插件 KEY 的目录。

里面存放扩展名为 .html 的模板文件。

Python 插件

python 插件有两种实现方式。

1.通过命令行实现

这种方式最为简单,通过在 include 里写一个 python 脚本。

然后在插件里调用 shell() *** 来执行系统命令。

案例可参考 com.trackray.module.plugin.windows. *** b.MS17010

但这样还需要再写 java 的代码,对于没有学过 java 的人来说很不友好。

2.通过jython实现

jython 是一个 Python 语言在 Java 中的完全实现。

我将它的调用过程写成了一个交互式插件。

你可以通过在 /resources/python/ 目录下安装如下规范去创建一个 python 文件。

在这个 python 文件中需要写两个 *** 。

关于注解

@Rule

一般用在“可交互插件”和“无交互插件”类上。

@Plugin

WEB指纹

这里顺便再说一下如何添加指纹库。

指纹库位于 base 模块,是一个枚举类。

可以在首部或尾部添加一条新的枚举,尽量使用 $ 开头。

之一个参数是 指纹的名称,如果第二个参数是 String 类型则是该指纹的说明。

FingerBean 类是指纹匹配对象。

渗透测试会用到哪些工具? *** 安全基础

渗透测试就是采用黑客攻击的手段,模拟真实的黑客攻击行为,验证系统的安全性、挖掘系统可能存在的安全漏洞。那么渗透测试会用到哪些工具?渗透测试涉及很多内容,工具也是多种多样的,根据不同的功能,分为四大类。

之一类: *** 渗透测试工具

*** 渗透测试工具是一种可以测试连接到 *** 的主机/系统的工具。通用的 *** 渗透测试工具有ciscoAttacks、Fast-Track、Metasploit、SAPExploitation等,这些工具各有各的特点和优势。因为 *** 渗透测试是一个相对广泛的概念,所以上述工具也可以包括社会工程学渗透测试模块, *** 渗透测试模块和无线渗透测试模块。

第二类:社会工程学渗透测试工具

社会工程学渗透测试是利用社会工程学进行渗透测试,通常利用人们行为中的弱点来达到渗透的目的。典型的社会工程学渗透测试工具有BeefXSS和HoneyPots,这些工具诱使用户访问特定的网站,获得用户的Cookie信息,达到渗透的目的。

第三类:网站渗透测试工具

网站渗透测试是对Web应用程序和相应的设备配置进行渗透测试。在进行网站渗透测试时,安全工程序必须采用非破坏性的 *** 来发现目标系统中的潜在漏洞。常用的 *** 渗透测试工具有asp-auditor、darkmysql、fimap、xsser等。

第四类:无线渗透测试工具

无线渗透测试工具是蓝牙 *** 和无线局域网的渗透测试。在进行无线渗透测试时,一般需要先破解目标 *** 的密码,或者建立虚假热点来吸引目标用户访问,然后通过其他方式控制目标系统。常见的蓝牙 *** 渗透测试工具有atshell、btftp、bluediving、bluemaho等;常见的无线局域网渗透测试工具有aircack-ng、airmon-ng、pcapgetiv和weakivgeng等,这些工具实现了不同的功能,可以让安全工程师通过各种方式进行无线渗透测试。

如何对网站进行渗透测试和漏洞扫描

零、前言

渗透测试在未得到被测试方授权之前依据某些地区法律规定是违法行为。 这里我们提供的所有渗透测试 *** 均为(假设为)合法的评估服务,也就是通常所说的道德黑客行为(Ethical hacking),因此我们这里的所有读者应当都是Ethical Hackers,如果您还不是,那么我希望您到过这里后会成为他们中的一员 ;)

这里,我还想对大家说一些话:渗透测试重在实践,您需要一颗永不言败的心和一个有着活跃思维的大脑。不是说您将这一份文档COPY到您网站上或者保存到本地电脑您就会了,即使您将它打印出来沾点辣椒酱吃了也不行,您一定要根据文档一步一步练习才行。而且测试重在用脑,千万别拿上一两个本文中提到的工具一阵乱搞,我敢保证:互联网的安全不为因为这样而更安全。祝您好运。。。

一、简介

什么叫渗透测试?

渗透测试最简单直接的解释就是:完全站在攻击者角度对目标系统进行的安全性测试过程。

进行渗透测试的目的?

了解当前系统的安全性、了解攻击者可能利用的途径。它能够让管理人员非常直观的了解当前系统所面临的问题。为什么说叫直观呢?就像Mitnick书里面提到的那样,安全管理(在这里我们改一下,改成安全评估工作)需要做到面面俱到才算成功,而一位黑客(渗透测试)只要能通过一点进入系统进行破坏,他就算是很成功的了。

渗透测试是否等同于风险评估?

不是,你可以暂时理解成渗透测试属于风险评估的一部分。事实上,风险评估远比渗透测试复杂的多,它除渗透测试外还要加上资产识别,风险分析,除此之外,也还包括了人工审查以及后期的优化部分(可选)。

已经进行了安全审查,还需要渗透测试吗?

如果我对您说:嘿,中国的现有太空理论技术通过计算机演算已经能够证明中国完全有能力实现宇航员太空漫步了,没必要再发射神8了。您能接受吗?

渗透测试是否就是黑盒测试?

否,很多技术人员对这个问题都存在这个错误的理解。渗透测试不只是要模拟外部黑客的入侵,同时,防止内部人员的有意识(无意识)攻击也是很有必要的。这时,安全测试人员可以被告之包括代码片段来内的有关于系统的一些信息。这时,它就满足灰盒甚至白盒测试。

渗透测试涉及哪些内容?

技术层面主要包括 *** 设备,主机,数据库,应用系统。另外可以考虑加入社会工程学(入侵的艺术/THE ART OF INTRUSION)。

渗透测试有哪些不足之处?

主要是投入高,风险高。而且必须是专业的Ethical Hackers才能相信输出的最终结果。

你说的那么好,为什么渗透测试工作在中国开展的不是很火热呢?

我只能说:会的,一定会的。渗透测试的关键在于没法证明你的测试结果就是完善的。用户不知道花了钱证明了系统有问题以后,自己的安全等级到了一个什么程序。但是很显然,用户是相信一个专业且经验丰富的安全团队的,这个在中国问题比较严重。在我接触了一些大型的安全公司进行的一些渗透测试过程来看,测试人员的水平是对不住开的那些价格的,而且从测试过程到结果报表上来看也是不负责的。我估计在三年以后,这种情况会有所改观,到时一方面安全人员的技术力量有很大程度的改观,另一方面各企业对渗透测试会有一个比较深刻的理解,也会将其做为一种IT审计的方式加入到开发流程中去。渗透测试的专业化、商业化会越来越成熟。

二、制定实施方案

实施方案应当由测试方与客户之间进行沟通协商。一开始测试方提供一份简单的问卷调查了解客户对测试的基本接收情况。内容包括但不限于如下:

目标系统介绍、重点保护对象及特性。

是否允许数据破坏?

是否允许阻断业务正常运行?

测试之前是否应当知会相关部门接口人?

接入方式?外网和内网?

测试是发现问题就算成功,还是尽可能的发现多的问题?

渗透过程是否需要考虑社会工程?

。。。

在得到客户反馈后,由测试方书写实施方案初稿并提交给客户,由客户进行审核。在审核完成后,客户应当对测试方进行书面委托授权。这里,两部分文档分别应当包含如下内容:

实施方案部分:

...

书面委托授权部分:

...

三、具体操作过程

1、信息收集过程

*** 信息收集:

在这一部还不会直接对被测目标进行扫描,应当先从 *** 上搜索一些相关信息,包括Google Hacking, Whois查询, DNS等信息(如果考虑进行社会工程学的话,这里还可以相应从邮件列表/新闻组中获取目标系统中一些边缘信息如内部员工帐号组成,身份识别方式,邮件联系地址等)。

1.使用whois查询目标域名的DNS服务器

2.nslookup

set type=all

domain

server ns server

set q=all

ls -d domain

涉及的工具包括:Google,Demon,webhosting.info,Apollo,Athena,GHDB.XML,netcraft,seologs 除此之外,我想特别提醒一下使用Googlebot/2.1绕过一些文件的获取限制。

Google hacking 中常用的一些语法描述

1.搜索指定站点关键字site。你可以搜索具体的站点如site:。使用site:nosec.org可以搜索该域名下的所有子域名的页面。甚至可以使用site:org.cn来搜索中国 *** 部门的网站。

2.搜索在URL网址中的关键字inurl。比如你想搜索带参数的站点,你可以尝试用inurl:asp?id=

3.搜索在网页标题中的关键字intitle。如果你想搜索一些登陆后台,你可以尝试使用intitle:"admin login"

目标系统信息收集:

通过上面一步,我们应当可以简单的描绘出目标系统的 *** 结构,如公司 *** 所在区域,子公司IP地址分布,VPN接入地址等。这里特别要注意一些比较偏门的HOST名称地址,如一些backup开头或者temp开关的域名很可能就是一台备份服务器,其安全性很可能做的不够。

从获取的地址列表中进行系统判断,了解其组织架构及操作系统使用情况。最常用的 *** 的是目标所有IP网段扫描。

端口/服务信息收集:

这一部分已经可以开始直接的扫描操作,涉及的工具包括:nmap,thc-amap

1.我最常使用的参数

nmap -sS -p1-10000 -n -P0 -oX filename.xml --open -T5 ip address

应用信息收集:httprint,SIPSCAN, *** ap

这里有必要将SNMP拿出来单独说一下,因为目前许多运营商、大型企业内部 *** 的维护台通过SNMP进行数据传输,大部分情况是使用了默认口令的,撑死改了private口令。这样,攻击者可以通过它收集到很多有效信息。snmp-gui,HiliSoft MIB Browser,mibsearch,net-snmp都是一些很好的资源。

2、漏洞扫描

这一步主要针对具体系统目标进行。如通过之一步的信息收集,已经得到了目标系统的IP地址分布及对应的域名,并且我们已经通过一些分析过滤出少许的几个攻击目标,这时,我们就可以针对它们进行有针对性的漏洞扫描。这里有几个方面可以进行:

针对系统层面的工具有:ISS, Nessus, SSS, Retina, 天镜, 极光

针对WEB应用层面的工具有:AppScan, Acunetix Web Vulnerability Scanner, WebInspect, Nstalker

针对数据库的工具有:ShadowDatabaseScanner, NGSSQuirreL

针对VOIP方面的工具有:PROTOS c07 sip(在测试中直接用这个工具轰等于找死)以及c07 h225, Sivus, sipsak等。

事实上,每个渗透测试团队或多或少都会有自己的测试工具包,在漏洞扫描这一块针对具体应用的工具也比较个性化。

3、漏洞利用

有时候,通过服务/应用扫描后,我们可以跳过漏洞扫描部分,直接到漏洞利用。因为很多情况下我们根据目标服务/应用的版本就可以到一些安全网站上获取针对该目标系统的漏洞利用代码,如milw0rm, securityfocus,packetstormsecurity等网站,上面都对应有搜索模块。实在没有,我们也可以尝试在GOOGLE上搜索“应用名称 exploit”、“应用名称 vulnerability”等关键字。

当然,大部分情况下你都可以不这么麻烦, *** 中有一些工具可供我们使用,最著名的当属metasploit了,它是一个开源免费的漏洞利用攻击平台。其他的多说无益,您就看它从榜上无名到冲进前五(top 100)这一点来说,也能大概了解到它的威力了。除此之外,如果您(您们公司)有足够的moeny用于购买商用软件的话,CORE IMPACT是相当值得考虑的,虽然说价格很高,但是它却是被业界公认在渗透测试方面的泰山北斗,基本上测试全自动。如果您觉得还是接受不了,那么您可以去购买CANVAS,据说有不少0DAY,不过它跟metasploit一样,是需要手动进行测试的。最后还有一个需要提及一下的Exploitation_Framework,它相当于一个漏洞利用代码管理工具,方便进行不同语言,不同平台的利用代码收集,把它也放在这里是因为它本身也维护了一个exploit库,大家参考着也能使用。

上面提到的是针对系统进行的,在针对WEB方面,注入工具有NBSI, OWASP SQLiX, SQL Power Injector, sqlDumper, sqlninja, sqlmap, Sqlbftools, priamos, ISR-sqlget***等等。

在针对数据库方面的工具有:

数据库 工具列表 Oracle(1521端口): 目前主要存在以下方面的安全问题:

1、TNS监听程序攻击(sid信息泄露,停止服务等)

2、默认账号(default password list)

3、SQL INJECTION(这个与传统的意思还不太一样)

4、缓冲区溢出,现在比较少了。 thc-orakel, tnscmd, oscanner, Getsids, TNSLSNR, lsnrcheck, OAT, Checkpwd, orabf MS Sql Server(1433、1434端口) Mysql(3306端口) DB2(523、50000、50001、50002、50003端口) db2utils Informix(1526、1528端口)

在针对Web服务器方面的工具有:

WEB服务器 工具列表 IIS IISPUTSCANNER Tomcat 想起/admin和/manager管理目录了吗?另外,目录列表也是Tomcat服务器中最常见的问题。比如5.*版本中的;index.jsp

"../manager/html

;cookievalue=%5C%22FOO%3B+Expires%3DThu%2C+1+Jan+2009+00%3A00%3A01+UTC%3B+Path%3D%2F%3B

;cookievalue=%5C%22A%3D%27%3B+Expires%3DThu%2C+1+Jan+2009+00%3A00%3A01+UTC%3B+Path%3D%2Fservlets-examples%2Fservlet+%3B JBOSS jboss的漏洞很少,老版本中8083端口有%符号的漏洞:

GET %. HTTP/1.0可以获取物理路径信息,

GET %server.policy HTTP/1.0可以获取安全策略配置文档。

你也可以直接访问GET %org/xxx/lib.class来获取编译好的java程序,再使用一些反编译工具还原源代码。 Apache Resin

;servletpath=file=WEB-INF/web.xml

;servletpath=file=WEB-INF/classes/com/webapp/app/target.class

[path]/[device].[extension]

.."web-inf

[path]/%20.xtp WebLogic

Web安全测试主要围绕几块进行:

Information Gathering:也就是一般的信息泄漏,包括异常情况下的路径泄漏、文件归档查找等

Business logic testing:业务逻辑处理攻击,很多情况下用于进行业务绕过或者欺骗等等

Authentication Testing:有无验证码、有无次数限制等,总之就是看能不能暴力破解或者说容不容易通过认证,比较直接的就是“默认口令”或者弱口令了

Session Management Testing:会话管理攻击在COOKIE携带认证信息时最有效

Data Validation Testing:数据验证更好理解了,就是SQL Injection和Cross Site Script等等

目前网上能够找到许多能够用于进行Web测试的工具,根据不同的功能分主要有:

枚举(Enumeration): DirBuster, http-dir-enum, wget

基于 *** 测试类工具:paros, webscarab, Burp Suite

针对WebService测试的部分有一些尚不是很成熟的工具,如:w *** ang,wschess,w *** ap,wsdigger,wsfuzzer

这一部分值得一提的是,很多渗透测试团队都有着自己的测试工具甚至是0DAY代码,最常见的是SQL注入工具,现网开发的注入工具(如NBSI等)目前都是针对中小企业或者是个人站点/数据库进行的,针对大型目标系统使用的一些相对比较偏门的数据库系统(如INFORMIX,DB2)等,基本上还不涉及或者说还不够深入。这时各渗透测试团队就开发了满足自身使用习惯的测试工具。

在针对无线环境的攻击有:WifiZoo

4、权限提升

在前面的一些工作中,你或许已经得到了一些控制权限,但是对于进一步攻击来说却还是不够。例如:你可能很容易的能够获取Oracle数据库的访问权限,或者是得到了UNIX(AIX,HP-UX,SUNOS)的一个基本账号权限,但是当你想进行进一步的渗透测试的时候问题就来了。你发现你没有足够的权限打开一些密码存储文件、你没有办法安装一个SNIFFER、你甚至没有权限执行一些很基本的命令。这时候你自然而然的就会想到权限提升这个途径了。

目前一些企业对于补丁管理是存在很大一部分问题的,他们可能压根就没有想过对一些服务器或者应用进行补丁更新,或者是延时更新。这时候就是渗透测试人员的好机会了。经验之谈:有一般权限的Oracle账号或者AIX账号基本上等于root,因为这就是现实生活。

5、密码破解

有时候,目标系统任何方面的配置都是无懈可击的,但是并不是说就完全没办法进入。最简单的说,一个缺少密码完全策略的论证系统就等于你安装了一个不能关闭的防盗门。很多情况下,一些安全技术研究人员对此不屑一顾,但是无数次的安全事故结果证明,往往破坏力更大的攻击起源于最小的弱点,例如弱口令、目录列表、SQL注入绕过论证等等。所以说,对于一些专门的安全技术研究人员来说,这一块意义不大,但是对于一个ethical hacker来说,这一步骤是有必要而且绝大部分情况下是必须的。;)

目前比较好的 *** 密码暴力破解工具有:thc-hydra,brutus

hydra.exe -L users.txt -P passwords.txt -o test.txt -s 2121 ftp

目前 *** 中有一种资源被利用的很广泛,那就是rainbow table技术,说白了也就是一个HASH对应表,有一些网站提供了该种服务,对外宣称存储空间大于多少G,像rainbowcrack更是对外宣称其数据量已经大于1.3T。

针对此种方式对外提供在线服务的有:

网址 描述 rainbowcrack 里面对应了多种加密算法的HASH。 数据量全球之一,如果本站无法破解,那么你只能去拜春哥...

当然,有些单机破解软件还是必不可少的:Ophcrack,rainbowcrack(国人开发,赞一个),cain,L0phtCrack(破解Windows密码),John the Ripper(破解UNIX/LINUX)密码,当然,还少不了一个FindPass...

针对 *** 设备的一些默认帐号,你可以查询和

在渗透测试过程中,一旦有机会接触一些OFFICE文档,且被加了密的话,那么,rixler是您马上要去的地方,他们提供的OFFICE密码套件能在瞬间打开OFFICE文档(2007中我没有试过,大家有机会测试的话请给我发一份测试结果说明,谢谢)。看来微软有理由来个补丁什么的了。对于企业来说,您可以考虑使用铁卷或者RMS了。

6、日志清除

It is not necessary actually.

7、进一步渗透

攻入了DMZ区一般情况下我们也不会获取多少用价值的信息。为了进一步巩固战果,我们需要进行进一步的内网渗透。到这一步就真的算是无所不用其及。最常用且最有效的方式就是Sniff抓包(可以加上ARP欺骗)。当然,最简单的你可以翻翻已入侵机器上的一些文件,很可能就包含了你需要的一些连接帐号。比如说你入侵了一台Web服务器,那么绝大部分情况下你可以在页面的代码或者某个配置文件中找到连接数据库的帐号。你也可以打开一些日志文件看一看。

除此之外,你可以直接回到第二步漏洞扫描来进行。

四、生成报告

报告中应当包含:

薄弱点列表清单(按照严重等级排序)

薄弱点详细描述(利用 *** )

解决 *** 建议

参与人员/测试时间/内网/外网

五、测试过程中的风险及规避

在测试过程中无可避免的可能会发生很多可预见和不可预见的风险,测试方必须提供规避措施以免对系统造成重大的影响。以下一些可供参考:

1. 不执行任何可能引起业务中断的攻击(包括资源耗竭型DoS,畸形报文攻击,数据破坏)。

2. 测试验证时间放在业务量最小的时间进行。

3. 测试执行前确保相关数据进行备份。

4. 所有测试在执行前和维护人员进行沟通确认。

5. 在测试过程中出现异常情况时立即停止测试并及时恢复系统。

6. 对原始业务系统进行一个完全的镜像环境,在镜像环境上进行渗透测试。

dsploit全功能介绍,有些功能怎么用?有人介绍吗?

dSploit简介

Android的 *** 渗透套件开放版权(Copyleft)Simone Margaritelli又名evilsocket,BackBox Linux项目赞助dSploit[1] 是一个Android *** 分析和渗透套件,其目的是提供IT安全专家/爱好者最完整,更先进的专业工具包,以便在移动设备上执行 *** 安全评估。一旦dSploit开始运行,你将能够很容易地映射你的 *** ,发现活动主机和运行的服务,搜索已知的漏洞,许多TCP协议的破解登录程序,执行中间人攻击,如密码嗅探(使用常规协议链接),实时流量操控等。手机接入WLAN,你就可以扫描同网段设备开放的端口、服务、操作系统类型,进行安全评估。甚至抓包、记录密码、破解口令、篡改对方上网会话内容,图片、视频、文字、甚至弹窗。

dSploit是一款Android平台的 *** 分析和渗透套件,供IT安全研究人员/极客对移动设备进行专业的安全评估。 dSploit允许你分析、捕捉和发现 *** 包。你可以扫描 *** 中的设备,比如手机、笔记本,并且发现他们的操作系统、服务和开放端口进行更深层次的渗透测试。这些特点使得dSploit成为有史以来移动设备上最专业的安全评估软件。

dSploit 使用需要同时安装BusyBox,还需要ROOT权限!!

BusyBox

BusyBox是一个应用软件,提供了许多标准的Unix工具,很像强大的GNU核心工具。

BusyBox是设计一个小的可执行程序使用Linux内核,这使得它与嵌入式设备使用的兼容。它已经自我被称为【嵌入式Linux的瑞士军刀】。支持功能WiFi Scanning Common Router Key Cracking无线扫描常见路由密钥破解Deep Inspection 深度检测Vulnerability Search 漏洞扫描Multi Protocol Login Cracker 多种协议登录破解 Packet Forging with Wake On Lan Support 数据包构造唤醒 *** 功能支持HTTPS/SSL Support ( SSL Stripping + HTTPS - Redirection )HTTPS/SSL 支持 (SSL分离+HTTPS-重定向)MITM Realtime Network Stats *** 信息实时统计MITM Multi Protocol Password Sniffing多种协议密码嗅探MITM HTTP/HTTPS Session Hijacking HTTP/HTTPS 会话劫持MITM HTTP/HTTPS Hijacked Session File Persistance HTTP/HTTPS 会话劫持文件持久化MITM HTTP/HTTPS Realtime ManipulationHTTP / HTTPS 实时操控系统要求编辑在Android设备至少2.3(Gingerbread)版本的操作系统。该设备必须root。设备必须有一个BusyBox的完全安装,这意味着安装所有的工具(而不是部分安装)。注意只能在横屏模式下工作,即使你旋转你的设备也将继续保持横屏,如果你有一个应用程序,如旋转控制器,迫使每一个应用程序旋转,将导致dSploit崩溃。许可证这一程序是自由软件:您可以重新分配和/或修改它的GNU通用公共许可证的条款下发布的自由软件基金会,无论是第3版的许可证,或(由你选择)任何更新的版本。