一、使用Metasploit 滲透測試的思惟導圖 : 連接地址 https://www.processon.com/mindmap/59f9d054e4b0edf0e25d9b84mysql
二、samba 服務 解釋web
Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟件,由服務器及客戶端程序構成。SMB(Server Messages Block,信息服務塊)是一種在局域網上共享文件和打印機的一種通訊協議,它爲局域網內的不一樣計算機之間提供文件及打印機等資源的共享服務。SMB協議是客戶機/服務器型協議,客戶機經過該協議能夠訪問服務器上的共享文件系統、打印機及其餘資源。經過設置「NetBIOS over TCP/IP」使得Samba不但能與局域網絡主機分享資源,還能與全世界的電腦分享資源。sql
三、nmap 掃描信息的總結參數選取表數據庫
注意:無ping 掃描使用於防火牆禁止ping掃描的狀況下,安全
若是想觀察這些掃描的具體發送的數據包 可使用 參數 --packet-trace服務器
除此以外還可使用 協議的編號進行掃描目標主機,咱們制定協議的編號使用 TCP、UDP、IGMP 協議向目標主機發送數據包並判斷主機手否存活網絡
nmap -p06,17,2 --packet-trace scanme.nmap.org併發
參數 —— -PS 選項發送設置了一個SYN 標誌位爲空的TCP報文,默認的端口是80 (能夠經過改變 nmap.h)文件中的DEFAULT-TCP-PROBE-PORT 值進行配置,不一樣的端口做爲選項設定,能夠經過該添加逗號, 分割端口列表(例如,-PS22,23,25,80,115,3306,3389)在這種狀況在每一個端口會被併發的掃描。dom
在一般狀況在nmap的掃描使用的TCP ACK 和 ICMP ECHO 請求判斷主機是否存在,當主機開啓防火牆的時候可使用 -P0 或者 TCP SYNPing (-PS) 來判斷主機ssh
nmap -PS -v 192.10.10.15.121 (nmap 經過SYN ACK 和RST 響應來對目標主機存活判斷,在特定的狀況下防火牆會丟掉RST包,因此掃描不許確,這時候須要採用指定一個端口或者端口序列來掃描避免這種狀況)
nmap -PS80, 100-200, -v 10.10.15.121
若是 存在防火牆的時候還可使用 TCP-ACK掃描 或者兩種掃描結合 nmap -PA -PS 10.10.15.121
參數 -PU 發送一個空的UDP 報文到指定的端口 ,默認的端口是40125 能夠在配置文件 nmap.h 中的DEFAULT-UDP-PROBE-PORT 值修改,向目標主機發送一個空的UDP報文,若是目標存活返回一個ICMP包不可達,若是目標不存活返回各類錯誤的ICMP信息。
使用 wireshark觀察這個包的信息有一條顯示 「destination UNreachable」
除此以外能夠指定掃描的端口 nmap -PU80,111 -v 10.10.15. 121
使用ICMP Echo 掃描 nmap -PE -v 10.10.15.121
使用ICMP 時間戳掃描 ping : nmap -PP -v 10.10.15.121
使用ICMP地址掩碼掃描PIng : nmap -PM -v 10.10.15.121 ####上面幾種不一樣的掃描對穿透防火牆有着不一樣的結果(穿透能力不一樣)
在局域網內部使用ARP掃描比較好,nmap -PR 10.10.15.121
使用反向域名解析 nmap -R -sL *.10.15.0/24 該選項多永固綁定域名主機上,能夠幫助咱們查看目標主機的詳細信息,查看那些ip段上存在哪些網站
使用指定系統域名解析器, 默認的狀況下,nmap 經過發送查詢到本機上配置的域名服務器來解析域名: nmap --system-dns 10.10.15.121 10.10.15.123
使用路由跟蹤 :nmap --traceroute -v www.163.com
使用SCTP(Steam COntrol Transmission Protocol 流控制傳輸協議 )是一個傳輸層(Transport Layer)協議 ,SCTP能夠看作TCP協議的改進,改進了TCP的一些不足,SCTP INIT Ping 掃描經過向主機發送INIT包,根據目標主機響應判斷主機是否存活。 nmap -PY -v 10.10.15. 121
nmap 掃描時序選項的參數化: nmap -T0 或者 T1 一直到 T5 依次掃描速度加快 ,可是準確的下降
nmap -T0 10.10.15.121 (掃描速度極度慢可是準確 用於IDS逃避 ) 可是要補充的一點是如今的不少,因此通常都是用-T4 進行掃描 ,這樣能夠保證最小的時間內掃描到儘量準確的數據
經常使用的掃描方式
在一個掃描字段中想同時使用多種掃描端口,就要分開指定,能夠在前面加上 :「T」 或者「U」 分別表示使用TCP協議與UDP協議,要既要掃描UDP又要掃描TCP,必須指定-sU 以及至少一個TCP掃描類型(如-sS -sF -sT),若是沒有給定協議限定符,端口號會被添加到全部的協議列表:nmap -sS -p T:111 ,U:445 10.10.15.121
參數 -F 選項能夠快速的掃描端口,但不是全部的端口,只是默認的幾個端口,在nmap中的 nmap-service 中包含了默認端口的列表,也可以使用 --datedir 指定本身nmap-service 文件
參數 --top-ports ,nmap對端口開放的機率的調查結果保存在 nmap-services中,這其中羅列了開發效率最高的100個TCP端口,便於發現具體有用的端口 : nmap --top-ports 100 10.10.15.121
參數 -sU UDP 掃描,掃描速度慢,因此通常要指定掃描的端口
三個隱蔽掃描 -sN(NULL 掃描,經過發送很是規的TCP通訊數據包對計算機進行探測),-sF (FIN掃描 ) -sX (Xmap 掃描,) -sM (TCP Maimon掃描) 這些掃描會不少的躲過一些無狀態的防火牆過濾。
參數 -sA (TCP ACK掃描)不能肯定端口是否開放仍是過濾,ACK的報文探測只設置了ACK標誌位,當掃描未被過濾的端口時候返回RST報文,
參數 -sw (窗口掃描,經過判斷窗口的大小,肯定端口的開放狀況)
參數 --sacnflags 選項能夠自主定義TCP掃描,能夠指定TCP的標誌位來掃描,標誌位之間沒有空格 只要是URG、ACK、PSH、RST、SYN、FIN的任意組合便可,
nmap -sT --scanflags SYNURG 10.10.15.121
重要的攻擊使用的掃描,空閒掃描,容許端口徹底欺騙掃描,可使攻擊者不適用本身的IP想主機發送數據包,他利用不活躍的殭屍主機反彈給攻擊者一個旁通訊道,從而進行端口掃描,IDS會把不活躍的殭屍主機當作攻擊者,是一種很是隱蔽的掃描方法
nmap -sI www.0day.co:80 10.10.15.121 利用 殭屍主機 對主機 10.10.15.121 進行空暇掃描 ,若是有IDS ,IDS會把 www.0day.co 當作掃描者。(注意:殭屍主機選擇的端口號必須不能被本身主機的Nmap過濾或者目標主機過濾,能夠事前對殭屍主機進行端口掃描)
參數 -sO開啓 IP協議掃描,不會掃描 TCP UDP 端口號,而是 IP協議號,ip協議掃描能夠肯定幫助用戶肯定哪些主機支持IP協議,列如 TCP,ICMP,IGMP,
參數 -b (FTP BOUNCE SCAN掃描)他容許下用戶連接到一臺FTP服務器上,而後要求文件發送到第三方服務器,
四、 指紋識別與探測
參數 -sV -A 能夠對操做系統和服務進行深刻的探測
參數 --allports 能夠啓用對全端口版本探測,nmap -sV --allports 10.10.15.1
參數 --version-intersity 可選的參數 0-9 表示探測報文最大範圍 :nmap -sV --version-intensity 1 10.10.15.1
參數 --version-light 輕量級掃描 --version-all 重量級掃描
參數 --version-trace 能夠獲取詳細的版本信息, 他對於獲取主機的額外信息很是有幫助
參數 -sR 進行RPC 掃描,他對全部被發現的TCP/UDP端口執行SUNRPC 程序NULL命令,肯定是否爲RPC端口,若是是RPC端口,則返回程序和版本號:nmap -sS -sR
參數 -O 容易使用操做系統的探測
參數 --osscan-limit 對指定的目標進行操做系統檢測, (注:這個參數只能使用結合 -O 或者 -A)
參數 --osscan-guess; fuzzy 對推測操做系統識別,nmap -O --osscan-guess 10.10.15.121
五、 調整掃描
參數 --max-hostgroup 和參數 --min-hostgroup 用來限制掃描組大小 :nmap --min-hostgroup 30 10.10.15.0/24
參數--min-parallelism 和 --max-parallelism
調整探測報文超時 :nmap --initial-rrt-timeout 1000ms 10.10.15.121
對於一次掃描多個主機的時候存在響應緩慢的主機須要放棄: nmap --host-timeout 1000ms 10.10.15.0/24
六、 防火牆/IDSS 逃逸
一些主機會禁止響應ICMP 請求,對於這種狀況可使用報文分段的方法來逃避防火牆的規則 nmap -sX -v -F 10.10.15.121 (當有防火牆輸出結果沒法獲知主機端口是否開放)此時嘗試報文分段掃描:
nmap -f -v 10.10.15.121
指定偏移大小 :使用 --mut 能夠指定偏移大小,(MTU Maximum Transmission Unit 最大出書單元)設定TCP/IP協議數據報文的最大傳輸單元,使用指定的MUT能夠逃避防火牆/IDS的目的,(偏移量必須是8的倍數)
IP 地址欺騙 ,使用-D 選項能夠指定多個IP地址,或者使用RND隨機生成幾個地址,在指定的誘餌之間使用逗號進行分割,(在進行版本檢測或者TCP掃描的時候誘餌是無效的)
nmap -D RND:11 10.10.15.121 這種隨機的ip地址容易被發現 因此通常使用指定的IP地址進行 :nmap -D 192.168.0.1 ,192.168.0.2 10.10.15.121
參數--source-port 進行源端口欺騙 指定一個端口號使得 nmap從這個端口發送數據: nmap --source-port 53 10.10.15.121
參數 --data-length 指定報文的長度,一般TCP報文常40字節,ICMP Echo 28 字節 ,在原來的報文基礎上添加隨機數據達到規避防火牆的目的。 nmap --data-lenght 30 10.10.15.121
參數 --randomize-hosts 對目標主機的順序進行隨機的排序,配合時間選項效果好 nmap --randomize-hosts 10.10.15.121
參數 --spoof-mac 後面加 「0 」表示隨機生成一個mac, MAC Address 表示用戶添加一個MAC , Vendor Name 表示從指定廠商生成一個
nmap -sT -PN --spoof-mac 0 10.10.15.121
七、信息收集
參數 nmap --script hostname-ip2hosts 反查ip, 將綁定到該IP地址的域名顯示出來,能夠肯定有幾個站在同一個服務器上 nmap -sn --script hostmap-iphosts www.0day.co (該腳本使用的是其餘網站的接口,在測試中發現該網站的接口已經不能使用,因此能夠在nmap /script中找到該腳本 對上面使用的肉雞修改)
參數 nmap --script dns-brute 收集DNS 信息 : nmap --script dns-brute www.baidu.com (能夠指定線程數 dns-brute.threads=10 , 若是是查詢多個域名可使用列表nmap --script dns-brute dns-brute.hostlist www.baidu.com)
參數 :nmap -p 445 --script membase-http-info 10.10.15.121 檢索目標主機的系統信息
參數 : nmap --script smb-security-mode.nse -p 445 10.10.15.121 檢索打印機服務漏洞
參數 : nmap --script smb-check-vulns.nse -p 10.10.15.121 掃描系統的漏洞 (對SMB 漏洞能夠進行簡單的掃描)
參數: nmap -p 80 --script http-stored-xss.nse www.baikd.com 對目標網站存在的存儲型 xss 漏洞進行掃描
參數 : nmap -p 80 --script http-sql-injection www.nifnkd.com 對目標網站SQl注入漏洞進行掃描
八、經過Snmp 列舉Windows 服務/帳戶
參數 : nmap -sU -p 161 --script=snmp-win32-services 10.10.15.121 經過SNMP服務隊目標系統上的服務或者帳戶列舉
參數 : nmap -sU -p 161 --script=snmp-win32-users 10.10.15.121 指定的端口是能夠換的
參數: nmap --script dns-brute --script-args dns-brute.domain=baidu.com 能夠對百度的 baidu.com 子域名進行枚舉(可使用 dns-brute.threads=線程數加快破解的速度)(可使用 dns-brute.hostlists=./hostfile.txt 指定枚舉的列表)
參數: nmap -sV -p 80 www.0day.co 對HTTP版本進行探測
參數: nmap -p 80 --script=http-headres www.0day.co 對目標主機的HTTP頭信息探測
參數; nmap -p 80 --script=http-sitemap-generator www.0day.co 對目標的的web 結構進行爬取
參數:nmap -p 443 --script=ssl-enum-ciphers 枚舉SSL服務 ,SSL服務(Secure Socket layer )
參數: nmap -p 22 --scriot ssh-hostkey --script-args ssh_hostkey=full 127.0.0.1
九、數據庫滲透測試
在知道數據庫的帳戶名字和密碼的時候可使用 nmap -p 3306 --script mysql-databases --script-args mysqluser=root mysqlpass 10.10.15.121 (密碼爲空的時候不填)
這樣能夠查詢數據中存在的庫
參數: nmap -p 3306 - -script=mysql-variables 10.10.15.121 列舉目標MySQL變量
參數: nmap -p 3306 --script=mysql-empty-password 10.10.15.121 判斷 目標主機上的MySQL 密碼是否爲空,或者密碼爲root
參數: nmap --script=mysql-brute 10.10.15.121 審計MySQL的密碼 該種方式是使用MySQL的弱口令來掃描所有端口,查找MySQL端口,(能夠指定一個肯定的端口)
可使用本身的帳戶字典和密碼字典 來枚舉出帳戶的密碼和帳戶名
nmap -p 3306 --scripte=mysql-brute userdb=/root/passds.txt passdb=/root/pass.txt 10.10.15.121
審計MySQL的安全配置
使用命令 nmap -p 3306 --script mysql-audit --script-args "mysql-audit.username='root', \mysql-audit.password=" ,mysql.fiename='nselib/data/mysql-cis.audit" 能夠審計MySQL的安全配置
其中 mysql.audit.username 選項指定的目標數據可的帳號 ,mysql-audit.password 指定目標數據庫的密碼,密碼爲空的時候留空
整理到 195 頁