寄存器
1、push和pop指令演示入栈出栈,对内存,寄存器,立即数三种情况模拟push内存push dword ptr ds:[0x12FFDC] [0x12FFDC]地址与对应的值 原始堆栈 运行后,栈顶地址减小,数值和地址 [0x12FFDC] 的数值相同 寄存器push ebx EBX的值 原始堆栈 运行结果,栈顶地址减小,数值和寄存器 EBX 的数值相同 立即数push 0x12345678 原始堆栈(注意栈顶) 运行后,栈顶地址减小,数值与输入的立即数的数值相同 pop内存pop dword ptr ds:[0x12FFF0] 地址[0x12FFF0] 原始堆栈 运行后,地址[0x12FFF0]值改变为弹出的堆栈中的值 栈顶指针地址增加 寄存器pop EAX EAX 原始堆栈 运行后,弹出数据,EAX寄存器值改变为弹出的堆栈中的值 栈顶指针地址增加 立即数pop 不支持直接操作立即数 2、使用mov,lea,sub,add等指令模拟push和pop的行为模拟pushpush eax sub esp,0x4mov dword ptr ss: ...
Read more
简单汇编指令
r :表示操作数:必须是寄存器 r/m :可以使寄存器或是内存单元 imm :表示立即数 MOV指令:1、MOV r/m8,r8 ​ MOV [0x34], AL ​ MOV BL, AL 2、MOV r/m16,r16 ​ MOV [0x1234], BL ​ MOV AX, BX 3、MOV r/m32,r32 ​ MOV [0x86531254], ECX ​ MOV EAX, ECX 4、MOV r8,r/m8 ​ MOV BH, [0x65] 5、MOV r16,r/m16 ​ MOV AX, [0x6546] 6、MOV r32,r/m32 ​ MOV EAX, EBX ​ MOV EAX, [0x6A376833] 7、MOV r8, imm8 ​ MOV BL, 66H 8、MOV r16, imm16 ​ MOV CX, 6666H 9、MOV r32, imm32 ​ MOV EDX, 11451419H ADD指令ADD AL, imm8 ​ ADD AL, 66H ADD AX, imm ...
Read more
提权
提权如何提权?–>对linux,对windows下载systeminfo文件,mysql提权 Windows提权MySQLudf提权udf = ‘user defined function’,用户自定义函数。通过添加新函数对MySQL的功能进行扩充 内核提权缓冲区溢出 烂土豆Linux提权脏牛提权Raven2获取root权限 要求使用反弹shell结合udf提权,整个过程尽量在攻击者主机操作 内网部署一台web主机,实现正向代理直接访问内网主机,使用hydra爆破内网主机弱口令再使用3389登录上去,搭建网卡的操作可以直接在raven2虚拟机上操作 信息收集扫描 raven 的IP,初步确定为 192.168.142.148 nmap -sP 192.168.142.1/24 访问192.168.142.148确定为目标主机 扫描开放的端口,开放端口为22、80、111 nmap -sV 192.168.142.148 111 端口开放了 rpcbind 服务,查看枚举所有注册的 RPC 服务 rpcinfo -p 192.168.142.148 进行目录 ...
Read more
代理
正向代理与反向代理正向代理Windows 10 主机启动web服务充当外网服务器的角色 Windows Server 2022 充当内网主机角色 kali主机充当攻击者的角色 服务器转发客户端的流量一般用于访问内网的某台主机(主机不出网)以服务器为跳板主机去访问内网主机 反向代理内网主机不出网,没有办法直接反弹控制权限,借助失陷主机上传frps服务器让失陷web服务主机转发内网主机木马权限来控制电脑 反向代理场景2:木马反链端口改为8888,msf监听端口改为22221、生成木马文件时修改连接端口号为8888 2、修改 frpc.ini 配置文件 ​ local_port = 2222​ remote_port = 8888 三台主机window sserver 2022 vmnet1仅主机模式,不配置网关,ip为192.168.227.129/24 win10,一张nat网卡自动获取ip(192.168.142.135/24),一张vmnet1仅主机模式网卡,ip为192.168.227.100/24 kali主机,nat模式(192 ...
Read more
NTLM哈希与Kerberos
Nessus主机扫描器、IP扫描器 AWVS网页扫描器 NTLM应用场景工作组环境中的本地和网络认证。 需要向后兼容的旧版Windows系统。 某些不支持Kerberos协议的应用程序。 NTLM的工作原理NTLM的认证过程分为三个主要步骤:协商(Negotiate)、质询(Challenge)和认证(Authentication)。以下是具体流程: 协商阶段:客户端向服务器发送包含支持的功能和协议版本的协商消息(Type 1)。 质询阶段:服务器生成一个随机数(Challenge),并将其发送给客户端,同时缓存该值。 认证阶段:客户端使用缓存的密码哈希值对Challenge进行加密,生成响应(Response),并将其发送给服务器。服务器通过域控制器验证响应是否正确,从而完成认证。 NTLM的加密机制NTLM使用NTLM Hash作为核心加密算法。其生成过程如下: 将用户密码转换为16进制格式。 将16进制字符串进行Unicode编码。 使用MD4算法对编码后的字符串进行哈希,生成NTLM Hash。 NTLM Hash存储在Windows系统的SAM文件中,用于本地认证时与 ...
Read more
渗透练习和工具使用
1、对testfire.net网页的渗透练习网络空间搜索引擎扫描出公网地址:65.61.137.117 C段收集新建WebFinder扫描 65.61.137.117这个网段的C段扫描结果 目录爆破 证书收集 子域名查询oneforall工具查询子域名 httpx存活扫描域名文件 扫描情况(httpx -l 1.txt -title -content-length -status-code) 2、天狐工具箱信息收集工具的使用WebFinder扫描C段,发现隐藏资产扩大攻击面 指纹信息扫描通过分析目标系统反馈的各种特征信息,来精准化进行漏洞利用 指纹信息扫描-EHoleEHole_windows_amd64.exe finger -l 1.txt 指纹信息扫描-P1fingerP1finger64.exe -uf 1.txt 指纹信息扫描-TideFingerTideFinger_windows_amd64_v3.2.3.exe -uf 1.txt# 1.txthttp://testfire.nethttps://www.baidu.com 御剑2通过目录扫描发 ...
Read more
靶场测试
shiro框架,登录框 介绍项目; 以网信办为例,代表xx公司现场值守xx设备,研判告警流量,根据情况应急响应 具体干了什么活; 直接内网访问安全设备,看告警,上报情况,写日报。 渗透测试信息收集指纹信息后端使用的是PHP语言 nmap端口扫描nmap -p- 192.168.142.147# 开放了 21 端口、22 端口、 80 端口、 3306 端口、 6379 端口 目录扫描dirb http://192.168.142.147 攻击测试泄露源码,www.ziphttp://192.168.142.147/www.zip 目录遍历-1http://192.168.142.147/dist/ 目录遍历-2http://192.168.142.147/css/ 弱密码发现登录窗口尝试进行登录测试 进行弱密码爆破 ssh弱密码hydra -L user.txt -P password.txt -t 32 -vV 192.168.142.147 ssh SSH软连接 ssh root@192.168.142.147 -p 22 # root 用户,密码 ...
Read more
企业网络环境部署与Cobalt Strike
串联部署:有所有流量经过,可检测到异常流量并及时拦截;但设备出现问题会影响网络通信 旁路部署:不影响网络拓扑,但是只能检测流量 路由模式:防火墙三个接口(trust、undtrust、dmz)配置IP,考虑路由表问题 透明模式:接口不配置IP,当成交换机接口 Cobalt Strike:默认端口号50050 1、使用如下网站画个网络拓扑图,将防火墙,waf,IDS,IPS,态势感知,探针等加入途中,解释每一个设备的主要作用和部署模式(https://excalidraw.com/) 2、演示cs四种上线方式中的其中两种首先在kali主机上开启CS的服务端 (注意,这里填写的IP为CS服务器的的IP,本次实验使用kali作为CS服务器所以填写kali的IP) 然后使用CS的客户端去连接 host:CS服务器地址port:服务器端口user:化名 使用Windows Stager Payload添加一个木马 本次生成好的木马,可双击运行 返回CS客户端可以看见有一个连接 使用PoerShell 在受害主机上开启一个服务,需要借助之前的会话连接 生成的命令,直接本地运行即可 p ...
Read more
JAVA反序列化与Docker
JAVA反序列化开发者重写 readObject 方法,该 readObject 方法调用了别的方法,最终执行到了例如 Transform 方法的危险方法。 什么是反序列化漏洞PHP 的反序列化和 java 的反序列化是两种不同的类型,序列化和反序列化本身没有漏洞点,只是为了实现数据的完整高效的传输。 PHP 反序列漏洞是由于类里面的魔术方法调用了某个函数,该危险函数又调用了别的函数,最终执行到了命令执行函数的位置。 JAVA 反序列化漏洞是由于开发者重写了 readObject 方法,该 readObject 方法方法调用了别的方法,最终执行到了例如 Transform 方法的危险方法。 1、使用java定义自己的类,继承笔记里的Person类,实例化自己的类调用一下talk函数class extend_personpackage test_java;public class extend_person extends Person { public extend_person() { // TODO Auto-generated constructor stu ...
Read more
PHP反序列化漏洞
什么是序列化与反序列化seriallization 序列化 : 将对象转化为便于传输的格式, 常见的序列化格式:二进制格 式,字节数组,json字符串,xml字符串。 deseriallization 反序列化:将序列化的数据恢复为对象的过程。 序列化和反序列化:是为了保障脆弱的数据再互联网上完整正确传输。 序列化和反序列化这个行为原理上不存在漏洞。 开发者在使用序列化和反序列化自己添加某些功能、或是使用某些组件,若只使用官方提供的原生反序列化就不会出现反序列化漏洞。 反序列化成因:攻击者可以控制序列化后的字符串, PHP反序列化serialize(); 将对象序列化成字符串 unserialize(); 将字符串反序列化回对象 魔术方法魔术方法是以双下划线(__)开头的特殊方法,它们允许对象对某些操作做出反应。 常用方法__construct():构造函数,在创建对象时自动调用 __destruct():析构函数,在对象被销毁时调用 __get() 和 __set():在访问不可访问属性时调用 __call() 和 __callStatic():在调用不可访问方法时调用 __ ...
Read more