4

信息安全深透测试与工房(十一)操作系统弱点扫描

 2 years ago
source link: https://blog.51cto.com/lijie1977/5166295
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

信息安全深透测试与工房(十一)操作系统弱点扫描

原创

lijie1977 2022-03-31 14:22:48 ©著作权

文章标签 数据 缓冲区溢出 远程桌面 kali 文章分类 安全技术 网络/安全 阅读数147

​      缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量溢出的数据覆盖在合法数据上。理想的情况是程序检查数据长度并不允许输入超过缓冲区长度的字符,但是绝大多数程序都会假设数据长度总是与所分配的储存空间相匹配,这就为缓冲区溢出埋下隐患,操作系统所使用的缓冲区,又被称为"堆栈"。在各个操作进程之间,指令会被临时储存在"堆栈"当中,"堆栈"也会出现缓冲区溢出。​

一、windows系统缓冲区溢出

1、使用01.PY脚本去测试一个邮件服务器

信息安全深透测试与工房(十一)操作系统弱点扫描_kali

​2、该脚本可以正常执行,但提示密码错误。

信息安全深透测试与工房(十一)操作系统弱点扫描_kali_02

​3、用循环脚本去测试发送多少个“A”字符,可塞满目标而造成缓冲区溢出。

信息安全深透测试与工房(十一)操作系统弱点扫描_远程桌面_03

​4、使用调试工具检查有多少数据“A”造成溢出。

信息安全深透测试与工房(十一)操作系统弱点扫描_缓冲区溢出_04

​5、脚本在不停的发送字符,到程序死机为止。

信息安全深透测试与工房(十一)操作系统弱点扫描_远程桌面_05

​6、改进脚本“A”的数值,以精确多少数据“A”才造成溢出效果。

信息安全深透测试与工房(十一)操作系统弱点扫描_缓冲区溢出_06

​7、把A换成不唯一字符串以精确定位,然后生成脚本去运行。​

信息安全深透测试与工房(十一)操作系统弱点扫描_kali_07

信息安全深透测试与工房(十一)操作系统弱点扫描_kali_08

信息安全深透测试与工房(十一)操作系统弱点扫描_kali_09

​8、在调试工具里可以看到EIP的字符,这就是溢出时的字符数量。

信息安全深透测试与工房(十一)操作系统弱点扫描_kali_10

信息安全深透测试与工房(十一)操作系统弱点扫描_远程桌面_11

信息安全深透测试与工房(十一)操作系统弱点扫描_数据_12

​9、使用精确数量字符去写入数据的脚本。​

信息安全深透测试与工房(十一)操作系统弱点扫描_kali_13

信息安全深透测试与工房(十一)操作系统弱点扫描_远程桌面_14

信息安全深透测试与工房(十一)操作系统弱点扫描_缓冲区溢出_15

​10、通过上面的思路:可以将EIP修改为shellcode代码的内存地址,将Shellcode写入到该地址空间,程序读取EIP 寄存器 数值,将跳转到 shellcode 代码段并执行;首先寻找可存放shellcode的内存空间,看有多少个C可以存放在ESP空间里。

信息安全深透测试与工房(十一)操作系统弱点扫描_数据_16

信息安全深透测试与工房(十一)操作系统弱点扫描_远程桌面_17

信息安全深透测试与工房(十一)操作系统弱点扫描_kali_18

信息安全深透测试与工房(十一)操作系统弱点扫描_kali_19

​11、不同类型的程序、协议、漏洞,会将某些字符认为是坏字符,这些字符有固定用途,所以不能用。可发送0x00 —— 0xff 256个字符,查找所有坏字符。

信息安全深透测试与工房(十一)操作系统弱点扫描_数据_20

信息安全深透测试与工房(十一)操作系统弱点扫描_kali_21

​12、逐一查找出坏字符,替换。比如0A是不能用的,用09替换。

信息安全深透测试与工房(十一)操作系统弱点扫描_缓冲区溢出_22

​13、使用编码对shellcode程序进行编译,定稿脚本

信息安全深透测试与工房(十一)操作系统弱点扫描_数据_23

信息安全深透测试与工房(十一)操作系统弱点扫描_缓冲区溢出_24

信息安全深透测试与工房(十一)操作系统弱点扫描_数据_25

信息安全深透测试与工房(十一)操作系统弱点扫描_缓冲区溢出_26

信息安全深透测试与工房(十一)操作系统弱点扫描_kali_27

从上面可以看到已经取得了对方电脑的shell控制权,这时可以提权新建账号和密码,或者直接打开远程桌面等操作。

​其实对于我们普通的技术人员没必要去学习这么深入,只要知道大概是怎么回事去利用缓冲区溢出来控制对方的电脑就行,当然你非要去弄清楚也可以,这样你可以自己去写公鸡脚本,也更牛B吧。​

推荐一个工具:注册表快照。

​可以比较你更改了系统某个对话时,可以找到是哪个注册表键值,你可以更方便的去修改注册表。

信息安全深透测试与工房(十一)操作系统弱点扫描_缓冲区溢出_28

​比如我们找到远程桌面:

信息安全深透测试与工房(十一)操作系统弱点扫描_kali_29

​启用远程桌面后,可以看到下面注册表键值的不同。这时我们就知道远程桌面的键值是什么,就可以有针对性的去修改它。

信息安全深透测试与工房(十一)操作系统弱点扫描_kali_30

二、linux系统缓冲区溢出

​和windows系统差不多,也是准备一个应用程序和公鸡脚本,先去测试公鸡。开启防火墙允许连接的端口。​

信息安全深透测试与工房(十一)操作系统弱点扫描_数据_31

信息安全深透测试与工房(十一)操作系统弱点扫描_数据_32

信息安全深透测试与工房(十一)操作系统弱点扫描_远程桌面_33

信息安全深透测试与工房(十一)操作系统弱点扫描_缓冲区溢出_34

信息安全深透测试与工房(十一)操作系统弱点扫描_远程桌面_35

信息安全深透测试与工房(十一)操作系统弱点扫描_数据_36

信息安全深透测试与工房(十一)操作系统弱点扫描_数据_37

信息安全深透测试与工房(十一)操作系统弱点扫描_kali_38

信息安全深透测试与工房(十一)操作系统弱点扫描_数据_39

信息安全深透测试与工房(十一)操作系统弱点扫描_远程桌面_40

信息安全深透测试与工房(十一)操作系统弱点扫描_远程桌面_41

其实测试和公鸡过程和上一章真的没啥区别,只不过使用的工具不一样,因为是不同的操作系统。

​在取得了操作系统shell的控制权后,可以上传一些NC、TFTP、灰鸽子等工具或穆马程序进一步控制对方电脑,然后可以上传键盘记录等工具来取得对方的密码信息。​

下一期我会再接着讲本地提权、缓存密码提取和利用漏洞提权。

  • 打赏
  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK