渗透测试

阅读 / 问答 / 标签

什么是渗透测试服务?这个介绍的真详细

渗透测试是利用渗透知识对网站的漏洞和风险发生的一种预防机制,对网站进行漏洞修补,以防止网络崩坏。它需要得到用户的授权,基于合法性才可以对网站进行渗透,之后根据测试结果撰写报告,然后进行网站修补。渗透测试一般分为两种:黑盒测试和白盒测试。黑盒测试是只根据网站的URL进行渗透分析,白盒测试是根据网站的源码和其他相关全面信息进行渗透,偏于代码分析。从网站安全渗透开始分别进行SQL注入漏洞、文件上传漏洞、网页被篡改、挂马、PHP远程执行代码漏洞、数据库漏洞、XSS跨站漏洞、任意文件下载漏洞、网站程序漏洞等全方位测试;从服务器安全渗透开始分别进行FTP、MYSQL等提权漏洞、远程桌面认证绕过漏洞、WEB(CC)测试、DDOS攻击测试、APP欺骗、应用程序系统漏洞测试、本地溢出漏洞等全方位测试。然后根据不同的渗透测试结果制作一套完整的安全报告以及可行的修补方案。而全局渗透测试流程包括制定渗透测试方案、提交渗透测试申请、客户确认、进行渗透测试、整体安全分析测试、撰写测试报告,与用户沟通交流,修补网站、结束。企业用户可以从攻击角度了解系统是否存在隐形漏洞和安全风险,从而及时修补网站漏洞。海宇勇创渗透测试模拟真实的攻击行为,测试你的防御机制有效性,通过数据管理和自动化使用更少的时间实现安全承诺,使用现实世界的攻击技术测试技术管控。

刚学完java拿到一个安全方面的渗透测试的offer要不要干呢?感觉不如开发好呀

我要作职业病我是辽阳县人病鉴定到哪个医院

作为小白如何学习Kali linux渗透测试技术

这个要根据个人的实际情况来决定的,比如你先要去了解什么是渗透测试:1、渗透测试属于信息安全行业,准确的说是网络计算机/IT行业2、现在你知道了它的行业属性,那么你是否具备一些这个行业的知识呢?3、具备的话学习起来比较简单,直接去学习渗透测试实战就行,不具备接着往下看4、现在知道它行业属性,你大概就能清楚需要些什么样的基础知识了;下面是我从非计算机网络相关专业的同学想要学习渗透测试必须掌握的知识。5、前期入门大概需要掌握或者说了解以下知识点:1)了解基本的网络知识,例如什么是IP地址(63.62.61.123)去掉点是扣扣学习群,IP地址的基本概念、IP段划分、什么是A段、B段、C段等2)广域网、局域网、相关概念和IP地址划分范围。3)端口的基本概念?端口的分类?4)域名的基本概念、什么是URL、了解TCP/IP协议、5)了解开放式通信系统互联参考模型(OSI)6)了解http(超文本传输协议)协议概念、工作原理7)了解WEB的静态页面和WEB动态页面,B/S和C/S结构8)了解常见的服务器、例如、Windows server2003、Linux、UNIX等9)了解常见的数据库、MySQL、Mssql、、Access、Oracle、db2等10)了解基本的网络架构、例如:Linux + Apache + MySQL + php11)了解基本的Html语言,就是打开网页后,在查看源码里面的Html语言12)了解一种基本的脚本语言、例如PHP或者asp,jsp,cgi等然后你想学习入门,需要学习以下最基础的知识:1、开始入门学习路线1)深入学习一种数据库语言,建议从MySQL数据库或者SQL Server数据库、简单易学且学会了。其他数据库都差不多会了。2)开始学习网络安全漏洞知识、SQL注入、XSS跨站脚本漏洞、CSRF、解析漏洞、上传漏洞、命令执行、弱口令、万能密码、文件包含漏洞、本地溢出、远程溢出漏洞等等)工具使用的学习、御剑、明小子、啊D、穿山甲(Pangolin)、Sqlmap、burpsuite抓包工具等等2、Google hacker 语法学习3、漏洞利用学习、SQL注入、XSS、上传、解析漏洞等4、漏洞挖掘学习5、想成为大牛的话、以上都是皮毛中的皮毛,但前提是以上的皮毛都是最基础的。6、Linux系统命令学习、kali Linux 里面的工具学习、Metesploit学习7、没事多逛逛安全论坛、看看技术大牛的文章、漏洞分析文章等

Kali Linux 无线渗透测试入门指南 第四章 WLAN 加密缺陷

