记一次样本分析实习面试

1.你是怎么判定快速判定样本黑白的?

根据样本类型来进行相应的判断

  1. 脚本类的程序

打开后能够直接查看脚本的代码内容,看样本是否有易于正常样本的行为,

比如以最小化或者静默方式运行,样本中包含C2地址,或是采用混淆,这里的混淆比如说是采用大小写绕过,或者是url的拼接之类的,或是脚本内容本身就是加密或进行过某种编码。

  1. 文档类样本分析

打开之后诱导用户输入账户密码等

诱导用户手动接触宏或者解除编辑功能的禁用状态

文档钓鱼,作为跳板,在文档中存在恶意链接

  1. exe可执行文件

是否存在解密过程,比如说自身解密释放文件

查看是否存在可疑字符串

  1. DLL文件

导出函数的异常

  1. 多函数的地址相同
  2. 函数具体内容为0,或是无意义的指令
  3. 函数名称与杀软或安全厂商有关
  4. 函数名为随机乱码

2.给你大量的样本,不使用沙箱或虚拟机,怎么快速的判定?

3.反调试、反沙箱有遇到过什么新颖的手法吗?

1.时间规避类

    1. 延时执行——sleep
      • 沙箱加速
    2. getTickCount——
      • 针对沙箱的加速机制
      • 沙箱hook掉计算时间间隔的api(GetLocalTime,GetSystemTime)
      • 从外部服务获取时间NTP
    3. API-flooding无限循环调用正常的API,将延时和正常的业务结合在一起,如何规避的?
      • 限制API调用频率
      • 设置API配额(允许使用的次数)
    4. 内联汇编,在循环中执行无效操作
      • 沙箱应对措施:设置相似的延时代码为恶意代码
  1. 环境检测类
    1. 屏幕分辨率
    2. 系统语言
    3. 主机名,用户名
    4. 注册表——沙箱中有特定的注册表路径
    5. 进程:检测正常主机应该有的进程,检测沙箱中特有的进程
    6. 最近使用文件——近期是否有用户使用过的痕迹
      • 相似的还有临时文件夹,特定目录
    7. 开机时间
      • 系统正常运行时间太短
      • 系统正常运行时间太长
    8. wifi检测——windows虚拟机将所有网络连接识别为有线连接

所以没有任何wifi连接记录的主机很可能就是虚拟机

                9.检测活跃窗口的数量

        3.硬件检测类

        4.用户交互类

4.沙箱内部检测规则编写,写的是什么规则啊?

5.yara写过吗?如果给你一个后门或勒索病毒你会怎么写规则?你写的时候可能会关注什么东西提取出来写yara规则?

文件的哈希值

文件中的特定的字符串

导入函数

行为特征

6.简单讲一下windows进程是怎么加载的?

答:

  1. 创建进程的虚拟地址空间
  2. 初始化进程的虚拟地址空间
    1. windows装载器开始装载PE文件
      • 读取PE文件,按照PE格式进行解析
      • 先判断PE头中的imagebase所定义的加载地址是否可用,如果已经被占用,则重新分配一块大小为sizeofimage的空间
      • 根据节表信息,基于内存对齐,将文件的各个节映射到分配的空间中。
      • 如果文件被加载的地址不是imagebase定义的地址,则修正imagebase(基于重定位表修改内存)
        1. 你说一下是怎么实现重定位表的过程的?
        2. 在应用程序中根据重定位表(DataDirectory[6])定位到硬编码的偏移
        3. 根据偏移定位到硬编码的值,减去ImageBase(RVA-ImageBase)
        4. 加上实际的加载地址,将偏移处硬编码的值更新。
      • 解析导入表:根据PE文件的输入表加载所需要的DLL到进程空间,然后替换IAT表内的数据为实际调用函数的地址
      • 根据PE头内的数据生成初始化的堆和栈
      • 最后加载器将控制权交给PE文件的入口点,address of entrypoint

7.添加shellcode的时候32位和64位有什么区别吗?

        1.寄存器大小不同

        2.内存地址不同

        3.指令集不同

        4.栈对齐不同

8.讲一下hook吧,你了解的有什么?

  1. IAThook有什么缺点吗?

        如果目标函数在内核模式下执行,IATHook无法触发

        只能针对导入表中的函数进行HOOK

        IAT HOOK 和InlineHook的本质区别是什么?

                IAT修改函数指针,InlineHook修改函数体

8.DLL注入有哪几种方式啊?

1.创建远程线程注入

2.注册表注入

3.setWindowsHookEx

4.DLL劫持

9.简单说一下远程线程dll是怎么实现注入的?  

10.接下来你的研究方向和职业规划能简单讲一下吗?

11.编程语言哪一个是比较擅长的?

12.威胁情报呢?威胁情报感兴趣吗?如果给你一个攻击事件或是报告,你能从报告里提取出什么有价值的信息?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tntlbb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值