NetUserAdd逆向

起因

过程

反手直接拖ida。

跟了下逻辑然后对比了下React OS发现逻辑几乎一致,那直接扣代码。

win10上UaspOpenDomain没有导出,可以使用特征码搜索的方式去调用,这里跟进了发现同样是调用了sam系函数。

跟一下函数还需要sid。

发现是由 LsaQueryInformationPolicy的获取,这个函数在ntsecapi.h里有描述,直接拿来用就好了。

至此用户创建完成,然后通过SetUserInfo设置密码,同样这个函数在windows 10上没有导出。

跟一下,发现下层函数一致并导出。

跟踪了一下函数逻辑,发现不同的UserInfo都有不同的处理方法,通常我们会传入一个USERINFO1结构体,这里会把有效信息传入到一个 USER_ALL_INFORMATION 结构体里面,这个结构体的实现和Startupinfo有点像,需要同时设置值和使用标签位,阅读发现,有一个结构体单处理密码。

这里我们只需要传入密码,然后将标志位设1。

我们就自己封装出了一个NetUserAdd。

完整代码

最后更新于

这有帮助吗?