即使做了最充分的预测,未来始终是不可预测的。WLAN 委员会设计了了 WEP 和 WPA 作为最简单的加密机制,但是,久而久之,这些机制拥有在现实世界中广泛公布和利用的缺陷。 WLAN 加密机制易受密码学攻击,这有相当长的历史了。这从 2000 年的 WEP 开始,它最后被完全破解。最近,攻击慢慢转向了 WPA。即使当前没有公开攻击方式用于在所有情况下破解 WPA,特殊情况下的攻击还是可行的。 WLAN 在空气中传输数据,所以保护数据的机密性是一种内在需求。使用加密是最佳方案。WLAN 委员会(IEEE 802.11)为数据加密指定了以下协议: 这一章中,我们会看一看每个加密协议,并演示针对它们的多种攻击。 WEP 协议在 2000 年发现漏洞,但是,诧异的是,它仍然被使用,并且接入点仍然自带 WEP 功能。 WEP 中有许多密码学缺陷,它们被 Walker,Arbaugh,Fluhrer,Martin,Shamir,KoreK,以及其它人发现。密码学立场上的评估超出了这本书的范围,并且涉及到复杂的数学。这一节中,我们会看一看如何使用 Kali 中便捷可用的工具来破解 WEP 加密。这包含整个 aircrack-ng 工具套件 -- airmon-ng , aireplay-ng , airodump-ng , aircrack-ng ,以及其它。 WEP 的基础缺陷是使用 RC4 和短的 IV 值,每 224 帧复用。虽然这本身是个大数,但是每 5000 个封包中还是有 50% 的几率重用四次。为了利用这个,我们尝试大量流量,是我们增加重用 IV 的可能性,从而比较两个使用相同密钥和 IV 加密的密文。 让我们首先在测试环境中建立 WEP,并且看看如何破解。 遵循以下指南来开始: 我们在环境中建立 WEP,并成功破解了 WEP 密钥。为了完成它,我们首先等待正常客户端连接到接入点。之后,我们使用 aireplay-ng 工具在网络上重放 ARP 封包。这会导致网络发送 ARP 重放封包,从而增加空中发送的数据封包数量。之后我们使用 aircrack-ng 工具,通过分析数据风暴的密码学缺陷来破解 WEP 密钥。 要注意我们也能够使用共享密钥验证绕过机制,来伪造接入点的验证,这会在后面的章节中学到。如果正常客户端离开了网络,这可以更方便一些。这会确保我们可以伪造验证和关联,并且继续将重放封包发送到网络。 在之前的练习中,如果正常客户端突然断开了网络,我们就不能重放封包,因为接入点会拒绝接受来自未关联客户端的封包。 你的挑战就是,使用即将在后面学到的共享密钥绕过伪造验证和授权,使你仍然能够将封包注入到网络中,并验证接入点是否接受和响应它们。 WPA 或者 WPA v1 主要使用 TKIP 加密算法。TKIP 用于改进 WEP,不需要完全新的硬件来运行。反之,WPA2 必须使用 AES-CCMP 算法来加密,这比 TKIP 更加强大和健壮。 WPA 和 WPA2 允许 基于 WAP 的验证,使用基于 RADIUS 服务器(企业)和预共享密钥(PSK)(个人)的验证模式。 WPA/WPA2 PSK 易受字典攻击。攻击所需的输入是客户端和接入点之间的四次 WPA 握手,以及包含常用口令的单词列表。之后,使用例如 Aircrack-ng 的工具,我们可以尝试破解 WPA/WPA2 PSK 口令。 四次握手的演示见下面: WPA/WPA2 PSK 的原理是它导出了会话层面的密钥,叫做成对临时密钥(PTK),使用预共享密钥和五个其它参数 -- 网络 SSID、验证者 Nounce (ANounce)、申请者 Nounce (SNounce)、验证着 MAC 地址(接入点 MAC)、申请者 MAC 地址(WIFI 客户端 MAC)。密钥之后用于加密接入点和客户端之间的所有数据。 通过嗅探空气来窃取整个对话的攻击者,可以获得前面提到的全部五个参数。它唯一不能得到的东西就是预共享密钥。所以,预共享密钥如何创建?它由用户提供的 WPA-PSK 口令以及 SSID 导出。这些东西的组合通过基于密码的密钥推导函数(PBKDF2)来发送,它的输出是 256 位的共享密钥。 在典型的 WPA/WPA2 PSK 字典攻击中,攻击者会使用可能口令的大量字典以及攻击工具。工具会从每个口令中导出 256 位的预共享密钥,并和其它参数(之前提到过)一起使用来创建 PTK。PTK 用于在握手包之一中验证信息完整性检查(MIC)。如果匹配,从字典中猜测的口令就正确,反之就不正确。 最后,如果授权网络的口令存在于字典中,它会被识别。这就是 WPA/WPA2 PSK 破解的工作原理。下面的图展示涉及到的步骤: 下个练习中,我们会看一看如何破解 WPA PSK 无线网络。使用 CCMP(AES)的WPA2-PSK 网络的破解步骤与之相同。 遵循以下指南来开始: 我们在接入点上设置了 WPA-PSK,使用常见口令: abcdefgh 。之后我们使用解除验证攻击,让正常客户端重新连接到接入点。当我们重新连接时,我们捕获了客户端和接入点之间的 WPA 四次握手。 因为 WPA-PSK 易受字典攻击,我们向 Aircrack-ng 输入了包含 WPA 四次握手的捕获文件,以及常见口令的列表(以单词列表形式)。因为口令 abcdefgh 出现在单词列表中, Aircrack-ng 就能够破解 WPS-PSK 共享口令。要再次注意,在基于字典的 WPA 破解中,你的水平就等于你的字典。所以在你开始之前,编译一个大型并且详细的字典非常重要。通过 Kali 自带的字典,有时候可能不够,可能需要更多单词,尤其是考虑位置因素。 Cowpatty 是个同样使用字典攻击来破解 WPA-PSK 口令的工具。这个工具在 Kali 中自带。我将其留做练习,来让你使用 Cowpatty 破解 WPA-PSK 口令。 同样,设置不常见的口令,它不出现在你的字典中,并再次尝试。你现在再破解口令就不会成功了,无论使用 Aircrack-ng 还是 Cowpatty。 要注意,可以对 WPA2-PSK 网络执行相同攻击。我推荐你自己验证一下。 我们在上一节中看到,如果我们在字典中拥有正确的口令,破解个人 WPA 每次都会像魔法一样。所以,为什么我们不创建一个大型的详细字典,包含百万个常见密码和词组呢?这会帮助我们很多,并且多数情况都会最终破解出口令。这听起来不错,但是我们错过了一个核心组件 -- 所花费的时间。更多需要 CPU 和时间的计算之一就是使用 PSK 口令和 SSID 通过 PSKDF2 的预共享密钥。这个函数在输出 256 位的与共享密钥之前,计算超过 4096 次二者组合的哈希。破解的下一步就是使用这个密钥以及四次握手中的参数来验证握手中的 MIC。这一步计算了非常大。同样,握手中的参数每次都会变化,于是这一步不能预先计算。所以,为了加速破解进程,我们需要使来自口令的与共享密钥的计算尽可能快。 我们可以通过预先计算与共享密钥,在 802.11 标准术语中也叫作成对主密钥(PMK)来加速。要注意,因为 SSID 也用于计算 PMK,使用相同口令和不同 SSID,我们会得到不同的 PMK。所以,PMK 取决于口令和 SSID。 下个练习中,我们会看看如何预先计算 PMK,并将其用于 WPA/WPA2 的破解。 我们可以遵循以下步骤来开始: 我们查看了多种不同工具和技巧来加速 WPA/WPA2-PSK 破解。主要原理就是对给定的 SSID 和字典中的口令列表预计算 PMK。 在所有我们做过的联系中,我们使用多种技巧破解了 WEP 和 WPA 密钥。我们能拿这些信息做什么呢?第一步就是使用密钥解密我们捕获的数据封包。 下一个练习中,我们会在相同的我们所捕获的记录文件中解密 WEP 和 WPA 封包,使用我们破解得到的密钥。 遵循以下步骤来开始: 我们刚刚看到了如何使用 Airdecap-ng 解密 WEP 和 WPA/WPA2-PSK 加密封包。要注意,我们可以使用 Wireshark 做相同的事情。我们推荐你查阅 Wireshark 的文档来探索如何用它来完成。 我们也可以在破解网络密钥之后连接到授权网络。这在渗透测试过程中非常方便。使用破解的密钥登录授权网络,是你可以提供给客户的证明网络不安全的证据。 遵循以下步骤来开始: 我们连接到了 WEP 网络。 遵循以下步骤来开始: 默认的 WIFI 工具 iwconfig 不能用于连接 WPA/WPA2 网络。实际上的工具是 WPA_Supplicant 。这个实验中,我们看到如何使用它来连接 WPA 网络。 Q1 哪种封包用于封包重放? Q2 WEP 什么时候能被破解? Q3 WPA 什么时候能被破解? 这一章中,我们了解了 WLAN 加密。WEP 含有缺陷,无论 WEP 密钥是什么,使用足够的数据封包就能破解 WEP。WPA/WPA2 在密码学上不可破解;但是,在特殊的场景下,例如 WPA/WP2-PSK 中使用了弱口令,它就能够通过字典攻击来获得口令。 下一章中我们会看一看 WLAN 设施上的不同工具,例如伪造接入点,邪恶双生子,位反转攻击,以及其它。

Kali从入门到银手镯(二):开启WPS的无线网络渗透测试

