当前位置: 首页 > 工具软件 > nmap4j > 使用案例 >

nmap,tcpdump

安高义
2023-12-01

目录

一.扫描与抓包分析

 二.nmap的介绍与tcpdump的介绍

1.使用NMAP扫描来获取指定主机/网段的相关信息

2.用tcpdump分析FTP访问中的明文交换信息

三.kali系统的nmap

1.给kali虚拟机配置IP地址:

2.使用NMAP扫描来获取指定主机/网段的相关信息

1)检查主机是否可以ping通

2)使用-n选项可以不执行DNS解析

3)检查192.168.4.0/24网段内哪些主机可以ping通

4)检查目标主机所开启的TCP服务

5)检查网段内哪些主机开启了FTP、SSH服务

6)检查目标主机所开启的UDP服务

7)全面分析目标主机操作系统信息(-A【全面扫描】发现你开了就会进去扫描)

3.使用nmap执行脚本扫描

1)准备一台Vsftpd服务器

2)FTP相关扫描脚本(在kali主机操作)

3)SSH相关扫描(在kali主机操作)

4)HTTP相关扫描(kali主机操作)

5)SMB相关扫描(kali主机操作)

6)暴力破解密码(kali主机操作)

4.使用tcpdump分析FTP访问中的明文交换信息

1)启用tcpdump命令行抓包(kali虚拟机操作)

2)执行FTP访问,并观察tcpdump抓包结果

3)再次使用tcpdump抓包,使用-w选项可以将抓取的数据包另存为文件,方便后期慢慢分析。

四.CentOS的nmap

1.使用NMAP扫描来获取指定主机/网段的相关信息

1)检测网段有几个是开机状态

2)检查目标主机所开启的TCP服务

3)检查网段内哪些主机开启了FTP、SSH服务

4)检查目标主机所开启的UDP服务

5)全面分析目标主机操作系统信息

2.使用tcpdump分析FTP访问中的明文交换信息

1)准备Vsftpd服务器

2)执行FTP访问,并观察tcpdump抓包结果

3)查看base64编码内容


一.扫描与抓包分析

使用nmap扫描来获取指定主机/网段的相关信息
使用nmap执行脚本扫描
使用tcpdump分析FTP访问中的明文交换信息

 二.nmap的介绍与tcpdump的介绍

1.使用NMAP扫描来获取指定主机/网段的相关信息

基本用法
# nmap  [扫描类型]  [选项]  <扫描目标 ...>
#常用的扫描类型
# -sS,TCP SYN扫描(半开)
# -sT,TCP 连接扫描(全开)(tcp扫描)
# -sU,UDP扫描
# -sP,ICMP扫描(ping扫描)
# -A,目标系统全面分析
#-n ,不加dns解析(快一点)【默认不加】

2.用tcpdump分析FTP访问中的明文交换信息

tcpdump 是一款强大的工具,支持多种选项和过滤规则,适用场景十分广泛。由于它是命令行工具,因此适用于在远程服务器或者没有图形界面的设备中收集数据包以便于事后分析。它可以在后台启动,也可以用 cron 等定时工具创建定时任务启用它

#监控选项如下:
# -i,指定监控的网络接口(默认监听第一个网卡)
# -A,转换为 ACSII 码,以方便阅读
# -w,将数据包信息保存到指定文件(默认放到屏幕上)
# -r,从指定文件读取数据包信息

#tcpdump的过滤条件:(不写选项默认抓所有)
# 类型:host(主机)、net(网段)、port(端口)、portrange(端口范围)(不写端口默认加所有)
# 方向:src(源地址)、dst(目标地址)
# 协议:tcp、udp、ip、wlan、arp、……(正向于反向)
# 多个条件组合:and、or、not

三.kali系统的nmap

Kali是基于Debian的Linux发行版,Kali Linux包含上百个安全相关工具

