您好,登錄后才能下訂單哦!
最近一直在思考,Web***中,正面的***是一種思路,橫向和縱向***也是一種思路,在***過程中,目標主站的防護越來越嚴格,而子站或者目標所在IP地址的C段或者B端的***相對容易,這種***涉及目標信息的搜集和設定,而對這些目標信息收集最主要方式是子域名暴力破解和端口掃描。子域名暴力破解,會在下一篇文章中專門介紹,本文主要介紹端口掃描以及應用的思路。
pentestbox是一款Windows下集成的***測試平臺,其官方網站地址:https://pentestbox.org/,最新版本為2.2版本,可以下載帶有Metasploit和不帶Metasploit的程序,下載地址:
https://sourceforge.net/projects/pentestbox/files/
https://nchc.dl.sourceforge.net/project/pentestbox/PentestBox-with-Metasploit-v2.2.exe
下載完成后將該exe文件解壓以后即可使用。
目前nmap最新的穩定版本為7.6版本(https://nmap.org/dist/nmap-7.60-win32.zip),將其下載到本地,解壓后,找到PentestBox 安裝目錄,例如:E:\PentestBox\bin\nmap,將nmap-7.60-win32.zip解壓后的所有文件覆蓋該目錄,升級pentestbox中的nmap到最新版本。
通過子域名暴力破解,獲取目前子域名的IP地址,對這些地址進行整理,并形成子域名或者域名地址所在的IP地址C端,例如192.168.1.1-254。如果是單個目標則可以ping或者域名查詢等方法獲取域名的真實IP地址。
Usage:nmap [Scan Type(s)] [Options] {target specification}
TARGETSPECIFICATION:
Can pass hostnames, IP addresses, networks,etc.
Ex: scanme.nmap.org, microsoft.com/24,192.168.0.1; 10.0.0-255.1-254
-iL <inputfilename>:輸入主機或者網絡的列表,iL參數后跟輸入文件的名稱,文件內容為IP地址、IP地址范圍或者網絡地址
-iR <num hosts>:隨機選擇目標進行掃描,0表示永遠掃描。
--exclude <host1[,host2][,host3],...>: 排除主機/網絡
--excludefile <exclude_file>: 從文件中排出主機或者網絡
主機發現:
-sL: List Scan -簡單列表掃描,一般很少用,就是發現主機的簡單信息,不包含端口等信息。
-sn: Ping掃描 -不能端口掃描,主要發現主機列表,了解主機運行情況。
-Pn: 在線處理所有主機,略過主機發現
-PS/PA/PU/PY[portlist]: 使用TCPSYN/ACK, UDP 或者SCTP去發現給出的端口。
-PE/PP/PM: ICMP回聲,時間戳,和子網掩碼請求發現探針
-PO[protocol list]: IP 協議Ping,后跟協議列表
-n:不用域名解析,永不對它發現的活動IP地址進行反向域名解析。
-R:告訴Nmap 永遠對目標IP地址作反向域名解析。
--system-dns:使用系統域名解析器,默認情況下,Nmap通過直接發送查詢到您的主機上配置的域名服務器來解析域名。為了提高性能,許多請求 (一般幾十個 ) 并發執行。如果您希望使用系統自帶的解析器,就指定該選項。
--traceroute: 跟蹤每個主機的跳路徑
掃描技術:
-sS/sT/sA/sW/sM: TCPSYN/Connect()/ACK/Window/Maimon scans
-sS :TCP SYN掃描(半開放掃描),SYN掃描作為默認最受歡迎的掃描選項,它執行得很快,在一個沒有***防火墻的快速網絡上,每秒鐘可以掃描數千個端口。
-sT :TCP connect()掃描, TCP連接掃描會留下掃描連接日志。
-sU :UDP掃描,它可以和TCP掃描如 SYN掃描(-sS)結合使用來同時檢查兩種協議,UDP掃描速度比較慢。
-sN: Null掃描,不設置任何標志位(tcp標志頭是0)
-sF :FIN掃描,只設置TCP FIN標志位。
-sX :Xmas掃描,設置FIN,PSH,和URG標志位。
-sN;-sF; -sX (TCP Null,FIN,and Xmas掃描)掃描的關鍵優勢是它們能躲過一些無狀態防火墻和報文過濾路由器。另一個優勢是這些掃描類型甚至比SYN掃描還要隱秘一些。
--scanflags <flags>:定制的TCP掃描,--scanflags選項允許您通過指定任意TCP標志位來設計您自己的掃描。--scanflags選項可以是一個數字標記值如9 (PSH和FIN),但使用字符名更容易些。只要是URG, ACK,PSH, RST,SYN,and FIN的任何組合就行。
-sI<zombie host[:probeport]> (Idlescan),這種高級的掃描方法允許對目標進行真正的TCP端口盲掃描 (意味著沒有報文從您的真實IP地址發送到目標)。相反,side-channel***利用zombie主機上已知的IP分段ID序列生成算法來窺探目標上開放端口的信息。 IDS系統將顯示掃描來自您指定的zombie機。除了極端隱蔽(由于它不從真實IP地址發送任何報文),該掃描類型可以建立機器間的基于IP的信任關系。端口列表從zombie主機的角度。顯示開放的端口。
-sY/sZ: SCTP INIT/COOKIE-ECHO scans
-sO: IP協議掃描,確定目標機支持哪些IP協議 (TCP,ICMP,IGMP,等等)。協議掃描以和UDP掃描類似的方式工作。它不是在UDP報文的端口域上循環,而是在IP協議域的8位上循環,發送IP報文頭。報文頭通常是空的,不包含數據,甚至不包含所申明的協議的正確報文頭TCP,UDP,和ICMP是三個例外。它們三個會使用正常的協議頭,因為否則某些系統拒絕發送,而且Nmap有函數創建它們。
-b<ftp relay host>:FTP彈跳掃描,FTP協議的一個有趣特征是支持所謂代理ftp連接。它允許用戶連接到一臺FTP服務器,然后要求文件送到一臺第三方服務器。這個特性在很多層次上被濫用,所以許多服務器已經停止支持它了。其中一種就是導致FTP服務器對其它主機端口掃描。只要請求FTP服務器輪流發送一個文件到目標主機上的所感興趣的端口。錯誤消息會描述端口是開放還是關閉的。這是繞過防火墻的好方法,因為FTP服務器常常被置于可以訪問比Web主機更多其它內部主機的位置。Nmap用-b選項支持ftp彈跳掃描。參數格式是 <username>:<password>@<server>:<port>。<Server>是某個脆弱的FTP服務器的名字或者IP地址。您也許可以省略<username>:<password>, 如果服務器上開放了匿名用戶(user:anonymouspassword:-wwwuser@)。端口號(以及前面的冒號) 也可以省略,如果<server>使用默認的FTP端口(21)。
端口說明和掃描順序:
-p <port ranges>:僅僅掃描指定的端口,例如-p22;-p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
--exclude-ports <port ranges>:從掃描端口范圍中排除掃描端口。
-F:快速掃描(有限的端口)
-r: 不要按隨機順序掃描端口,順序對端口進行掃描
--top-ports <number>: 掃描number個最常見的端口
服務和版本信息探測:
-sV:打開版本和服務探測,可以用-A同時打開操作系統探測和版本探測
--version-intensity <level>:設置版本掃描強度,設置從0到9,默認是7,值越高越精確,但掃描時間越長
--version-light:打開輕量級模式,掃描快,但它識別服務的可能性也略微小一點。
--version-all: 保證對每個端口嘗試每個探測報文(強度 9)
--version-trace: 跟蹤版本掃描活動,打印出詳細的關于正在進行的掃描的調試信息
腳本掃描:
-sC: 相當于--script=default
--script=<Lua scripts>: <Luascripts> 是一個逗號分隔的目錄、腳本文件或腳本類別列表,nmap常見的腳本在scripts目錄下,例如ftp暴力破解腳本“ftp-brute.nse”
--script-args=<n1=v1,[n2=v2,...]>: 提高掃描的參數
--script-args-file=filename: 在文件中提供NSE 腳本參數
--script-trace: 顯示所有發送和接收的數據
--script-updatedb: 在線更新腳本數據庫.
--script-help=<Lua scripts>:顯示腳本的幫助信息。
服務器版本探測:
-O: 啟用操作系統檢測,也可以使用-A來同時啟用操作系統檢測和版本檢測
--osscan-limit: 針對指定的目標進行操作系統檢測
--osscan-guess: 推測操作系統檢測結果
時間和性能:
選項<time> 設置秒,也可以追加到毫秒,s-秒,ms-毫秒,m-分鐘,h-小時
-T<0-5>: 設置時間掃描模板,T 0-5分別為paranoid(0)、sneaky (1)、polite (2)、normal(3)、 aggressive (4)和insane (5)。T0,T1用于IDS躲避,Polite模式降低了掃描速度以使用更少的帶寬和目標主機資源,默認為T3,Aggressive模式假設用戶具有合適及可靠的網絡從而加速掃描。Insane模式假設用戶具有特別快的網絡或者愿意為獲得速度而犧牲準確性。
--min-hostgroup/max-hostgroup <size>: 調整并行掃描組的大小
--min-parallelism/max-parallelism<numprobes>: 調整探測報文的并行度
--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>:調整探測報文超時 --max-retries <tries>:掃描探針重發的端口數
--host-timeout <time>: 多少時間放棄目標掃描
--scan-delay/--max-scan-delay <time>: 在探測中調整延遲時間
--min-rate <number>:每秒發送數據包不少于<數字>
--max-rate <number>: 每秒發送數據包不超過<數字>
防火墻/ IDS逃避和欺騙:
-f; --mtu <val>:報文包,使用指定的MTU (optionallyw/given MTU)使用小的IP包分段。其思路是將TCP頭分段在幾個包中,使得包過濾器、 IDS以及其它工具的檢測更加困難
-D <decoy1,decoy2[,ME],...>: 使用誘餌隱蔽掃描
-S <IP_Address>:源地址哄騙
-e <iface>:使用指定的接口
-g/--source-port <portnum>:源端口哄騙
--proxies <url1,[url2],...>:通過HTTP /Socks4代理傳遞連接
--data <hex string>:向發送的包追加一個自定義有效負載
--data-string <string>:向發送的數據包追加自定義ASCII字符串
--data-length <num>:將隨機數據追加到發送的數據包
--ip-options <options>:用指定的IP選項發送數據包
--ttl <val>: 設置IP的ttl值
--spoof-mac <mac address/prefix/vendorname>:欺騙你的MAC地址
--badsum: 發送數據包偽造TCP/UDP/SCTP校驗
輸出:
-oN/-oX/-oS/-oG <file>: 輸出正常掃描結果,XML, 腳本小子,和Grep輸出格式,指定定輸出文件名
-oA <basename>:一次輸出三種主要格式
-v: 增量水平(使用 -vv ormore效果更好)
-d: 提高調試水平(使用 -dd ormore 效果更好)
--reason: 顯示端口處于某一特定狀態的原因。
--open: 只顯示打開(或可能打開)端口
--packet-trace: 顯示所有數據包的發送和接收
--iflist: 打印主機接口和路由(用于調試)
--append-output: 附加到指定的輸出文件,而不是亂碼
--resume <filename>:恢復中止掃描
--stylesheet <path/URL>:設置XSL樣式表,轉換XML輸出
--webxml: 參考更便攜的XML 的Nmap.org樣式。
--no-stylesheet:忽略XML聲明的XSL樣式表,使用該選項禁止Nmap的XML輸出關聯任何XSL樣式表
其它選項:
-6: 啟用IPv6掃描
-A: 激烈掃描模式選項,啟用OS、版本,腳本掃描和跟蹤路由
--datadir <dirname>:說明用戶Nmap數據文件位置
--send-eth/--send-ip: 使用原以太網幀或在原IP層發送
--privileged: 假定用戶具有全部權限
--unprivileged: 假設用戶沒有原始套接字特權
-V: 打印版本號
-h: 使用幫助信息
(1)nmap -vscanme.nmap.org
掃描主機scanme.nmap.org中所有的保留TCP端口(1000端口)。選項-v啟用細節模式。
(2)nmap -sS -Oscanme.nmap.org/24
進行秘密SYN掃描,對象為主機Saznme所在的“C類”網段 的255臺主機。同時嘗試確定每臺工作主機的操作系統類型。因為進行SYN掃描和操作系統檢測,這個掃描需要有根權限。
(3)nmap -sV -p22,53,110,143,4564 198.116.0-255.1-127
進行主機列舉和TCP掃描,對象為B類188.116網段中255個8位子網。這 個測試用于確定系統是否運行了sshd、DNS、imapd或4564端口。如果這些端口 打開,將使用版本檢測來確定哪種應用在運行。
(4)nmap -v -iR100000 -P0 -p 80
隨機選擇100000臺主機掃描是否運行Web服務器(80端口)。由起始階段發送探測報文來確定主機是否工作非常浪費時間,而且只需探測主機的一個端口,因此使用-P0禁止對主機列表。
(5)nmap -P0-p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20
掃描4096個IP地址,查找Web服務器(不ping),將結果以Grep和XML格式保存。
(6)host -lcompany.com | cut -d -f 4 | nmap -v -iL -
進行DNS區域傳輸,以發現company.com中的主機,然后將IP地址提供給 Nmap。上述命令用于GNU/Linux-- 其它系統進行區域傳輸時有不同的命令。
(1)nmap -p 1-65535 -T4 -A -v 47.91.163.1-254 -oX 47.91.163.1-254.xml
掃描47.91.163.1-254段IP地址,使用快速掃描模式,輸出47.91.163.1-254.xml
(2)nmap -v 47.91.163.1-254
掃描C端常見TCP端口
(3)nmap -O 47.91.163.1
探測47.91.163.1服務器OS版本和TCP端口開放情況
(4)nmap -sn 10.0.1.161-166
掃描存活主機
(5)nmap -e eth0 10.0.1.161 -S 10.0.1.168 -Pn
使用偽裝地址10.0.1.168對10.0.1.161進行掃描
(6)nmap -iflist
查看本地路由和接口
(7)nmap --script smb-vuln-ms17-010.nse -p 445 192.168.1.1
nmap–script=samba-vuln-cve-2012-1182-p 139 192.168.1.3
對主機192.168.1.1使用漏洞腳本smb-vuln-ms17-010.nse進行檢測。
(8)nmap --script whois-domain.nse www.secbang.com
獲取secbang.com的域名注冊情況,該腳本對國外域名支持較好。
(9)nmap--script ftp-brute -p 21 127.0.0.1
暴力破解127.0.0.1的ftp賬號
(10)nmap -sV–script=http-enum 127.0.0.1
枚舉127.0.0.1的目錄
對整理的IP地址段或者IP實施掃描:
(1)單一IP地址段掃描
nmap -p 1-65535 -T4 -A -v 47.91.163.1-254 -oX 47.91.163.1-254.xml
(2)IP地址段掃描
nmap -p 1-65535 -T4 -A -v -iLmytarget.txt -oX mytarget.xml
三.掃描結果分析及處理
1.查看掃描文件
有些情況,掃描是在服務器上進行,掃描結束后,將掃描結果下載到本地進行查看,如圖1所示,又有XSL樣式表解析導致出錯。通常原因是由于nmap中的nmap.xsl文件位置不對,如圖2所示,將正確的文件位置設置好即可。例如原nmap地址為:
C:/Program Files (x86)/Nmap/nmap.xsl
新的地址為:
E:\Tools\測試平臺\PentestBox-with-Metasploit-v2.2\bin\nmap\nmap.xsl
在掃描結果的xml文件中進行替換即可,切記需要更換路徑符號“\”為“/”。
圖1查看xml顯示錯誤
圖2修改文件位置
2.分析并處理掃描結果
(1)從概覽中查看端口開放主機
如圖3所示,打開xml文件后,在文件最上端顯示掃描總結,有底色的結果表示端口開放,黑色字體顯示的IP表示未開放端口或者防火墻進行了攔截和過濾。
圖3查看掃描概覽
(2)逐個查看掃描結果
對淺綠色底的IP地址逐個進行查看,例如查看47.91.163.219,如圖4所示,打開后可以看到IP地址以及端口開放等掃描結果情況,在open中會顯示一些詳細信息。
圖4查看掃描結果具體掃描情況
(3)測試掃描端口開放情況
使用http://ip:port進行訪問測試,查看網頁是否可以正常訪問,例如本例中http://47.91.163.174:8080/可以正常訪問,系統使用tomcat,如圖5所示。
圖5訪問掃描結果
(4)技巧
在瀏覽器中使用Ctrl+F快捷鍵可以對想查看的關鍵字進行檢索。對所有的測試結果要記錄,便于后期選擇***方法。
3.進一步***
通過對掃描結果進行分析整理,對服務器開放的服務以及可能存在的漏洞進行直接或者間接測試,例如對Java平臺,可以測試是否存在struts系列漏洞,如圖6所示。有的目標還需要進行暴力破解,工具掃描等工作,直到發現漏洞,獲取權限為止。
圖6直接測試是否存在漏洞
在進一步***中需要結合多個知識點,需要針對出現的問題進行相應的檢索。其可供參考思路如下:
(1)整理目標的架構情況,針對架構出現的漏洞進行嘗試。
(2)如果有登錄管理界面,嘗試弱口令登錄后暴力破解。
(3)使用wvs等掃描器對站點進行漏洞掃描
(4)使用burpsuite對站點進行漏洞分析和測試。
(5)如果是陌生的系統,可以通過百度等搜索引擎進行搜索查看,網上是否曾經出現漏洞和利用方法。
(6)下載同類源代碼搭建環境進行測試,了解系統存在漏洞,對存在漏洞進行測試總結和再現,并對實際系統進行測試。
(7)挖掘系統可能存在的漏洞
(8)利用XSS來獲取管理員的密碼等信息。
(9)若掌握郵箱,可以通過msf生成***/apk等進行社工***。
(10)所有方法不行,就等等,重新整理思路。
參考文章:
https://nmap.org/man/zh/
http://www.nmap.com.cn/doc/manual.shtm
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。