热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【技术分享】黑与被黑的五种最简单的方法

翻译:hac425稿费:200RMB(不服你也来投稿啊!)投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿概述本文的目的是分享一些攻击者访问系统并获取数据的最简单、最流行的的方法。

https://img.php1.cn/3cd4a/1eebe/cd5/0a0ce631ec450943.webp

翻译:hac425

稿费:200RMB(不服你也来投稿啊!)

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿

概述

本文的目的是分享一些攻击者访问系统并获取数据的最简单、最流行的的方法。通常通过结合使用这些方法我们可以很容易的拿下整个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选项选上.下面是一些使用的实例

                            

http://p6.qhimg.com/t01289d7208d7636105.png

可以看到扫到了很多的MS SQL server同时这里面还有部分使用了弱口令或着空密码.

下面是  SQL server的一些常用的用户名,可以用来爆破.

sa
sql
admin
probe
distributor_admin
dbo
guest
sys

    尽管在SQL server具有最高权限的用户为 sa 用户,但是如果我们拿到了一个比较低权限的用户,比如: admin,我们还是有机会提升权限的.我们可以在数据库中查询sa用户的密码hash

http://p7.qhimg.com/t0114aebc1c8456d24e.png

在SQL server 2005 之前我们使用下面的查询

SELECT password FROM master.dbo.sysxlogins WHERE name = ‘sa’;

拿到hash后可以用 John the Ripper 来破解.

http://p6.qhimg.com/t0168c651be2e2910f8.png

拿到了SQL serverd的权限后我们可以使用 xp_cmdshell 来执行命令来进一步掌控这台服务器.比如添加个管理员用户.

xp_cmdshell ‘net user fstone PassPhrase!0 /add’
xp_cmdshell ‘net localgroup administrators fstone /add’

如果xp_cmdshell被禁用我们还可以把他开启.

sp_configure ‘show advanced options’, 1
reconfigure
sp_configure ‘xp_cmdshell’, 1
reconfigure

对于其他的数据库的攻击也类似,只是可能有的数据库并没有提供这么方便的直接执行系统命令的方式,需要一些条件…

防御

首先要做的就是为 数据库设置比较强的密码.同时可以对一些高权限用户的用户名进行重命名最重要的是尽可能的启用数据库的 密码安全策略,比如账号锁定机制,密码长度限制机制…..


2. LM Hash和广播请求

LM hashwindows的环境中用的十分广泛,开始他还是比较安全的,不容易破解,但随着我们的计算能力的不断增强,这种 hash 已经变得不那么可靠.

下面的图片展示了 LM hash 的一个生成过程.

http://p6.qhimg.com/t0179bb7624593a3403.png

在整个过程中并没有使用 salt.这样我们就可以使用彩虹表对他进行破解.下面是一个使用 4 ATI Radeon 6950 GPU cards setup 破解的截图.

http://p2.qhimg.com/t01d3743199fa291fce.png

在Windows XP 和 Windows Server 2003中默认会使用 LM hash.此外在高版本的windows中windows也会将每个已经的用户的 LM hash存储到内存中.攻击者可以通过利用在 windows域中缺乏认证的  名称解析 来抓取网络中传输的LM hash.如果有一个对 abcxyz.com 的资源请求,下面的图片展示了一个 windows查找资源的的一个顺序关系.

http://p0.qhimg.com/t01528d965808d4add8.png

当请求一个不存在的资源时,windows系统会向局域网内发送 LLMNR 或者 NBNS广播.在Windows Vista/Windows Server 2008以上会发送LLMNR广播,以下的版本则会发送  NBNS广播,问题在于这些广播消息不会验证响应的合法性,所以攻击者需要做的就是给发出广播的机器返回响应消息,让受害者来连接我们.在一个大网络环境中你会对网络中这种类型的请求的数量感到吃惊的,这也提示我们这类攻击在现在还是可以有所作为的.下面介绍两个抓取LM hashe 的工具.

第一个是msf 中的 nbns_response 模块.

http://p5.qhimg.com/t016a3e982a49e37fa9.png

通过设置 SPOOFIP 为攻击者攻击机的地址,然后再配合metasploit中抓取hash的模块比如auxiliary/server/capture/smb 和 auxiliary/server/capture/http_ntlm.我们就可以抓到ntlm hash 然后破解他.

http://p2.qhimg.com/t01eb67ddeaa3b82802.png

第二个工具就是Responder.py

Responder.py是一款非常强大的利用NBNS, LLMNR机制缺陷工具.下面是一个使用实例.

http://p6.qhimg.com/t014d3662f771e5120a.png

防御

防御这种攻击最好的方式就是在你的网络中消除使用 LM/NTLMv1 的主机.你可以为网络中的所有机器使用下面的组策略,.

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给他或者像下图一样直接指定一个范围.

http://p6.qhimg.com/t0189255e6e1f0884b4.png

你可以在 Options中设置一些选项,比如选择Enable security and user permission scan 他就会在扫描到的共享中检测我们的权限,然后 按下 Start Scanning 就可以开始扫描了.

http://p8.qhimg.com/t01eea3cc068adb25fe.png

当找到我们开放的共享后我们要做的就是在这些共享中找一些有用的数据,比如一些账号密码等.我们可以使用 AstroGrep 来帮我们查找,它支持使用正则表达式来查找一些数据.

http://p4.qhimg.com/t01a6f621ea579d6112.png

这里找到了一个可能的账号密码

http://p0.qhimg.com/t01df8a6717e4723c6b.png

敏感文件.

防御

造成这种攻击的原因在于系统用户的错误配置,对这种东西的防御最好的方法就是对系统的使用者进行安全教育,以及定时的对网络进行检测.


4.敏感资源的弱口令/默认口令

这种方式的攻击非常简单,就是先找到一些比较好利用的东西,然后使用默认口令,弱口令进去,之后进一步渗透.

简单的攻击及他的影响

进行这种攻击我们不需要一款很复杂强大的自动化漏洞扫描器.我们可以使用下面的一些工具来辅助我们进行这样的攻击.

Rapid Assessment of Web Resources (RAWR) 对网页进行快照,然后生成html报告便于我们分析

Eyewitness 与上面的功能类似

Nmap http-screenshot script 与上面的功能类似

Nessus Default Common Credentials Scan Policy 上面的工具专注于信息探测,这个会尝试对一些已知的服务,进行一些暴力破解之类的攻击

NBTEnum 3.3 该工具可以非常高效的找到用户名和密码相同的账号.不管你信不信,我曾经用这种方式搞定过一个内网.

http://p0.qhimg.com/t0130718cf67d4b2ce3.png

找到了两个用户名和密码相同的账号.

下面看看使用默认口令能造成的危害.

Tomcat

tomcat有些默认口令:admin/admin,tomcat/tomcat.而且进入tomcat的管理界面后我们就可以部署一个war包来拿到一个webshell,又tomcat往往运行在 SYSTEM权限所以我们也不用去考虑提权的问题.下面是一个实例

使用默认账号密码进入tomcat 管理界面

http://p7.qhimg.com/t0128bf935c84e7b17c.png

上传webshell执行系统命令,查看权限:

http://p2.qhimg.com/t01ba57af5a417eb9f6.png

    可以看到是系统权限,下面我们可以添加用户,然后我们就可以接管目标的主机了.或者可以直接使用 metasploit的模块来利用

http://p9.qhimg.com/t0181e9a7b177dc27a8.png

一些远程管理软件比如 vnc DRAC (Dell Remote Access Control), Radmin, 及 PCAnywhere如果存在弱口令或者默认口令,一旦被攻击者发现那么这台机器立马沦陷.下面是一些实例

VNC

http://p7.qhimg.com/t01d25f3299d6a06b2c.png

直接控制目标机器

DRAC 

使用 root/calvin 默认口令

http://p4.qhimg.com/t01e9fc85d8ab4ec543.png

http://p3.qhimg.com/t0193fcbe6a367d9fd1.png

Console Redirection Connection提供了对系统的完全控制.

防御

这种攻击的发生在于管理人员的安全意识不足,针对这样的攻击的防御有以下一些方式: 

对管理人员进行安全教育,提升他们的安全意识,

对所有的敏感软件,资源的密码的要统一强化复杂度.

同时还要定期进行常规性的检测,来避免出现这类问题.


5.利用具有公开exploit的漏洞

在一个大型的网络中,由于种种原因系统管理员不可能对他所管辖的所有主机,应用都打上所有的补丁,尤其是在内网中.所以使用已有漏洞的exploit来进行渗透也是非常常见的事情.

有漏洞是一回事,有一个具有公开的exploit的漏洞又是另外一回事.Metasploit exploitation framework 和 exploit-db.com是两个最大的免费exploit的来源.下面介绍两个我最喜欢的使用这些exploit的方式.

第一个是 通过使用 Nessus 扫描策略配置Exploit Available = True来进行扫描.扫描的结果中会返回一些可被利用的目标,或者直接就提供了远程访问.示例配置.

http://p4.qhimg.com/t01a9dd3dd80fa0fb30.png

第二个就是大名鼎鼎的 Metasploit,首先使用nmap对网络进行扫描,之后导入扫描结果到 Metasploit中,然后结合经验,测试一些 exploit来实现攻击.比如使用 ms08-067 来进行攻击

http://p0.qhimg.com/t0181a1022ecd538985.png

使用MS09_050来攻击

http://p8.qhimg.com/t0140ef879e8a50d566.png

防御

针对这种攻击的防御我们

首先要做的是搞清楚我们手里的资产有多少, 然后建立一套机制实现所有系统,软件能够尽快的一起打上最新的补丁.

使用上面所说的扫描策略对网络中的机器进行一次彻底的扫描,然后修补找到的问题,

最后安全人员需要关注网络中所有软件的的漏洞的披露情况,尽可能及时的打上补丁.

同时还可以在网络中部署一些监控报警的软件.


总结

本文很大部分都在讲 口令安全 方面的东西,可以看出在防御过程中最简单也最容易被忽视的问题就是 弱口令的问题,这也提示我们在渗透测试的过程中不可以轻视这种攻击手法.同时还讲了在内网中有价值的一些利用点,比如 LLMNR 以及 NBNS广播机制相关的一些安全问题,及老生常谈的 文件共享的问题,这些点在内网渗透时都是一些值得我们去关注的点.同时渗透测试就是各种手法,技巧的融合,不要轻视任何一种技巧,能拿到权限的技巧都是好技巧


推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
author-avatar
晓雷sky
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有