系统安全攻防实验
实验目的熟悉Windows和linux系统结构和安全机制,掌握远程渗透的过程和技术,学会利用Metasploit工具软件和渗透攻击代码实施渗透和防御分析。学会针对漏洞进行补丁修补,并相关的安全设置。实验环境WindowsLinux虚拟机镜像名称模拟主机类型域名区间网段IP地址...
- 实验目的
- 熟悉Windows和linux系统结构和安全机制,掌握远程渗透的过程和技术,学会利用Metasploit工具软件和渗透攻击代码实施渗透和防御分析。学会针对漏洞进行补丁修补,并相关的安全设置。
- 实验环境
- Windows
- Linux
虚拟机镜像名称 | 模拟主机类型 | 域名 | 区间网段 | IP地址 |
Back Track 5 | 初始攻击点主机 | attack.dvssc.com | DMZ区 | 10.10.10.128(DHCP) |
OWASP BWA v0.94 | 门户网站服务器 | DMZ区 | 10.10.10.129(DHCP) | |
Win2003 Metasploitable | 后台服务器 | service.dvssc.com | DMZ区 | 10.10.10.130(DHCP) |
Linux Metasploitable | 网关服务器 | gate.dvssc.com | 连接DMZ区和企业内网 | 10.10.10.254(手工) 192.168.10.254(GW) |
WinXP Metasploitable | 内网客户端主机 | intarnet.dvssc.com | 企业内网 | 192.168.10.128(DHCP) |
- 实验要求
- Windows远程渗透攻击
实验任务1:利用Metasploit进行Windows远程渗透攻击实验,获取访问权。
实验任务2:Windows系统远程渗透攻击与分析团队对抗
- Linux远程渗透攻击
实验任务1:利用Metasploit进行Linux远程渗透攻击
实验任务2:利用Metasploit进行Linux远程渗透攻击与分析
- 实验内容
(1)信息搜集
扫描主机是否活跃
1.使用ICMP Ping命令探测主机是否活跃
由图可以看到,成功收到www.dvssc.com(10.10.10.129)主机的回应,说明主机是活跃的。
2.通过DNS和IP地址挖掘目标网络信息
由于这里我们是自己搭建的目标渗透网站,不需要相关的DNS和IP地址挖掘目标网络信息,但是实际渗透时候需要通过以下几个角度进行挖掘信息:
- whois域名注册信息查询
- nslookup和dig域名查询
- IP2Location地理位置查询
- netcraft网站提供的信息查询服务
- IP2Domain反查域名(查询哪些域名指向同一个IP地址,用于“旁注”)
- Google Hacking(SiteDigger和Search Diggity,搜索网站目录结构,特定类型文件,网站中E-mail地址,易存仔SQL注入漏洞页面)
3.利用metasploit中的arp_sweep使用ARP请求枚举本地局域网络中的所有活跃主机
可以看到10.10.10.1/24网段上面有5台活跃主机,分别为10.10.10.1、10.10.10.2、10.10.10.129、10.10.10.130、10.10.10.254,其中前两个IP地址为宿主主机上模拟的虚拟网卡地址,而后四个IP则为目标渗透网站的DMZ区上活跃主机地址。Arp_sweep模块只能探测同一子网中的活跃主机,对于远程网络,可以使用更为强大的Nmap扫描器进行探测。
4.使用Nmap进行主机探测
首先用nmap -sn 10.10.10.0/24进行主机探测
我们可以看到发现如上一样的存活主机,相比arp_sweep多了10.10.10.128。
操作系统辨识
1.使用Nmap探测目标主机的操作系统版本
我们注意图中扫描结果的结束部分,显示出10.10.10.129操作系统是Linux系统,内核版本为2.6.X。
我们用nmap -A获取更详细的服务和操作系统信息
看到图中的信息更加详尽,包括各个开放端口的服务和版本信息,看到扫描到robots.txt中的目录/administrator/ /cache/ ...这些都是我们在后面渗透可以利用的信息。
我们看到这里还把OWASPBWA给扫出来了,这是更详细的目标网站服务器的系统版本,在知道目标主机的系统版本更利于我们用专门的版本所可能有的漏洞去渗透。
端口扫描与服务类型扫描
1.这里用syn端口扫描器,下面针对门户网站服务器主机的扫描结果,与Nmap的扫描结果基本一致。
2.我们再用Nmap的端口扫描对网站服务器主机再进行一次端口扫描。
Nmap扫描端口可以看到端口上开放哪些服务的简单信息,我们继续获取更加详细的服务版本等信息。
3.我们把上面扫描的结果进行总结下。
主机 | 操作系统 | 主要开放端口 | 对应服务版本 |
网站服务器(10.10.10.129) | Linux 2.6.X | FTP(21) | Vsftpd 2.2.2 |
SSH(22) | OpenSSH 5.3p1 | ||
HTTP(80) | Apache httpd 2.2.14 | ||
Netbios-ssn(139) | Samba smbd 3.X | ||
Imap(143) | Courier Imapd(released 2008) | ||
Netbios-ssn(445) | Samba smbd 3.X | ||
Commplex-link(5001) | 未知 | ||
HTTP(80) | Apache Tomcat/Coyote JSP engine 1.1 |
针对这些端口我们有以下的攻击思路
可能的攻击路线 | 攻击对象 |
口令猜解 | SSH、Samba、SMB、FTP、Telnet、MySQL、PostgreSQL |
口令嗅探 | FTP、Telnet |
系统漏洞深入扫描 | 开放端口 |
系统漏洞利用 | 开放网络服务中存在的安全漏洞 |
web应用漏洞扫描 | Apache、Apache Tomcat |
web应用漏洞利用 | Apache、Apache Tomcat |
常见网络服务扫描
1.Telnet服务扫描
如图,IP地址为10.10.10.254主机(网关服务器)开放telnet服务,这、确认出这台主机操作系统为Ubuntu 8.04,主机名为metasploitable。
2.ssh服务扫描
使用Metasploit中的ssh_version辅助模块,很快在网络中定位了两台开放SSH服务的主机,分别是10.10.10.129(网站服务器)和10.10.10.254(网关服务器),并且显示了SSH服务软件及具体版本号。
3.Oracle数据库服务查点
如图,可以看到10.10.10.130的1521端口开了Oracle数据库。
口令猜测与嗅探
1.SSH服务口令猜测
通过ssh_login我们暴力破解出了网关服务器的ssh密码,获得这台服务器的访问权,但是明显这里的密码过于简单,而且我是因为事先知道密码,临时构造的一个密码字典来爆破的,现实实际情况很难能通过暴力破解来得到密码。
2.psnuffle口令嗅探
如图,我们成功窃听到网站服务器10.10.10.129访问门户网站的服务器10.10.10.254 FTP服务的口令认证过程,发现FTP服务的用户名与口令是msfadmin/msfadmin,这样就得到了网关服务器的FTP服务访问权限。(过程中,我们在网站服务器10.10.10.129主机上向网关服务器发送FTP登录请求,并成功认证,以让攻击机psnuffle窃听成功)
网络漏洞扫描
如图,使用openvas对www.dvssc.com(129.0.0.1)扫描,结果显示大量安全漏洞。
(2)Windows的MS08-067漏洞攻击及分析
首先启动metasploit,并搜索对应漏洞的模块。
接下来,就准备设置各种参数,这里shell我们选择的是反向连接。
如图,攻击IP设置10.10.10.130,使用默认攻击端口445,攻击成功后,后门回连到主机10.10.10.128的5000端口。目标系统类型为第7号,就是Win 2003 SP0,没有数据执行保护功能。之后,我们就实现攻击exploit,渗透成功!
如图,我们获得了目标主机的控制,ipconfig看到控制的主机ip,果然是10.10.10.130。接下来,就可以执行任意命令进行进一步攻击。接下来我们进行漏洞分析,可知ms08-067漏洞是由于NetPwPathCannonicalize函数中的栈溢出原理,这里我们取一段代码模拟这个函数中的栈溢出漏洞。
我们可以看到代码逻辑在verify_password中的缓冲区只有44个字节,所以当写入44个字节的数据时,第45个字节也就是“/0”字符串结尾符将覆盖authenticated低字节的1,从而实现了密码成功的情况。我们继续用ollydbg动态逆向分析下对应函数调用前栈数据变化情况,输入44个字节时,函数调用后,可以看到对应authenticated被覆盖为0,所以也就通过密码验证。
(3)Linux的usermap_script安全漏洞攻击及分析
直接设置好目标主机对应参数
可以看到,成功通过usermap_script获得Linux网关服务器的控制权,如图ifconfig正是我们设置目标主机的10.10.10.254。
接下来分析下usermap_script漏洞原理,该漏洞为CVE-2007-2447,我们查阅到官网该漏洞信息如下
官方描述是Samba 3.0.0至3.0.25rc3中smbd中的MS-RPC功能允许远程攻击者通过(1)SamrChangePassword功能的shell元字符执行任意命令,当启用smb.conf中“用户名映射脚本”选项时,允许远程认证的用户通过(2)远程打印机中的其他MS-RPC功能的外部元字符执行命令,以及(3)文件共享管理。
直接来看usermap_script.rb这个代码攻击原理
可以看到该代码的逻辑是通过指定一个用户名包含shell元字符,从而导致samba服务程序无法使用一个有效的偏移构造数据包下一部分,攻击者即可通过这个偏移值来造成程序的内存覆盖到一个函数的指针,来执行cmd。
- 实验总结
通过使用metasploit来进行一次完整的系统攻击,并且分析攻击原理和代码,学习到了曾经经典漏洞的原理以及攻击方法,分析的过程中也掌握如何可以避免这种漏洞,比如栈溢出漏洞,必须对代码中内存区的写入检验是否有检查内存溢出的代码,这样可以在代码的根源避免漏洞产生。在测试攻击时候,能够体会到metaspolit工具的模块化和自动化快速,这也是发现自己需要多练习写Payload,尝试自己写payload代码然后成功实现漏洞攻击,这样才说明掌握了漏洞原理和攻击方法。
更多推荐
所有评论(0)