赞
踩
一般来说,只知道svchost.exe被注入了shellcode,但是不知道注入了那个,需要扫描当前系统的所有svchost.exe时,人工输入进程的PID比较麻烦,简单写了个脚本来实现自动输入参数。
import psutil import os processdict = {} # 存放进程信息的字典 path = os.path.split(os.path.realpath(__file__))[0]#当前脚本路径 def main(): print("----------------------------- scan processes info --------------------------------") # show processes info pids = psutil.pids()#返回的是个列表 for pid in pids: p = psutil.Process(pid) process_name = p.name() processdict[pid]=process_name#添加进字典 for ProcessPID, ProcessName in processdict.items(): #print("进程名:"+str(ProcessName)+" PID="+str(ProcessPID)) if ProcessName == "svchost.exe" : #string = path + "\\yara32.exe " + path +"\\XXX.yarc " + str(ProcessPID) string = path + "\\yara64.exe " + path +"\\XXX.yarc " + str(ProcessPID) print(str(string)) os.system(string) print(str(ProcessName) + "扫描完成,PID为" + str(ProcessPID) + '\n') if '__main__' == __name__: main()
一些小坑,首先得装psutil库,但这个库豆瓣源是没有滴,使用清华大学的源即可安装
https://pypi.tuna.tsinghua.edu.cn/simple/
其次,需要到客户的机器上去扫描,客户可没有python环境,推荐在U盘里面装一个python,然后将对应工具拷贝到python安装目录去执行即可。
在然后,yara扫描svchost.exe需要管理员权限,记得提权。
E:\yara64\python>python.exe TraverseProcess.py ----------------------------- scan processes info -------------------------------- E:\yara64\python\yara64.exe E:\yara64\python\XXX.yarc 600 svchost.exe扫描完成,PID为600 E:\yara64\python\yara64.exe E:\yara64\python\XXX.yarc 1016 svchost.exe扫描完成,PID为1016 E:\yara64\python\yara64.exe E:\yara64\python\XXX.yarc 1060 svchost.exe扫描完成,PID为1060 E:\yara64\python\yara64.exe E:\yara64\python\XXX.yarc 1108 svchost.exe扫描完成,PID为1108 E:\yara64\python\yara64.exe E:\yara64\python\XXX.yarc 12140 error scanning 12140: can not attach to process (try running as root) svchost.exe扫描完成,PID为12140 ...
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。