为了顺应当前形势和更好的发展,黑基网已于9月19日正式更名为【安基网】,域名更换为www.safebase.cn,请卸载旧的APP并安装新的APP,给您带来不便,敬请理解!谢谢

黑基Web安全攻防班
安基网 首页 IT技术 安全攻防 查看内容

彻底改掉进程名

2009-8-29 10:56| 投稿: security

摘要: 文章作者:Fypher写了个改进程名的东西,跟大家分享!技术含量不高,大牛飘过。先总结一下,一个进程的名字有可能从以下部位获取(参考小伟同学的《伪造进程初探》一文):一、EPROCESS中: ...
文章作者:Fypher写了个改进程名的东西,跟大家分享!技术含量不高,大牛飘过。先总结一下,一个进程的名字有可能从以下部位获取(参考小伟同学的《伪造进程初探》一文):一、EPROCESS中:    1、EPROCESS-->ImageFileName(很常用,冰刃获取进程名的地方)    2、EPROCESS-->SeAuditProcessCreationInfo->ImageFileName(任务管理器获取进程名的地方,NtQueryInformationProcess就是从这里获取进程名的)    3、EPROCESS->SectionObject->Segment->ControlArea->FileObject->FileName(RKU获取进程名的方法)    4、VAD(记录用户空间内存分配情况的数据结构,里面当然有进程的exe模块)二、PEB中:    1、PEB-->ProcessParameters-->ImagePathName    2、PEB-->ProcessParameters-->CommandLine    3、PEB-->ProcessParameters-->WindowTitle(这个地方比较奇怪,如果双击的是exe的快捷方式,则记录的是快捷方式的路径,还是一并改掉的好)    4、PEB-->LDR-->InLoadOrderModuleList->第一个结构->FullDllName    5、PEB-->LDR-->InLoadOrderModuleList->第一个结构->BaseDllName    6、PEB-->LDR-->InMemoryOrderModuleList->第一个结构->FullDllName(此处的BaseDllName貌似为NULL,就不管它了)    (PEB-->LDR-->InInitializationOrderModuleList这个表里貌似没有exe模块,也不管它了)把这些地方都改掉即可彻底改掉进程名(如果不够彻底,谢谢补充!)。示例代码如下(示例代码中以winmine.exe做测试,平台为XP SP3。代码中硬编码很多,通用性不强。囧): 复制内容到剪贴板 代码://Fypher //http://hi.baidu.com/nmn714VOID ChangeName(ULONG pProcess){    ULONG peb,ProcessParameters,ldr;    ULONG InLoadOrderModuleList;    ULONG InMemoryOrderModuleList;    ULONG tmp;    KAPC_STATE kapc;    PUCHAR str;    PWCHAR wstr;        //get PEB    peb=*(PULONG)(pProcess + 0x1b0);        KeStackAttachProcess((PEPROCESS)pProcess,&kapc);    __try{        ProcessParameters = *(PULONG)(peb + 0x010);        //ImagePathName        FindAndChangeUni(ProcessParameters+0x038);        //CommandLine        FindAndChangeUni(ProcessParameters+0x040);        //WindowTitle        FindAndChangeUni(ProcessParameters+0x070);        //Ldr        ldr = *(PULONG)(peb + 0x00c);        //InLoadOrderModuleList->FullDllName        InLoadOrderModuleList = *(PULONG)(ldr+0x00c);        FindAndChangeUni(InLoadOrderModuleList+0x024);        //InLoadOrderModuleList->BaseDllName        FindAndChangeUni(InLoadOrderModuleList+0x02c);        //InMemoryOrderModuleList->FullDllName        InMemoryOrderModuleList = *(PULONG)(ldr+0x014);        FindAndChangeUni(InMemoryOrderModuleList+0x024);    }__except(1){        KdPrint(("exception occured!"));    }    KeUnstackDetachProcess (&kapc);    //EPROCESS-->ImageFileName    FindAndChangeA(pProcess+0x174,16);    //EPROCESS-->SeAuditProcessCreationInfo->ImageFileName    FindAndChangeUni(*(PULONG)(pProcess + 0x1F4));    //EPROCESS->SectionObject->Segment->ControlArea->FileObject->FileName    //should use MmIsAddressValid to verify    tmp=*(PULONG)(pProcess+0x138);    tmp=*(PULONG)(tmp+0x14);    tmp=*(PULONG)tmp;    tmp=*(PULONG)(tmp+0x024);    FindAndChangeUni(tmp+0x030);        //VAD    //should use MmIsAddressValid to verify    tmp=*(PULONG)(pProcess+0x11c);    tmp=*(PULONG)(tmp+0x10);    tmp=*(PULONG)(tmp+0x018);    tmp=*(PULONG)(tmp+0x024);    FindAndChangeUni(tmp+0x030);}其中,FindAndChangeUni和FindAndChangeA的作用是在一个字符串(UNICODE_STRING或CHAR)中定位“winmine.exe”并改成"winxxoo.exe"。代码如下: 复制内容到剪贴板 代码://Fypher //http://hi.baidu.com/nmn714VOID FindAndChangeUni(ULONG strAddr){    PUNICODE_STRING uniStr = (PUNICODE_STRING)strAddr;    ULONG len = uniStr->Length / 2;    ULONG maxLen = uniStr->MaximumLength / 2;    PWCHAR str = uniStr->Buffer;    ULONG i=0;    if(!str || len<11|| maxLen<11 )        return;    for(i=0;i<= len - 11;++i){        if(!_wcsnicmp(str+i,L"winmine.exe",11))            break;    }    if(i>len - 11)        return;        _asm{        cli        mov eax, cr0         and eax, not 0x10000         mov cr0, eax    }    //str可能是PEB中的,故try之    __try{        str[i+3]=L'x';        str[i+4]=L'x';        str[i+5]=L'o';        str[i+6]=L'o';    }__except(1){    }        _asm{        mov eax, cr0        or eax,0x10000        mov cr0,eax        sti    }}VOID FindAndChangeA(ULONG strAddr,ULONG len){    PUCHAR str = (PUCHAR)strAddr;    ULONG i=0;    if(!str || len<11 )        return;    for(i=0;i<= len - 11;++i){        if(!_strnicmp(str+i,"winmine.exe",11))            break;    }    if(i>len - 11)        return;        _asm{        cli        mov eax, cr0         and eax, not 0x10000         mov cr0, eax    }    //str可能是PEB中的,故try之    __try{        str[i+3]='x';        str[i+4]='x';        str[i+5]='o';        str[i+6]='o';    }__except(1){    }            _asm{        mov eax, cr0        or eax,0x10000        mov cr0,eax        sti    }}截图效果: 参考:《伪造进程初探》——小伟同学(膜拜一下) var tagarray = ['A1Pass','免杀','三步走','逆向工程','杀毒软件原理','XSS','内网','MyCcl','密码效验和','核心溢出','ms08067','捆绑','资源','误区','架构','讨论','ms08-067','取经','单点还原','PowerShadow','磁盘','PE文件','EXP','UTF-8','Tomcat','Apache','西天','唐僧','灌水','逆向','ratproxy','数据恢复','Ghost','EasyRecovery','DataExplorer','Serv-U','Buffer','Office','WPS','Overflow','Microsoft','内核编程','DDoS','手机号','属主','猎头','90hackit','rsa','收集','源代码','手工','隐藏驱动','百度','驱动编程','感染','机器狗','Oracle','招聘','IIS'];var tagencarray = ['A1Pass','%E5%85%8D%E6%9D%80','%E4%B8%89%E6%AD%A5%E8%B5%B0','%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B','%E6%9D%80%E6%AF%92%E8%BD%AF%E4%BB%B6%E5%8E%9F%E7%90%86','XSS','%E5%86%85%E7%BD%91','MyCcl','%E5%AF%86%E7%A0%81%E6%95%88%E9%AA%8C%E5%92%8C','%E6%A0%B8%E5%BF%83%E6%BA%A2%E5%87%BA','ms08067','%E6%8D%86%E7%BB%91','%E8%B5%84%E6%BA%90','%E8%AF%AF%E5%8C%BA','%E6%9E%B6%E6%9E%84','%E8%AE%A8%E8%AE%BA','ms08-067','%E5%8F%96%E7%BB%8F','%E5%8D%95%E7%82%B9%E8%BF%98%E5%8E%9F','PowerShadow','%E7%A3%81%E7%9B%98','PE%E6%96%87%E4%BB%B6','EXP','UTF-8','Tomcat','Apache','%E8%A5%BF%E5%A4%A9','%E5%94%90%E5%83%A7','%E7%81%8C%E6%B0%B4','%E9%80%86%E5%90%91','ratproxy','%E6%95%B0%E6%8D%AE%E6%81%A2%E5%A4%8D','Ghost','EasyRecovery','DataExplorer','Serv-U','Buffer','Office','WPS','Overflow','Microsoft','%E5%86%85%E6%A0%B8%E7%BC%96%E7%A8%8B','DDoS','%E6%89%8B%E6%9C%BA%E5%8F%B7','%E5%B1%9E%E4%B8%BB','%E7%8C%8E%E5%A4%B4','90hackit','rsa','%E6%94%B6%E9%9B%86','%E6%BA%90%E4%BB%A3%E7%A0%81','%E6%89%8B%E5%B7%A5','%E9%9A%90%E8%97%8F%E9%A9%B1%E5%8A%A8','%E7%99%BE%E5%BA%A6','%E9%A9%B1%E5%8A%A8%E7%BC%96%E7%A8%8B','%E6%84%9F%E6%9F%93','%E6%9C%BA%E5%99%A8%E7%8B%97','Oracle','%E6%8B%9B%E8%81%98','IIS'];parsetag();

小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!



免责声明:本文由投稿者转载自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,让我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

最新

返回顶部