首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Boofuzz在崩溃后不重新启动进程

Boofuzz在崩溃后不重新启动进程
EN

Stack Overflow用户
提问于 2016-09-03 01:46:34
回答 1查看 1.1K关注 0票数 3

我正在学习如何使用boofuzz进行模糊处理。我已经在Windows 7虚拟机上进行了所有设置。目标是Vulnserver应用程序。因为我知道TRUNGMONKSTET命令易受攻击,所以我将这些命令放在s_group列表中。我希望vulnserver.exe进程在执行TRUN命令时崩溃,然后重新启动,然后继续测试其他命令。下面是我使用的boofuzz脚本。

代码语言:javascript
复制
#!/usr/bin/python

from boofuzz import *
from boofuzz import pedrpc

host = "172.16.37.201"
port = 9999

# Define request
s_initialize("Vulnserver")
s_group("verbs", values=["TRUN", "GMON", "KSTET"])

if s_block_start("test", group="verbs"):
    s_delim(" ")
    s_string("AAA")
    s_string("\r\n")

s_block_end("test")

# Define Session
logger = FuzzLogger(fuzz_loggers=[FuzzLoggerText()])
session = sessions.Session(log_level=10, sleep_time=0.03, fuzz_data_logger=logger)
connection = SocketConnection(host, port, proto="tcp")
target = sessions.Target(connection)
target.procmon = pedrpc.Client(host, 26002)
target.procmon_options = {
    "proc_name":"vulnserver.exe",
    "stop_commands":['wmic process where (name="vulnserver.exe") delete'],
    "start_commands":['C:\\Temp\\vulnserver.exe 9999'],
}
session.add_target(target)
session.connect(s_get("Vulnserver"))
session.fuzz()

在启动vulnserver.exe之后,我运行我的boofuzz脚本,并得到以下错误:

代码语言:javascript
复制
.....
                                +0c: 41414141 (1094795585) -> N/A
                                +10: 41414141 (1094795585) -> N/A
                                +14: 41414141 (1094795585) -> N/A

                              disasm around:
                                0x41414141 Unable to disassemble

                              SEH unwind:
                                ffffffff -> ntdll.dll:774d61a5 mov edi,edi

[2016-09-02 13:24:06,178] Test Case: 53
[2016-09-02 13:24:06,178]     Info: primitive name: None, type: String, default value: AAA
[2016-09-02 13:24:06,178]     Info: Test case 53 of 8352 for this node. 53 of 8352 overall.
Traceback (most recent call last):
  File "auto.py", line 34, in <module>
    session.fuzz()
  File "C:\Python27\lib\site-packages\boofuzz\sessions.py", line 414, in fuzz
    self._fuzz_current_case(*fuzz_args)
  File "C:\Python27\lib\site-packages\boofuzz\sessions.py", line 846, in _fuzz_current_case
    target.open()
  File "C:\Python27\lib\site-packages\boofuzz\sessions.py", line 71, in open
    self._target_connection.open()
  File "C:\Python27\lib\site-packages\boofuzz\socket_connection.py", line 118, in open
    self._sock.connect((self.host, self.port))
  File "C:\Python27\lib\socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 10061] No connection could be made because the target machine actively refused it

该错误指示boofuzz未重新启动vulnserver.exe进程。如果有帮助,下面是process_monitor.py的输出。

代码语言:javascript
复制
C:\Tools\boofuzz>python process_monitor.py --crash_bin "crash.bin" --proc_name "vulnserver.exe" --port 26002
[01:23.48] Process Monitor PED-RPC server initialized:
[01:23.48]       crash file:  C:\Tools\boofuzz\crash.bin
[01:23.48]       # records:   0
[01:23.48]       proc name:   None
[01:23.48]       log level:   1
[01:23.48] awaiting requests...
[01:24.01] updating target process name to 'vulnserver.exe'
[01:24.01] updating stop commands to: ['wmic process where (name="vulnserver.exe") delete']
[01:24.01] updating start commands to: ['C:\\Temp\\vulnserver.exe 9999']
[01:24.01] debugger thread-1472837041 looking for process name: vulnserver.exe
[01:24.01] debugger thread-1472837041 found match on pid 1060
[01:24.06] debugger thread-1472837041 caught access violation: '[INVALID]:41414141 Unable to disassemble at 41414141 from thread 1904 caused access violation'
[01:24.06] debugger thread-1472837041 exiting
[01:24.06] debugger thread-1472837046 looking for process name: vulnserver.exe

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-09-04 04:24:03

TL;DR

重启失败是一系列错误的结果。运行pip install --upgrade boofuzz获取v0.0.5或更高版本,或者从Github下载最新的代码。

process_monitor错误

关键问题是,procmon检测到的失败被记录为信息,而不是失败,这意味着没有触发重启。Fix PR

boofuzz错误

这一行:

代码语言:javascript
复制
socket.error: [Errno 10061] No connection could be made because the target machine actively refused it

提示正在测试的应用程序最有可能崩溃。Boofuzz应该处理这个问题,而不是崩溃。这个问题是reportedfixed造成的。

其他process_monitor错误

请注意,在process_monitor.py输出中有这样一行:

代码语言:javascript
复制
[01:23.48]       proc name:   None

未设置进程名称!错误在process_monitor.py第368行:

代码语言:javascript
复制
if opt in ("-p", "--proc_Name"): #oops!

应该是--proc_name而不是--proc_Name

此问题已在最新代码中fixed。但一种解决方法是使用短名称-p而不是--proc_name

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39298133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档