作者聲明
? ? 在未經(jīng)授權(quán)的情況下奪取計算機系統(tǒng)控制權(quán)的行為是違法行為鹃彻,此篇文章僅作為學習交流和探討郊闯,若要測試成果,請在自己虛擬機上測試,或者被允許滲透的計算機系統(tǒng)上演練团赁,請勿做出違法之騷操作育拨,操作者做出的一切違法操作均與本人和此文無關(guān)
? ? 本文使用Nmap進行掃描,其他掃描手段本文不進行探討
? ? Nmap是端口掃描方面的業(yè)內(nèi)標準欢摄,網(wǎng)上的資料讓人眼花繚亂熬丧,時至今日,各式各樣的防火墻已經(jīng)普遍采用了入侵檢測和入侵防御技術(shù)怀挠,他們能夠有效地攔截常見的端口掃描析蝴,所以,即使使用Nmap程序掃描結(jié)果一無所獲也不是什么意外的事绿淋。換句話說闷畸,如果你在公網(wǎng)上對指定網(wǎng)段進行主機掃描時沒檢測出一臺在線主機,那么就應(yīng)當認為掃描行動多半是被防火墻系統(tǒng)攔截下來了吞滞,反之則是另一種極端情況:每臺主機都在線佑菩,每個端口都處于開放狀態(tài)
SYN掃描
? ? 所謂的SYN掃苗實際上是一種模擬TCP握手的端口掃描技術(shù)。TCP握手分為3個階段:SYN裁赠、SYN-ACK殿漠、ACK。在進行SYN掃描時组贺,Nmap程序向遠程主機發(fā)送SYN數(shù)據(jù)包并等待對方的SYN-ACK數(shù)據(jù)凸舵。如果在最初發(fā)送SYN數(shù)據(jù)包之后沒有收到SYN-ACK響應(yīng),那么既定端口就不會是開放端口失尖,在此情況下啊奄,既定端口不是關(guān)閉就是被過濾了
? ? 在使用Nmap掃描之前,可以先使用maltego之類的信息搜集工具分析出有用的信息掀潮。我使用一個非法網(wǎng)站的IP來作為演示
需要注意的是菇夸,某個端口是開放端口不代表這個端口背后的程序存在安全缺陷,我們僅能夠通過開放端口初步了解計算機運行的應(yīng)用程序仪吧,進而判斷這個程序是否存在安全缺陷
? ? 版本掃描
? ? 雖然SYN掃描具有某種隱蔽性庄新,但它不能告訴我們打開這些端口的程序到底是什么版本,如果說我們想要知道這臺主機的某個端口在運行著什么程序以及它運行的版本薯鼠,這在我們后期威脅建模階段有極大的用處择诈,使用-sT或者-sV 即可查看
? ? 運氣很好,看來這個網(wǎng)站運行的程序有安全漏洞出皇,這個名為OpenSSH 5.3的軟件存在著一個CVE-2016-10009漏洞羞芍,攻擊者可以通過遠程攻擊openssh來獲得服務(wù)器權(quán)限。我們在這里不做攻擊操作郊艘,畢竟這是別人的網(wǎng)站荷科,雖然是個違法網(wǎng)站唯咬。如果有機會后期筆者將會根據(jù)情況寫一些關(guān)于漏洞利用的文章
UPD掃描
? ? Nmap的SYN掃描和完整的TCP掃描都不能掃描UDP,因為UDP的程序采用無連接的方式傳輸畏浆。在進行UDP掃描時胆胰,Nmap將向既定端口發(fā)送UPD數(shù)據(jù)包,不過UDP協(xié)議的應(yīng)用程序有著各自不同的數(shù)據(jù)傳輸協(xié)議刻获,因此在遠程主機正呈裾牵回復該數(shù)據(jù)的情況下,能夠確定既定端口處于開放狀態(tài)将鸵。如果既定端口處于關(guān)閉狀態(tài)勉盅,那么Nmap程序應(yīng)當收到ICMP協(xié)議的端口不可達信息佑颇。如果沒有從遠程主機收到任何數(shù)據(jù)那么情況就比較復雜了顶掉,比如說:端口可能處于發(fā)放狀態(tài),但是響應(yīng)的應(yīng)用程序沒有回復Nmap發(fā)送的查詢數(shù)據(jù)挑胸,或者遠程主機的回復信息被過濾了痒筒,由此可見在開放端口和被防火墻過濾的端口方面,Nmap存在相應(yīng)的短板
掃描指定端口
? ? 指定端口的掃描可能造成服務(wù)器崩潰茬贵,最好還是踏踏實實的徹底掃描全部端口簿透。就不拿別人的服務(wù)器來測試了,畢竟我也怕被報復解藻,在這里我把滲透目標設(shè)置為我自己的xp靶機老充,步驟跟前面一樣,掃描出端口查看是否有可利用程序螟左,然后對想掃描的端口進行掃描
? ??
在滲透測試中啡浊,我們都不希望致使任何服務(wù)器崩潰,但是我們的確可能會遇到那些無法正確受理非預期輸入的應(yīng)用程序胶背,在這種情況下巷嚣,Nmap的掃描數(shù)據(jù)就可能引發(fā)程序崩潰