сервер не отвечает при запуске с procmon - PullRequest
1 голос
/ 20 марта 2020

Я использую boofuzz ​​0.1.6 на машине с Ubuntu. Я пытаюсь заставить process_monitor_ unix подключиться к серверной программе, которую я хочу записать. Когда я запускаю procmon и мой скрипт, я получаю следующий вывод для procmon:

[05:47.20] Process Monitor PED-RPC server initialized:
[05:47.20]   listening on:  0.0.0.0:26002
[05:47.20]   crash file:    /home/rico/PycharmProjects/iec104_server_fuzz/boofuzz-crash-bin
[05:47.20]   # records:     0
[05:47.20]   proc name:     None
[05:47.20]   log level:     1
[05:47.20] awaiting requests...
[05:47.24] updating target process name to './simple_server'
[05:47.24] updating stop commands to: [u'kill -SIGINT $(pidof simple_server)']
[05:47.24] updating start commands to: [u'/home/rico/iec60870/lib60870-master/lib60870-C/examples/cs104_server/simple_server']
[05:47.24] updating crash bin filename to 'boofuzz-crash-bin-2020-03-19T16-47-24'
[05:47.24] Starting target...
[05:47.24] starting target process
[05:47.24] done. waiting for start command to terminate.
APCI parameters:
 t0: 10
 t1: 15
 t2: 10
 t3: 20
 k: 12
 w: 8

Вывод «Параметры APCI ...» - это сообщение сервера, которое отправляется при каждом запуске сервера. Поэтому я думаю, что он работает. Моя проблема в том, что он не отвечает на входящие tcp-пакеты. Вывод моего fuzzscript следующий:

[2020-03-19 17:47:24,314]     Info: Web interface can be found at http://localhost:26000
[2020-03-19 17:47:24,316] Test Case: 1: activate->s_formatAPDU.no-name.1 
[2020-03-19 17:47:24,316]     Info: Type: Bytes. Default value: b'\x91\xef\xa5'. Case 1 of 270 overall.
[2020-03-19 17:47:24,316]   Test Step: Calling procmon pre_send()

Он застрял на этом шаге теста. Когда я сначала запускаю сервер, затем procmon, затем fuzzscript, я получаю следующую ошибку:

[10:29.51] Process Monitor PED-RPC server initialized:
[10:29.51]   listening on:  0.0.0.0:26002
[10:29.51]   crash file:    /home/rico/PycharmProjects/iec104_server_fuzz/boofuzz-crash-bin
[10:29.51]   # records:     0
[10:29.51]   proc name:     None
[10:29.51]   log level:     1
[10:29.51] awaiting requests...
[10:29.55] updating target process name to './simple_server'
[10:29.55] updating stop commands to: [u'kill -SIGINT $(pidof simple_server)']
[10:29.55] updating start commands to: [u'/home/rico/iec60870/lib60870-master/lib60870-C/examples/cs104_server/simple_server']
[10:29.55] updating crash bin filename to 'boofuzz-crash-bin-2020-03-19T21-29-55'
[10:29.55] Starting target...
[10:29.55] starting target process
[10:29.55] done. waiting for start command to terminate.
APCI parameters:
 t0: 10
 t1: 15
 t2: 10
 t3: 20
 k: 12
 w: 8
 Starting server failed!
 [10:29.56] searching for process by name "./simple_server"
 Exception in thread Thread-1:
 Traceback (most recent call last):
 File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
self.run()
File "/home/rico/.local/lib/python2.7/site-packages/boofuzz/utils/debugger_thread_simple.py", line 130, in run
self.spawn_target()
File "/home/rico/.local/lib/python2.7/site-packages/boofuzz/utils/debugger_thread_simple.py", line 115, in spawn_target
self.watch()
File "/home/rico/.local/lib/python2.7/site-packages/boofuzz/utils/debugger_thread_simple.py", line 166, in watch
for (pid, name) in _enumerate_processes():
File "/home/rico/.local/lib/python2.7/site-packages/boofuzz/utils/debugger_thread_simple.py", line 36, in _enumerate_processes
yield (pid, psutil.Process(pid).name())
File "/home/rico/.local/lib/python2.7/site-packages/psutil/__init__.py", line 346, in __init__
self._init(pid)
File "/home/rico/.local/lib/python2.7/site-packages/psutil/__init__.py", line 386, in _init
raise NoSuchProcess(pid, None, msg)
NoSuchProcess: psutil.NoSuchProcess no process found with pid 21574

Теперь это кажется мне странным, потому что pid 21574 не является pid работающего сервера. обработать. Кто-то сейчас больше об этом? Даже дикие догадки приветствуются! Если вам нужны другие сведения, я с радостью предоставлю их.

1 Ответ

1 голос
/ 24 марта 2020

Я исправил ошибку, удалив строку "proc_name": '/home/rico/iec60870/lib60870-master/lib60870-C/examples/cs104_server/simple_server' в моем fuzzscript. Я также должен был убедиться, что сервер! Нет! уже работает, когда я запускаю свой fuzzscript. Теперь сервер запускается в терминале, который запускает procmon.

Я не знаю, есть ли лучший способ исправить это, но по крайней мере procmon может сделать свою работу сейчас.

...