Python黑帽子:黑客与渗透测试编程之道 windows系统提取篇2

系统 1374 0

首先先介绍下windows 系统的令牌。

windows系统的令牌是指:"一个包含进程或者线程上下文环境的对象"。简单的说就是记录着一个进程被赋予的权限。

这里就有一个问题,windows开发者出于好意,会给一个安全产品内嵌一个系统托盘的程序,并且将seLoadDriver权限赋予了系统托盘程序。而这会让没有相应权限的用户,控制以驱动形式存在的windows系统服务。(方法是通过向系统托盘程序中插入代码)。

所有首先第一步,查询token中的权限,看看哪些进程含有seLoadDriver权限。

1.获取目标进程句柄

2.获取目标进程token

3.解析已经启用权限列表

4.迭代每个权限,并检查是否启用(i[1]==3表示启用,i[0]存储着相印的名字)

代码如下(基于之前编辑的进程监视器):

            import os
import wmi
import win32api
import win32con
import win32security
def get_privileges(pid):
    try:
        hd = win32api.OpenProcess(win32con.PROCESS_QUERY_INFORMATION,False,pid)

        htok = win32security.OpenProcessToken(hd,win32con.TOKEN_QUERY)

        privs = win32security.GetTokenInformation(htok,win32security.TokenPrivileges)

        priv_list=""

        for i in privs:
            if i[1]==3:
                priv_list+="%s|"%win32security.LookupPrivilegeName(None,i[0])
    except:
        priv_list="N/A"
    return priv_list


def log_message(message):
    f=open("message.csv","ab")
    f.write("%s\r\n"%message)
    f.close()

log_message("Time,User,Executable,CommandLine,PID,Parent PID,Privileges")

c=wmi.WMI()
process_monitor=c.Win32_Process.watch_for("creation")

while True:
    try:
        new_process=process_monitor()

        proc_owner=new_process.GetOwner()

        proc_owner="%s\\%s"%(proc_owner[0],proc_owner[2])

        create_data=new_process.CreationDate

        executable=new_process.ExecutablePath

        cmdline = new_process.CommandLine

        pid = new_process.ProcessId

        parent_pid = new_process.ParentProcessId

        privileges = get_privileges(pid)

        process_log_message="%s,%s,%s,%s,%s,%s,%s\r\n"%(create_data,proc_owner,executable,cmdline,pid,parent_pid,privileges)

        print process_log_message

        log_message(process_log_message)
    except:
        pass
          

Python黑帽子:黑客与渗透测试编程之道 windows系统提取篇2_第1张图片

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论