很多无线路由器都支持WPS(Wifi Protection Setup)功能,它是一种可以让用户无需密码直接连接Wifi的技术。本来这种技术的初衷是让用户更加方便的连接网络,但是因为它有严重的安全漏洞,所以反而让用户的网络更加不安全。因此在这里推荐大家使用路由器的时候没事就把WPS功能关掉。 因为要进行渗透测试,所以首先我先把自己路由器的WPS功能开启,当然测试结束之后别忘了关闭WPS功能。 使用前一篇文章介绍的方法安装好Kali虚拟机或者U盘系统,然后就可以准备开始了。 当然这里使用到的工具并不是只有Kali能用,其他Linux发行版也可以使用。但是还是推荐Kali,因为很多渗透测试工具都是按照安防论文的理论来实现的,很多都已经不再维护了。而Kali收集了很多尚在维护的工具分支,如果你使用其他发行版的话,可能其软件仓库中的版本还是原来的旧版本。 本文比较简单,涉及到的工具有两个,reaver和aircrack-ng。 我用的是台式机安装的Kali虚拟机系统,自然是没有无线功能的,所以需要一块无线网卡。值得称道的是现在Linux驱动非常完善了,我原来买的360无线网卡可以直接驱动成功。 连接方法也十分简单,电脑插上无线网卡,然后在VMware软件右下角找到无线网卡的图标,点击并选择连接到虚拟机,这样就大功告成了。整个系统可能会卡几秒钟,之后就正常了。 连接成功后,在Kali虚拟机中应该可以看到Wifi图标了,用lsusb命令还可以查看到无线网卡的厂商和具体型号,可以看到我的无线网卡具体型号是MT7601U。 首先输入 sudo airmon-ng 命令查看一下当前系统中的无线网卡,在Kali中这个接口名默认应该是wlan0。 然后输入下面的命令关闭可能影响网卡监听的程序,然后开启监听模式。开启完毕之后,再次输入 sudo airmon-ng ,应该就会看到这次接口名变成了wlan0mon,这样就说明成功开启了监听模式,可以进行下一步了。 输入下面的命令开始扫描附近的无线网络。 稍后应该就会显示出附近开启了WPS的所有网络了,dBm是信号大小,值越小说明信号越强,按Ctrl+C即可中断命令。如果想要查看所有网络的话,可以添加 -a 参数,它会列出所有网络(包括了未开启WPS功能的网络)。 这时候就要记下来网络的BSSID(网络Mac地址)以及ESSID(网络名称),准备好下一步的工作了。 好了,下面就可以开始正式的工作了,其实说起来原理也很简单,WPS PIN是一个8位数字密码,所以其实我们要做的就是不断的尝试,最终找到这个PIN。总共需要尝试的次数有一亿次,看起来这个数字非常大,但是在安全领域,一亿次算是一个非常小的次数了,很多加密算法要攻破甚至需要全世界所有计算机同时计算几百年。 当然要搞定WPS的PIN并不需要这么长时间,最多10来个小时就可以了,平均用时可能也就4-5个小时左右。而且一旦知道了PIN,获得WIFI密码仅需要数秒即可搞定。之后只要PIN码没有发生变化,就算WIFI密码被修改,也可以很轻松的搞定。 接下来就要轮到本文的主角登场了,这就是reaver,专门用于破解WPS Wifi网络的工具。输入 -h 参数即可查看帮助信息,这里简单列出一些我们要使用的参数。 详细参数参考reaver的帮助,并不难懂。 了解了reaver命令行的用法之后,就可以正式开始了。很多时候一次可能并不能成功,需要尝试多次。 因为是测试,所以我干脆直接指定了PIN的值。为了更详细的了解命令运行过程,可以开启2级或者3级输出看看reaver工具到底干了啥。 如果出现了下面的bad FCS,可以在添加 -F 参数忽略帧校验错误,然后再次尝试。如果一切正常的话,应该会在几分钟内通过PIN解开WIFI的密码。如果不知道PIN密码的话,也可以通过几个小时的尝试来试出PIN进而得知WIFI密码。因此我们在日常使用的时候,一定要记得关掉WPS功能,它是很多漏洞的根源。

网络安全干货知识分享 - Kali Linux渗透测试 106 离线密码破解

前言 最近整理了一些 奇安信&华为大佬 的课件资料+大厂面试课题,想要的可以私信自取, 无偿赠送 给粉丝朋友~ 1. 密码破解简介 1. 思路 目标系统实施了强安全措施 安装了所有补丁 无任何已知漏洞 无应用层漏洞 攻击面最小化 社会 工程学 获取目标系统用户身份 非授权用户不受信,认证用户可以访问守信资源 已知用户账号权限首先,需要提权 不会触发系统报警 2. 身份认证方法 证明你是你声称你是的那个人 你知道什么(账号密码、pin、passphrase) 你有什么(令牌、token、key、证书、密宝、手机) 你是谁(指纹、视网膜、虹膜、掌纹、声纹、面部识别) 以上方法结合使用 基于互联网的身份验证仍以账号密码为主要形式 3. 密码破解方法 人工猜解 垃圾桶工具 被动信息收集 基于字典暴力破解(主流) 键盘空间字符爆破 字典 保存有用户名和密码的文本文件 /usr/share/wordlist /usr/share/wfuzz/wordlist /usr/share/seclists 4. 字典 1. 简介 键盘空间字符爆破 全键盘空间字符 部分键盘空间字符(基于规则) 数字、小写字母、大写字符、符号、空格、瑞典字符、高位 ASCII 码 2. crunch 创建密码字典 无重复字符 crunch 1 1 -p 1234567890 | more 1 必须是最后一个参数 最大、最小字符长度失效,但必须存在 与 -s 参数不兼容(-s 指定起始字符串) crunch 4 4 0123456789 -s 9990 读取文件中每行内容作为基本字符生成字典 crunch 1 1 -q read.txt 1 字典组成规则 crunch 6 6 -t @,%%^^ | more -t:按位进行生成密码字典 @:小写字母 lalpha ,:大写字母 ualpha %:数字 numeric ^:符号 symbols 输出文件压缩 root@kali:~# crunch 4 5 -p dog cat bird 1 -z:指定压缩格式 其他压缩格式:gzip、bzip2、lzma 7z压缩比率最大 指定字符集 root@kali:~# crunch 4 4 -f /usr/share/crunch/charset.lst mixalpha-numeric-all-space -o w.txt -t @d@@ -s cdab 1 随机组合 root@kali:~# crunch 4 5 -p dog cat bird 1 crunch 5 5 abc DEF + !@# -t ,@^%, 在小写字符中使用abc范围,大写字符使用 DEF 范围,数字使用占位符,符号使用!@# 占位符 转义符(空格、符号) 占位符 root@kali:~# crunch 5 5 -t ddd%% -p dog cat bird 1 任何不同于 -p 参数指定的值都是占位符 指定特例 root@kali:~# crunch 5 5 -d 2@ -t @@@%% 1 2@:不超过两个连续相同字符 组合应用 crunch 2 4 0123456789 | aircrack-ng a.cap -e MyESSID -w - crunch 10 10 12345 –stdout | airolib-ng testdb -import passwd - 3. CUPP 按个人信息生成其专属的密码字典 CUPP:Common User Password Profiler git clone https://github.com/Mebus/cupp.git python cupp.py -i 4. cewl 通过收集网站信息生成字典 cewl 1.1.1.1 -m 3 -d 3 -e -c -v -w a.txt -m:最小单词长度 -d:爬网深度 -e:收集包含email地址信息 -c:每个单词出现次数 支持基本、摘要 身份认证 支持代理 5. 用户密码变型 基于 cewl 的结果进行密码变型 末尾增加数字串 字母大小写变化 字母与符号互相转换 字母与数字互相转换 P@$w0rd 6. 使用 John the Ripper 配置文件实现密码动态变型 2. 在线密码破解 1. hydra 简介 密码破解 Windows 密码破解 Linux 密码破解 其他服务密码破解 图形化界面 xhydra HTTP表单身份认证 密码破解效率 密码复杂度(字典命中率) 带宽、协议、服务器性能、客户端性能 锁定阈值 单位时间最大登陆请求次数 Hydra 的缺点 稳定性差,程序时常崩溃 速度控制不好,容易触发服务屏蔽或锁死机制 每主机新建进程,每服务新建实例 大量目标破解时性能差 2. pw-inspector Hydra 小工具 pw-inspector 按长度和字符集筛选字典 pw-inspector -i /usr/share/wordlists/nmap.lst -o p1.lst -l pw-inspector -i /usr/share/wordlists/nmap.lst -o P2.lst -u pw-inspector -i /usr/share/wordlists/nmap.lst -o P2.lst -u -m 3 -M 5 3. medusa Medusa 的特点 稳定性好 速度控制得当 基于线程 支持模块少于hydra(不支持RDP) WEB-Form 支持存在缺陷 查看支持的模块 参数 -n:非默认端口 -s:使用SSL连接 -T:并发主机数 medusa -M ftp -q 3. 离线密码破解 1. 简介 身份认证 禁止明文传输密码 每次认证使用HASH算法加密密码传输(HASH算法加密容易、解密困难) 服务器端用户数据库应加盐加密保存 破解思路 嗅探获取密码HASH 利用漏洞登陆服务器并从用户数据库获取密码HASH 识别HASH类型 长度、字符集 利用离线破解工具碰撞密码HASH 优势 离线不会触发密码锁定机制 不会产生大量登陆失败日志引起管理员注意 2. HASH 识别工具 1. hash-identifier 进行 hash 计算 结果:5f4dcc3b5aa765d61d8327deb882cf99 进行 hash 识别 2. hashid 可能识别错误或无法识别 3. HASH 密码获取 1. samdump2 Windows HASH 获取工具 利用漏洞:Pwdump、fgdump、 mimikatz、wce 物理接触:samdump2 将待攻击主机关机 使用 Kali ISO 在线启动此主机 发现此 windows 机器安装有两块硬盘 mount /dev/sda1 /mnt 将硬盘挂载 cd /mnt/Windows/System32/config 切换目录 samdump2 SYSTEM SAM -o sam.hash 导出密码 利用 nc 传输 HASH HASH 值:31d6cfe0d16ae931b73c59d7e0c089c0 2. syskey 工具进行密码加密 使用 syskey 进行加密(会对 SAM 数据库进行加密) 重启需要输入密码才能进一步登录 使用 kali iso live 获取到 hash 值 hashcat 很难破解 使用 bkhive 破解 使用 Bootkey 利用RC4算法加密 SAM 数据库 Bootkey 保存于 SYSTEM 文件中 bkhive 从 SYSTEM 文件中提取 bootkey Kali 2.0 抛弃了 bkhive 编译安装 :http://http.us.debian.org/debian/pool/main/b/bkhive/ 在windows的 kali live 模式下,运行 samdump2 SAM key (版本已更新,不再支持此功能) 建议使用 Kali 1.x 1. Hashcat 简介 开源多线程密码破解工具 支持80多种加密算法破解 基于CPU的计算能力破解 六种模式 (-a 0) 0 Straight:字典破解 1 Combination:将字典中密码进行组合(1 2 > 11 22 12 21) 2 Toggle case:尝试字典中所有密码的大小写字母组合 3 Brute force:指定字符集(或全部字符集)所有组合 4 Permutation:字典中密码的全部字符置换组合(12 21) 5 Table-lookup:程序为字典中所有密码自动生成掩码 命令 hashcat -b hashcat -m 100 hash.txt pass.lst hashcat -m 0 hash.txt -a 3 ?l?l?l?l?l?l?l?l?d?d 结果:hashcat.pot hashcat -m 100 -a 3 hash -i –increment-min 6 –increment-max 8 ?l?l?l?l?l?l?l?l 掩码动态生成字典 使用 生成文件 计算 hash 类型 结果 MD5 查看 MD5 代表的值 进行破解 2. oclhashcat 简介 号称世界上最快、唯一的基于GPGPU的密码破解软件 免费开源、支持多平台、支持分布式、150+hash算法 硬件支持 虚拟机中无法使用 支持 CUDA 技术的Nvidia显卡 支持 OpenCL 技术的AMD显卡 安装相应的驱动 限制 最大密码长度 55 字符 使用Unicode的最大密码长度 27 字符 关于版本 oclHashcat-plus、oclHashcat-lite 已经合并为 oclhashcat 命令 3. RainbowCrack 简介 基于时间记忆权衡技术生成彩虹表 提前计算密码的HASH值,通过比对HASH值破解密码 计算HASH的速度很慢,修改版支持CUDA GPU https://www.freerainbowtables.com/en/download/ 彩虹表 密码明文、HASH值、HASH算法、字符集、明文长度范围 KALI 中包含的 RainbowCrack 工具 rtgen:预计算,生成彩虹表,时的阶段 rtsort:对 rtgen 生成的彩虹表行排序 rcrack:查找彩虹表破解密码 以上命令必须顺序使用 rtgen LanMan、NTLM、MD2、MD4、MD5、SHA1、SHA256、RIPEMD160 rtgen md5 loweralpha 1 5 0 10000 10000 0 计算彩虹表时间可能很长 下载彩虹表 http://www.freerainbowtables.com/en/tables/ http://rainbowtables.shmoo.com/ 彩虹表排序 /usr/share/rainbowcrack rtsort /md5_loweralpha#1-5_0_1000x1000_0.rt 密码破解 r crack *.rt -h 5d41402abc4b2a76b9719d911017c592 rcrack *.rt -l hash.txt 4. John 简介 基于 CPU 支持众多服务应用的加密破解 支持某些对称加密算法破解 模式 Wordlist:基于规则的字典破解 Single crack:默认被首先执行,使用Login/GECOS信息尝试破解 Incremental:所有或指定字符集的暴力破解 External:需要在主配配文件中用C语言子集编程 默认破解模式 Single、wordlist、incremental 主配置文件中指定默认wordlist 破解Linux系统账号密码 破解windows密码 Johnny 图形化界面的john 5. ophcrack 简介 基于彩虹表的LM、NTLM密码破解软件 彩虹表:http://ophcrack.sourceforge.net/tables.php

