Kioptix Level 4(0基础教学)
1.将靶机导入到vm中
使用nmap进行全端口扫描,获得靶机ip
2.使用nmap进行端口扫描、目录扫描、指纹识别,进入靶机网站进行信息收集
目录扫描
获得靶机网站的部分信息
3.对登录框进行尝试
在登陆框中发现可以进行sql注入
账号:admin
密码:1'
由于没有回显,手工盲注太耗费时间,选择使用sqlmap进行爆破
首先抓取登陆的数据包,并将其保存到桌面上
sqlmap -r 1 --dump --batch --level 3
命令解释:
-r 1
表示从文件1中读取HTTP请求。这个文件应该包含一个完整的HTTP请求,例如一个包含可能存在SQL注入点的URL、请求方法(如GET或POST)、请求头和请求体(如果是POST请求)等信息。
--dump
这个参数指示sqlmap尝试从数据库中导出(转储)数据。如果发现了可利用的SQL注入点并且有足够的权限,sqlmap会将数据库中的表数据提取出来。
--batch
使sqlmap以非交互模式运行。在这种模式下,sqlmap会自动选择默认选项,不需要用户手动输入(例如,对于一些需要确认的操作,它会自动按照默认设置进行)。
--level 3
设置检测的级别为3。sqlmap有不同的检测级别,级别越高,它会尝试更多的检测技术和payload。一般来说,级别越高,检测的准确性可能越高,但同时也可能需要更多的时间和资源。
跑出来了数据库的账号和密码
登陆进去后发现只有退出登录,没有别的信息
4.使用ssh进行远程连接
由于22端口开放ssh服务,可以尝试使用ssh进行远程连接,此靶机的ssh服务版本较低,需要使用额外参数进行ssh连接
ssh -o HostKeyAlgorithms=+ssh-rsa john@192.168.55.134
命令解释:
HostKeyAlgorithms=+ssh-rsa:此选项指定了在建立SSH连接时,允许使用的主机密钥算法。
HostKeyAlgorithms:这个选项用来控制客户端支持的主机密钥算法。
+ssh-rsa:这表示在当前默认的密钥算法列表中添加ssh-rsa。即使ssh-rsa可能在SSH客户端的默认设置中被禁用,+ssh-rsa允许此算法被启用,允许与远程主机使用RSA密钥进行身份验证。
远程连接成功!
5.进行提权操作
尝试使用常见命令,发现均不可以使用
刚登陆时靶机提示我们输入help命令,似乎只能使用以下命令进行操作
提权方法1: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会话
查看系统进程,发现有mysql的进程
find / -perm -4000 -print 2 >/dev/null
查找suid文件,发现john用户不能进行提权
信息收集时已知此站点是php站点,所以我们可以尝试看看php文件,进入/var/www/john目录下查看php文件
由配置文件知,root用户的密码是空
密码直接回车即可进入数据库
mysql的提权方式有一个叫做udf提权,首先看看udf表
select sys_exec('usermod -a -G admin john');
命令解释:
select:这是SQL中的选择语句,通常用于从数据库中检索数据。但在这里,它可能被误用或滥用,试图执行一个非标准的、可能是恶意的操作。
sys_exec:如前所述,这不是MySQL的内置函数。如果这个函数在你的MySQL环境中存在,那么它很可能是通过加载外部动态链接库(如DLL或SO文件)而创建的UDF。这个函数的设计目的是执行传递给它的系统命令。
'usermod -a -G admin john':这是要执行的Linux系统命令,其作用是将用户 john 添加到 admin 组中。usermod 是Linux系统中用于修改用户帐户的命令,-a 表示追加用户到附加组,-G 指定了要添加的组。
提权成功!