
使用Ophcrack软件
从程序菜单中直接运行Ophcrack软件,如图3所示,该软件主要有“Load”、“Delete”、“Save”、“Table”、“Crack”、“Help”以及“Exit”七大主要模块,“Load”主要负责装载Hash或者sam文件。“Delete”主要用来删除破解条目,“Save”主要保存破解结果或者破解session,“Table”主要用来设置彩虹表,“Crack”是开始执行破解,“Help”是查看帮助文件,呵呵,“Exit”俺就不说了。
图3 Ophcrack软件主界面
3下载彩虹表
可以到Ophcrack提供的彩虹表下载地址(>
Redis的数据类型
Redis的数据类型共有五种:string,list,hash,set,zset;
String 字符串相对来说做平常,key-value,类似是hashmap的用法;
List 队列,可以双向的存值,设计时,也可以简单用来当队列模式;
Hash 字典,一个key 对应多个值;
Set 无序的集合;
Zset 有序的集合;
列表 list
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)
列表 list—— 基本命令
lpush
语法:lpush key value [value„]
作用:将一个或多个值 value 插入到列表 key 的表头(最左边),从左边开始加入值,从左到右的顺序依次插入到表头
返回值:数字,新列表的长度
rpush
语法:rpush key value [value„]
作用:将一个或多个值 value 插入到列表 key 的表尾(最右边),各个 value 值按从左到右 的顺序依次插入到表尾
返回值:数字,新列表的长度
lrange
语法:lrange key start stop
作用:获取列表 key 中指定区间内的元素,0 表示列表的第一个元素,以 1 表示列表的第二个元素;
start ,
stop 是列表的下标值,也可以负数的下标, -1 表示列表的最后一个元素, -2 表示列表的倒 数第二个元素,以此类推。
start ,stop 超出列表的范围不会出现错误。
返回值:指定区间的列表
lindex
语法:lindex key index
作用:获取列表 key 中下标为指定 index 的元素,列表元素不删除,只是查询。
0 表示列表的第一个元素,以 1 表示列表的第二个元素;
start ,
stop 是列表的下标值,也可以负数的下标, -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
返回值:指定下标的元素;index 不在列表范围,返回nil
llen
语法:llen key
作用:获取列表 key 的长度 返回值:数值,列表的长度; key 不存在返回0
lrem
语法:lrem key count value
作用:根据参数count的值,移除列表中与参数value相等的元素,
count>0,从列表的左侧向右开始移 除;
count<0从列表的尾部开始移除;
count=0 移除表中所有与value相等的值。
返回值:数值,移除的元素个数
lset
语法:lset key index value
作用:将列表 key 下标为 index 的元素的值设置为 value。
返回值:设置成功返回 ok ; key 不存在或者 index 超出范围返回错误信息
linsert
语法:linsert key BEFORE(前)|AFTER(后) pivot value
作用:
将值value插入到列表key当中位于值pivot之前或之后的位置。
key不存在,pivot不在列表中, 不执行任何 *** 作。
返回值:命令执行成功,返回新列表的长度。没有找到 pivot 返回 -1, key 不存在返回 0。
RPOP key
移除列表的最后一个元素,返回值为移除的元素。
RPOPLPUSH source destination
移除列表的最后一个元素,并将该元素添加到另一个列表并返回
LPOP key
移除列表的第一个元素,返回值为移除的元素。
使用场景
1 消息队列
队列模式的情况下,可以使用,左进右出的原则,但不建议使用,因为现在市面上有很多成熟的消息中间件,没有必要造轮子;
2.排行榜
某一段时间统计数据的排行榜可以放在list里面,需要分页的话,也可以使用lrange start stop实现;
3 list类型的lpush命令和lrange命令能实现最新列表的功能,每次通过lpush命令往列表里插入新的元素,然后通过lrange命令读取最新的元素列表,如朋友圈的点赞列表、评论列表。
但是,并不是所有的最新列表都能用list类型实现,因为对于频繁更新的列表,list类型的分页可能导致列表元素重复或漏掉,举个例子,当前列表里由表头到表尾依次有(E,D,C,B,A)五个元素,每页获取3个元素,用户第一次获取到(E,D,C)三个元素,然后表头新增了一个元素F,列表变成了(F,E,D,C,B,A),此时用户取第二页拿到(C,B,A),元素C重复了。只有不需要分页(比如每次都只取列表的前5个元素)或者更新频率低(比如每天凌晨更新一次)的列表才适合用list类型实现
哈希类型hash
redis hash是一个 string 类型的 field 和 value 的映射表,hash特别适合用于存储对象,每个 hash 可以存储 232 - 1键值对(40多亿);
哈希类型 hash—— 基本命令
hset /hget /hmset /hmget /hgetall /hkeys /hvals /hexists
hset
语法:hset hash 表的key field value
作用:将哈希表 key 中的域 field 的值设为value ,如果 key 不存在,则新建 hash 表,执行赋值,如果有 field ,则覆盖值。
返回值: ①如果 field 是 hash 表中新field,且设置值成功,返回 1 ②如果 field 已经存在,旧值覆盖新值,返回0
hget
语法:hget key field
作用:获取哈希表 key 中给定域 field 的值
返回值:field 域的值,如果 key 不存在或者 field 不存在返回nil
hmset
语法:hmset key field value [field value„]
说明:同时将多个field-value(域-值)设置到哈希表key中,此命令会覆盖已经存在的field, hash表key不存在,创建空的hash表,执行hmset
返回值:设置成功返回ok, 如果失败返回一个错误
hmget
语法:hmget key field [field„]
作用:获取哈希表key中一个或多个给定域的值
返回值:返回和field顺序对应的值,如果field不存在,返回nil
hgetall
语法:hgetall key
作用:获取哈希表key中所有的域和值
返回值:以列表形式返回hash中域和域的值 ,key不存在,返回空hash
hdel
语法:hdel key field [field„]
作用:删除哈希表 key 中的一个或多个指定域 field,不存在 field 直接忽略
返回值:成功删除的 field 的数量
hkeys
语法:hkeys key
作用:查看哈希表 key 中的所有 field 域
返回值:包含所有 field 的列表,key 不存在返回空列表
hvals
语法:hvals key
作用:返回哈希表中所有域的值 返回值:包含哈希表所有域值的列表,key 不存在返回空列表
hexists
语法:hexists key field
作用:查看哈希表 key 中,给定域 field 是否存在
返回值:如果 field 存在,返回 1, 其他返回0
使用场景
1、购物车
以用户id为key,商品id为field,商品数量为value,恰好构成了购物车的3个要素,如下图所示。
2、hash还是比较适合存储对象(key field value)或者是字典表(type,key,vlaue),刚好符合对象的要素,但string + json也可以存储,两则比较有什么区别?
String + json Hash
效率很 高 高
容量 低 低
灵活性 低 高
序列化 简单 复杂
看了下那个hashcat-gui 已经是很老的东西了,2012325 最后更新出错的话截个图来让大家帮你看看oclHashcat-plus 很久以前叫这个名字,现在都合并到oclHashcat了。你说它是替代版本也没错。他们的区别就是hashcat只支持CPUPJ(多线程) oclHashcat支持GPUPJ运行EXE文件命令行一闪而过你要到命令行下运行,就像这样的格式 c:\testexe 这种或者你到软件目录下,新建一个abat的批处理文件,里面就写cmd,后缀一定要是bat,双击执行就出来cmd,在里面执行软件不清楚EWSA 能否支持R9 270X希望能够帮到你
攻击机:kali 2020(192168107129)
DC:Windows Server 2012 R2(192168107137)
msf已成功通过msf获取到DC的shell
刚获取的shell为普通用户权限,需要进行提权,然后获取hash
直接使用getsystem失败,使用ps命令查看当前进程及运行用户权限
可以看到所运行的进程皆为普通用户权限
这里为了方便,直接使用msf提供的模块,用于快速识别系统中可能被利用的漏洞:
具体原理参考: BypassUAC------使用EVENTVWREXE和注册表劫持实现“无文件”UAC绕过
成功绕过UAC获取shell:
通过进程注入获取system权限,并获取hash
原理:
哈希传递攻击是基于NTLM认证的一种攻击方式。哈希传递攻击的利用前提是我们获得了某个用户的密码哈希值,但是解不开明文。这时我们可以利用NTLM认证的一种缺陷,利用用户的密码哈希值来进行NTLM认证。在域环境中,大量计算机在安装时会使用相同的本地管理员账号和密码。因此,如果计算机的本地管理员账号密码相同,攻击者就能使用哈希传递攻击登录内网中的其他机器。
哈希传递攻击适用情况:
在工作组环境中:
在域环境中:
Metasploit下面有3个psexec模块都可以进行Hash传递利用
第一个模块(auxiliary/admin/smb/psexec_command):
缺点:只能运行单条命令,不支持网段格式批量验证
优点:奇怪的是其他普通用户的hash也可以执行系统命令,这个模块可能不属于hash传递的范畴?这个坑以后再来解,我太菜了,望大佬指点~
设置命令的时候可以配合exploit/multi/script/web_delivery从而获取meterpreter
在上面进行Hash传递的时候,只要后面的NTLM Hash是正确的,前面填写什么都是可以顺利登陆成功的。
第二个模块(exploit/windows/smb/psexec):
利用条件:
优点:该模块支持网段格式批量验证,成功后可直接获取meterpreter且为system权限,在实战中优先使用
第三个模块(exploit/windows/smb/psexec_psh):
使用powershell作为payload。这个模块也支持网段批量验证,这里就不再赘述了
当我们获得了内网中一台主机的NTLM哈希值,我们可以利用mimikatz对这个主机进行哈希传递攻击,执行命令成功后将会反d回cmd窗口
mimikatz中pth功能的原理:
windows会在lsass中缓存hash值,并使用它们来ntlm认证,我们在lsass中添加包含目标账号hash的合法数据结构,就可以使用类似dir这些命令进行认证
目标主机:192168107140
domain:SWS-PC
执行后会d出cmd,执行以下命令即可远程连接:
创建计划任务反dshell:
理论上来说是可行的,win7复现的时候,任务一直在运行,就是没结束,我也是醉了
当然这里使用powershell远程加载也是可以的,但由于环境因素无法复现
前提条件:获取到的beacon为system权限,user中带有号的用户
在得到一个beacon的基础上,先在该网段portscan,探测存活主机后
选择View-->Target-->Login-->psexec,可批量选择主机pth
个人觉得还是Msf好用,成功率更高一些
项目地址: >
javascript 获取文件域 (type=file) 的完整路径一直是很麻烦的问题,问题主要出在一些浏览器基于安全性考虑而不能正常获取到文件域中选中的决对路径,尤其一些基于webkit的浏览器比如 Chrome, Safire等浏览器,下面是一个可以兼容 IE 6 , 7, 8 和 firefox 的获取 input file 完整路径的方法,该方法不支持 Chrome 和 Safire,要支持这些浏览器可能要使用到 Flash ,对程序员来说比较麻烦。
HTML页面:
<input type="file" name="attachment" id="attachment" />
<input type="text" name="trueattachment" id="trueattachment" />js部分:
<script type="text/javascript">
var attachment=documentgetElementById("attachment");
var trueattachment=documentgetElementById("trueattachment");
attachmentonchange=function(){
trueattachmentvalue=getFullPath(this);
}
function getFullPath(obj){
if(obj)
{
//ie
if (windownavigatoruserAgentindexOf("MSIE")>=1)
{
objselect();
return documentselectioncreateRange()text;
}
//firefox
else if(windownavigatoruserAgentindexOf("Firefox")>=1)
{
if(objfiles)
{
return objfilesitem(0)getAsDataURL();
}
return objvalue;
}
return objvalue;
}
}
</script>
以上就是关于破解系统hash全部的内容,包括:破解系统hash、Web前端5道面试题、redis中list和hash的基本命令和使用场景等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)