一、Cobalt Strike安装
在Final Shell中通过“cd Server”命令进入昨天已经上传好的Server文件中,输入命令:
./teamserver 101.200.192.48 761001
“101.200.192.48 ”是自己的Final Shell中的主机号;
“761001”是自己任意设置的
输入上述命令后,会出现如下输出:
在阿里云服务器中配置40304端口:
将电脑的防火墙和安全保护等全部关闭,否则Cobalt Strike打开时会被电脑查杀:
下载解压Cobalt Strike文件夹:
进入cmd,查看是否有java,若没有则需下载:
点击“cobaltstrike-client.vbs”,配置连接:
Host:Final Shell中的主机号
Port:在Final Shell中查询的端口号
Password:在Final Shell中设置的密码
配置好点击“Connect”,出现如下界面:
二、Cobalt Strike常用命令
1.help
将Beacon的命令及相应的用法解释列出。
2.sleep
修改Cobalt Strike的心跳时间。
3.screenshot
在Cobalt Strike主界面中选择一个Beacon,进入交互模式,执行“screenshot”命令,获得此刻目标主机当前用户的桌面截图,将截图传回团队服务器。
4.Log Keystrokes模块
选择“Process List”"“Log KeyStrokes”选项。
用于将键盘记录注入进程。当目标主机使用键盘进行输入时,就会捕获输入的内容并传回团队服务器。
5.文件管理模块
单击右键,在弹出的快捷菜单中选择“Explore”"“File Browser”选项。
Beacon命令行:cd,切换文件夹;ls,列出目录;download,下载文件;upload,上传文件;execute,执行文件;mv,移动文件;mkdir,创建文件夹;delete,删除文件或者文件夹。
6.进程列表模块
单击右键,在弹出的快捷菜单中选择“Explore”"“Process List”选项。
Beacon命令行:ps,查看进程;kill,结束进程。
进程列表可以显示进程的ID、进程的父ID、进程名、平台架构、会话及用户身份。
三、回调函数
1.EnumDesktopsA
Windows API函数,用于枚举指定窗口站的所有桌面,作用是列出指定窗口站中的所有桌面名称。
函数原型:
BOOL EnumDesktopsA(
HWINSTA hwinsta,
DESKTOPENUMPROCA lpEnumFunc,
LPARAM lParam
);
函数参数:
hwinsta: 指定窗口站的句柄。
lpEnumFunc: 指向一个回调函数的指针,用于处理枚举过程中的每个桌面。
lParam: 传递给回调函数的额外参数。
2.EnumChildWindows
通过将每个子窗口的句柄依次传递给应用程序定义的回调函数,枚举属于指定父窗口的子窗口。
函数原型:
BOOL EnumChildWindows(
HWND hWndParent,
WNDENUMPROC lpEnumFunc,
LPARAM lParam
);
函数参数:
hWndParent: 父窗口的句柄,指定要枚举子窗口的父窗口。
lpEnumFunc: 指向一个回调函数的指针,用于处理枚举过程中的每个子窗口。
lParam: 传递给回调函数的额外参数。
四、参数分离
C++中可将程序的参数从程序代码中分离出来,以便在运行时可以通过命令行或其他方式传递参数给程序。这种做法可以使程序更加灵活,可以根据不同的需求传递不同的参数,而不需要修改源代码。通过程序参数分离,可以实现程序的参数化配置,提高程序的可定制性和可重用性。
简单的测试代码: