前言:本文旨在介绍目前常用的网络攻击手段,分享交流技术经验
根据百度百科定义:
社会工程学(Social Engineering,又被翻译为:社交工程学)在上世纪60年代左右作为正式的学科出现,广义社会工程学的定义是:建立理论并通过利用自然的、社会的和制度上的途径来逐步地解决各种复杂的社会问题,经过多年的应用发展,社会工程学逐渐产生出了分支学科,如公安社会工程学和网络社会工程学。
凯文·米特尼克在《反欺骗的艺术》中曾提到,人为因素才是安全的软肋。很多企业、公司在信息安全上投入大量的资金,最终导致数据泄露的原因,往往却是发生在人本身。你们可能永远都想象不到,对于黑客们来说,通过一个用户名、一串数字、一串英文代码,社会工程师就可以通过这么几条的线索,通过社工攻击手段,加以筛选、整理,就能把你的所有个人情况信息、家庭状况、兴趣爱好、 、你在网上留下的一切痕迹等个人信息全部掌握得一清二楚。虽然这个可能是最不起眼,而且还是最麻烦的方法。一种无需依托任何黑客软件,更注重研究人性弱点的黑客手法正在兴起,这就是社会工程学黑客技术。
社会工程学攻击需要对人性的缺陷、想法、思维进行分析理解来展开攻击,而不再是利用计算机的漏洞去不断测试从而展开攻击。
钓鱼网站攻击就是一个非常经典的攻击方法,当恶意行为者发送看似来自可信、合法来源的电子邮件以试图从目标获取敏感信息时,就会发生网络钓鱼攻击,网络钓鱼攻击结合了社会工程和技术,之所以如此命名,是因为攻击者实际上是在使用看似值得信赖的发件人的“诱饵”“钓鱼”进入禁区。
物理攻击则是基于物理层面的攻击,这种攻击现在很少见到,随着时代的发展,现在的计算机用户大多都拥有了自己的个人PC,陌生人是很难接触到你的PC的,但是对于能接触到物理设备的用户来说,物理攻击也是最按钮防的。
当恶意用户登录进入你的个人PC后,他就可以调用Windows的一个进程 winlogon.exe,然后就可以利用程序将当前登录用户的密码解码出来,如图:
使用FindPass等工具可以对该进程进行解码,然后将当前用户的密码显示出来。将FindPass.exe拷贝到C盘根目录,执行该程序,将得到当前用户得登录名,如图:
当恶意的账户用普通用户帐号登录后,就可以利用诸如工具GetAdmin.exe将自己加到管理员组或者新建一个具有管理员权限的用户。
暴力攻击可以通过反复试错来猜测登录凭据、 安全密钥 或其他敏感信息。暴力攻击的工作原理是系统地尝试所有可能的密码、加密密钥或 PIN 组合,直到找到正确的组合。 这种方法依赖于攻击者的耐心、计算能力和目标的脆弱性。尽管这样的攻击方式听起来非常的愚蠢,效率非常的低,但是在实际生活中他的效果却出人意料,尤其是考虑到大约 65% 的人会重复使用密码 。 重复使用密码是一种危险且常见的做法,而一个泄露的密码就足以暴露整个系统或一组凭据。
字典攻击是最常见的一种暴力攻击:字典式攻击是将出现频率最高的密码保存到文件中,这文件就是字典,暴破时使用字典中的这些密码去猜解。字典式攻击适用于猜解人为设定的口令,因为人为设定受人方便记忆影响不同密码出现的概率是不一样的,12345678、password作为密码的概率比fghtsaer作为密码的概率要高得多。与穷举法相比,字典式攻击虽然损失了较小的命中率但节省了较多的时间。
彩虹表攻击也属于字典式攻击,但它是一种高效地破解哈希算法的攻击方式。网站为了增加安全性,不会直接将用户密码存储在数据库中,而是将密码进行哈希,变成一长串毫无意义的字符,并且哈希算法是不可逆的,没有解密算法可以还原成原来的密码。面对哈希后的密码,破解的方法有两个,
彩虹表是时间空间折中的方法,其核心思想是将明文计算得到的哈希值由R函数映射回明文空间,交替计算明文和哈希值,生成哈希链,将这个链的首尾存储在表中,中间的都删掉,用的时候临时算,那么存储的空间比原来的减少了一半,而计算次数也并没有大量增多。由于在哈希链的计算过程中引入不同的R函数,将不同的R函数用不同的颜色表示,众多的哈希链就会像彩虹一样,所以叫做彩虹表。
使用彩虹表进行破解,普通PC也能达到每秒1000亿次以上的惊人速度。为了增加安全性,可能会多次哈希,例如MD5后再MD5一次;或者在原始密码前后补上一串字符,增加密码长度后再哈希,学名叫加盐(salt),这些算法的结果都可以加入彩虹表中。最完善的彩虹表差不多能破解出目前网上99.9%的密码。
Unicode标准被很多软件开发者所采用,无论何种平台、程序或开发语言,Unicode均为每个字符提供独一无二的序号,如向IIS服务器发出包括非法Unicode。UTF-8序列的URL,攻击者可使服务器逐字“进入或退出”目录并执行任意程序,该攻击即称为目录转换攻击。Unicode用“%2f”和“%5c”分别代表“/”和“\”字符,但也可用“超长”序列来代替这些字符。“超长”序列是非法的Unicode表示符,如用“%c0%af”代表“/”字符。由于IIS不对超长序列进行检查,因此在URL中添加超长的Unicode序列后,可绕过微软的安全检查,如在一个标记为可执行的文件夹发出该请求,攻击者即可在服务器上运行可执行文件。通过打操作系统的补丁程序,就可以消除漏洞。只要是针对漏洞进行攻击的案例都依赖于操作系统是否打了相关的补丁。 微软IIS 4.0和5.0都存在利用扩展UNICODE字符取代"/"和"\"而能利用"../"目录遍历的漏洞。
在Windows的目录结构中,可以使用两个点和一个斜线“../”来访问上一级目录 在浏览器中利用“scripts/../../”可以访问到系统盘根目录 访问“scripts/../../winnt/system32”就访问到系统的系统目录了,在system32目录下包含许多重要的系统文件,比如cmd.exe文件,可以利用该文件新建用户,删除文件等操作。就算浏览器地址栏中禁用符号“../”,但是可以使用符号“/”的Unicode的编码。 比如 “/scripts/..%c0%2f../winnt/system32/cmd.exe?/c+dir”中的“%c0%2f”就是“/”的Unicode编码。这条语句是执行dir命令列出目录结构。此漏洞从中文IIS4.0+SP6开始,还影响中文WIN2000+IIS5.0、中文WIN2000+IIS5.0+SP1,台湾繁体中文也同样存在这样的漏洞。在NT4中/编码为“%c1%9c”或者“%c1%9c”,WIN2000英文版是“%c0%af”。
利用Unicode可以方便的更改对方的主页,比如现在已经知道对方网站的根路径在“C:\Initpub\wwwroot”(系统默认)下,可以删除该路径下的文件“default.asp”来删除主页,这里的“default.asp”文件是IIS的默认启动页面。
Unicode漏洞是2000-10-17发布的,受影响的版本: Microsoft IIS 5.0+Microsoft Windows 2000系列版本 Microsoft IIS 4.0+ Microsoft Windows NT 4.0
目前最流行的一种攻击技术就是缓冲区溢出攻击。 当目标操作系统收到了超过了它的最大能接收的信息量的时候,将发生缓冲区溢出。 这些多余的数据将使程序的缓冲区溢出,然后覆盖了实际的程序数据,缓冲区溢出使目标系统的程序被修改,经过这种修改的结果使在系统上产生一个后门。这项攻击对技术要求比较高,但是攻击的过程却非常简单。也被誉为黑客艺术的巅峰,菜鸟和高手的分水岭。
缓冲区是系统为运行程序中的变量分配的内存空间。 在C和C++中,缓冲区包括为程序中定义的全局变量或局部变量静态分配的内存区域,以及使用malloc和new函数调用为变量动态分配的内存区域。 缓冲区溢出是指数据被添加到分配给该缓冲区的内存块之外。 根据统计,通过缓冲区溢出进行的攻击占所有系统攻击总数的80%以上。它是一类极其严重的安全威胁。 C/C++语言中,由于字符串处理函数(gets strcpy 等)没有对数组越界加以判断和限制,利用超长字符数组越界覆盖堆栈中的原有元素的值,可以修改堆栈中的返回地址并执行由返回地址指向的代码。
本文旨在分享交流,如有错误欢迎积极指出,评论区交流