转载自己的个人网站:https://www.huangmj.com/
目录
47. sudo pico
条件:
pico和nano很相似,所以提权方式也很相似,但它两却是不同的编辑器,从功能上和使用场景上有那么一点差别
利用流程:
Ctrl+r 读取文件
Ctrl+x 执行命令
reset 将环境重置,确保是一个干净的环节
; 并列执行的命令
1>&0 2>&0 对输入输出做一个规划,错误输出也要重定向
获得一个提权后的shell环境
48. sudo pkexec
条件:
pk 是Policykit 策略套件,是一种服务,用于管理系统范围内的策略,并允许非特权进程通信,以进行特权操作
exec 遇到过很多,都指的是执行的意思
pkexec 执行权限操作的一个命令,能够执行用户指定的程序
利用流程:
pkexec 直接指定我们所需要的提权语句
49. sudo python3
条件:
利用流程:
-c 可以直接在命令行中调用python代码,使用os库执行系统命令
50. sudo rvim
条件:
rvim 是vim编辑器的特定版本,r=restricted 限制的意思,相比于vim,rvim限制了一些命令,防止执行对系统有危害的命令
利用流程:
-c 让rvim在启动后执行指定的命令或vim脚本
: 告诉rvim执行系统命令,这里我们用python写一个提权脚本
看到命令提示符中有#号,提权成功
51. sudo scp
条件:
scp=secure copy 用于在Linux下远程文件复制,用于ssh安全远程文件复制的工具
利用流程:
-S 指定ssh程序,我们可以指定提权逻辑
x y: 因为我们是要提权,就随便指定本地文件和远程文件
52. sudo screen
条件:
screen 终端复用工具,和tmux很相似
利用流程:
启动screen会话
按空格或回车键结束
看到命令提示符中有#号,提权成功
53. sudo script
条件:
script 本来就是启动新的shell会话,记录shell所有的命令记录
利用流程:
单纯从提权角度,直接执行script命令就行,但从渗透测试来说,我们不希望它记录我们的提权过程的命令让蓝队获取,同时还会显示头和尾,所以要做一些调整
-q 把刚刚的头和尾给静默掉
/dev/null 同时把script操作记录结果对掉
这才是我们渗透测试时正确的方式
54. sudo sed
条件:
sed 是一个强大的文本处理工具,用于对文本进行读取、处理和编辑
利用流程:
-n 用于不自动打印,因为默认sed会打印每一行内容,使用后,sed只会打印你告诉他打印的那一行
sed自有的命令达到启动新会话的命令,其中:1是第一行,e是执行命令,执行exec启动一个新的bash,然后对于输出重定向到输入,形成一个信息流,最后因为sed要读取哪一个文件,否则会报错,但他执行什么,其实无所谓,我们目的就是为了启动一个bash,而不是为了读取什么
55. sudo service
条件:
service 用于管理Linux系统中的服务,他可以将可执行文件作为服务启动
利用流程:
作为渗透来说,那我们肯定希望他的可执行文件是启动一个新bash
../../ 因为service在寻找可执行文件的时候,他是在path指定的环境变量中进行搜索,所以要返回上两级,这样能确保在这个搜索范围内肯定能找到到bash这个路径
![](https://img-blog.csdnimg.cn/img_convert/9618461ff795b6e93bdb485012a1b088.jpeg)
56. sudo socat
条件:
socat 多功能的网络工具,用它来建立双向的数据传输通道
利用流程:
stdin 标准输入
57. sudo ssh
条件:
利用流程:
-o ProxyCommand='' 指定代理服务器连接到远程主机,再提权,
x 代表指定的一个远程主机,因为我们并不需要他进行连接,只是想启动shell,这个参数只要不是空着就行
; 为了避免ssh试图让我们的提权逻辑成为通道,完成代理服务,同时也为了避免ssh在进行密钥交换的时候,无法与主机通信导致错误,这时候我们就需要在他前面执行一些东西,加一个“;”,实际“;”前面就是指的一个空命令,空命令执行成功后面才会执行我们提权逻辑,这是bash语句中的逻辑
58. sudo ssh-keygen
条件:
利用流程:
引入需要的库
生成一个静态无返回值的函数
函数体写入提权逻辑
c语言共享库的编译
-shared 指定shared关键字
-fPIC 指定文件位置的无关参数
-o 输出 共享库文件 源文件
-D 指定一个动态连接库,所以我们要按照动态连接库的方式构造一个文件,写入一个提权逻辑,并按照动态连接库的逻辑进行编译
提示说不能打开共享库文件,但事实上文件就在这个目录下,这里就涉及到一个环境变量,当程序需要加载共享库时,系统会优先在“LD_LIBRARY_PATH”这个变量中查找库文件,如果这个路径在这个环境变量里会找到,不在则认为没有这个共享库。所以我们1、直接把当前路径加到这个环境变量里,2、直接明确指定这个共享库的位置
这里选择2,直接明确指定这个共享库的位置
59. sudo strace
条件:
strace命令是一个集诊断、调试、统计与一体的工具,我们可以使用strace对应用的系统调用和信号传递的跟踪结果来对应用进行分析,以达到解决问题或者是了解应用工作过程的目的。 strace常用来跟踪进程执行时的系统调用和所接收的信号。
利用流程:
-o 输出
输出不要,但却调试和追踪的我们指定的bash命令
60. sudo systemctl
条件:
systemctl 是systemd主要命令行工具,systemd是现代很多发行版的初始Linux系统,负责引导系统和管理系统运行的级别,systemctl允许启动、重启、禁止、停止启用系统服务、查看状态系统,或者查看和控制系统日志等等
利用流程:
systemctl的提权有很多,这里演示最常用的一种
直接运行systemctl
显示信息类似Linux中的常用编辑器,它的提权方式也很相似
用“!”告诉系统命令启动新的bash会话
可以看到命令指示符中已经有“#”号
61. sudo tcpdump
条件:
tcpdump 用于监听网络流量或者是捕获网络流量的工具
利用流程:
提权路径,提权时可以用到tcpdump这样一个功能,就是它可以将网络流量捕获,并且把数据包传递给一个脚本进行处理,那传递给什么样的脚本,我们就可以在里面加戏,就可以把提权的逻辑加进去
先准备提权的脚本,写入提权逻辑,并给上执行权限,事实上这里用mkfifo也是一样的,这里演示不同的,做一个差异化用mknod
同时,在kali本地建立一个监听
回到靶机进行执行提权
-ln 告诉tcpdump使用数字形式显示ip的地址和端口号,不进行反向解析
-i 指定网卡
-w 将捕获的数据包直接丢掉
-W 1 限制每个文件的大小为1,并在达到限制后进行切换,因为具体捕捉多少内容,对我们没有任何意义,所以就按它的语法结构给到他参数就行了
-G 1 在一秒后轮换到下一个文件
-z 指定数据包处理的脚本,就是含有提权逻辑的这个脚本
-Z root 以root权限进行操作
kali获得反弹shell,并通过python反射实现交互提升
62. sudo tee
条件:
tee 命令,它能将输入中读取的数据写入到文件的同时,输出到标准输出中
利用流程:
提权路径,也就是说这个用户有root的写权限,比如可以将新用户写到passwd中
用openssl passwd功能生成一个密码为123456的hash值,然后用我们本地kali中passwd的组成形式,修改构造一个新用户具有root权限的字段
然后在靶机中用我们构造具有root权限的用户进行追加、登陆进行操作
tee -a 对原文件不进行覆盖
63. sudo timedatectl
条件:
利用流程:
list-timezones字命令 列出时区
用“!”告诉timedatectl下面执行系统命令启动新的bash会话
可以看到命令指示符中已经有“#”号
64. sudo tmux
条件:
tmux 终端复用工具,和screen很像
利用流程:
直接执行,因为它本身就是通过启动新的shell实现端口复用的
看到命令提示符中有#号,提权成功
65. sudo vi
条件:
利用流程:
启动vi编辑器,在其中用“:”号执行命令模式
看到命令提示符中有#号,提权成功
也可以直接在命令行操作:
-c 执行命令
66. sudo wall
条件:
wall是广播消息的命令,可以发送一条信息到所有打开的终端窗口,这是一种系统中进行通讯的方法,常用于系统管理员告知所有用户系统即将进行的操作,比如重启或者通知,用wall就能够读取广播消息的文件,而有sudo权限就可以读取任何文本文件
利用流程:
使用wall命令读取敏感信息
--nobanner 不显示头信息
拿到root的密码hash值
在kali中暴力破解hash值
回到靶机中进行登陆
67. sudo watch
条件:
watch是一个在Linux系统上周期性执行命令,并显示结果的程序,它默认每两秒执行一次指定的命令
利用流程:
-x 在命令行输出每次执行的命令,基于提权目的,肯定想让它执行bash命令
-c 是bash执行命令选项
reset 将环境重置,确保是一个干净的环节
; 并列执行的命令
1>&0 2>&0 对输入输出做一个规划,错误输出也要重定向
68. sudo wget
条件:
wget 下载命令
利用流程:
先用mkdump生成临时文件,并给上执行权限
echo 写入提权逻辑
-e 启用“\”转译符,这是echo命令所要求的
#!/bin/bash 使用/bin/bash环境,
/bin/bash 启用新的bash
1>&0 把标准输出重定向到标准输入
--use-askpass 当用密码的时候,他会调用一个程序来获取密码
0 是我们随便代表指定的下载东西,确保wget可以正常执行就行
69. sudo zip
条件:
zip 压缩工具
利用流程:
zip <压缩后的文件名称> <指定压缩文件>
-T 用zip自己的命令检测压缩文件的完整性
-TT 它是你指定一个程序去检查压缩包的完整性,这样我们就可以执行我们自己加入提权逻辑的程序
bash # 加一个“#”号表示后边的注释掉,内容忽略,因为我们只想让它启动一个bash而已
![](https://img-blog.csdnimg.cn/img_convert/285e69e60e7d5ff82bde011e635f28c2.jpeg)
70. sudo xxd
条件:
xxd 是一个将二进制的文件转换成十六进制或反向操作的工具
利用流程:
在渗透测试过程中,就可以用它对于一些原本我们无法读取的文件进行编码和反向解码
xxd -r 反向解码
在kali中暴力破解hash值
回到靶机中进行登陆