如:渗透测试、安全检测、密码安全、反向工程等,官网:kali.org。

所以本文以kali系统为主
重要提示:kali虚拟机用户名为kali,密码为kali。

1.给kali虚拟机配置IP地址:

$ 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=错误

2.使用NMAP扫描来获取指定主机/网段的相关信息

下面的实验请根据自己的实际情况进行测试,每个人的IP地址可能不一样!

1)检查主机是否可以ping通

 (这里假设有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

2)使用-n选项可以不执行DNS解析

[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

3)检查192.168.4.0/24网段内哪些主机可以ping通

 (这里假设有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

4)检查目标主机所开启的TCP服务

[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

5)检查网段内哪些主机开启了FTP、SSH服务

(这里假设有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


6)检查目标主机所开启的UDP服务

[kali@kali ~]$ sudo nmap   -sU  192.168.4.5                #指定-sU扫描UDP
53/udp   open          domain
111/udp  open          rpcbind

7)全面分析目标主机操作系统信息(-A【全面扫描】发现你开了就会进去扫描)

  (这里假设有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

3.使用nmap执行脚本扫描

1)准备一台Vsftpd服务器

 (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

2)FTP相关扫描脚本(在kali主机操作)

 相关脚本存放目录:/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
#暴力破解密码

3)SSH相关扫描(在kali主机操作)

[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                   #查看日志

4)HTTP相关扫描(kali主机操作)

这里假设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服务器,进而传给数据库服务器以执行数据库命令。

5)SMB相关扫描(kali主机操作)

这里假设有一台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  

6)暴力破解密码(kali主机操作)

$ sudo   john  --single  /etc/shadow              #破解傻瓜式密码
$ sudo   john   /etc/shadow                       #字典暴力破解(随时ctrl+c终止)
$ sudo   john  --wordlist=密码本   /etc/shadow   #使用自定义密码本破解
$ sudo   john  --show  /etc/shadow                #显示破解的密码

4.使用tcpdump分析FTP访问中的明文交换信息

1)启用tcpdump命令行抓包(kali虚拟机操作)

执行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
.. ..                                            #进入等待捕获数据包的状态

2)执行FTP访问,并观察tcpdump抓包结果

从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

3)再次使用tcpdump抓包,使用-w选项可以将抓取的数据包另存为文件,方便后期慢慢分析。

[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.

四.CentOS的nmap

1.使用NMAP扫描来获取指定主机/网段的相关信息

#yum -y install nmap

#man nmap

基本用法:

   nmap [扫描类型] [选项] <扫描目标 ...>

          常用的扫描类型

          -sS,TCP SYN扫描(半开)

           -sT,TCP 连接扫描(全开)

            -sU,UDP扫描

            -sP,ICMP扫描

             -A,目标系统全面分析

            -n选项可以不执行DNS解析

             -p 端口

1)检测网段有几个是开机状态

 (192.168.4.0/24网段)

nmap -sP  -n 192.168.4.0/24

2)检查目标主机所开启的TCP服务

#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

3)检查网段内哪些主机开启了FTP、SSH服务

(192.168.4.0/24)

nmap -p 21-22 192.168.4.0/24

4)检查目标主机所开启的UDP服务

nmap -sU 192.168.4.166

5)全面分析目标主机操作系统信息

 (192.168.4.166和192.168.4.163)

nmap -A -n 192.168.4.166,163

2.使用tcpdump分析FTP访问中的明文交换信息

1)准备Vsftpd服务器

# 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码格式的易读文本。

2)执行FTP访问,并观察tcpdump抓包结果

从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==

3)查看base64编码内容

[root@proxy ~]# echo "dG9tOjEyMzQ1Ng==" | base64 -d #解码数据

tom:123456

[root@proxy ~]# echo "tom:123456" | base64

dG9tOjEyMzQ1Ngo=


 

 类似资料:

相关阅读

相关文章

相关问答

相关文档