获取shell(如何在登录界面获取 shell)

本文目录
如何在登录界面获取 shell
在Windows登录界面活动SYSTEM权限 shell 的简单方法是替换winlogon.exe程序调用的二进制文件。以下是这些二进制文件的部分列表:
sethc.exe
utilman.exe
osk.exe
magnify.exe
* 意味着搜索每个内存页面
730065007400680063002E006500780065是跟在sethc.exe后面的sethc.exe%ld待搜索unicode字符串
“0和-”意味着我们不必去寻找另一个块代码
r0 是补丁应用的相对偏移量
3006D0064002E006500078006500000000是通过cmd.exe替换sethc.exe的补丁程序
于是我们对winlogon.exe二进制文件进行了快速的静态分析,想要发现这些程序是如何启动的。我们查找了对Windows API函数CreateProcess的引用:
然后对sub.KERNEL32.dll_CreateProcessW_308函数进行了反汇编,找到了对sethc.exe二进制文件的调用方法,这个“粘滞键”小程序可以通过按5次SHIFT键调用:
格式字符串sethc.exe%ld看起来很有趣,在0x100032471处移动到r8,我们在winlogon进程转储中搜索它。
内存转储分析
在分析运行中的winlogon进程的核心转储时,我们搜索了这个格式字符串。在分析Windows Server 2016时,我们在进程转储的第一个128MB范围内中找到了这个字符串:
创建PCILeech签名文件
创建PCILeech签名是相当简单的任务,文档可以在PCILeech项目的signature_info.txt文件中找到。
修补程序签名的目的是找到sethc.exe%ld unicode字符串,并将其替换为Windows命令shell cmd.exe。这个技巧类似于通过cmd.exe替换sethc.exe可执行文件的提权方法。
但是,这种方法会改变系统的完整性,不适用于加密环境。因此,我们的补丁签名看起来像这样:
*,730065007400680063002E00650078006500200025006C006400000000000000730065007400680063002E006500780065,0,-,r0,63006D0064002E0065007800650000000000200025006C00640000000000000063006D0064002E00650078006500000000
内存修改
使用签名文件,我们只需要运行pcileech的patch子命令:
但是,使用我们的硬件(USB3380开发板),只能访问有限的内存(大约3500 MB)。换句话说,只有当搜索到的字符串位于这个存储区并且具有读/写权限时,该补丁才能工作。
Shell脚本获取自身路径的方法
Shell中使用 pwd 命令可以获得当前工作目录,然而『当前工作目录』可能并不是『脚本文件所在目录』。
可以看出, pwd 获取的『当前工作目录』可能并不是『脚本文件所在目录』。因此我们可以用以下方法获取脚本文件所在目录的绝对路径:
shell如何获取第一行的值
通过grep *.*|head -1可以获取到第一行的值
Shell基本上是一个命令解释器,类似于DOS下的command。它接收用户命令(如ls等),然后调用相应的应用程序。较为通用的shell有标准的Bourne shell (sh)和C shell (csh)。
shell权限对手机有影响吗
有影响。获取shell权限的过程会对手机产生风险,如出现冲突导致数据丢失、篡改或清除系统数据导致设备无法开机等,另外,获取shell权限会影响手机的稳定性,出现死机、重启等人为性故障,获取shell权限后会对存储器和CPU等主板上主要部件引起不良。

更多文章:
blast premier春季赛(csgo战队vitality有谁)
2026年9月7日 21:50
全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)
2026年9月7日 17:10
matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)
2026年9月7日 16:30
oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)
2026年9月7日 15:30
电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)
2026年9月7日 12:20



