С точки зрения пентестера / красной команды в атаке

Хорошо, допустим, мы делаем все возможное, чтобы избежать обнаружения или не дать Blue Team понять, что сценарий импортирует модуль ' x '.

Мы реализуем отказоустойчивый код в нашем коде, который проверяет, истинно ли условие a . Если это не наша цель, мы хотим, чтобы сценарий действовал так, чтобы не привлекать внимания.

Насколько я понимаю, Blue Team может использовать анализ процесса (это правильное слово?), Чтобы узнать, что на самом деле делает скрипт python при запуске.

Предполагая, что Blue Team не смотрит на фактический скрипт python, а вместо этого, глядя на вызовы, которые делает скрипт python, возможно ли импортировать модуль только тогда, когда условие a истинно. Тогда это снизит порог обнаружения.

Однако я наткнулся на документацию Python, в которой рекомендуется сохранять весь импорт в начале скрипта. При этом мы не сможем реализовать операторы IF, чтобы выбирать, должны мы что-то импортировать или нет.

Псевдокод (Python)

import sys
# ...other functions
def check_user():
    # check user against target fingerprint
    if a is True:
        import x

TL; DR : Могу ли я использовать операторы IF / THEN для импорта модулей? Могу ли я позже импортировать модуль в скрипт Python?

Вопрос, связанный с безопасностью . Какую программу можно использовать для анализа скриптов Python и их вызовов / действий без анализа фактического кода?

2
hemlck 15 Сен 2018 в 21:56

2 ответа

Лучший ответ

Вы можете условно импортировать модули в Python.

Пример :

def check():
   if sys.version_info[0] == 2:
      from itertools import izip
   else:
      izip = zip

   a=[1,2,3]
   b=[4,5,6]

   print(izip)
   for c in izip(a,b):
       print(c)

Здесь на основе версии Python izip импортируется условно

0
Kavya Vishwanath B 15 Сен 2018 в 19:02

Вы можете сделать что-то вроде ниже:

import sys
if sys.version_info > (2, 7):
    import simplejson as json
else:
    import json
0
ImGroot 15 Сен 2018 в 19:04