渗透测试工程师在哪里接单?

作为渗透测试工程师,你可以在以下几个地方接单:1. 专业渗透测试公司:有一些公司专门提供渗透测试服务,你可以向这些公司提交你的简历和申请,以成为他们的一员。这些公司通常会有自己的客户和项目,作为渗透测试工程师,你可以接受来自公司的委派任务。2. 自由职业平台:有许多自由职业平台(如Upwork、Freelancer、猪八戒等)可以让你在线接单。你可以在这些平台上创建个人账户,展示你的技能和经验,并接受客户的渗透测试项目委托。3. 个人网站或博客:你可以创建自己的个人网站或博客,介绍你的渗透测试技能和服务,并提供联系方式供客户找到你并委托项目。4. 社交媒体和专业网络:利用社交媒体平台(如LinkedIn、Twitter、Facebook等)或专业网络(如专业论坛、技术社区等),展示你的专业知识和经验,与潜在客户建立联系并接受渗透测试项目。5. 个人关系和口碑传播:通过你的个人关系和口碑传播,告知你的朋友、同事、业内人士等你的渗透测试服务,并寻求他们的推荐和引荐。记住,在接受渗透测试项目之前,确保你具备足够的专业知识和经验,并了解相关法律和道德规范,确保你的活动是合法和道德的。此外,与客户建立良好的沟通和合作关系,提供高质量的渗透测试服务,是建立良好声誉和获得更多项目的关键。

一个完整挖洞/src漏洞实战流程【渗透测试】

