此脚本可以检测MS17-010漏洞并获取操作系统信息,配合BurpSuite可批量检测,Socket发包,无其他扩展。

使用方法:

http://url/ms17-010.php?host=IP

PHP代码:

@error_reporting(7);

if(@$_GET['host']){

$host=trim($_GET['host']);

if(ms17010($host,445)){

echo '[+] Vulnerability!';

}else{

echo '[-] No Vulnerability!';

}

echo '
[+] OS: '.smbos($host,445)."
";

}

function get_tree_connect_request($ip,$tree_id){

$ipc='005c5c'.bin2hex($ip).'5c49504324003f3f3f3f3f00';

$ipc_len_hex=bin2hex(pack('s',strlen($ipc)/2));

$data='ff534d4275000000001801280000000000000000000000000000729c'.$tree_id.'c4e104ff00000000000100'.$ipc_len_hex.$ipc;

$tree='000000'.bin2hex(pack('s',strlen($data)/2)).$data;

$data5=pack('H*',$tree);

return $data5;

}

function ms17010($host,$port){

$tcp='tcp://'.$host.':'.$port;

$sock=stream_socket_client($tcp,$errno, $errstr, 3,STREAM_CLIENT_CONNECT);

if ($sock){

$data1=pack('H*','00000054ff534d4272000000001801280000000000000000000000000000729c0000c4e1003100024c414e4d414e312e3000024c4d312e325830303200024e54204c414e4d414e20312e3000024e54204c4d20302e313200');

fwrite($sock,$data1);

fread($sock, 1024);

$data2=pack('H*','0000008fff534d4273000000001801280000000000000000000000000000729c0000c4e10cff000000dfff0200010000000000310000000000d400008054004e544c4d5353500001000000050208a2010001002000000010001000210000002e3431426c7441314e505974624955473057696e646f7773203230303020323139350057696e646f7773203230303020352e3000');

fwrite($sock,$data2);

$data2_data=fread($sock, 1024);

$user_id=substr(bin2hex($data2_data),64,4);

$data3=pack('H*','00000150ff534d4273000000001801280000000000000000000000000000729c'.$user_id.'c4e10cff000000dfff0200010000000000f200000000005cd0008015014e544c4d53535000030000001800180040000000780078005800000002000200d000000000000000d200000020002000d200000000000000f2000000050208a2ec893eacfc70bba9afefe94ef78908d37597e0202fd6177c0dfa65ed233b731faf86b02110137dc50101000000000000004724eed7b8d2017597e0202fd6177c0000000002000a0056004b002d005000430001000a0056004b002d005000430004000a0056004b002d005000430003000a0056004b002d00500043000700080036494bf1d7b8d20100000000000000002e003400310042006c007400410031004e005000590074006200490055004700300057696e646f7773203230303020323139350057696e646f7773203230303020352e3000');

fwrite($sock,$data3);

fread($sock, 1024);

$data4=pack('H*','00000063ff534d4273000000001801200000000000000000000000000000729c0000c4e10dff000000dfff02000100000000000000000000000000400000002600002e0057696e646f7773203230303020323139350057696e646f7773203230303020352e3000');

fwrite($sock,$data4);

$data4_data=fread($sock, 1024);

$newuser_id=substr(bin2hex($data4_data),64,4);

$data5=get_tree_connect_request($host,$newuser_id);

fwrite($sock,$data5);

fread($sock, 1024);

$poc=pack('H*','0000004aff534d422500000000180128000000000000000000000000'.$user_id.'729c'.$newuser_id.'c4e11000000000ffffffff0000000000000000000000004a0000004a0002002300000007005c504950455c00');

fwrite($sock,$poc);

$poc_data=fread($sock, 1024);

if(substr(bin2hex($poc_data),18,8) == '050200c0'){

return true;

}else{

return false;

}

}

}

function smbos($host,$port){

$tcp='tcp://'.$host.':'.$port;

$sock=stream_socket_client($tcp,$errno, $errstr, 3,STREAM_CLIENT_CONNECT);

if ($sock){

$payload1=pack('H*','00000085ff534d4272000000001853c80000000000000000000000000000fffe00000000006200025043204e4554574f524b2050524f4752414d20312e3000024c414e4d414e312e30000257696e646f777320666f7220576f726b67726f75707320332e316100024c4d312e325830303200024c414e4d414e322e3100024e54204c4d20302e313200');

$payload2=pack('H*','0000010aff534d4273000000001807c80000000000000000000000000000fffe000040000cff000a01044132000000000000004a0000000000d40000a0cf00604806062b0601050502a03e303ca00e300c060a2b06010401823702020aa22a04284e544c4d5353500001000000078208a2000000000000000000000000000000000502ce0e0000000f00570069006e0064006f0077007300200053006500720076006500720020003200300030003300200033003700390030002000530065007200760069006300650020005000610063006b002000320000000000570069006e0064006f0077007300200053006500720076006500720020003200300030003300200035002e00320000000000');

fwrite($sock,$payload1);

$out1=fread($sock, 1024);

fwrite($sock,$payload2);

$out2=fread($sock, 1024);

$blob_len_arr=unpack('s',substr($out2,36+7,2));

$osarr=explode(chr(0),iconv('UTF-16LE','UTF-8',substr($out2,36+11+$blob_len_arr[1])));

return $osarr[0].'|'.$osarr[1];

}

}

