热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

KaliLinux渗透测试实战指南:第24章客户端安全威胁分析与防御策略

客户端安全威胁分析与防御策略主要探讨了终端设备(如计算机、平板电脑和移动设备)在使用互联网时可能面临的各种安全威胁。本章详细介绍了这些设备如何作为信息和服务的提供者或接收者,以及它们在与服务器等其他系统交互过程中可能遇到的安全风险,并提出了有效的防御措施。
客户端攻击

客户端(client)或主机(host)是指用来上网的终端设备,比如计算机、平板电脑或是移动设备。客户端可能会为其他客户端提供信息、服务及应用,或是从其他系统(比如服务器)获取信息。通常,属于客户端是指供人们使用的终端设备。然而,人的参与可能会引发一些了的漏洞。因此,客户端攻击这种方法就应运而生。由于它跟Web应用具有关联性,所以可以用来找出谁链接到了Web应用,系统上有哪些漏洞,以及这些系统是否可以成为从Web应用获取访问权限或信息的一种途径。

下面先会介绍如何通过社会工程来攻击主机。然后详细阐述如何在主机系统上找到漏洞,这样你就可以使用其他方法对漏洞进行利用了。

社会工程

社会工程师欺骗人们使其泄露信息的艺术。许多客户端攻击者都是据此来欺骗终端用户,使他们的系统暴露给攻击者。社会工程设计的范围很广,从拨打电话声称自己是某公司正式员工到在人人网上发个声称是某类服务的链接而实际上是欺骗客户的一种手段都是。

如果想要保障社会工程攻击能够成功,那么最佳的方式就是花时间充分的熟悉你的目标,也就是要学习用户是如何交流的,并尝试融入他们的环境。许多未能成功的社会工程学攻击都是因为采用通用的格式,而内容中没有能够吸引被攻击者用户的强有力的抓手,比如一些写的很糟糕的电邮总是声称获得了无人认领的奖金。

社会工程学攻击工具

这里我们就暂时不展开进行讲解了,到了后期我们会有一个专门关于社会工程学的讲解,到时候一定全面讲解。

获取和破解用户密码

根据定义,密码破解是指从计算机系统中存储或传送的数据中还原密码。密码是用来加固各类型系统的安全的。

获取密码最简单的方式就是通过社会工程学。

黑客破解密码的方式有:

  • 猜测:通常使用收集到的与目标有关的信息进行人工猜测
  • 字典攻击:使用自动化攻击,利用字典中所有可能的单词进行尝试
  • 暴力破解:使用所有可能的字符组合来破解
  • 混合模式:混合使用字典攻击和暴力破解
Kali中的密码破解工具

Kali提供了各种各样的工具来绕过密码安全。密码破解工具可以在密码攻击模块中找到,具体可以分为离线破解工具和在线破解工具本节将介绍在web应用渗透测试中危害主机系统的安全工具。

(1)Johnny

Johnny是流行的John the Ripper密码破解工具的一个图形化界面。同时Johnny也有命令行界面,Johnny有若干个引擎,这样他就可以破解不同类型的密码,包括加密过的密码和散列化处理过的密码。Johnny能够自动检测大多数散裂化的密码和加密过的密码,这点是的这个过程对渗透测试人员来说更简单。攻击者都喜欢这个工具,因为它的可定制性非常强,能以各种方式定制,以便于加快破解密码的速度。

John the Ripper按如下方式来工作:

  • 尝试用攻击字典来破解密码;
  • 尝试在字典单词的前面或后面添加上数字字符来破解
  • 将字典单词放在一起进行攻击
  • 将字母数字字符放到一起组成新的单词
  • 在字典单词中混入特殊字符来进行攻击
  • 当所有的ITA方法都失败了,尝试暴力破解


Option:选择攻击的类型

Statistics:显示某一个会话活动的时间

Setting:指定Johnny以何种方式运行

(2)hashcat和oclHashcat

hashcat 和oclHashcat是密码破解工具。oclHashcat是基于GPGPU的版本。hash/oclHashcat工具大多都是多线程工具。他们可以在单个攻击会话中并行处理多个散列和密码列表。hash/oclHashcat工具提供了多个攻击选项,比如暴力破解、密码合成、字典、混合、掩码和基于规则的攻击。

你可以在终端输入hashcat -h 来打开hashcat并查看其使用说明:


如果你要对一个文档进行hashcat,你可以输入:

hashcat [选项] 散列文件名 [单词文件|目录]

(3)samdump2

samdump2是一个用来转存微软的Windows中密码散列的SAM文件的工具,这样密码就可以用离线工具进行破解。对于较新版本的Windows,你可能需要借助其他工具来抓取SYSKEY(启动密文)文件,进而访问存在SAM数据库中的散列。


(4)chntpw

chntpw是Kali linux、BackTrack和其他linux发行版本中带有的一个工具。可以用它来重置Windows 8或早期的Windows版本中的本地密码,也可以修改Windows的密码数据库。不过,主要是用于在不知道密码的情况下入侵Windows系统。


使用说明如上所示

(5)Ophcrack

Ophcrack是一个机遇彩虹表的Windows密码破解器。Kali提供了一个命令行版本和一个图形化版本界面。Ophcrack可以从多种格式中导入散列,包括直接从Windows的SAM文件中直接转存。下面的截图显示的是可以直接加载到Ophcrack中的几种格式:


Ophcarack自带了彩虹表,如下面的例子所示。我们建议加载最新的彩虹表而不是默认的。彩虹表可以从在线资源中下载,比如开发者网站:http://ophcrack.sourceforge.net/tables.php

(6)Crunch

Crunch是一个用来生成密码列表的工具。如果你能够收集到有关目标如何创建密码的情报信息,那么这个工具会非常有用。举个例子,如果你抓去了两个密码并观察到目标都市用一个短语后跟随数字来作为密码,南无Crunch可以用来快速生成那个短语后跟所有可能的随机数字的密码列表。


Curnch有一些特殊标记字符,可以翻译成如下:

  • @ :插入小写字符
  • %:插入数字
  • ,:插入大写字符
  • ^ :插入符号

举个列子,假定我们已经知道目标在密码中用pass后跟两个不确定的字符。为了针对六位字符密码运行Crunch,我们会首先让pass后跟两位不确定的数字。可以用%%来代替任意数字。运行这个命令,并将输出放到一个名为newpasswordlist.txt的文本文件中,可用如下实例输入:


最后的字典内容为:


同理我们也可以根据以上的匹配规则来生成不同的字典序列。

Kali中的其他可用工具

Kali中也有其他有用的工具,我们只接受其中能够帮助危害主机系统、获取Web应用服务器的访问权限的工具。Kali中海油一些其他密码破解工具没有加到这个列表中;不过对这些工具的介绍不会在这里展开。

(1)Hash-idenifier

Hash-identifier(散列识别工具)是一个用来识别散列类型的基于python的工具。大多数密码破解工具如John the Ripper都自带了一个散列类型自动检测函数,这类函数都非常好用,在90%的情况下都是精确的。而这个工具可以用来手动验证某个散列类型。要使用Hash-identifier,可以运行这个工具,并粘贴你要识别的散列。


(2)findmyhash

findmyhash是一个免费的在线服务来破解密码的python脚本工具。在使用此工具时,你必须要先连接到Internet,之后你就可以根据题提供的使用说明进行破解密文了:


(3)CmosPwd

CmosPwd是用来破解BIOS的密码的。Cmospwd允许你擦除/清理、备份和恢复CMOS。


(4)creddump

creddump是一个python工具,用来从Windows的注册表中提取各种凭据和密码,creddump可以提取LM和NT散列(SYSKEY保护的)、缓存的域密码或LSA密码。


推荐阅读
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 本文详细记录了在基于Debian的Deepin 20操作系统上安装MySQL 5.7的具体步骤,包括软件包的选择、依赖项的处理及远程访问权限的配置。 ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 深入理解Redis的数据结构与对象系统
    本文详细探讨了Redis中的数据结构和对象系统的实现,包括字符串、列表、集合、哈希表和有序集合等五种核心对象类型,以及它们所使用的底层数据结构。通过分析源码和相关文献,帮助读者更好地理解Redis的设计原理。 ... [详细]
  • 本文详细介绍了在企业级项目中如何优化 Webpack 配置,特别是在 React 移动端项目中的最佳实践。涵盖资源压缩、代码分割、构建范围缩小、缓存机制以及性能优化等多个方面。 ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • 对象自省自省在计算机编程领域里,是指在运行时判断一个对象的类型和能力。dir能够返回一个列表,列举了一个对象所拥有的属性和方法。my_list[ ... [详细]
  • 本文将详细介绍多个流行的 Android 视频处理开源框架,包括 ijkplayer、FFmpeg、Vitamio、ExoPlayer 等。每个框架都有其独特的优势和应用场景,帮助开发者更高效地进行视频处理和播放。 ... [详细]
  • Redis Hash 数据结构详解
    本文详细介绍了 Redis 中的 Hash 数据类型及其常用命令。Hash 类型用于存储键值对集合,支持多种操作如插入、查询、更新和删除字段值。此外,文章还探讨了 Hash 类型在实际业务场景中的应用,并提供了优化建议。 ... [详细]
  • 本文详细解析了Java中hashCode()和equals()方法的实现原理及其在哈希表结构中的应用,探讨了两者之间的关系及其实现时需要注意的问题。 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • LeetCode 690:计算员工的重要性评分
    在解决LeetCode第690题时,我记录了详细的解题思路和方法。该问题要求根据员工的ID计算其重要性评分,包括直接和间接下属的重要性。本文将深入探讨如何使用哈希表(Map)来高效地实现这一目标。 ... [详细]
author-avatar
mobiledu2502876223
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有