发现impacket 包的2个问题,希望对大家有用

先说一下发现的两个问题吧

smb.py中:
1. nt_create_andx 函数,缺少设置 权限参数 没改前
def nt_create_andx(self,tid,filename):
Disposition = mode

 

这个mode 参数没有个给定设置,而默认的确是只读


mode=01 只读
mode=02 只创建
mode=03 读写
设置权限参数 参数

修改后 nt_create_andx 多了一个参数,如下:默认我给你的是读写
def nt_create_andx(self,tid,filename,mode=0x03):
而类SMBNtCreateAndX_Parameters() 也要修改一下
class SMBNtCreateAndX_Parameters(SMBAndXCommand_Parameters):
    structure = (
        ('_reserved', 'B=0'),
        ('FileNameLength','<H'),
        ('CreateFlags','<L'),
        ('RootFid','<L=0'),
        ('AccessMask','<L'),
        ('AllocationSizeLo','<L=0'),
        ('AllocationSizeHi','<L=0'),
        ('FileAttributes','<L=0'),
        ('ShareAccess','<L=3'),
        ('Disposition','<L'), (原来是:   ('Disposition','<L=1'),
        ('CreateOptions','<L'),
        ('Impersonation','<L=2'),
        ('SecurityFlags','B=3'),
    )


第二个是winreg.py windows远程共享操作
winreg.py
1.regOpenKey()
    class WINREGOpenKey(ImpactPacket.Header):
                setkeyname():
                 原始(padlen = 2 * (int((namelen+2) / 4) * 4 + 2 - namelen))
                修改后(padlen = 2*namelen-int(2*namelen/4)*4+4)
计算namelen4的倍数出错, 为了符合传送数据格式需要计算一个值来填充,在一些情况下会出错

 

 

你可能感兴趣的:(windows)