?>

php判断是否蓝色,MS17-010“永恒之蓝”漏洞PHP检测脚本相关推荐

  1. 永恒之蓝漏洞复现(ms17-010)

    文章目录 一.永恒之蓝(Eternal Blue) 二.复现环境 三.复现过程 1.主机发现 2.进入MSF框架 3.使用ms17-010扫描模块,对靶机进行扫描 3.1使用模块 3.2查看模块需要配 ...

  2. 蠕虫病毒利用永恒之蓝漏洞传播 单位局域网受威胁最大

    一. 概述 日前,火绒安全团队通过"火绒威胁情报系统"发现蠕虫病毒"Worm/Sharp"正在全网传播,其中在政府.企业.学校.医院等单位的局域网具有非常强的传 ...

  3. 永恒之蓝漏洞利用(MS17-010)获取shell 及获取靶机屏幕截图

    永恒之蓝漏洞利用(MS17-010) 文章目录 永恒之蓝漏洞利用(MS17-010) 一.永恒之蓝(MS17-010)介绍 二.漏洞利用 1.检测目标主机是否存在MS17-010漏洞 2.使用msf攻 ...

  4. 【重要预警】“永恒之蓝”漏洞又现新木马 组成僵尸网络挖矿虚拟货币

    WannaCry和UIWIX勒索软件在全世界掀起了轩然大波,但是利用"永恒之蓝"漏洞进行攻击的却不止这两个恶意软件.今日,亚信安全中国病毒响应中心发现了利用"永恒之蓝&q ...

  5. 利用永恒之蓝入侵服务器复制文件,永恒之蓝漏洞利用复现(示例代码)

    一.环境搭建: IP地址 系统信息 备注 角色 192.168.0.244 win7旗舰版(未安装MS17-010补丁版本) 需开启445端口及SMB协议 靶机 192.168.0.105 win7旗 ...

  6. kali使用msf 通过ms17_010_eternalblue(永恒之蓝)漏洞攻击win7测试 及乱码问题解决

    两台Vmware虚拟机: Kali Win7 64位: (主机)kali的ip是 192.168.0.119 (靶机)win7的ip是192.168.0.109 使用nmap端口扫描工具,扫描一下目标 ...

  7. linux 会不会受到永恒之蓝漏洞,永恒之蓝漏洞复现(ms17-010)

    永恒之蓝漏洞复现(ms17-010) 漏洞描述: Eternalblue通过TCP端口445和139来利用SMBv1和NBT中的远程代码执行漏洞,恶意代码会扫描开放445文件共享端口的Windows机 ...

  8. MS17-010永恒之蓝漏洞的简谈与利用

    MS17-010是一个安全类型的补丁. MS17-010更新修复了 Microsoft Windows中的漏洞. 如果攻击者向 Microsoft 服务器消息块 1.0 (SMBv1) 服务器发送经特 ...

  9. MS17-010(永恒之蓝)漏洞复现和分析

    MS17-010(永恒之蓝)漏洞复现和分析 一.漏洞简介 1.永恒之蓝介绍: 永恒之蓝是指2017年4月14日晚,黑客团体Shadow Brokers(影子经纪人)公布一大批网络攻击工具,其中包含&q ...

最新文章

  1. php dedecms 记录访问者ip,dedecms实现显示访问者ip地址的方法
  2. DataGrid基于Access的快速分页法
  3. 友盟-统计不到线上应用数据的坑
  4. python有理数_Python中的as_integer_ratio()用于减少给定有理数的分数
  5. 中国5G研发试验喜迎“小学课本”
  6. C语言和设计模式(观察者模式)
  7. Windroy Lets Android run on Windows systems-- 国外androids 虚拟系统分享
  8. 时间变为.05PU sql长度写法
  9. linux安装软件-rpm命令解析
  10. MyBatis之sql映射文件
  11. Python手动安装 package
  12. Gentle.NET笔记(二)-列表示例
  13. (JDBC四)JDBC实例(b)
  14. Android4.1
  15. xp用户未授予用户在此计算机,未授予用户在此计算机上的请求登录类型的解决方法 win7XP共享打印机完美解决教程...
  16. 用anaconda下载安装pytorch1.8.1+cudatoolkit11.1
  17. stm32 esp8266-01使用 get,post 请求数据以及json解析
  18. 【原创】2009.6.22犀浦记
  19. iOS转前端之如何适配不同屏幕尺寸方案
  20. 从1到100怎么做?小红书KOL五大阶段运营增长策略

热门文章

  1. 全球及中国生物质气化行业研究及十四五规划分析报告
  2. php导出成word试卷,依据word模板批量生成试卷
  3. linux环境下编译部署php生产环境
  4. 数学-初等-完全平方(和)差公式
  5. C++坑人游戏[1.0版本](完)
  6. iphone11文件连接服务器教程,新入手iPhone 11?手把手教你快速上手熟悉IOS系统
  7. Apollo Cyber RT学习手册(基于Ubuntu18.04、Apollo 6.0_edu)
  8. 开利网络受邀参与广州市候鸟基金会公益节目录制活动
  9. 使用 auto-drawing 画一个鱼骨图
  10. PHP下载APK文件