信息安全深透测试与工房操作系统弱点扫描
Posted lijie1977
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了信息安全深透测试与工房操作系统弱点扫描相关的知识,希望对你有一定的参考价值。
缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量溢出的数据覆盖在合法数据上。理想的情况是程序检查数据长度并不允许输入超过缓冲区长度的字符,但是绝大多数程序都会假设数据长度总是与所分配的储存空间相匹配,这就为缓冲区溢出埋下隐患,操作系统所使用的缓冲区,又被称为"堆栈"。在各个操作进程之间,指令会被临时储存在"堆栈"当中,"堆栈"也会出现缓冲区溢出。
一、windows系统缓冲区溢出
1、使用01.PY脚本去测试一个邮件服务器
2、该脚本可以正常执行,但提示密码错误。
3、用循环脚本去测试发送多少个“A”字符,可塞满目标而造成缓冲区溢出。
4、使用调试工具检查有多少数据“A”造成溢出。
5、脚本在不停的发送字符,到程序死机为止。
6、改进脚本“A”的数值,以精确多少数据“A”才造成溢出效果。
7、把A换成不唯一字符串以精确定位,然后生成脚本去运行。
8、在调试工具里可以看到EIP的字符,这就是溢出时的字符数量。
9、使用精确数量字符去写入数据的脚本。
10、通过上面的思路:可以将EIP修改为shellcode代码的内存地址,将Shellcode写入到该地址空间,程序读取EIP 寄存器 数值,将跳转到 shellcode 代码段并执行;首先寻找可存放shellcode的内存空间,看有多少个C可以存放在ESP空间里。
11、不同类型的程序、协议、漏洞,会将某些字符认为是坏字符,这些字符有固定用途,所以不能用。可发送0x00 —— 0xff 256个字符,查找所有坏字符。
12、逐一查找出坏字符,替换。比如0A是不能用的,用09替换。
13、使用编码对shellcode程序进行编译,定稿脚本
从上面可以看到已经取得了对方电脑的shell控制权,这时可以提权新建账号和密码,或者直接打开远程桌面等操作。
其实对于我们普通的技术人员没必要去学习这么深入,只要知道大概是怎么回事去利用缓冲区溢出来控制对方的电脑就行,当然你非要去弄清楚也可以,这样你可以自己去写公鸡脚本,也更牛B吧。
推荐一个工具:注册表快照。
可以比较你更改了系统某个对话时,可以找到是哪个注册表键值,你可以更方便的去修改注册表。
比如我们找到远程桌面:
启用远程桌面后,可以看到下面注册表键值的不同。这时我们就知道远程桌面的键值是什么,就可以有针对性的去修改它。
二、linux系统缓冲区溢出
和windows系统差不多,也是准备一个应用程序和公鸡脚本,先去测试公鸡。开启防火墙允许连接的端口。
其实测试和公鸡过程和上一章真的没啥区别,只不过使用的工具不一样,因为是不同的操作系统。
在取得了操作系统shell的控制权后,可以上传一些NC、TFTP、灰鸽子等工具或穆马程序进一步控制对方电脑,然后可以上传键盘记录等工具来取得对方的密码信息。
下一期我会再接着讲本地提权、缓存密码提取和利用漏洞提权。
以上是关于信息安全深透测试与工房操作系统弱点扫描的主要内容,如果未能解决你的问题,请参考以下文章