目录
3)检查192.168.4.0/24网段内哪些主机可以ping通
7)全面分析目标主机操作系统信息(-A【全面扫描】发现你开了就会进去扫描)
3)再次使用tcpdump抓包,使用-w选项可以将抓取的数据包另存为文件,方便后期慢慢分析。
使用nmap扫描来获取指定主机/网段的相关信息
使用nmap执行脚本扫描
使用tcpdump分析FTP访问中的明文交换信息
基本用法 # nmap [扫描类型] [选项] <扫描目标 ...> #常用的扫描类型 # -sS,TCP SYN扫描(半开) # -sT,TCP 连接扫描(全开)(tcp扫描) # -sU,UDP扫描 # -sP,ICMP扫描(ping扫描) # -A,目标系统全面分析 #-n ,不加dns解析(快一点)【默认不加】
tcpdump 是一款强大的工具,支持多种选项和过滤规则,适用场景十分广泛。由于它是命令行工具,因此适用于在远程服务器或者没有图形界面的设备中收集数据包以便于事后分析。它可以在后台启动,也可以用 cron 等定时工具创建定时任务启用它
#监控选项如下:
# -i,指定监控的网络接口(默认监听第一个网卡)
# -A,转换为 ACSII 码,以方便阅读
# -w,将数据包信息保存到指定文件(默认放到屏幕上)
# -r,从指定文件读取数据包信息#tcpdump的过滤条件:(不写选项默认抓所有)
# 类型:host(主机)、net(网段)、port(端口)、portrange(端口范围)(不写端口默认加所有)
# 方向:src(源地址)、dst(目标地址)
# 协议:tcp、udp、ip、wlan、arp、……(正向于反向)
# 多个条件组合:and、or、not
Kali是基于Debian的Linux发行版,Kali Linux包含上百个安全相关工具
如:渗透测试、安全检测、密码安全、反向工程等,官网:kali.org。
所以本文以kali系统为主
重要提示:kali虚拟机用户名为kali,密码为kali。
$ ip a s #查看网卡设备名称(设备名) $ nmcli connection show #查看网络连接名称(网卡名) #注意:仔细区分网卡名和设备名称,两个名称有可能不一致(正常情况),配置IP时注意!!! $ sudo nmcli connection modify "Wired connection 1" \ ipv4.method manual \ ipv4.addr 192.168.4.40/24 \ autoconnect yes #配置IP地址,autoconnect设置网卡开机自动激活 #\代表换行符 $ sudo nmcli connection up "Wired connection 1" 127=错误
下面的实验请根据自己的实际情况进行测试,每个人的IP地址可能不一样!
(这里假设有192.168.4.5主机)
[kali@kali ~]$ sudo nmap -sP 192.168.4.5 Starting Nmap 6.40 ( http://nmap.org ) at 2028-06-06 21:59 CST mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-servers Nmap scan report for host3 (192.168.4.5) Host is up (0.00036s latency). MAC Address: 52:54:00:71:07:76 (QEMU Virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 0.02 seconds
[kali@kali ~]$ sudo nmap -n -sP 192.168.4.5 Starting Nmap 6.40 ( http://nmap.org ) at 2028-06-06 22:00 CST Nmap scan report for 192.168.4.5 Host is up (0.00046s latency). MAC Address: 52:54:00:71:07:76 (QEMU Virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds
(这里假设有192.168.4.0网端)
[kali@kali ~]$ sudo nmap -n -sP 192.168.4.0/24 Starting Nmap 5.51 ( http://nmap.org ) at 2027-05-17 18:01 CST Nmap scan report for 192.168.4.5 Host is up. Nmap scan report for 192.168.4.7 Host is up. Nmap scan report for 192.168.4.120 Host is up (0.00027s latency). MAC Address: 00:0C:29:74:BE:21 (VMware) Nmap scan report for 192.168.4.110 Host is up (0.00016s latency). MAC Address: 00:50:56:C0:00:01 (VMware) Nmap scan report for 192.168.4.120 Host is up (0.00046s latency). MAC Address: 00:0C:29:DB:84:46 (VMware) Nmap done: 256 IP addresses (5 hosts up) scanned in 3.57 seconds
[kali@kali ~]$ sudo nmap -sT 192.168.4.254 Starting Nmap 5.51 ( http://nmap.org ) at 2028-05-17 17:55 CST Nmap scan report for 192.168.4.254 Host is up (0.00028s latency). Not shown: 990 closed ports PORT STATE SERVICE 21/tcp open ftp 22/tcp open ssh 25/tcp open smtp 80/tcp open http 110/tcp open pop3 111/tcp open rpcbind 143/tcp open imap 443/tcp open https 993/tcp open imaps 995/tcp open pop3s MAC Address: 00:0C:29:74:BE:21 (VMware) Nmap done: 1 IP address (1 host up) scanned in 1.31 seconds
(这里假设有192.168.4.0网段)
[kali@kali ~]$ sudo nmap -p 21-22 192.168.4.0/24(不写默认sT) Starting Nmap 5.51 ( http://nmap.org ) at 2027-05-17 18:00 CST Nmap scan report for 192.168.4.5 Host is up (0.000025s latency). PORT STATE SERVICE 21/tcp open ftp 22/tcp open ssh Nmap scan report for 192.168.4.7 Host is up. PORT STATE SERVICE 21/tcp filtered ftp 22/tcp filtered ssh Nmap scan report for 192.168.4.120 Host is up (0.00052s latency). PORT STATE SERVICE 21/tcp open ftp 22/tcp open ssh MAC Address: 00:0C:29:74:BE:21 (VMware) Nmap scan report for pc110.tarena.com (192.168.4.110) Host is up (0.00038s latency). PORT STATE SERVICE 21/tcp closed ftp 22/tcp closed ssh MAC Address: 00:50:56:C0:00:01 (VMware) Nmap scan report for 192.168.4.120 Host is up (0.00051s latency). PORT STATE SERVICE 21/tcp closed ftp 22/tcp closed ssh MAC Address: 00:0C:29:DB:84:46 (VMware) Nmap done: 256 IP addresses (5 hosts up) scanned in 4.88 seconds
[kali@kali ~]$ sudo nmap -sU 192.168.4.5 #指定-sU扫描UDP 53/udp open domain 111/udp open rpcbind
(这里假设有192.168.4.100和192.168.4.5主机)
[kali@kali ~]$ sudo nmap -A 192.168.4.100,5(扫描100和5) Starting Nmap 5.51 ( http://nmap.org ) at 2017-05-17 18:03 CST Nmap scan report for 192.168.4.100 #主机mail的扫描报告 Host is up (0.0016s latency). Not shown: 990 closed ports PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 2.2.2 | ftp-anon: Anonymous FTP login allowed (FTP code 230) | -rw-r--r-- 1 0 0 1719 Aug 17 13:33 UserB.pub | -rw-r--r-- 1 0 0 122 Aug 13 05:27 dl.txt | drwxr-xr-x 2 14 0 4096 Aug 13 09:07 pub | -rw-rw-r-- 1 505 505 170 Aug 17 13:18 tools-1.2.3.tar.gz |_-rw-rw-r-- 1 505 505 287 Aug 17 13:22 tools-1.2.3.tar.gz.sig 22/tcp open ssh OpenSSH 5.3 (protocol 2.0) | ssh-hostkey: 1024 86:be:d6:89:c1:2d:d9:1f:57:2f:66:d1:af:a8:d3:c6 (DSA) |_2048 16:0a:15:01:fa:bb:91:1d:cc:ab:68:17:58:f9:49:4f (RSA) 25/tcp open smtp Postfix smtpd 80/tcp open http Apache httpd 2.4.10 ((Red Hat)) |_http-methods: No Allow or Public header in OPTIONS response (status code 302) | http-title: 302 Found |_Did not follow redirect to https://192.168.4.100// 110/tcp open pop3 Dovecot pop3d |_pop3-capabilities: USER CAPA UIDL TOP OK(K) RESP-CODES PIPELINING STLS SASL(PLAIN) 111/tcp open rpcbind MAC Address: 00:0C:29:74:BE:21 (VMware) TRACEROUTE HOP RTT ADDRESS 1 1.55 ms 192.168.4.100 No exact OS matches for host (If you know what OS is running on it, see http://nmap.org/submit/ ). TCP/IP fingerprint: OS:SCAN(V=5.51%D=8/19%OT=21%CT=1%CU=34804%PV=Y%DS=1%DC=D%G=Y%M=000C29%TM=52 OS:11ED90%P=x86_64-redhat-linux-gnu)SEQ(SP=106%GCD=1%ISR=10B%TI=Z%CI=Z%II=I OS:%TS=A)OPS(O1=M5B4ST11NW6%O2=M5B4ST11NW6%O3=M5B4NNT11NW6%O4=M5B4ST11NW6%O OS:5=M5B4ST11NW6%O6=M5B4ST11)WIN(W1=3890%W2=3890%W3=3890%W4=3890%W5=3890%W6 OS:=3890)ECN(R=Y%DF=Y%T=40%W=3908%O=M5B4NNSNW6%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O OS:%A=S+%F=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD= OS:0%Q=)T5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0% OS:S=A%A=Z%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1( OS:R=Y%DF=N%T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI= OS:N%T=40%CD=S) Network Distance: 1 hop Service Info: Host: mail.tarena.com; OS: Unix
(192.168.4.5主机操作)
[root@proxy ~]# yum -y install vsftpd [root@proxy ~]# systemctl restart vsftpd [root@proxy ~]# useradd tom [root@proxy ~]# echo 123 | passwd --stdin tom
相关脚本存放目录:/usr/share/nmap/scripts/
[kali@kali ~]$ sudo nmap --script=ftp-anon.nse 192.168.4.5 -p 21 #匿名访问扫描 [kali@kali ~]$ sudo nmap --script=ftp-syst.nse 192.168.4.5 -p 21 #扫描ftp软件相关信息(如版本号,是否有带宽限制,超时时间等) [kali@kali ~]$ sudo nmap --script=ftp-vsftpd-backdoor.nse 192.168.4.5 -p 21 #后门扫描 [kali@kali ~]$ sudo nmap --script=ftp-brute.nse 192.168.4.5 -p 21 #暴力破解密码
[kali@kali ~]$ sudo nmap --script=ssh-brute.nse 192.168.4.5 -p 22 #暴力破解ssh密码 [kali@kali ~]$ sudo vi /tmp/users.lst #新建文件,存储账户信息 root tom [kali@kali ~]$ sudo vi /tmp/pass.lst #新建文件,存储密码信息 123456 654321 [kali@kali ~]$ sudo nmap --script=ssh-brute.nse \ --script-args userdb=/tmp/users.lst,passdb=/tmp/pass.lst 192.168.4.5 -p 22 #使用自己创建的账户和密码本暴力破解ssh密码(输入a测所有) 在192.168.4.5主机可以查看日志 [root@proxy ~]# tail /var/log/secure #查看日志
这里假设192.168.4.5有http服务。
[kali@kali ~]$ sudo nmap --script=http-methods.nse 192.168.4.5 -p 80 #请求方法扫描(如get,post,header等) [kali@kali ~]$ sudo nmap --script=http-sql-injection.nse 192.168.4.5 -p 80 #SQL注入扫描 备注:SQL注入是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。 SQL注入是将Web页面的原URL、表单域或数据包输入的参数,修改拼接成SQL语句,传递给Web服务器,进而传给数据库服务器以执行数据库命令。
这里假设有一台windows主机192.168.137.4。(破解windows的贡献密码【相当于主机密码】)
[kali@kali ~]$ sudo nmap --script=smb-brute.nse 192.168.137.4 [kali@kali ~]$ sudo nmap --script=smb-brute.nse \ --script-args=userdb=/密码本,passdb=/密码本 192.168.137.4
$ sudo john --single /etc/shadow #破解傻瓜式密码 $ sudo john /etc/shadow #字典暴力破解(随时ctrl+c终止) $ sudo john --wordlist=密码本 /etc/shadow #使用自定义密码本破解 $ sudo john --show /etc/shadow #显示破解的密码
执行tcpdump命令行,添加适当的过滤条件,只抓取访问主机192.168.4.5的21端口的数据通信 ,并转换为ASCII码格式的易读文本。
这里假设,192.168.4.5主机有vsftpd服务,如果没有需要提前安装并启动服务!!!
警告:案例中所有抓包命令都没有指定网卡,每位同学需要根据实际情况指定抓包网卡的名称。[kali@kali ~]$ sudo tcpdump -i 网卡名称 -A host 192.168.4.5 and tcp port 21 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes .. .. #进入等待捕获数据包的状态
从kali主机访问主机192.168.4.5的vsftpd服务。
[kali@kali ~]$ ftp 192.168.4.5 Connected to 192.168.4.5 (192.168.4.5). 220 (vsFTPd 3.0.2) Name (192.168.4.5:root): tom #输入用户名 331 Please specify the password. Password: #输入密码 530 Login incorrect. Login failed. ftp>quit #退出
观察抓包的结果(在kali主机观察tcpdump抓包的结果):
[kali@kali ~]$ ... … 18:47:27.960530 IP 192.168.2.100.novation > 192.168.4.5.ftp: Flags [P.], seq 1:14, ack 21, win 65515, length 13 E..5..@.@......x...d.*..G.\c.1BvP.......USER tom 18:47:29.657364 IP 192.168.2.100.novation > 192.168.4.5.ftp: Flags [P.], seq 14:27, ack 55, win 65481, length 13 E..5..@.@......x...d.*..G.\p.1B.P.......PASS 123
[kali@kali ~]$ sudo tcpdump -i 网卡名称 -A -w ftp.cap \ host 192.168.4.5 and tcp port 21 #抓包并保存 tcpdump命令的-r选项,可以去读之前抓取的历史数据文件
[kali@kali ~]$ sudo tcpdump -A -r ftp.cap | egrep '(USER|PASS)' #分析数据包 .. .. E..(..@.@.. ...x...d.*..G.\c.1BbP............. 18:47:25.967592 IP 192.168.2.5.ftp > 192.168.2.100.novation: Flags [P.], seq 1:21, ack 1, win 229, length 20 E..<FJ@.@.jE...d...x...*.1BbG.\cP...V...220 (vsFTPd 2.2.2) … … 18:47:27.960530 IP 192.168.2.100.novation > 192.168.2.5.ftp: Flags [P.], seq 1:14, ack 21, win 65515, length 13 E..5..@.@......x...d.*..G.\c.1BvP.......USER tom … … 18:47:27.960783 IP 192.168.2.5.ftp > 192.168.2.100.novation: Flags [P.], seq 21:55, ack 14, win 229, length 34 E..JFL@.@.j5...d...x...*.1BvG.\pP...i~..331 Please specify the password. … … 18:47:29.657364 IP 192.168.2.5.ftp > 192.168.2.100.novation: Flags [P.], seq 14:27, ack 55, win 65481, length 13 E..5..@.@......x...d.*..G.\p.1B.P.......PASS 123 … … 18:47:29.702671 IP 192.168.2.100.novation > 192.168.2.5.ftp: Flags [P.], seq 55:78, ack 27, win 229, length 23 E..?FN@.@.j>...d...x...*.1B.G.\}P.......230 Login successful.
#yum -y install nmap
#man nmap
基本用法:
nmap [扫描类型] [选项] <扫描目标 ...> 常用的扫描类型 -sS,TCP SYN扫描(半开) -sT,TCP 连接扫描(全开) -sU,UDP扫描 -sP,ICMP扫描 -A,目标系统全面分析 -n选项可以不执行DNS解析 -p 端口
(192.168.4.0/24网段)
nmap -sP -n 192.168.4.0/24
#nmap -sT -n 192.168.4.166 Starting Nmap 6.40 ( http://nmap.org ) at 2020-09-07 20:41 CST Nmap scan report for mysql3 (192.168.4.166) Host is up (0.00053s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 3306/tcp open mysql MAC Address: 00:0C:29:3C:33:27 (VMware) Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds
(192.168.4.0/24)
nmap -p 21-22 192.168.4.0/24
nmap -sU 192.168.4.166
(192.168.4.166和192.168.4.163)
nmap -A -n 192.168.4.166,163
# yum -y install vsftpd # systemctl restart vsftpd # useradd tom #echo 123 | passwd --stdin tom # tcpdump -i 网卡名称 -A host 192.168.4.158 and tcp port 21
只抓取访问主机192.168.4.158的21端口的数据通信 ,并转换为ASCII码格式的易读文本。
从192.168.4.166访问主机192.168.4.158的vsftpd服务。
#yum -y install ftp # ftp 192.168.4.158 ftp 192.168.4.158 Connected to 192.168.4.158 (192.168.4.158). 220 (vsFTPd 3.0.2) Name (192.168.4.158:root): tom 账号 331 Please specify the password. Password: 密码 530 Login incorrect. Login failed. # tcpdump -i 网卡名称 -A host 192.168.4.158 and tcp port 21
#再次使用tcpdump抓包,使用-w选项可以将抓取的数据包另存为文件,方便后期慢慢分析。 # tcpdump -i 网卡名称 -A -w ftp.cap host 192.168.2.5 and tcp port 21
tcpdump命令的-r选项,可以去读之前抓取的历史数据文件 # tcpdump -A -r ftp.cap | egrep '(USER|PASS)' #分析数据包
3)使用tcpdump分析Nginx的明文账户认证信息信息
在proxy主机使用tcpdump命令抓包
# tcpdump -i 网卡名称 -A host 192.168.4.166 and tcp port 80
在真实机使用浏览器访问192.168.4.166
#客户端使用浏览器访问 firefox http://192.168.2.5 #根据提示输入用户名与密码
回到proxy查看抓包的数据结果(找关键词Authorization: Basic)
[root@proxy ~]# tcpdump -A host 192.168.2.5 and tcp port 80 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes … … Authorization: Basic dG9tOjEyMzQ1Ng==
[root@proxy ~]# echo "dG9tOjEyMzQ1Ng==" | base64 -d #解码数据 tom:123456 [root@proxy ~]# echo "tom:123456" | base64 dG9tOjEyMzQ1Ngo=