寄存器|汇编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
代理|Web - 代理正向代理与反向代理正向代理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
渗透练习和工具使用|Web1、对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
靶场测试|Webshiro框架,登录框
介绍项目;
以网信办为例,代表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|Web串联部署:有所有流量经过,可检测到异常流量并及时拦截;但设备出现问题会影响网络通信
旁路部署:不影响网络拓扑,但是只能检测流量
路由模式:防火墙三个接口(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|WebJAVA反序列化开发者重写 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反序列化漏洞|Web - 反序列化漏洞什么是序列化与反序列化seriallization 序列化 : 将对象转化为便于传输的格式, 常见的序列化格式:二进制格 式,字节数组,json字符串,xml字符串。
deseriallization 反序列化:将序列化的数据恢复为对象的过程。
序列化和反序列化:是为了保障脆弱的数据再互联网上完整正确传输。
序列化和反序列化这个行为原理上不存在漏洞。
开发者在使用序列化和反序列化自己添加某些功能、或是使用某些组件,若只使用官方提供的原生反序列化就不会出现反序列化漏洞。
反序列化成因:攻击者可以控制序列化后的字符串,
PHP反序列化serialize(); 将对象序列化成字符串
unserialize(); 将字符串反序列化回对象
魔术方法魔术方法是以双下划线(__)开头的特殊方法,它们允许对象对某些操作做出反应。
常用方法__construct():构造函数,在创建对象时自动调用
__destruct():析构函数,在对象被销毁时调用
__get() 和 __set():在访问不可访问属性时调用
__call() 和 __callStatic():在调用不可访问方法时调用
__ ...
Read more