《Kali渗透基础》10. 提权、后渗透
@
本系列侧重方法论,各工具只是实现目标的载体。
命令与工具只做简单介绍,其使用另见《安全工具录》。
本文以 kali-linux-2023.2-vmware-amd64 为例。
本文以原理为主。
这一部分技术更新换代很快。实操积累经验很重要。
1:提权
提权(Privilege Escalation),通过漏洞或直接获得账号密码,已实现低权限账号登录,希望获取更高权限,对目标进一步控制。
在系统中,不同账号之间权限隔离,这是操作系统安全的基础。
除此之外,操作系统还划分有用户空间与内核空间。
- 用户账号登陆时获取权限令牌。
- 系统账号无需用户登陆就已在后台启动服务。
提权通常分为两种类型:
- 本地提权(Local Privilege Escalation):利用操作系统或应用程序的漏洞,来执行特权操作或获取更高权限的访问权限。
这种情况下,攻击者已经获得了系统的一定权限,通常是一个低权限用户或进程,然后利用系统中的漏洞或配置错误,提升为具有更高权限的用户。 - 远程提权(Remote Privilege Escalation):利用网络服务或应用程序中的漏洞,从而获取对系统的更高级别访问权限。
这种情况下,攻击者通过网络远程连接到目标系统,并且通过利用系统或应用程序中的漏洞,提升为具有更高权限的用户。
Windows 权限:
- User
- Administrator
- System
Linux 权限:
- User
- Root
不同操作系统提权方法有所不同,但思路和原理相通。
2:Admin 提权为 System
下面先介绍 Windows 中从 Admin 权限提升到 System 权限的思路。
2.1:at
at
命令。定时任务。
原理:定时服务属于系统程序,由其启动的服务具有 System 权限。
示例:
at 19:39 /interactive cmd
可以看到启动了一个具有 System 权限的 cmd 窗口。
适用于 XP,Win2003。之后的 Windows 系统删除了 at 命令。
2.2:sc
sc
命令。编辑服务。
原理:服务属于系统程序,启动的服务具有 System 权限。
示例:
# 创建一个 system 名称的服务
sc Create syscmd binPath="cmd /K start" type= own type=interact
# 启动该服务
sc start syscmd
2.3:SysInternal Suite
Sysinternals Suite 是一组实用工具集,旨在帮助 Windows 操作系统用户进行系统分析、故障排除和安全性评估。
网页链接:https://learn.microsoft.com/zh-cn/sysinternals/downloads/
其中 PsExec 是 Sysinternals Suite 中的一个命令行工具,允许用户以一个具有管理员权限的身份执行命令行操作。
其使用需下载后拷贝到目标系统。
示例:psexec -i -s -d taskmgr
2.4:进程注入提权
进程注入,将代码注入某个进程,并在此基础上生成 shell。
特点:隐蔽性强,不会产生新的进程。
一个针对 Windows 32 位系统的进程注入工具:Process Injector v1.0
Pinjector is a security tool that allows users to execute applications in the context of other users. This tool is used most times in penetration tests to inject code into the logged admin or domain admin process and spawn a shell with their credentials.
3:抓包嗅探
截获网络传送中的数据,分析其中传输的用户名与密码。涉及抓包分析。
Windows 下的抓包工具:
- Wireshark
- Omnipeek
- Commview
- Sniffpass:能够专门捕获通过网络传输的用户名和密码。可以识别 HTTP、SMTP、POP3、FTP 等协议传输的凭据信息。
Linux 下的抓包工具:
- Tcpdump
- Wireshark
- Dsniff:Kali 中用于网络嗅探和密码截取等。
如果使用了加密传输协议,抓包嗅探会很困难。
4:键盘记录
记录目标系统的键盘键入。
Keylogger
存放在 Kali 中 /usr/share/windows-binaries/ 目录下。使用时传输到目标机器即可。木马窃取
例如 DarkComet,一个开源的恶意远程访问工具。其中就有键盘记录功能。
5:本地缓存密码
本节所述的方法需要取得 admin 权限。
若取得系统控制权,缓存在本地的密码将会很危险。
- 浏览器缓存的密码
- 网络密码
- 无线密码
- 一个古老的工具集:http://www.nirsoft.net
- Dump SAM:提取 Windows 操作系统中的密码哈希。
下面是几个针对 Windows 系统的工具。
5.1:PwDump
PwDump 工具可以访问 Windows 系统的安全账户数据库(Security Account Manager,SAM),提取密码哈希。
存放在 Kali 中 /usr/share/windows-binaries/fgdump/ 目录下,需要拷贝到目标 Windows 系统使用。
5.2:WCE
WCE(Windows Credential Editor)用于从 Windows 系统中提取和修改凭据。可以在目标系统上获取当前用户的明文密码、哈希值、凭据缓存等信息,并支持修改用户密码和强制注销用户会话。
存放在 Kali 中 /usr/share/windows-resources/wce/ 目录下,需要拷贝到目标 Windows 系统使用。
5.3:fgdump
fgdump 也用于提取密码哈希。
存放在 Kali 中 /usr/share/windows-binaries/fgdump/ 目录下,需要拷贝到目标 Windows 系统使用。
5.4:Mimikatz
Mimikatz 是法国安全研究人员 Benjamin 开发的一款功能强大的轻量级调试工具,能够直接读取很多 Windows 操作系统的明文密码,除此以外还有很多其他强大的功能。
存放在 Kali 中 /usr/share/windows-resources/mimikatz/ 目录下,需要拷贝到目标 Windows 系统使用。
6:利用漏洞提权
通过系统或软件漏洞进行提权。需要寻找能够利用的漏洞
6.1:Windows
以下是几个例子:
MS11-080 漏洞,在 kali 上可以通过 searchsploit ms11-080
寻找到 EXP:18176.py。再通过 searchsploit -p 18176.py
确定 EXP 保存位置
如果目标系统没有 python 环境,需要提前使用 pyinstaller 库打包为 exe 程序。
https://pypi.org/project/pyinstaller/
对于 win32 系统,还需要 pywin32 库。
https://sourceforge.net/projects/pywin32/files/pywin32/Build%20219/
MS11-046 漏洞 ,可用于 Dos 攻击。
MS14-068 漏洞,提权,在域成员电脑上获得域管理员权限。
6.2:Linux
例如:
CVE-2012-0056 漏洞,可用于 Ubuntu11.10 的提权漏洞。Kali 中对应的 EXP:18411.c。
7:利用配置不当提权
利用配置不当提权与利用漏洞提权相比,是更常用的方法。
- 企业环境下,漏洞补丁全部安装。
- 配置不当,是变量注入之外更值得关注的安全隐患。
配置不当可分为:
- 文件、目录权限配置不当。
- 应用系统的配置文件配置不当。
可将 shell 命名为具有权限的同名可执行文件,替换掉以后即可执行。
7.1:icacls
在 Windows 中,可以使用 icacls
命令来查询、管理和控制文件和目录的权限等。
示例01:保存 C:\Windows 目录下所有的 .exe 文件的权限到 perm 文件中。
icacls c:\windows\*.exe /save perm /T
7.2:find
在 Linux 中,可以使用 find
命令来查询具有某权限的文件和目录。
示例01:查找所有权限位设置为 777 的文件,并显示详细信息。
find / -perm 777 -exec ls -l {} \;
8:信息与数据收集
在取得足够权限后,就可以开始进一步的信息与数据收集工作。
8.1:Linux
一些信息收集示例:
cat /etc/resolv.conf
cat /etc/passwd
cat /etc/shadow
whoami
who -a
ifconfig -a
iptables -L -n
netstat -r
uname -a
ps aux
dpkg -l
除此之外,还有其他敏感信息,例如 .ssh 与 .gnupg 公私钥文件、业务数据库、/tmp/ 临时文件等。
8.2:Windows
一些信息收集示例:
ipconfig /all
ipconfig /displaydns
netstat -bnao
netstat -r
net view
net view /domain
net user /domain
net user %username% /domain
net accounts
net share
除此之外,还有其他敏感信息,例如 SAM 数据库、注册表文件、临时文件、UserProfile\AppData\Local\Microsoft\Windows\Temporary Internet Files\ 等。
8.2.1:WMIC
WMIC(Windows Management Instrumentation Command-line)用于与 WMI(Windows Management Instrumentation)进行交互。
WMI 是管理和监视 Windows 操作系统的框架,允许管理员获取系统信息、监视系统活动等。
示例:
wmic nicconfig get ipaddress, macaddress
wmic computersystemget username
wmic netlogin get name, lastlogon
wmic process get caption, executablepath, commandline
wmic process where name="calc.exe" call terminate
wmic os get name, servicepackmajorversion
wmic product get name, version
wmic product where name=“name” call uninstall /nointeractive
wmic share get /ALL
wmic /node:"machinename" path Win32_TerminalServiceSetting where AllowTSConnections="0" call SetAllowTSConnections"1“
wmic nteventlogget path, filename, writeable
9:痕迹隐藏
渗透完成后,要清除相关的痕迹。
包括但不限于以下几点:
- 禁止在登陆界面显示新建账号。
- 命令执行记录。
- 日志。(Linux 日志详见《【Linux基础】08. 日志管理 · 备份与恢复》)
- HIDS,Host Intrusion Detection System,主机入侵检测系统
西园公子名无忌,南国佳人号莫愁。
——《忆昔》(唐)韦庄
《Kali渗透基础》10. 提权、后渗透的更多相关文章
- EXP查询合集提权后渗透必备
0x00 整理的一些后渗透提权需要用到的一些漏洞,后渗透提权的时候可以看一下目标机那些补丁没打,再进行下一步渗透提权. 0x01 CVE-2019-0803 [An elevation of priv ...
- 免考final linux提权与渗透入门——Exploit-Exercise Nebula学习与实践
免考final linux提权与渗透入门--Exploit-Exercise Nebula学习与实践 0x0 前言 Exploit-Exercise是一系列学习linux下渗透的虚拟环境,官网是htt ...
- 内网渗透 day5-msf本地提权(windows)
msf本地提权 目录 1. 利用uac提权 1 2. 绕过uac认证 2 3. 利用windows本地提权漏洞进行提权 4 1. 利用uac提权 前提与目标机建立会话连接 seach local/as ...
- 提权后获取linux root密码
提权后获取linux root密码 2011-09-09 10:45:25 我来说两句 收藏 我要投稿 在webbackdoor本身是root(可能性小的可怜)或通过某漏洞溢出 ...
- 渗透之——MSF提权
在WEB渗透中当我们拿到webshell了,我们可以试试用MSF(metasploit)来进行提权,在MSF里meterpreter很强大的! 我们先用msfvenom生成一个EXE的木马后门. ms ...
- kali linux之本地提权
已实现本地低权限帐号登录,希望获取更高权限,实现对目标进一步控制 系统帐号之间权限隔离(操作系统安全的基础,用户空间,内核空间) 系统帐号(用户帐号登录时获取权限令牌,服务帐号无需用户登录已在后台启动 ...
- Linux提权后获取敏感信息的方法与途径
在本文开始之前,我想指出我不是专家.据我所知,在这个庞大的区域,没有一个“神奇”的答案.分享,共享(我的出发点).下面是一个混合的命令做同样的事情,在不同的地方,或只是一个不同的眼光来看待事物.我知道 ...
- 史上最全Linux提权后获取敏感信息方法
http://www.freebuf.com/articles/system/23993.html 在本文开始之前,我想指出我不是专家.据我所知,在这个庞大的区域,没有一个“神奇”的答案.分享,共享( ...
- LINUX提权后获取敏感信息之方法
文中的每行为一条命令,文中有的命令可能在你的主机上敲不出来,因为它可能是在其他版本的linux中所使用的命令. 列举关键点 (Linux)的提权是怎么一回事: 收集 – 枚举,枚举和一些更多的枚举. ...
- 提权基础-----mysql-udf提权
1.总结关于udf提权方法 通过弱口令,爆破,网站配置文件等方式得到mysql数据库帐号密码,---还要能外连 (1).将udf.dll代码的16进制数声明给my_udf_a变量 set @my_ud ...
随机推荐
- vue全家桶进阶之路47:Vue3 Axios拦截器封装成request文件
可以将Axios拦截器封装成一个单独的request文件,以便在整个应用程序中重复使用. 以下是一个示例,展示如何将Axios拦截器封装成一个request文件: 1.创建一个名为request.js ...
- 浅谈 OI 中各种合并操作
前言 合并操作一直是 OI 中一大考点,今天请各位跟着笔者来梳理一下各种合并操作. 启发式合并 几乎可以说是最经典的合并了. 假定我们可以在 \(O(k)\) 的时间内往某个集合中插入一个数,那么我们 ...
- es 笔记二之基础查询
本文首发于公众号:Hunter后端 原文链接:es笔记二之基础查询 这一篇笔记介绍 es 的基础查询. 基础查询包括很多,比如排序,类似数据库 limit 的操作,like 操作,与或非等,对于这些操 ...
- 2023-05-21:给定一个字符串 s 和一个整数 k 。你可以从 s 的前 k 个字母中选择一个, 并把它加到字符串的末尾。 返回 在应用上述步骤的任意数量的移动后,字典上最小的字符串。 输入:s
2023-05-21:给定一个字符串 s 和一个整数 k .你可以从 s 的前 k 个字母中选择一个, 并把它加到字符串的末尾. 返回 在应用上述步骤的任意数量的移动后,字典上最小的字符串. 输入:s ...
- [安全开发] SQL注入扫描(一股子GPT味~)
实际上大部分都是它写的,它真我哭 SQL注入扫描就是一种用于检测和预防SQL注入攻击的工具.它通过模拟SQL注入攻击的方式,向目标网站发送特定的SQL查询语句,以验证目标网站是否存在SQL注入漏洞.S ...
- Android SmartTable表格框架1_如何使用
SmartTable github地址:https://github.com/huangyanbin/smartTable 参考:https://juejin.cn/post/684490354910 ...
- 在 VS Code 里逛知乎、发文章?Zhihu on VSCode 来啦!重新定义内容创作!
本文为 牛岱 的原创文章 在2020年2月10日首发于"玩转VS Code"知乎专栏 你是否已经厌倦了知乎 Web 端文本编辑器糟糕的使用体验和时而出现的奇怪 Bug? 身为程序员 ...
- CF1817E Half-sum
题意 有一个大小为 \(N\) 的非负整数集合 \(A\),每次你可以从集合中取任意两个数,并将它们的平均数放回序列.不停操作,知道集合最后剩下两个数.请求出这两个数的差的绝对值的最大值对 \(10^ ...
- LeetCode 双周赛 107(2023/06/24)滑动窗口与离散化
本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 和 [BaguTree Pro] 知识星球提问. 往期回顾:LeetCode 单周赛第 348 场 · 数位 DP ...
- Python运维开发之路《python基础介绍》
一. python介绍相关 1. Python简介 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. - Python 的设计具有很强的可读性,相比其他语言经常使用英文关 ...