客户端攻击
客户端(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密码。