从下半月/红队的进攻角度来看
好的,可以说我们正在尽最大努力避免检测或避免Blue Team意识到脚本导入了模块“ x ”。
我们在代码中实现了故障保险,以检查条件 a 是否为真。如果这不是我们的目标,我们希望脚本以一种不会引起注意的方式运行。
根据我的理解,Blue Team可以使用过程分析(是正确的词吗?)来找出python脚本在运行时的实际作用。
假设Blue Team不在查看实际的python脚本,而是查看python脚本进行的调用,则仅在条件 a 为true时才可以导入模块。然后,这将降低检测阈值。
但是,我遇到了python文档,该文档建议将所有导入都保留在脚本的开头。这样,我们将无法实现IF语句来选择是否应导入某些内容。
import sys
# ...other functions
def check_user():
# check user against target fingerprint
if a is True:
import x
TLDR :我可以使用IF / THEN语句导入模块吗?以后可以在python脚本中导入模块吗?
与安全性相关的问题:什么是可以用来分析python脚本及其调用/操作而不分析实际代码的好的程序?
答案 0 :(得分:0)
您可以在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被有条件导入
答案 1 :(得分:0)
您可以执行以下操作:
import sys
if sys.version_info > (2, 7):
import simplejson as json
else:
import json