![](https://img-blog.csdnimg.cn/20200302221059357.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
路由器安全
xxx
后知晚觉
这个作者很懒,什么都没留下…
展开
-
二十、ROP实践
在路由器漏洞利用的场景中,一般使用两种常用的利用方法,一种是上次分享中使用的System/Exec方式,一种就是本节中我们要分享的ROP Chain方式。ROP(Returen-Oriented Programming)是把原来已经存在的代码块拼接起来,拼接时使用一个预先准备好的、包含各条指令结束后下一条指令地址的特殊返回栈。一般的程序里都包含着大量的返回指令,如“jr $ra”,他们大都位于函...翻译 2020-03-10 23:12:51 · 737 阅读 · 0 评论 -
十九、Shellcode应用实践
首先,我们编写一个存在缓冲区溢出漏洞的程序,功能比较简单:从passwd文件中读取密码,如果密码为“adminpwd”即有权限执行系统命令“ls -l”列出当前目录,否则提示密码错误后直接退出。源码vuln_system.c:#include <stdio.h>#include <string.h>#include <sys/stat.h>#inclu...翻译 2020-03-10 23:05:53 · 423 阅读 · 0 评论 -
十八、常用Shellcode开发
本次我们主要总结和分享了一些常用的Shellcode。我们在前面几次分享中都是围绕着execve系统调用相关的Shellcode展开的。我们可以看到execve可以很方便的在存有栈溢出的路由器中完成远程命令执行。但它并不是唯一常用的Shellcode,在书中作者还介绍了一个简单的reboot Shellcode,主要用于发起对目标路由器的拒绝服务攻击。还有一个比较复杂的,通过联合多个系统调用来获...翻译 2020-03-10 22:52:00 · 774 阅读 · 0 评论 -
十七、Shellcode编码
在很多的漏洞利用场景中,Shellcode的内容会受到限制,这种限制不仅来自存在漏洞的软件自身,在某些情况下,也来自一些基于特征的IDS(网络入侵检测系统)系统。我们先来看看Shellcode会受到哪些限制。首先,所有的字符串处理函数都会对NULL字节进行限制,通常我们会选择对Shellcode指令进行优化以避免在Shellcode中直接出现NULL字节。其次,在某些处理流程中可能会限制0x0...翻译 2020-03-10 22:39:28 · 3170 阅读 · 0 评论 -
十六、Shellcode指令优化
在上一篇的分享中,我们编写了一段使用execve系统调用执行/bin/sh命令的Shellcode:#include <stdio.h>// shellcode 指令数据char sc[] = { "\x24\x06\x01\x11" "\x04\xd0\xff\xff" "\x24\x06\x00\x00" "\x27\xbd\xff\xe0" "\x27\xe4\x...翻译 2020-03-10 22:34:12 · 795 阅读 · 0 评论 -
十五、MIPS ShellCode
狭义上得Shellcode是指,向进程植入的一段用于获取Shell的代码,事实上,如今的Shellcode所具备的功能已经不仅仅包括获取Shell,还包括开启端口、执行命令等。Shellcode通常使用汇编语言编写,最终将其转换成机器可识别的二进制机器码,其内容和长度还会受到很多苛刻的限制,因此开发和调试的难度非常高。Shellcode编写好后,通常在程序的可注入点,将Shellcode注入到...翻译 2020-03-10 22:28:23 · 763 阅读 · 0 评论 -
十四、MIPS汇编指令-子函数
我们回顾一下上次分享中的C代码:#include <stdio.h>#include <string.h>void B() { printf(".....\n");}void A(char *content) { char buf[32]; strcpy(buf, content); printf...原创 2020-03-10 22:22:03 · 1375 阅读 · 0 评论 -
十三、MIPS汇编指令-main函数
本次的分享,我们将以一段简单的C语言程序为例,使用mips-linux的gcc编译器对其进行编译后,使用ida对编译后的程序进行反汇编,并通过对照C语言代码的方式理解MIPS汇编指令。首先我们来看这段C代码(test.c):#include <stdio.h>#include <string.h>void B() { printf(".....\...原创 2020-03-07 16:08:07 · 2834 阅读 · 1 评论 -
十二、缓冲区溢出漏洞原理
缓冲区溢出漏洞是一种非常普遍且危险的漏洞,在各种操作系统、应用软件中广泛存在,在路由器中也不例外。利用缓冲区溢出攻击,可以造成程序运行失败、系统宕机、更为严重的是,利用缓冲区溢出攻击可以执行非授权指令,进而取得系统特权进行各种非法操作。本次内容主要分享和总结了MIPS程序的栈空间缓冲区溢出原理,并通过代码示例让你更进一步的体会缓冲区溢出漏洞的利用效果。MIPS栈原理这里的缓冲区主要指的是栈,...原创 2020-03-07 15:55:05 · 1731 阅读 · 0 评论 -
十一、路由器后门漏洞
在信息安全领域,后门是指绕过安全控制而获取对程序或系统访问权的方法。例如,即使某一款路由器拥有完美的安全防护功能和设置,但是却保留了一条不为人知的秘密通道,如果被攻击者发现,攻击者同样可以轻松进入并获取对路由器的控制权限。这时候,再完美的安全防护都已形同虚设。对于路由器中的存在后门,成因有多种多样,有的是为了方便开发人员管控路由器而保留,有的是发布时遗留的安全漏洞,还有的或许是有人对路由器固件...翻译 2020-03-07 15:47:30 · 1414 阅读 · 0 评论 -
十、路由器Web漏洞原理
前面的文稿中我们提到过,家用路由器一般都带有Web管理服务,用户可以通过Web管理页面进行路由器的管理和配置。既然存在Web管理服务,那么常见针对Web漏洞的攻击手段(诸如XSS、CSRF)等,同样可以运用在针对路由器的攻击中。XSS第一种常见的漏洞类型是XSS漏洞,英文全称是Cross Site Scripting,即跨站脚本攻击,显然重点词汇是“Script”,在网页代码中,这个脚本一般...翻译 2020-03-07 15:45:32 · 894 阅读 · 0 评论 -
九、HTTP协议及Python HTTP编程
从家用路由器被披露的漏洞情况来看,大部分的漏洞都存在于路由器中的Web服务器程序,这些漏洞往往是由Web服务器程序没有正确解析攻击者发送的请求数据造成的,而这种请求数据往往采用HTTP协议,所以,对于HTTP这样的基础协议,我们非常有必要对其做深入的学习。学习前,我们首先使用wireshark捕获一下浏览器登录路由器Web管理页面的HTTP协议数据:参考上面这个真实的、完整的HTTP协议数据...翻译 2020-03-07 15:41:56 · 731 阅读 · 0 评论 -
八、IDA动态调试MIPS-Linux程序
在使用IDA对MIPS-Linux程序做动态分析的时候,按照常规的逻辑,我们应该假设MIPS-Linux程序能够以一种等待调试的状态运行着,然后我们就可以使用IDA远程附加调试的方式attach到这个MIPS-Linux进程上,然后通过断点或单步的方式对进程进行动态调试。所以,“如何让路由器中的MIPS-Linux程序能够以一种等待调试的状态运行着”应该是首要解决的问题。然而实际情况却没那么乐观,...原创 2020-03-06 21:03:21 · 1769 阅读 · 0 评论 -
七、IDA静态分析MIPS-Linux程序环境搭建
注:若访问github或Google较慢,可使用加速器:http://91tianlu.date/aff.php?aff=3468IDA是一款强大的反汇编和动态调试工具,能够辅助研究人员进行静态分析和动态调试。书中通过开源工具将Windows中的IDA工具运行在了Linux系统中。我也多次尝试使用开源工具wine来安装IDA的不同版本,但由于各种原因,导致安装成功率并不高,总是出现各种各样...原创 2020-03-06 20:40:32 · 2251 阅读 · 2 评论 -
六、QEMU+MIPS环境搭建(下)
QEMU System模式的使用上一次我们分享的是QEMU User模式的使用方法,使用User模式的QEMU,确实可以满足大多数的模拟运行场景,但它也确实存在很多硬伤。比如QEMU的User模式并不能完整的模拟mips-linux的内核环境,导致一些应用程序需要严重依赖比如/proc目录下或/sys目录下的内存文件,而这些文件一般都是Linux内核在启动时产生的,甚至有些文件只有在真正的mi...原创 2020-03-06 19:56:48 · 5231 阅读 · 3 评论 -
五、QEMU+MIPS环境搭建(上)
QEMU是一个处理器模拟软件,可以用来在PC中模拟ARM、MIPS等多种架构的软硬件运行环境。QEMU主要有两种模拟模式:User Mode;System Mode。System模式中,它可以在一个主机环境中虚拟不同的虚拟计算机系统,比如可以在Ubuntu系统中虚拟出一个MIPS架构的Debian系统。User模式中,它可以运行一个为其他处理器编写的应用程序,比如可以在X64-Ubun...原创 2020-03-04 22:22:32 · 6671 阅读 · 5 评论 -
四、固件分析利器-binwalk
binwalk是一款强大的固件分析工具,它不仅可以用于提取文件系统,也可以用于协助研究人员对固件进行分析和逆向工程。它的开源代码可以在Github中找到(https://github.com/ReFirmLabs/binwalk),这个Github中也有关于binwalk如何安装的指导步骤(https://github.com/ReFirmLabs/binwalk/blob/master/INS...原创 2020-03-04 22:17:37 · 3785 阅读 · 1 评论 -
三、Linux常用命令
Linux中的命令有很多,为了能够让初学者快速入门,我们这里只介绍几个常用的命令,当我们把Linux用起来以后,遇到陌生的命令我们再即用即学。登录Ubuntu系统后,在桌面的任意位置使用鼠标右键,然后选择“Open Terminal”就可以进入Ubuntu系统的命令行终端输入命令了。每个命令行终端窗口都可以算作一个完整的Linux任务,而每个Linux任务都会默认有一个叫做“工作目录(work...原创 2020-03-04 22:13:31 · 240 阅读 · 0 评论 -
二、VMWare Ubuntu16.04 虚拟机安装
在书中,作者使用的是VMWare+Ubuntu12.04的环境,而Ubuntu 12.04版本显然已经很老旧了,在实际使用的过程中经常会出现一些软件源不能使用的问题,也会出现一些较新的软件在老旧的Ubuntu12.04版本中不好用的问题,这些问题都为后面的环境搭建工作带来不少的麻烦,所以后来我使用了比较新的Ubuntu16.04和目前最新版本的VMWare Workstation 15.1.0 P...原创 2020-03-03 22:27:08 · 238 阅读 · 0 评论 -
一、路由器漏洞分类
漏洞分类路由器是所有上网流量的管控设备,是网络的公共出入口。若路由器被黑客控制,就意味着与网络有关的所有应用都可能被黑客控制。而黑客一般都可通过漏洞来取得对路由器的控制权。当前,家用路由器漏洞主要有4类,分别是: Wi-Fi密码破解漏洞 Web漏洞 后门漏洞 缓冲区溢出漏洞 Wi-Fi密码破解漏洞路由器中,Wi-Fi密码常见的加密认证方式为W...翻译 2019-05-14 17:00:41 · 2625 阅读 · 1 评论 -
零、《揭秘家用路由器0day漏洞挖掘技术》领读(上)-开篇词
为天地立心,为生民立命,为往圣继绝学,为万世开太平。本书对家用路由器漏洞分析所涉及的基础知识、工具、原理、实例均进行了详细的讲解。其中包括了Linux命令、MIPS汇编语言、HTTP协议、IDA、Binwalk、QEMU、串口、JTAG等漏洞分析涉及的常见工具,也包括对常见路由器漏洞分类的原理的讲解,如路由器Web漏洞、密码破解漏洞、后门漏洞、缓冲区溢出漏洞,特别是对缓冲区溢出漏洞做了特别...原创 2020-03-03 21:55:06 · 650 阅读 · 1 评论