• 记一次失败的实战渗透


    0X01 找到注入点

    故事的起因还是因为我太闲了,上班摸鱼。

    摸着摸着就摸到了某个网站的查询框。

    接着老毛病就犯了,上去就输入了个1查询

    接着输入了1’

    啧啧啧,这明显有SQL注入哇。

    果断掏出SQLMAP神器。
    结局很完美,不仅存在注入,还是DBA的权限。

    0X02 网站get shell

    利用SQL注入去get shell有几种常见的方法,一种是跑数据,跑目录找到网站的管理后台,进入到后台想办法通过文件上传的等方法去拿shell;要么就通过报错,phpinfo界面,404界面等一些方式知道网站绝对路径,然后去写入shell,不过相对于mysql来说条件还是有些苛刻的。
    接着就是掏出御剑开始扫网站目录,目录还挺多。

    随意点开了个admin

    我去,竟然存在目录遍历。
    接着又点开了00/

    一口老血喷出,这,还没开始就结束了???
    绝对路径不请自来,竟然还是最常见的路径,早知道直接--os-shell跑常见路径了--

    含泪拿着绝对路径,直接SQLMAP中--os-shell

    这里有个点要了解一下,sqlmap中mysql数据库--os-shell的时候,sqlmap先写入一个文件上传shell tmpxxxx.php,再通过文件上传shell上传命令执行shell tmpxxxx.php,再利用命令执行shell执行命令。
    具体可以去雨九九大佬博客学习一波。
    https://www.cnblogs.com/Rain99-/p/13755496.html
    所以这里我就直接用sqlmap文件上传的shell去上传我的shell了

    这里还出现了一个问题,不可以使用assert函数的一句话木马

    最终换了一个木马成功拿下shell

    由于先前拿shell过程太过顺利,所以目录遍历也没有仔细看,但是在写本文的时候,仔细看了下目录遍历的文件,成功找到了一个未授权的上传点,也就是说,也可以通过未授权上传+目录遍历找到文件上传的文件夹去拿shell。

    0X03 初步信息搜集

    既然拿到了shell,那么第一步肯定是信息搜集了。

    从上面可以得知,当前用户为system,server2012的服务器,有内网环境,安装了杀软ESET NOD32。
    接下来看下内网的存活机器。
    探测内网存活机器的方法很多,Nbtscan,icmp 协议,arp-scan,scanline等等都可以,这里为了方便操作,直接上线到CS上再进行操作。
    免杀shellcode完美上线

    这里我用的K8gege的 Ladon插件进行扫描内网得,主要扫描出来的结果格式比较好看。

    以下是扫描的部分结果

    可以看出内网是存在大量存活的主机的,虽然这台WEB服务器并没有域环境,但是扫描的结果中有着AD等敏感词汇,初步估计内网至少有两个域环境,这时候就需要横向进一步做信息搜集,并刻画出内网拓扑图。

    0X04 横向渗透&进一步信息搜集
    内网第一波那必须的是MS17-010了,这里我同样用K8gege的Ladon。

    可以看出内网确实有几台机器可能存在MS17-010,这里一台一台打太浪费时间了,主要有不确定性,他的WEB服务器是装了杀软的,内网也应该是有杀软的,所以这里我将目标放在一台可能是域内主机的服务器上。

    接着就是cs开启socks代理,准备代理MSF开怼。

    本地KALI虚拟机挂代理也很简单,先
    sudo vim /etc/proxychains.conf
    在最下面插入一行CS的ip和刚刚开的端口

    保存后再proxychains msfconsole 启动MSF就可以了
    接着EXP打目标机器时出了点问题,应该是机器上有杀软拦截了交互执行。所以找了个每次只能加载一条命令的EXP添加了一个用户上去。

    由于上一次看这个站在一个月之前,写本文的时候复现17010没有成功,因为先前在目标机器添加了个账号,所以就登上去看了下,发现服务器已经被某位不知名的大黑阔给上了勒索软件。

    所以接下来的复现过程就没有继续,后面也没有继续看这个内网了。

    接下来域环境渗透大概的思路讲下吧:
    先判断目标机器是否处于域环境,如果处于域环境,
    首先上线CS提权读HASH,看看能不能读到域管账号,或者看看有没有域管进程,去进程注入,然后通过HASH传递去拿下域控,然后导出域内所有HASH。
    如果上面方法不行的话,MS14-068、MS14-025、CVE-2020-1472这些常见域内提权方式也可以尝试一下。
    如果还不行,扫描域内的WEB或者常见设备,从设备漏洞或者WEB漏洞入手获取权限,再一步一步往域控机器上打。

    但是要注意一点,整个内网渗透的过程中,一定要明确目标,否则会浪费很多时间,同时思路要灵活多变,不要死磕一个点。

    0x03 总结

    1.在目标站点查询处输入1',显示sql错误,则可能存在sql注入
    2.通过bp对查询处抓包保存为data.txt,并通过sqlmap  -r  data.txt进行注入,可发现存在注入漏洞,数据库权限为dba。
    3.通过御剑目录扫描工具对目标站点进行目录扫描,发现admin目录状态为http 200。
    4.访问admin目录存在目录遍历,任意访问admin目录下的文件夹如00/报错,并报错显示网站物理路径。
    5.通过sqlmap的--os-shell参数进行写入一句话
    6.通过蚁剑链接一句话,查看目录的时候发现,在/js/jqery_file_upload/存在未授权的上传点,通过该上传点,可上传木马,并通过目录遍历找到上传的文件路径。
    7.通过蚁剑的虚拟命令终端查询ip地址,以及系统进程(是否有av)以及系统版本信息和补丁信息
    ipconfig--192.168.1.34(目标站点内网IP地址)
    tasklist/svc ----ekm.exe与eguiproxy.exe(est nod32杀软)
    systeminfo
    8.在VPS上运行cobalstrike,生成ps后门程序,并对后门进行免杀(这里建议用powershell进行免杀),将免杀的ps脚本
    通过蚁剑上传到目标站点服务器上,并执行,成功上线。
    9.在cs中上传ladon.exe,并是用ladon 192.168.1.0/24 OsScan 进行c段扫描系统版本扫描
    10.同时也利用ladon 192.168.1.0/24  ms17-010 进行c段扫描永恒之蓝漏洞,发现有多台主机存在
    11.在CS中开启socks4代理
    socks  2233
    12.在本地KALI中使用下面配置文件添加sockes5代理
    vim /etc/proxychains.conf
    socks4  目标IP:2233
    13.通过proxychains msfconsole 启动MSF,这里可以通过msf模块攻击ms17-010主机,由于WEB服务器上网装有NOD32,那么其他网段应该也有,如果去打ms17-010则会不成功。

  • 相关阅读:
    c# 利用反射设置属性值
    C#中扩展方法
    Python与Ruby比较
    Python 学习笔记(半ZZ半自己写)
    c# 写的一个类帮助器(动态生成类 动态类 动态属性)
    c#学习python
    LBS中从数据库查询某经纬度2KM范围内的数据 针对大数据量的性能优化
    隐藏ToString等系统自带方法
    C#命名规范
    SQL Server 数值四舍五入,小数点后保留2位
  • 原文地址:https://www.cnblogs.com/backlion/p/15824558.html
Copyright © 2020-2023  润新知