转载自己的个人网站:https://www.huangmj.com/
目录
23. sudo gdb
24. sudo git
25. sudo gzip/gunzip
26. sudo hping3
27. sudo iftop
28. sudo java
29. sudo jjs
30. sudo journalctl
31. sudo knife
32. sudo less
33. sudo man
34. sudo more
35. sudo mount
36. sudo mysql
37. sudo nano
38. sudo neofetch
39. sudo nice
40. sudo nmap
41. sudo node
42. sudo nohup
43. sudo openvpn
44. sudo passwd
45. sudo perl
46. sudo php
23. sudo gdb
条件: gdb 是一个被广泛使用对源代码级别的调试器,用来调试各种程序,主要用在调试C和C++编写的程序
利用流程: -nx 不执行,告诉gdb在启动时不读取任何初始化配置文件 -ex 执行我们指定的命令 这个逻辑就是,什么都不执行,就启动一个bash会话,然后gdb退出
24. sudo git
条件:
利用流程: branch 是随便指定的一个,比如说分支 --help 启动他的帮助
执行bash命令
25. sudo gzip/gunzip
条件:
利用流程: gzip 压缩shadow敏感文件,里面有用户密码的hash值,如果能压缩成功,可以进行暴力破解 -t 会去检查压缩文件,他往往会去读取,而shadow文件纯文本文件,读取的时候就可以直接读取获得敏感信息 -f 强制执行,如果有需要覆盖强制执行的时候,就自动会强制执行
在kali中把root hash值保存起来进行破解
回到靶机进行登陆
26. sudo hping3
条件: hping3是一个非常强大的网络工具,主要用来分析和测试网络环境,生成各种类型的数据包
利用流程:
27. sudo iftop
条件: iftop 是一个命令行的网络流量监控工具,用来实时显示一个网络接口带宽的使用情况,他类似于top命令,他可以提供一个活动的网络连接和使用带宽的实时试图
利用流程:
可以看到是一个字符界面的实时数据图
提权过程中先输入“!”告诉应用开始执行系统命令,启动新的bash会话
执行,可以已经看到新起的bash会话
28. sudo java
条件: 遇到这种大的语言执行程序,首先想到语言本身进行提权,这是标准操作
利用流程: 生成反弹shell -p 指定java/shell_reverse_top反弹的shell -f 指定文件类型 -o 文件名
建立简易的web服务器,用于传递shell文件
同时,在本地建立一个监听
回到靶机,切换到临时目录是最好的 下载shell文件,并给执行权限
执行文件
kali获得反弹shell,并通过python反射实现交互提升
29. sudo jjs
条件:
利用流程: 在kali本地建立一个监听
回到靶机,通过参考以下两个网址,结合着代码形成有效语句jjs | GTFOBinsReverse Shell Cheat Sheet | pentestmonkey
echo "..." | sudo jjs 把引号里的脚本给到了jjs,然后jjs具有sudo权限,进行提权 引号里的逻辑是,java运行时的exec去执行了一个反弹shell得逻辑, 其中5代表的是自定义的一个文件描述符号,也是为了形成shell得信息留,平时接触最多的是0输入、1输出、2错误, while 是读出前面每一行的输入,然后用do执行,done执行完毕 waitFor() 等待执行
执行,看到监听窗口已经收到反弹shell
30. sudo journalctl
条件: journalctl 是用来检索systemd系统日志
利用流程: 直接执行
使用“!”执行系统命令
可以看到命令指示符中已经有“#”号
31. sudo knife
条件: knife是chef的命令行接口,而chef是一个自动化管理和配置工具,可以用于管理服务器和基础设施,knife命令可以用于与chef服务器进行交互,上传角色、配方、管理结点等等
利用流程: exec 是knife的子命令 -E 去引入ruby语法的字符串
32. sudo less
条件:
利用流程: 生成当前目录临时文件,其实无论是哪个文件都可以,只要进入less模式 用less执行这个文件
因为临时文件是空的,所以只显示了这个文件的名称,没有任何内容,但是已经进入到less模式
使用“!”执行系统命令
可以看到命令指示符中已经有“#”号
33. sudo man
条件: man 所代表的的是英文单词manual,也就是帮助手册的意思,Linux中的man手册就是提供给用户在有不明白的命令或者函数的时候,去查询它的功能、使用方法、头文件以及所需参数的帮助手册。
利用流程: 后面随便接某个应用的帮助文件
使用“!”执行系统命令
可以看到命令指示符中已经有“#”号
34. sudo more
条件:
利用流程: 生成当前目录临时文件,然后用sudo more去读取,因为文件是空的,所以没有显示more的界面,我们也没有提权操作的机会
进行一些操作,生成一个文档,事实上你找系统中任何一个文档都是可以的,重定向到临时文件 这里因为文件太大,就截取了前50条,重定向到一个新的文件 yes命令在命令行中输出指定的字符串,直到yes进程被杀死。不带任何参数输入yes命令默认的字符串就是y。
再次执行查看
使用“!”执行系统命令
可以看到命令指示符中已经有“#”号
35. sudo mount
条件: mount 用于挂载文件系统,可以是磁盘和共享目录
利用流程: -o 给一个选项,这里给bind,绑定的意思 就是把bash绑定成mount,之后执行mount命令,就是执行bash命令了
36. sudo mysql
条件:
利用流程: -e 执行的意思 因为在bash命令里“!”是读取历史命令的意思,所以这里要加上“”
37. sudo nano
条件: nano 是一个文本编辑器,是一个很典型的提权方式
利用流程: 执行进入nano界面
Ctrl+r 读取文件
Ctrl+x 执行命令
reset 将环境重置,确保是一个干净的环节 ; 并列执行的命令 1>&0 2>&0 对输入输出做一个规划,错误输出也要重定向
获得一个提权后的shell环境
38. sudo neofetch
条件: neofetch 是一个命令行程序,用于显示你的系统信息,包括操作系统、软件版本、桌面环境等等,可以通过配置文件进行自定义,从而改变输出的信息和格式
利用流程: 先执行看看这个工具的功能,它会显示当前的配置信息,操作系统,主机,内核等等
先建立一个临时文件,用mktemp去生成 写出提权逻辑 通过配置文件把刚刚建立的临时文件,包含提权逻辑的文件引入进来,因为neofetch的配置文件只能指定文件
39. sudo nice
条件: nice 用于修改进程的优先级,优先级的范围是从 -20(最大优先级)到 19(最小优先级),默认是10
利用流程: 提权路径,用nice命令去指定一个程序的优先级,这里肯定是/bin/bash
40. sudo nmap
条件:
利用流程: 提权路径,nmap 它可以在命令行执行脚本文件,我们只需要指定具有提权逻辑的文件
41. sudo node
条件: node 命令用于执行Node.js
利用流程: -e 执行指定Node.js代码字符串,这里我们肯定指定Node.js语法的提权逻辑 require('child_process') 启动一个子进程 spawn('/bin/bash',{stdio:[0,1,2]}) 生成一个新的bash会话,同时对于输入输出进行管理
42. sudo nohup
条件: nohup 命令用于启动一个不挂断地进程,即使终端关闭,该进程也会继续运行
利用流程: -c 指定命令,我们这里指向执行输入输出,做重定向的这样一个bash
43. sudo openvpn
条件:
利用流程: --config 指定配置文件,这里我们肯定指定shadow文件 显然会报错,但报错内容中回显出文件的第一行,也就刚好是root的hash值
在kali中暴力破解hash值
回到靶机中进行登陆
44. sudo passwd
条件:
利用流程: 这个就很简单了,因为普通用户就具有root用户的passwd命令权限,直接改密码就好
45. sudo perl
条件: 这种大的语言有各种提权方法,在这之前演示过java,用的反弹shell进行的提权,每种语言有自己的扩展命令,或执行系统命令的方式
利用流程: -e 执行系统命令,给定perl语法的提权逻辑