Python boofuzz:';PED-RPC>;找不到远程方法重新启动目标';
我试图学习模糊未知协议以定位应用程序中漏洞的复杂性。我正在使用一个众所周知的易受攻击的应用程序,Disk Savy Enterprise 10.4.18,其中有一个已知的SEH缓冲区溢出 我目前有一个脚本,我正试图利用Python boofuzz:';PED-RPC>;找不到远程方法重新启动目标';,python,fuzzing,Python,Fuzzing,我试图学习模糊未知协议以定位应用程序中漏洞的复杂性。我正在使用一个众所周知的易受攻击的应用程序,Disk Savy Enterprise 10.4.18,其中有一个已知的SEH缓冲区溢出 我目前有一个脚本,我正试图利用进程\u monitor.py脚本,但无法重新启动正在崩溃的服务。我在目标机器上运行了process\u monitor.py,并且正在从我的模糊机器成功连接到它。我的问题是问题标题中的错误——当应用程序崩溃时,它“尝试”重新启动进程,但我得到了错误 PED-RPC>找不到远程方法
进程\u monitor.py
脚本,但无法重新启动正在崩溃的服务。我在目标机器上运行了process\u monitor.py
,并且正在从我的模糊机器成功连接到它。我的问题是问题标题中的错误——当应用程序崩溃时,它“尝试”重新启动进程,但我得到了错误
PED-RPC>找不到远程方法重新启动\u目标
我的python脚本的相关部分包括:
session = sessions.Session(
crash_threshold="10000", # Arbitrary, high crash threshold
check_data_received_each_request=0, # Don't check data after every request (slow)
restart_sleep_time=0.1,
sleep_time=0.1,
)
# Define target
target = sessions.Target(
connection = SocketConnection(dst, dport, proto='tcp')
)
# Define procmon options
target.procmon = pedrpc.Client(dst, 26002)
target.procmon_options = {
"proc_name" : "disksvs.exe",
"stop_commands" : ['net stop "Disk Savvy Enterprise"'],
"start_commands" : ['net start "Disk Savvy Enterprise"']
}
我正在目标计算机上用以下行启动process\u monitor.py
:
python process_monitor.py --port 26002 --crash_bin diskSaavy_Crashes.txt
以下是启动后以及崩溃后的结果输出:
Couldn't import dot_parser, loading of dot files will not be possible.
[03:11.00] Process Monitor PED-RPC server initialized:
[03:11.00] crash file: C:\Python27\Lib\site-packages\boofuzz\diskSaavy_Crashes.txt
[03:11.00] # records: 3
[03:11.00] proc name: None
[03:11.00] log level: 1
[03:11.00] awaiting requests...
[03:23.29] updating target process name to 'disksvs.exe'
[03:23.30] updating stop commands to: ['net stop "Disk Savvy Enterprise"']
[03:23.30] updating start commands to: ['net start "Disk Savvy Enterprise"']
[03:23.30] debugger thread-1523215410 looking for process name: disksvs.exe
[03:23.42] debugger thread-1523215410 found match on pid 2908
[03:23.48] updating target process name to 'disksvs.exe'
[03:23.48] updating stop commands to: ['net stop "Disk Savvy Enterprise"']
[03:23.48] updating start commands to: ['net start "Disk Savvy Enterprise"']
[03:23.49] debugger thread-1523215410 caught access violation: 'libpal.dll:004a9
19f movsx ebp,[eax+ebx] from thread 2424 caused access violation'
[03:23.49] debugger thread-1523215410 exiting
PED-RPC> remote method restart_target cannot be found
这是我的起毛机上boofuzz的输出,用于相同的崩溃:
[2018-04-08 15:23:49,996] Test Step: Failure summary
[2018-04-08 15:23:49,996] Info: procmon detected crash on test case #2: libpal.dll:004a919f movsx ebp,[eax+ebx] from thread 2424 caused access violation
[2018-04-08 15:23:49,996] Test Step: restarting target
[2018-04-08 15:23:49,996] Info: restarting target process
[2018-04-08 15:23:50,206] Error!!!! Restarting the target failed, exiting.
Traceback (most recent call last):
File "./boofuzz-diskSaavy.py", line 72, in <module>
main()
File "./boofuzz-diskSaavy.py", line 17, in main
fuzz(dst, dport)
File "./boofuzz-diskSaavy.py", line 69, in fuzz
session.fuzz()
File "/usr/local/lib/python2.7/dist-packages/boofuzz/sessions.py", line 414, in fuzz
self._fuzz_current_case(*fuzz_args)
File "/usr/local/lib/python2.7/dist-packages/boofuzz/sessions.py", line 893, in _fuzz_current_case
self._process_failures(target=target)
File "/usr/local/lib/python2.7/dist-packages/boofuzz/sessions.py", line 603, in _process_failures
self.restart_target(target)
File "/usr/local/lib/python2.7/dist-packages/boofuzz/sessions.py", line 680, in restart_target
raise sex.BoofuzzRestartFailedError()
boofuzz.sex.BoofuzzRestartFailedError
[2018-04-08 15:23:49996]测试步骤:故障摘要
[2018-04-08 15:23:49996]信息:procmon检测到测试用例#2:libpal.dll:0024线程中的004a919f movsx ebp[eax+ebx]导致访问冲突
[2018-04-08 15:23:49996]测试步骤:重新启动目标
[2018-04-08 15:23:49996]信息:重新启动目标流程
[2018-04-08 15:23:50206]错误!!!!重新启动目标失败,正在退出。
回溯(最近一次呼叫最后一次):
文件“/boofuzz disksavy.py”,第72行,在
main()
文件“/boofuzz disksavy.py”,第17行,主
模糊(dst、dport)
文件“/boofuzz disksavy.py”,第69行,fuzz格式
session.fuzz()
文件“/usr/local/lib/python2.7/dist packages/boofuzz/sessions.py”,第414行,在fuzz中
self.\u fuzz\u当前情况(*fuzz\u args)
文件“/usr/local/lib/python2.7/dist packages/boofuzz/sessions.py”,第893行,在当前情况下
自身过程失败(目标=目标)
文件“/usr/local/lib/python2.7/dist packages/boofuzz/sessions.py”,第603行,进程内故障
self.restart_目标(target)
文件“/usr/local/lib/python2.7/dist packages/boofuzz/sessions.py”,第680行,在restart_target中
提高性。BoofuzzRestartFailedError()
boofuzz.sex.BoofuzzRestartFailedError
我尝试了我的start\u命令的不同变体
,不发送proc\u name
也不发送stop\u命令
,运行process\u monitor.py
,并指定它们,执行不同的start\u命令
,例如包括net.exe的完整路径和不同的引号转义,等等,围绕服务名称。到目前为止,我试过的都不管用
查看sessions.py
,pedrpc.py
和多个其他文件,我看到\uuuu getattr\uuuuu
正在用于处理方法调用,但从我看到的情况来看,restart\u target
存在于sessions.py
中,因此我不确定为什么pedrpc声明无法找到restart\u target。。。我在拔头发。boofuzz正在做我想让它做的一切,除了重启
如果这还不够的话,我可以提供更多的信息,我将非常感谢能得到的任何帮助
谢谢 TL;DR该方法不存在,因为process\u monitor.py
已过期;请从下载最新副本,然后重试
感谢您在问题中提供了全面的调试信息。如果process_monitor.py打印堆栈跟踪,包括这也会有所帮助。:)
我在代码库中搜索了“PED-RPC>remote”,并在第2行()的boofuzz/pedrpc.py
中找到了它:
请注意细微的差别,{1}
的一点点,在您的输出中不存在。这表明您的process_monitor.py来自boofuzz的旧版本git Dull
显示此更改发生在,它最初包含在v0.0.8中
下载最新的process\u monitor.py
就可以了
如果流程监视器公布其版本,这可能会避免;我提交了。Hi jt,非常感谢您的回复——我希望您能看到这个。这实际上修复了进程的启动,这非常棒,但我现在遇到了DebugActiveProcess
的一个问题。我没有太多的空间来包含完整的错误/回溯,但这是它的要点:`raise pdx(“DebugActiveProcess(%d)”%pid,True)pdx:[50]DebugActiveProcess(2160):请求不受支持。`这发生在procmon启动或附加进程以及创建模糊会话后不久。从一些快速的研究中,可能归因于64位Win7?老实说,它看起来只是试图附加到一个不正确的PID——我已经在脚本中添加了一个restart_目标选项,但这也没有解决它。。。看起来它每次都试图启动进程,在某些情况下它已经在运行,但它没有连接到正确的PID。。嗯。@plast1K可能最好再发布一个问题,以便进一步讨论。我不能马上说出来。如果它锁定在一个不正确的PID上,你可以检查它锁定在哪个进程名上,看看它是否也匹配你给出的名称。是的,这是一个很好的调用,今晚我回到我的主计算机上后会创建一个,谢谢你的帮助!
sys.stderr.write('PED-RPC> remote method "{0}" of {1} cannot be found\n'.format(method_name, self))