【技术分享】黑与被黑的五种最简单的方法
作者:admin | 时间:2016-11-28 22:21:29 | 分类:黑客技术 隐藏侧边栏展开侧边栏
概述
本文的目的是分享一些攻击者访问系统并获取数据的最简单、最流行的的方法。通常通过结合使用这些方法我们可以很容易的拿下整个Windows域。本文讲述的的技巧都是我通过一年多的渗透测试以及高成功率的Windows域渗透经验总结而来的。写本文的目的是提升渗透测试者的攻击思路,以及帮助系统管理员来防御这些攻击。下面会对每种技巧进行详解.
1. 数据库中的弱密码
数据库是攻击者的首要攻击目标.其原因有两个: 1.数据是一个组织最宝贵的资产 2.数据库往往很容易就被攻陷.数据库中最有价值的目标之一是Microsoft SQL Server ,因为他的部署非常广泛.而且往往会在用户不知情的情况下安装 MSDEs/SQL Server Express.而且在SQL Server中使用弱密码甚至是空密码也不是一件罕见的事情.而且SQL Server 2005以后可以启用的 增强密码策略也一般没有被启用.这样一来攻击者就可以使用 暴力破解来破解数据库的账号和密码,而且成功率也不错.
简单的攻击及他的影响
目前有很多方法和工具来帮着我们在网络中找到MS SQL server,并对他进行暴力破解.我最喜欢的一个工具是 SQLPing 3.0,它既可以用来发现网络中的MS SQL server,也可以对他进行暴力破解.使用这个工具你需要做的就是提供待扫描的IP地址,以及用于暴力破解的用户名和密码.注意: 在 Options 中把 Disable ICMP check选项选上.下面是一些使用的实例
可以看到扫到了很多的MS SQL server同时这里面还有部分使用了弱口令或着空密码.
下面是 SQL server的一些常用的用户名,可以用来爆破.
1
2
3
4
5
6
7
8
|
sa
sql
admin
probe
distributor_admin
dbo
guest
sys
|
尽管在SQL server具有最高权限的用户为 sa 用户,但是如果我们拿到了一个比较低权限的用户,比如: admin,我们还是有机会提升权限的.我们可以在数据库中查询sa用户的密码hash
在SQL server 2005 之前我们使用下面的查询
1
|
SELECT password FROM master.dbo.sysxlogins WHERE name = ‘sa’;
|
拿到hash后可以用 John the Ripper 来破解.
拿到了SQL serverd的权限后我们可以使用 xp_cmdshell 来执行命令来进一步掌控这台服务器.比如添加个管理员用户.
1
2
|
xp_cmdshell ‘net user fstone PassPhrase!0 /add’
xp_cmdshell ‘net localgroup administrators fstone /add’
|
如果xp_cmdshell被禁用我们还可以把他开启.
1
2
3
4
|
sp_configure ‘show advanced options’, 1
reconfigure
sp_configure ‘xp_cmdshell’, 1
reconfigure
|
对于其他的数据库的攻击也类似,只是可能有的数据库并没有提供这么方便的直接执行系统命令的方式,需要一些条件...
防御
首先要做的就是为 数据库设置比较强的密码.同时可以对一些高权限用户的用户名进行重命名最重要的是尽可能的启用数据库的 密码安全策略,比如账号锁定机制,密码长度限制机制.....
2. LM Hash和广播请求
LM hash在windows的环境中用的十分广泛,开始他还是比较安全的,不容易破解,但随着我们的计算能力的不断增强,这种 hash 已经变得不那么可靠.
下面的图片展示了 LM hash 的一个生成过程.
在整个过程中并没有使用 salt.这样我们就可以使用彩虹表对他进行破解.下面是一个使用 4 ATI Radeon 6950 GPU cards setup 破解的截图.
在Windows XP 和 Windows Server 2003中默认会使用 LM hash.此外在高版本的windows中windows也会将每个已经的用户的 LM hash存储到内存中.攻击者可以通过利用在 windows域中缺乏认证的 名称解析 来抓取网络中传输的LM hash.如果有一个对 abcxyz.com 的资源请求,下面的图片展示了一个 windows查找资源的的一个顺序关系.
当请求一个不存在的资源时,windows系统会向局域网内发送 LLMNR 或者 NBNS广播.在Windows Vista/Windows Server 2008以上会发送LLMNR广播,以下的版本则会发送 NBNS广播,问题在于这些广播消息不会验证响应的合法性,所以攻击者需要做的就是给发出广播的机器返回响应消息,让受害者来连接我们.在一个大网络环境中你会对网络中这种类型的请求的数量感到吃惊的,这也提示我们这类攻击在现在还是可以有所作为的.下面介绍两个抓取LM hashe 的工具.
第一个是msf 中的 nbns_response 模块.
通过设置 SPOOFIP 为攻击者攻击机的地址,然后再配合metasploit中抓取hash的模块比如auxiliary/server/capture/smb 和 auxiliary/server/capture/http_ntlm.我们就可以抓到ntlm hash 然后破解他.
第二个工具就是Responder.py
Responder.py是一款非常强大的利用NBNS, LLMNR机制缺陷工具.下面是一个使用实例.
防御
防御这种攻击最好的方式就是在你的网络中消除使用 LM/NTLMv1 的主机.你可以为网络中的所有机器使用下面的组策略,.
1
2
|
Network security: Do not store LAN Manager hash value on next password change – Enabled
Network security: LAN Manager authentication level – Send NTLMv2 response only. Refuse LM & NTLM.
|
这些也可以在本地安全策略中设置.在策略生效后确保修改每个账号的密码,密码的复杂度要高一些比如: 15个字符以上.
最后也可以考虑下一个监控 spoofing 攻击的工具.地址
目录共享在 windows网络中的用的特别多,如果一个攻击者能够访问到共享,他就可以 查看敏感资料,执行代码等,比如以前的ipc$入侵....因此内网中的开放共享就成了攻击者比较喜欢的攻击点了.
简单的攻击及他的影响
在网络中查看开放的文件共享有很多工具可以帮助我们,这里介绍的是 Softperfect’s Network Scanner (Netscan),我们可以导入需要扫描的ip给他或者像下图一样直接指定一个范围.
你可以在 Options中设置一些选项,比如选择Enable security and user permission scan 他就会在扫描到的共享中检测我们的权限,然后 按下 Start Scanning 就可以开始扫描了.
当找到我们开放的共享后我们要做的就是在这些共享中找一些有用的数据,比如一些账号密码等.我们可以使用 AstroGrep 来帮我们查找,它支持使用正则表达式来查找一些数据.
这里找到了一个可能的账号密码
敏感文件.
防御
造成这种攻击的原因在于系统用户的错误配置,对这种东西的防御最好的方法就是对系统的使用者进行安全教育,以及定时的对网络进行检测.
4.敏感资源的弱口令/默认口令
这种方式的攻击非常简单,就是先找到一些比较好利用的东西,然后使用默认口令,弱口令进去,之后进一步渗透.
简单的攻击及他的影响
进行这种攻击我们不需要一款很复杂强大的自动化漏洞扫描器.我们可以使用下面的一些工具来辅助我们进行这样的攻击.
Rapid Assessment of Web Resources (RAWR) 对网页进行快照,然后生成html报告便于我们分析
Eyewitness 与上面的功能类似
Nmap http-screenshot script 与上面的功能类似
Nessus Default Common Credentials Scan Policy 上面的工具专注于信息探测,这个会尝试对一些已知的服务,进行一些暴力破解之类的攻击
NBTEnum 3.3 该工具可以非常高效的找到用户名和密码相同的账号.不管你信不信,我曾经用这种方式搞定过一个内网.
找到了两个用户名和密码相同的账号.
下面看看使用默认口令能造成的危害.
Tomcat
tomcat有些默认口令:admin/admin,tomcat/tomcat.而且进入tomcat的管理界面后我们就可以部署一个war包来拿到一个webshell,又tomcat往往运行在 SYSTEM权限所以我们也不用去考虑提权的问题.下面是一个实例
使用默认账号密码进入tomcat 管理界面
上传webshell执行系统命令,查看权限:
可以看到是系统权限,下面我们可以添加用户,然后我们就可以接管目标的主机了.或者可以直接使用 metasploit的模块来利用
一些远程管理软件比如 vnc DRAC (Dell Remote Access Control), Radmin, 及 PCAnywhere如果存在弱口令或者默认口令,一旦被攻击者发现那么这台机器立马沦陷.下面是一些实例
VNC
直接控制目标机器
DRAC
使用 root/calvin 默认口令
Console Redirection Connection提供了对系统的完全控制.
防御
这种攻击的发生在于管理人员的安全意识不足,针对这样的攻击的防御有以下一些方式:
对管理人员进行安全教育,提升他们的安全意识,
对所有的敏感软件,资源的密码的要统一强化复杂度.
同时还要定期进行常规性的检测,来避免出现这类问题.
5.利用具有公开exploit的漏洞
在一个大型的网络中,由于种种原因系统管理员不可能对他所管辖的所有主机,应用都打上所有的补丁,尤其是在内网中.所以使用已有漏洞的exploit来进行渗透也是非常常见的事情.
有漏洞是一回事,有一个具有公开的exploit的漏洞又是另外一回事.Metasploit exploitation framework 和 exploit-db.com是两个最大的免费exploit的来源.下面介绍两个我最喜欢的使用这些exploit的方式.
第一个是 通过使用 Nessus 扫描策略配置Exploit Available = True来进行扫描.扫描的结果中会返回一些可被利用的目标,或者直接就提供了远程访问.示例配置.
第二个就是大名鼎鼎的 Metasploit,首先使用nmap对网络进行扫描,之后导入扫描结果到 Metasploit中,然后结合经验,测试一些 exploit来实现攻击.比如使用 ms08-067 来进行攻击
使用MS09_050来攻击
防御
针对这种攻击的防御我们
首先要做的是搞清楚我们手里的资产有多少, 然后建立一套机制实现所有系统,软件能够尽快的一起打上最新的补丁.
使用上面所说的扫描策略对网络中的机器进行一次彻底的扫描,然后修补找到的问题,
最后安全人员需要关注网络中所有软件的的漏洞的披露情况,尽可能及时的打上补丁.
同时还可以在网络中部署一些监控报警的软件.
总结
本文很大部分都在讲 口令安全 方面的东西,可以看出在防御过程中最简单也最容易被忽视的问题就是 弱口令的问题,这也提示我们在渗透测试的过程中不可以轻视这种攻击手法.同时还讲了在内网中有价值的一些利用点,比如 LLMNR 以及 NBNS广播机制相关的一些安全问题,及老生常谈的 文件共享的问题,这些点在内网渗透时都是一些值得我们去关注的点.同时渗透测试就是各种手法,技巧的融合,不要轻视任何一种技巧,能拿到权限的技巧都是好技巧。
本文由 安全客 翻译作者:hac425