只要搞渗透,不就会听到很多行业内人前辈一直在重复:“信息搜集” 信息搜集有多重要,你搜集的到的多少资产信息,决定了你后续进行的一系列实战到什么程度! 要说SQL注入的漏洞咋找,逻辑漏洞咋找,支付漏洞咋找,越权漏洞咋找,等等 实这都一个道理,用谷歌语法,找通杀用fofa,这里演示几个类型的漏洞,其它的也是一个道理。 第一个: SQL注入漏洞 AS:首先是SQL注入的,这个漏洞说实话,基本就是谷歌语法找的快, 语法: inurl:asp?id=23公司,这时候你会问:不是inurl:asp?id= 就行了吗,当然! 这可以!如果你想找到一些奇奇怪怪的站可以用这个,比如: 这时候明白接公司的重要性了吧,这里找的是asp的站,为啥找asp的站? 其中一一个最重要的原因就是因为他,好挖! 当然这里只是找了一小部分站点的, 如果突然发现重复了咋办? 这个简单,换个id就行了同学! inurl:asp?id-34公司,这里的id 值不断的变变变就行了,你们也可以对比一下 这是不是就不一样了,当然如果有兴趣的话,也可以搜搜inurl :php?id=12公司 这也是可以找到很多站的,不过加WAF的几率很大 我找了10个9个都加过,所以说要想上分上的快,asp 的站绝对不能落下! 这里我就不多叙述,因为这站好找,真的特别好找,但是要想能弱密码进去的却很少 直接上镜像站一放inurl:什么牛鬼蛇神都出来了,这后台管理的站可以说是非常多了 当然如果不想找到国外其它奇奇怪怪的站点的话,建议加个关键词公司 可以看到这里一堆后台,当然要渗透这些后台弱密码很少能进去了 你看到我打inur1: 它自动给我补齐关键词了吗,说明这玩意很多人挖 一般搞后台,先信息收集,这个等会说,反正我是没搞到过几个 这种漏洞咋找?商城,积分商城。 试试谷歌语法: info:商城AND积分商城 这不全是商城吗,当然对于一些大厂, 建议不要去搞 因为防护也会比一般的站点比较严格,况且现在做在线网上商城的站点也很少了 其实可以在漏洞挖掘的时候注意一下站点是否有paypal这个功能,有的话,可以搞一搞的,这还是有搞头的 再来就是逻辑漏洞,比如说平行,垂直越权,任意密码重置啊什么的。这类漏洞还是很多的,大家也可以去慢慢测的! 最后一个,通杀的漏洞咋找? 这时候就是要靠我们万能的fofaQ了,首先我们要知道有哪些cms有漏洞 这里大家可以去找网上的漏洞库,里面- -般都会有漏洞合集和这里我稍后会给大家推荐一两个 看到没有,就是这么多cms,杀一个准,上分必备漏洞 不过有些重复提交了,可以给你们看看学员们的战果! 当然,重复了几个,但还是相当不错了。 看完开头,相信你已经知道怎么找漏洞了,那我们就说说漏洞如何挖掘,这里分事件型和通用型漏洞 首先来的,肯定是我们的sq1注入了,首先使用我们的通用语法inurl:asp?id=xx 公司 直接点进去,不要害怕,只要不违法,咱不干坏事就行 看到报错了,说明啥,说明可能存在注入啊朋友,直接and 1=1 |and 1=2插进去 经过一番寻找,我们来到了这个网站: 看到网站直接插单引号,看他报不报错 看到效果十分明显,这种情况直接丢sqlmap9 ,反正我是丢的sqlmap , 大家如果时间充足的话可以上手 下一个站,这个站存在的漏洞是任意密码重置和CSRF漏洞 首先是CSRF漏洞,相信不用我说你们也应该会了,这里就是这点出现漏洞 你们可以自己去测测,这里说我主要说的是任意密码重置漏洞 (这个漏洞现在也已经被修复了) 在这一步的时候, 抓个包 这里再改成自己的邮箱,这样自己的邮箱就能接收到验证链接,直接点击就好 看到这里,支付漏洞 和验证码绕过之类的逻辑漏洞是不是感觉+分的好挖,有没有这种感觉! 这里类型比较多,篇幅太长不好阅读。举例这两种做参考~ 三、提交报告 例如baidu.com发现了SQL注入 第一步:“标题”和“厂商信息”和“所属域名” 站长工具icp.chinaz.com/baidu.co... 查询域名备案信息,看到这个公司名了吗 这样写 漏洞类别啥的,如果不是0day的话,像图中一样就行了 所属域名要写该公司的“网站首页”或者“官网” 看到这个了吗 漏洞类型: -般都是Web漏洞,然后漏洞是什么写什么,这里是一个SQL注入。 漏洞等级: SQL注入-般都是高危,但如果厂商比较小的话,会降级,降成中危。 漏洞简述:描述一下SQL注入是什么、 有什么危害之类的。 漏洞url:出现漏洞的URL。 影响参数:哪个参数可以注入就写哪个 漏洞POC请求包: Burp抓个包复制粘贴。 如果你嫌每次打字麻烦,可以新建一个记事本, 把框架写好,提交的时候替换一些内容就可以了。 把标题、漏洞简述、复现步骤、修复方案,把标题、漏洞简述、复现步骤、修复方案,可以省不少时间! 今天的内容虽然偏长,但是都是干货呀!从找漏洞到提交直接一步到位! 安排的明明白白! 注:任何未经授权的渗透都是违法行为,咱们挖SRC,担心会违法,记住一点, 点到为止,不要动里面的数据,发现漏洞之后,尽快提交漏洞,联系厂商进行修复。

什么是渗透测试 渗透测试的方法

渗透测试包含的内容

渗透测试工程师前景

从目前市场情况来讲,渗透测试发展前景非常好。因为任何一个企业,想要安全,没有后顾之忧的发展,网络安全保障是必不可少的。而网络安全保障就离不开渗透测试人员。他们可以通过各种手段来检测企业的网络策略,相当于企业系统的一双眼睛,发现企业存在的网络安全隐患问题,从而做到防患于未然。而且,随着全球范围内网络安全事件的日益增加,国内政企机构对网络安全的重视程度也日益提高,对渗透测试人才的需求呈现爆发式增长。

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

渗透测试在未得到被测试方授权之前依据某些地区法律规定是违法行为。这里我们提供的所有渗透测试方法均为(假设为)合法的评估服务,也就是通常所说的道德黑客行为(Ethicalhacking),因此我们这里的所有读者应当都是EthicalHackers,如果您还不是,那么我希望您到过这里后会成为他们中的一员;)这里,我还想对大家说一些话:渗透测试重在实践,您需要一颗永不言败的心和一个有着活跃思维的大脑。不是说您将这一份文档COPY到您网站上或者保存到本地电脑您就会了,即使您将它打印出来沾点辣椒酱吃了也不行,您一定要根据文档一步一步练习才行。而且测试重在用脑,千万别拿上一两个本文中提到的工具一阵乱搞,我敢保证:互联网的安全不为因为这样而更安全。祝您好运。。。一、简介什么叫渗透测试?渗透测试最简单直接的解释就是:完全站在攻击者角度对目标系统进行的安全性测试过程。进行渗透测试的目的?了解当前系统的安全性、了解攻击者可能利用的途径。它能够让管理人员非常直观的了解当前系统所面临的问题。为什么说叫直观呢?就像Mitnick书里面提到的那样,安全管理(在这里我们改一下,改成安全评估工作)需要做到面面俱到才算成功,而一位黑客(渗透测试)只要能通过一点进入系统进行破坏,他就算是很成功的了。渗透测试是否等同于风险评估?不是,你可以暂时理解成渗透测试属于风险评估的一部分。事实上,风险评估远比渗透测试复杂的多,它除渗透测试外还要加上资产识别,风险分析,除此之外,也还包括了人工审查以及后期的优化部分(可选)。已经进行了安全审查,还需要渗透测试吗?如果我对您说:嘿,中国的现有太空理论技术通过计算机演算已经能够证明中国完全有能力实现宇航员太空漫步了,没必要再发射神8了。您能接受吗?渗透测试是否就是黑盒测试?否,很多技术人员对这个问题都存在这个错误的理解。渗透测试不只是要模拟外部黑客的入侵,同时,防止内部人员的有意识(无意识)攻击也是很有必要的。这时,安全测试人员可以被告之包括代码片段来内的有关于系统的一些信息。这时,它就满足灰盒甚至白盒测试。渗透测试涉及哪些内容?技术层面主要包括网络设备,主机,数据库,应用系统。另外可以考虑加入社会工程学(入侵的艺术/THEARTOFINTRUSION)。渗透测试有哪些不足之处?主要是投入高,风险高。而且必须是专业的EthicalHackers才能相信输出的最终结果。你说的那么好,为什么渗透测试工作在中国开展的不是很火热呢?我只能说:会的,一定会的。渗透测试的关键在于没法证明你的测试结果就是完善的。用户不知道花了钱证明了系统有问题以后,自己的安全等级到了一个什么程序。但是很显然,用户是相信一个专业且经验丰富的安全团队的,这个在中国问题比较严重。在我接触了一些大型的安全公司进行的一些渗透测试过程来看,测试人员的水平是对不住开的那些价格的,而且从测试过程到结果报表上来看也是不负责的。我估计在三年以后,这种情况会有所改观,到时一方面安全人员的技术力量有很大程度的改观,另一方面各企业对渗透测试会有一个比较深刻的理解,也会将其做为一种IT审计的方式加入到开发流程中去。渗透测试的专业化、商业化会越来越成熟。二、制定实施方案实施方案应当由测试方与客户之间进行沟通协商。一开始测试方提供一份简单的问卷调查了解客户对测试的基本接收情况。内容包括但不限于如下:目标系统介绍、重点保护对象及特性。是否允许数据破坏?是否允许阻断业务正常运行?测试之前是否应当知会相关部门接口人?接入方式?外网和内网?测试是发现问题就算成功,还是尽可能的发现多的问题?渗透过程是否需要考虑社会工程?。。。在得到客户反馈后,由测试方书写实施方案初稿并提交给客户,由客户进行审核。在审核完成后,客户应当对测试方进行书面委托授权。这里,两部分文档分别应当包含如下内容:实施方案部分:...书面委托授权部分:...三、具体操作过程1、信息收集过程网络信息收集:在这一部还不会直接对被测目标进行扫描,应当先从网络上搜索一些相关信息,包括GoogleHacking,Whois查询,DNS等信息(如果考虑进行社会工程学的话,这里还可以相应从邮件列表/新闻组中获取目标系统中一些边缘信息如内部员工帐号组成,身份识别方式,邮件联系地址等)。1.使用whois查询目标域名的DNS服务器2.nslookup>settype=all><domain>>server<nsserver>>setq=all>ls-d<domain>涉及的工具包括:Google,Demon,webhosting.info,Apollo,Athena,GHDB.XML,netcraft,seologs除此之外,我想特别提醒一下使用Googlebot/2.1绕过一些文件的获取限制。Googlehacking中常用的一些语法描述1.搜索指定站点关键字site。你可以搜索具体的站点如site:来搜索中国政府部门的网站。2.搜索在URL网址中的关键字inurl。比如你想搜索带参数的站点,你可以尝试用inurl:asp?id=3.搜索在网页标题中的关键字intitle。如果你想搜索一些登陆后台,你可以尝试使用intitle:"adminlogin"目标系统信息收集:通过上面一步,我们应当可以简单的描绘出目标系统的网络结构,如公司网络所在区域,子公司IP地址分布,VPN接入地址等。这里特别要注意一些比较偏门的HOST名称地址,如一些backup开头或者temp开关的域名很可能就是一台备份服务器,其安全性很可能做的不够。从获取的地址列表中进行系统判断,了解其组织架构及操作系统使用情况。最常用的方法的是目标所有IP网段扫描。端口/服务信息收集:这一部分已经可以开始直接的扫描操作,涉及的工具包括:nmap,thc-amap1.我最常使用的参数nmap-sS-p1-10000-n-P0-oXfilename.xml--open-T5<ipaddress>应用信息收集:httprint,SIPSCAN,smap这里有必要将SNMP拿出来单独说一下,因为目前许多运营商、大型企业内部网络的维护台通过SNMP进行数据传输,大部分情况是使用了默认口令的,撑死改了private口令。这样,攻击者可以通过它收集到很多有效信息。snmp-gui,HiliSoftMIBBrowser,mibsearch,net-snmp都是一些很好的资源。2、漏洞扫描这一步主要针对具体系统目标进行。如通过第一步的信息收集,已经得到了目标系统的IP地址分布及对应的域名,并且我们已经通过一些分析过滤出少许的几个攻击目标,这时,我们就可以针对它们进行有针对性的漏洞扫描。这里有几个方面可以进行:针对系统层面的工具有:ISS,Nessus,SSS,Retina,天镜,极光针对WEB应用层面的工具有:AppScan,AcunetixWebVulnerabilityScanner,WebInspect,Nstalker针对数据库的工具有:ShadowDatabaseScanner,NGSSQuirreL针对VOIP方面的工具有:PROTOSc07sip(在测试中直接用这个工具轰等于找死)以及c07h225,Sivus,sipsak等。事实上,每个渗透测试团队或多或少都会有自己的测试工具包,在漏洞扫描这一块针对具体应用的工具也比较个性化。3、漏洞利用有时候,通过服务/应用扫描后,我们可以跳过漏洞扫描部分,直接到漏洞利用。因为很多情况下我们根据目标服务/应用的版本就可以到一些安全网站上获取针对该目标系统的漏洞利用代码,如milw0rm,securityfocus,packetstormsecurity等网站,上面都对应有搜索模块。实在没有,我们也可以尝试在GOOGLE上搜索“应用名称exploit”、“应用名称vulnerability”等关键字。当然,大部分情况下你都可以不这么麻烦,网络中有一些工具可供我们使用,最著名的当属metasploit了,它是一个开源免费的漏洞利用攻击平台。其他的多说无益,您就看它从榜上无名到冲进前五(top100)这一点来说,也能大概了解到它的威力了。除此之外,如果您(您们公司)有足够的moeny用于购买商用软件的话,COREIMPACT是相当值得考虑的,虽然说价格很高,但是它却是被业界公认在渗透测试方面的泰山北斗,基本上测试全自动。如果您觉得还是接受不了,那么您可以去购买CANVAS,据说有不少0DAY,不过它跟metasploit一样,是需要手动进行测试的。最后还有一个需要提及一下的Exploitation_Framework,它相当于一个漏洞利用代码管理工具,方便进行不同语言,不同平台的利用代码收集,把它也放在这里是因为它本身也维护了一个exploit库,大家参考着也能使用。上面提到的是针对系统进行的,在针对WEB方面,注入工具有NBSI,OWASPSQLiX,SQLPowerInjector,sqlDumper,sqlninja,sqlmap,Sqlbftools,priamos,ISR-sqlget***等等。在针对数据库方面的工具有:数据库工具列表Oracle(1521端口):目前主要存在以下方面的安全问题:1、TNS监听程序攻击(sid信息泄露,停止服务等)2、默认账号(defaultpasswordlist)3、SQLINJECTION(这个与传统的意思还不太一样)4、缓冲区溢出,现在比较少了。thc-orakel,tnscmd,oscanner,Getsids,TNSLSNR,lsnrcheck,OAT,Checkpwd,orabfMSSqlServer(1433、1434端口)Mysql(3306端口)DB2(523、50000、50001、50002、50003端口)db2utilsInformix(1526、1528端口)在针对Web服务器方面的工具有:WEB服务器工具列表IISIISPUTSCANNERTomcat想起/admin和/manager管理目录了吗?另外,目录列表也是Tomcat服务器中最常见的问题。比如5.*版本中的在渗透测试过程中,一旦有机会接触一些OFFICE文档,且被加了密的话,那么,rixler是您马上要去的地方,他们提供的OFFICE密码套件能在瞬间打开OFFICE文档(2007中我没有试过,大家有机会测试的话请给我发一份测试结果说明,谢谢)。看来微软有理由来个补丁什么的了。对于企业来说,您可以考虑使用铁卷或者RMS了。6、日志清除Itisnotnecessaryactually.7、进一步渗透攻入了DMZ区一般情况下我们也不会获取多少用价值的信息。为了进一步巩固战果,我们需要进行进一步的内网渗透。到这一步就真的算是无所不用其及。最常用且最有效的方式就是Sniff抓包(可以加上ARP欺骗)。当然,最简单的你可以翻翻已入侵机器上的一些文件,很可能就包含了你需要的一些连接帐号。比如说你入侵了一台Web服务器,那么绝大部分情况下你可以在页面的代码或者某个配置文件中找到连接数据库的帐号。你也可以打开一些日志文件看一看。除此之外,你可以直接回到第二步漏洞扫描来进行。四、生成报告报告中应当包含:薄弱点列表清单(按照严重等级排序)薄弱点详细描述(利用方法)解决方法建议参与人员/测试时间/内网/外网五、测试过程中的风险及规避在测试过程中无可避免的可能会发生很多可预见和不可预见的风险,测试方必须提供规避措施以免对系统造成重大的影响。以下一些可供参考:1.不执行任何可能引起业务中断的攻击(包括资源耗竭型DoS,畸形报文攻击,数据破坏)。2.测试验证时间放在业务量最小的时间进行。3.测试执行前确保相关数据进行备份。4.所有测试在执行前和维护人员进行沟通确认。5.在测试过程中出现异常情况时立即停止测试并及时恢复系统。6.对原始业务系统进行一个完全的镜像环境,在镜像环境上进行渗透测试。

