前言:该文章总结了渗透测试命令与提权基础命令,并附带一些利用到的基础漏洞.
博主建议以这篇文章作为大纲,从博主其他相关的靶机渗透测试文章(下文有对应链接)作为学习口,自己下载靶机(文章附带靶机下载链接)然后自己动手渗透,从这篇文章理解大概的基础命令与流程,再从各个靶机细分文章进行更深层次的学习.
靶机学习顺序建议按照博主发布文章时间学习,越早发布一般对应靶机越简单
收集靶机信息基本命令
1.查看kaliIP 假设kaliIP:192.168.253.135
bash
ifconfig
2.查看靶机IP,假设靶机:192.168.253.142
bash
nmap -sn 192.168.253.00/24
3.扫描靶机端口
扫描全部端口:
bash
nmap -A -p 1-64000 192.168.253.142
扫描常用的100个端口:
bash
nmap -T4 -F -A 192.168.253.142
4.web指纹识别
bash
whatweb 192.168.253.142
5.扫描web目录
bash
dirb http://192.168.253.142
也可以
bash
dirsearch -u http://192.168.253.142 -x 404,403,400
第六第七步仅作为辅助作用,要是想锻炼自己找靶机漏洞建议不使用
- 扫描开放的端口漏洞(比如刚才扫描出靶机开放22,80,139,445,10000端口)
bash
nmap --script=vuln -p22,80,139,445,10000 192.168.253.142
- 扫描web漏洞
bash
nikto -h http://192.168.253.142
漏洞类型与利用总结
这下面记录各个靶机利用的漏洞,越多说明越常见
远程代码执行RCE:
(Sickos1.1:后台发现可上传文件上传反弹shell)
(Billu_2.7:通过 Metasploit 利用 Drupal 8 的 CVE‑2018‑7600 漏洞获得 shellhttps://blog.csdn.net/uhszjhshdjsjsj/article/details/159602450?spm=1001.2014.3001.5501)
(Billu_bOx1:通过文件包含读源码,利用 SQL 注入绕过登录,上传图片马反弹 shellhttps://blog.csdn.net/uhszjhshdjsjsj/article/details/159551954?spm=1001.2014.3001.5501)
(Hackademic.RTB1:通过 SQL 注入获取 WordPress 用户密码,登录后台开启 PHP 上传并反弹 shellhttps://blog.csdn.net/uhszjhshdjsjsj/article/details/159352909?spm=1001.2014.3001.5501)
(Hackademic.RTB2:通过 SQL 注入读取配置文件获得数据库密码,登录 phpMyAdmin 写入 webshell 反弹 shellhttps://blog.csdn.net/uhszjhshdjsjsj/article/details/159382198?spm=1001.2014.3001.5501)
(jarbas:破解密文登录 Jenkins 后创建任务,直接执行反弹 shell 命令https://blog.csdn.net/uhszjhshdjsjsj/article/details/159548957?spm=1001.2014.3001.5501)
(Kioptrix level 2:SQL 注入万能密码登录,再利用 ping 输入框命令注入反弹 shellhttps://blog.csdn.net/uhszjhshdjsjsj/article/details/159250524?spm=1001.2014.3001.5501)
(Kioptrix Level 2014:pChart 目录遍历读取 httpd.conf,修改 UA 访问 8080 端口,利用 phptax 写入 webshell 反弹https://blog.csdn.net/uhszjhshdjsjsj/article/details/159315724?spm=1001.2014.3001.5501)
(Sickos1.2:利用 PUT 方法上传 PHP 反弹 shell 获得控制权)https://blog.csdn.net/uhszjhshdjsjsj/article/details/159080764?spm=1001.2014.3001.5501
(Sickos1.1:后台登录页面,尝试使用弱密码 admin:admin 成功登录,然后发现上传点上传反弹shellhttps://blog.csdn.net/uhszjhshdjsjsj/article/details/159078812?spm=1001.2014.3001.5501)
SQL注入https://blog.csdn.net/uhszjhshdjsjsj/article/details/159215705?spm=1001.2014.3001.5501:
(Billu_bOx1:通过文件包含读源码,利用 SQL 注入绕过登录,上传图片马反弹 shellhttps://blog.csdn.net/uhszjhshdjsjsj/article/details/159551954?spm=1001.2014.3001.5501)
(Hackademic.RTB1:通过 SQL 注入获取 WordPress 用户密码,登录后台开启 PHP 上传并反弹 shellhttps://blog.csdn.net/uhszjhshdjsjsj/article/details/159352909?spm=1001.2014.3001.5501)
(Hackademic.RTB2:通过 SQL 注入读取配置文件获得数据库密码,登录 phpMyAdmin 写入 webshell 反弹 shellhttps://blog.csdn.net/uhszjhshdjsjsj/article/details/159382198?spm=1001.2014.3001.5501)
(Kioptrix level 2:SQL 注入万能密码登录,再利用 ping 输入框命令注入反弹 shellhttps://blog.csdn.net/uhszjhshdjsjsj/article/details/159250524?spm=1001.2014.3001.5501)
文件包含(LFL\RFL):
(Billu_bOx1:通过文件包含读源码,利用 SQL 注入绕过登录,上传图片马反弹 shellhttps://blog.csdn.net/uhszjhshdjsjsj/article/details/159551954?spm=1001.2014.3001.5501)
(Kioptrix Level 2014:pChart 目录遍历读取 httpd.conf,修改 UA 访问 8080 端口,利用 phptax 写入 webshell 反弹https://blog.csdn.net/uhszjhshdjsjsj/article/details/159315724?spm=1001.2014.3001.5501)
(w1r3s:利用 Cuppa CMS 本地文件包含读取 /etc/shadow,破解 w1r3s 用户密码并 SSH 登录https://blog.csdn.net/uhszjhshdjsjsj/article/details/159734293?spm=1001.2014.3001.5501)
缓冲区溢出漏洞:
(Kioptrix level 1:Samba 版本低至 2.2.1a,利用 CVE‑2003‑0201 直接获得 root shellhttps://blog.csdn.net/uhszjhshdjsjsj/article/details/159208626?spm=1001.2014.3001.5501)
敏感信息泄露:
(FourAndSix1:挂载 NFS 共享目录获取磁盘镜像,从中提取私钥文件https://blog.csdn.net/uhszjhshdjsjsj/article/details/159428840?spm=1001.2014.3001.5501)
(FourAndSix2.01:从 NFS 共享获取加密压缩包,破解密码得到 SSH 私钥并登录https://blog.csdn.net/uhszjhshdjsjsj/article/details/159474667?spm=1001.2014.3001.5501)
(troll:FTP 匿名下载 pcap 文件,分析获得隐藏目录及用户名、密码文件,爆破 SSH 登录)https://blog.csdn.net/uhszjhshdjsjsj/article/details/159647902?spm=1001.2014.3001.5501
(troll2:从图片中提取信息得到 FTP 凭据,下载压缩包破解出 SSH 私钥,利用 Shellshock 绕过登录限制https://blog.csdn.net/uhszjhshdjsjsj/article/details/159673705?spm=1001.2014.3001.5501)
(w1r3s:利用 Cuppa CMS 本地文件包含读取 /etc/shadow,破解 w1r3s 用户密码并 SSH 登录https://blog.csdn.net/uhszjhshdjsjsj/article/details/159734293?spm=1001.2014.3001.5501)
(Sickos1.1:后台登录页面,尝试使用弱密码 admin:admin 成功登录,然后发现上传点上传反弹shellhttps://blog.csdn.net/uhszjhshdjsjsj/article/details/159078812?spm=1001.2014.3001.5501)
查找flag或提权基本命令
(命令下面有括号解释的意味着该靶机提权关键信息在此条命令被查找到,如果要看具体操作可以点击链接去看专门的靶机文章):
收集信息前使用此命令可以获得交互性更好的shell:
bash
python -c 'import pty; pty.spawn("/bin/bash")'
- 查看用户
bash
whoami
- 查看用户
bash
id
- 查看内核版本
bash
uname -a
(Hackademic.RTB1:利用 Linux kernel 2.6.3 漏洞 15285.c 直接获取 roothttps://blog.csdn.net/uhszjhshdjsjsj/article/details/159352909?spm=1001.2014.3001.5501)
(Hackademic.RTB2:利用 Linux kernel 2.6.3 漏洞 15285.c 提权至 roothttps://blog.csdn.net/uhszjhshdjsjsj/article/details/159382198?spm=1001.2014.3001.5501)
(Kioptrix level 2:利用 CentOS 4.5 内核漏洞 9542.c 获得 root)https://blog.csdn.net/uhszjhshdjsjsj/article/details/159250524?spm=1001.2014.3001.5501
(Kioptrix Level 2014:利用 FreeBSD 9.0 内核漏洞直接获得 root)https://blog.csdn.net/uhszjhshdjsjsj/article/details/159315724?spm=1001.2014.3001.5501(troll2:利用 Dirty Cow 漏洞直接提权至 root)https://blog.csdn.net/uhszjhshdjsjsj/article/details/159673705?spm=1001.2014.3001.5501
- 查看当前用户的sudo权限清单(如果是ALL就可以直接提权)
bash
sudo -l
(w1r3s:sudo -l 发现所有命令均可无密码执行,直接 sudo su 获得 roothttps://blog.csdn.net/uhszjhshdjsjsj/article/details/159734293?spm=1001.2014.3001.5501)
- 检查SUID文件
bash
find / -perm -4000 -type f 2>/dev/null
(FourAndSix2.01:利用 doas 以 root 运行 less 查看日志,通过编辑器逃逸获得 root shellhttps://blog.csdn.net/uhszjhshdjsjsj/article/details/159474667?spm=1001.2014.3001.5501)
-
查看当前目录文件(或许藏了什么文件)
ls -la
-
查看web目录
bash
ls -la /var/www/html
如果找不到可以查找常见的web目录:
bash
find / -type d -name "html" 2>/dev/null
bash
find / -type d -name "www" 2>/dev/null
-
读取密码文件
cat /etc/passwd
cat /etc/shadow
(Billu_2.7:
ls-la /etc/passwd查看密码文件 权限为 777(可读可写可执行),直接自己写入 UID 0 用户并自己设置密码即可切换至 roothttps://blog.csdn.net/uhszjhshdjsjsj/article/details/159602450?spm=1001.2014.3001.5501) -
(收集flag时可以用)
find / -type f -iname "flag " 2>/dev/null
find / -iname "flag " 2>/dev/null :寻找所有目录中含有flag的文件名不区分大小写
grep -r -n -i -I "flag" / 2>/dev/null :寻找所有目录中含有flag的内容不区分大小写
-r:递归搜索子目录
-n:显示关键词在文件中的行号;
-i:忽略大小写;
-I:忽略二进制文件(图片、程序、压缩包等),避免输出乱码
-
检查环境变量
bash
env
- 查看网站配置文件,这里面可能有数据库密码,进而连接数据库继续查找信息或尝试用数据库密码ssh登录
bash
find /var/www -name "*config*.php" -o -name "*db*.php" 2>/dev/null
(Sickos1.1:发现有config.php文件,读取后得到数据库密码,用来ssh登录成功https://blog.csdn.net/uhszjhshdjsjsj/article/details/159078812?spm=1001.2014.3001.5501)
(Billu_bOx1:在 phpmy/config.inc.php 中找到数据库密码,恰好同为 root 密码,su root 提权https://blog.csdn.net/uhszjhshdjsjsj/article/details/159551954?spm=1001.2014.3001.5501)
- 检查是否有数据库服务
bash
ps aux | grep mysql
bash
netstat -an | grep 3306
- 查看进程列表
bash
ps aux
- 查看定时任务
bash
crontab -l
bash
cat /etc/crontab
bash
ls /etc/cron*
(jarbas:发现以 root 执行且可写的 CleaningScript.sh,追加反弹 shell 后获得 root)https://blog.csdn.net/uhszjhshdjsjsj/article/details/159548957?spm=1001.2014.3001.5501
(Sickos1.2:chkrootkit 0.49 会以 root 执行 /tmp/update,写入提权命令后获得 roothttps://blog.csdn.net/uhszjhshdjsjsj/article/details/159080764?spm=1001.2014.3001.5501)
(troll:cleaner.py 定时以 root 运行且可写,写入反弹 shell 后获得 roothttps://blog.csdn.net/uhszjhshdjsjsj/article/details/159647902?spm=1001.2014.3001.5501)
- 查看历史命令,可能会有线索
bash
cat ~/.bash_history
- 查看临时目录
bash
ls -la /tmp
bash
ls -la /var/tmp