如何进行渗透测试才有可能登录到数据库服务器的远程终端

一、渗透测试概念  渗透测试 (penetration test)并没有一个标准的定义,国外一些安全组织达成共识的通用说法是:渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。渗透测试还具有的两个显著特点是:  渗透测试是一个渐进的并且逐步深入的过程。  渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试。   渗透测试完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节,能直观的让管理员知道自己网络所面临的问题。所以渗透测试是安全评估的方法之一。  TIPS:安全评估通常包括工具评估、人工评估、顾问访谈、问卷调查、应用评估、管理评估、网络架构评估、渗透测试等。  渗透测试与其他评估方法的区别:  通常评估方法是根据已知信息资产或其他被评估对象,去发现所有相关的安全问题。渗透测试是根据已知可利用的安全漏洞,去发现是否存在相应的信息资产,通常评估方法对评估结果更具有全面性,渗透测试则更注重安全漏洞的严重性。  渗透测试一方面可以从攻击者的角度,检验业务系统的安全防护措施是否有效,各项安全策略是否得到贯彻落实;另一方面可以将潜在的安全风险以真实事件的方式凸现出来,从而有助于提高相关人员对安全问题的认识水平。渗透测试结束后,立即进行安全加固,解决测试发现的安全问题,从而有效地防止真实安全事件的发生。 二、渗透测试分类根据渗透方法和视角分类,渗透测试可以分为——A、黑箱测试“zero-knowledge testing”/(黑盒子Black Box) 渗透者完全处于对系统一无所知的状态。除了被测试目标的已知公开信息外,不提供任何其他信息。一般只从组织的外部进行渗透测试。  通常,这种类型的测试,最初的信息获取来自DNS、Web、Email及各种公开对外的服务器。B、白盒测试  测试者可以通过正常渠道向被测单位取得各种资料,包括网络拓扑、员工资料甚至网站或其他程序的代码片段,也能与单位其他员工进行面对面的沟通。通常包括从组织外部和从组织内部两种地点进行渗透测试。这类测试的目的是模拟企业内部雇员的越权操作。C、灰盒子(Gray Box)  介于以上两者之间   较为隐秘的进行测试。通常,接受渗透测试的单位网络管理部门会收到通知:在某些时间段进行测试。因此能够检测网络中出现的变化。  但在隐秘测试中,被测单位也仅有极少数人知晓测试的存在,因此能够有效地检验单位中的信息安全事件监控、响应、恢复做得是否到位。根据渗透目标分类,渗透测试又可以分为——1)主机操作系统渗透  windows、solaris、aix、linux、sco、sgi2)数据库系统渗透  mssql、oracle、mysql、informix、sybase3)应用系统渗透  渗透目标提供的各种应用,如asp、cgi、jsp、php等组成的www应用4)网络设备渗透  各种防火墙、入侵检测系统、网络设备三、渗透测试过程  信息收集、分析→制订渗透方案并实施→前段信息汇总、分析→提升权限、内部渗透→渗透结果总结→输出渗透测试报告→提出安全解决建议 TIPS: 时间选择  为减轻渗透测试对网络和主机的影响,渗透测试时间尽量安排在业务量不大的时段和晚上策略选择  为防止渗透测试造成网络和主机的业务中断,在渗透测试中不使用含有拒绝服务的测试策略  对于不能接受任何可能风险的主机系统,如银行票据核查系统、电力调度系统等,可选择如下保守策略:  复制一份目标环境,包括硬件平台、操作系统、数据库管理系统、应用软件等。对目标的副本进行渗透测试授权渗透测试的监测手段  在评估过程中,由于渗透测试的特殊性,用户可以要求对整体测试流程进行监控  测试方自控:由渗透测试方对本次渗透测试过程中的三方面数据进行完整记录:操作、响应、分析,最终形成完整有效的渗透测试报告提交给用户  用户监控:用于监控有4种形式  全程监控:采用类似ethereal的嗅探软件进行全程抓包嗅探  择要监控:对扫描过程不进行录制,仅仅在安全工程师分析数据后,准备发起渗透前才开启软件进行嗅探  主机监控:仅监控受测主机的存活状态,避免意外情况发生  指定攻击源:用户指定由特定攻击源地址进行攻击,该源地址的主机由用户进行进程、网络连接、数据传输等多方监控制定实施方案  实施方案应当由测试方与客户之间进行沟通协商。一开始测试方提供一份简单的问卷调查了解客户对测试的基本接收情况。内容包括但不限于如下:  目标系统介绍、重点保护对象及特性。  是否允许数据破坏?  是否允许阻断业务正常运行?  测试之前是否应当知会相关部门接口人?  接入方式?外网和内网?  测试是发现问题就算成功,还是尽可能的发现多的问题?  渗透过程是否需要考虑社会工程?  在得到客户反馈后,由测试方书写实施方案初稿并提交给客户,由客户进行审核。在审核完成后,客户应当对测试方进行书面委托授权。这里,两部分文档分别应当包含实施方案部分和书面委托授权部分:下面串联讲一讲各知识点——1)不同网段/vlan之间的渗透  从某内/外部网段,尝试对另一网段/vlan进行渗透。  通常可能用到的技术包括:对网络设备的远程攻击;对防火墙的远程攻击或规则探测、规避尝试。  信息的收集和分析伴随着每一个渗透测试步骤,每一个步骤又有三个组成部分:操作、响应和结果分析。2)端口扫描  通过对目标地址的tcp/udp端口扫描,确定其所开放的服务的数量和类型,这是所有渗透测试的基础。  通过端口扫描,可以基本确定一个系统的基本信息,结合安全工程师的经验可以确定其可能存在,以及被利用的安全弱点,为进行深层次的渗透提供依据。3)远程溢出  这是当前出现的频率最高、威胁最严重,同时又是最容易实现的一种渗透方法,一个具有一般网络知识的入侵者就可以在很短的时间内利用现成的工具实现远程溢出攻击。  对于防火墙内的系统同样存在这样的风险,只要对跨接防火墙内外的一台主机攻击成功,那么通过这台主机对防火墙内的主机进行攻击就易如反掌。4)口令猜测  口令猜测也是一种出现概率很高的风险,几乎不需要任何攻击工具,利用一个简单的暴力攻击程序和一个比较完善的字典,就可以猜测口令。  对一个系统账号的猜测通常包括两个方面:首先是对用户名的猜测,其次是对密码的猜测。 5)本地溢出  指在拥有了一个普通用户的账号之后,通过一段特殊的指令代码获得管理员权限的方法。  前提:首先要获得一个普通用户密码。也就是说由于导致本地溢出的一个关键条件是设置不当的密码策略。多年的实践证明,在经过前期的口令猜测阶段获取的普通账号登录系统之后,对系统实施本地溢出攻击,就能获取不进行主动安全防御的系统的控制管理权限。 6)脚本及应用测试  专门针对web及数据库服务器进行。据最新技术统计,脚本安全弱点为当前web系统,尤其是存在动态内容的web系统比较严重的 安全弱点之一。  利用脚本相关弱点轻则可以获取系统其他目录的访问权限,重则将有可能取得系统的控制权限。因此对于含有动态页面的web、数据库等系统,web脚本及应用测试将是必不可少的一个环节。  在web脚本及应用测试中,可能需要检查的部份包括:  ◆检查应用系统架构,防止用户绕过系统直接修改数据库;  ◆检查身份认证模块,用以防止非法用户绕过身份认证;  ◆检查数据库接口模块,用以防止用户获取系统权限;  ◆检查文件接口模块,防止用户获取系统文件;  ◆检查其他安全威胁; 7)无线测试  中国的无线网络还处于建设时期,但是由于无线网络的部署简易,在一些大城市的普及率已经很高了。北京和上海的商务区至少80%的地方都可以找到接入点。  通过对无线网络的测试,可以判断企业局域网安全性,已经成为越来越重要的渗透测试环节。  除了上述的测试手段外,还有一些可能会在渗透测试过程中使用的技术,包括:社交工程学、拒绝服务攻击,以及中间人攻击。 8)信息收集  网络信息收集:在这一部还不会直接对被测目标进行扫描,应当先从网络上搜索一些相关信息,包括Google Hacking, Whois查询, DNS等信息(如果考虑进行社会工程学的话,这里还可以相应从邮件列表/新闻组中获取目标系统中一些边缘信息如内部员工帐号组成,身份识别方式,邮件联系 地址等)。  目标系统信息收集:通过上面一步,我们应当可以简单的描绘出目标系统的网络结构,如公司网络所在区域,子公司IP地址分布,VPN接入地址等。这里特别要注意一些比较偏门的 HOST名称地址,如一些backup开头或者temp开关的域名很可能就是一台备份服务器,其安全性很可能做的不够。从获取的地址列表中进行系统判断,了解其组织架构及操作系统使用情况。最常用的方法的是目标所有IP网段扫描。  端口/服务信息收集:这一部分已经可以开始直接的扫描操作9)漏洞扫描  这一步主要针对具体系统目标进行。如通过第一步的信息收集,已经得到了目标系统的IP地址分布及对应的域名,并且我们已经通过一些分析过滤出少许的几个攻击目标,这时,我们就可以针对它们进行有针对性的漏洞扫描。这里有几个方面可以进行:  针对系统层面的工具有:ISS, Nessus, SSS, Retina, 天镜, 极光  针对WEB应用层面的工具有:AppScan, Acunetix Web Vulnerability Scanner, WebInspect, Nstalker  针对数据库的工具有:ShadowDatabaseScanner, NGSSQuirreL  针对VOIP方面的工具有:PROTOS c07 sip(在测试中直接用这个工具轰等于找死)以及c07 h225, Sivus, sipsak等。  事实上,每个渗透测试团队或多或少都会有自己的测试工具包,在漏洞扫描这一块针对具体应用的工具也比较个性化。10)漏洞利用  有时候,通过服务/应用扫描后,我们可以跳过漏洞扫描部分,直接到漏洞利用。因为很多情况下我们根据目标服务/应用的版本就可以到一些安全网站上获取针对该目标系统的漏洞利用代码,如milw0rm, securityfocus,packetstormsecurity等网站,上面都对应有搜索模块。实在没有,我们也可以尝试在GOOGLE上搜索“应用名称 exploit”、“应用名称 vulnerability”等关键字。  针对系统方面:metasploit  针对数据库方面:xoxo  针对Web服务器方面的工具有:xoxo11)Web安全测试  Information Gathering:也就是一般的信息泄漏,包括异常情况下的路径泄漏、文件归档查找等  Business logic testing:业务逻辑处理攻击,很多情况下用于进行业务绕过或者欺骗等等  Authentication Testing:有无验证码、有无次数限制等,总之就是看能不能暴力破解或者说容不容易通过认证,比较直接的就是“默认口令”或者弱口令了  Session Management Testing:会话管理攻击在COOKIE携带认证信息时最有效  Data Validation Testing:数据验证最好理解了,就是SQL Injection和Cross Site Script等等12)Web测试的工具  目前网上能够找到许多能够用于进行Web测试的工具,根据不同的功能分主要有:  1.枚举(Enumeration): DirBuster, http-dir-enum, wget  2.基于代理测试类工具:paros, webscarab, Burp Suite  针对WebService测试的部分有一些尚不是很成熟的工具,如:wsbang,wschess,wsmap,wsdigger,wsfuzzer  这一部分值得一提的是,很多渗透测试团队都有着自己的测试工具甚至是0DAY代码,最常见的是SQL注入工具,现网开发的注入工具(如NBSI等) 目前都是针对中小企业或者是个人站点/数据库进行的,针对大型目标系统使用的一些相对比较偏门的数据库系统(如INFORMIX,DB2)等,基本上还不涉及或者说还不够深入。这时各渗透测试团队就开发了满足自身使用习惯的测试工具。  针对无线环境的攻击有:WifiZoo13)权限提升  在前面的一些工作中,你或许已经得到了一些控制权限,但是对于进一步攻击来说却还是不够。例如:你可能很容易的能够获取Oracle数据库的访问权 限,或者是得到了UNIX(AIX,HP-UX,SUNOS)的一个基本账号权限,但是当你想进行进一步的渗透测试的时候问题就来了。你发现你没有足够的 权限打开一些密码存储文件、你没有办法安装一个SNIFFER、你甚至没有权限执行一些很基本的命令。这时候你自然而然的就会想到权限提升这个途径了。  目前一些企业对于补丁管理是存在很大一部分问题的,他们可能压根就没有想过对一些服务器或者应用进行补丁更新,或者是延时更新。这时候就是渗透测试人员的好机会了。经验之谈:有一般权限的Oracle账号或者AIX账号基本上等于root,因为这就是现实生活14)密码破解  有时候,目标系统任何方面的配置都是无懈可击的,但是并不是说就完全没办法进入。很多情况下,往往破坏力最大的攻击起源于最小的弱点,例如弱口令、目 录列表、SQL注入绕过论证等等。所以说,对于一些专门的安全技术研究人员来说,这一块意义不大,但是对于一个渗透测试工程师来说,这一步骤是有必要而且绝大部分情况下是必须的。  目前网络中有一种资源被利用的很广泛,那就是rainbow table技术,说白了也就是一个HASH对应表,有一些网站提供了该种服务,对外宣称存储空间大于多少G,像rainbowcrack更是对外宣称其数据量已经大于1.3T 囧15)日志清除  这里不展开讲。进一步渗透  攻入了DMZ区一般情况下我们也不会获取多少用价值的信息。为了进一步巩固战果,我们需要进行进一步的内网渗透。到这一步就真的算是无所不用其及。 最常用且最有效的方式就是Sniff抓包(可以加上ARP欺骗)。当然,最简单的你可以翻翻已入侵机器上的一些文件,很可能就包含了你需要的一些连接帐 号。比如说你入侵了一台Web服务器,那么绝大部分情况下你可以在页面的代码或者某个配置文件中找到连接数据库的帐号。你也可以打开一些日志文件看一看。  除此之外,你可以直接回到第二步漏洞扫描来进行。四、生成报告  生成的报告中应当包含:  1.薄弱点列表清单(按照严重等级排序)  2.薄弱点详细描述(利用方法)  3.解决方法建议  4.参与人员/测试时间/内网/外网  5、测试过程中的风险及规避  渗透测试利用网络安全扫描器、专用安全测试工具和富有经验的安全工程师的人工经验对网络中的核心服务器及重要的网络设备,包括服务器、网络设备、防火墙等进行非破坏性质的模拟黑客攻击,目的是侵入系统并获取机密信息并将入侵的过程和细节产生报告给用户。   渗透测试和工具扫描可以很好的互相补充。工具扫描具有很好的效率和速度,但是存在一定的误报率和漏报率,并且不能发现高层次、复杂、并且相互关联的安全 问题;渗透测试需要投入的人力资源较大、对测试者的专业技能要求很高(渗透测试报告的价值直接依赖于测试者的专业技能),但是非常准确,可以发现逻辑性更强、更深层次的弱点。  当具备渗透测试攻击经验的人们站到系统管理员的角度,要保障一个大网的安全时,我们会发现,需要关注的问题是完全不同的:从攻方的视角看,是“攻其一点,不及其余”,只要找到一点漏洞,就有可能撕开整条战线;但从守方的视角看,却发现往往“千里之堤,毁于蚁穴”。因此,需要有好的理论指引,从技术到管理都注重安全,才能使网络固若金汤。