端口扫描工具snoop_socat端口扫描

hacker|
223

在地址为192.168.1.44的主机上,要检查到另一台主机的端到端连接性,可通过CLI执行哪个命令

ping:通过ICMP回应/回复报文检查远端主机的端到端连接性(RTT延时,抖动,丢包)。用来检查系统状态和可连接性很不错

.hping:网络扫描和检测工具,可以产生ICMP / TCP / UDP ping数据包。常常用于高级端口扫描,防火墙测 试验,手动MTU路径发现和碎片测试.traceroute

:通过TTL限定的ICMP / UDP / TCP侦测包来发现从本地主机到远端目标主机之间的第三层转发路径。用来调试网络连接性和

路由问题.mtr:traceroute的一个变种,能根据运行时统计数据整理出每一跳的包丢失/动作。用来评估路由路径延时很不错.netcat

/ socat:TCP / IP网络里的瑞士军刀,可以读/写TCP / UDP协议字节流。用来调试防火墙策略和服务可用性很不错.dig

:DNS调试工具,可以生成正向查询,反向查询,搜索域名服务器,检查CNAME,MX及其他DNS记录。可以在侦错的时候查询特定的DNS服务器.nslookup

:另外一个DNS检查/调试工具。支持所有DNS查询和记录。可以查询特定DNS服务器。

dnsyo:一个DNS测试工具,通过对全世界1500个不同网络中的大量开放解析器执行DNS查询来测试DNS传输.lsof

:显示进程打开的文件信息(例如,普通文件,管道或套接字)。用来监视网络连接很不错

.iftop:一个基于ncurses的命令行界面应用,可以实时监视各个网络物理接口上的网络连接和带宽占用。用来记录霸占带宽的应用,用户,目的地和端口等很不错

.netstat:一个网络统计工具,可以显示状态以及统计信息,当前网络连接(TCP / UDP端口,IP地址),路由表,TX / RX流量以及网络协议。用来做网络相关诊断和性能调试很不错

.tcpdump:一个常用的基于libpcap抓包库的包侦测工具。可以按伯克利包过滤器格式定义抓包条件

.tshark:另一个命令行抓包工具,和它的GUI版本Wireshark完全兼容。支持1000种协议而且这个列表还在增加。用来调试,分析和保存实时 。络封包信息很不错

的ip:。一个多功能的命令行网络工具,是iproute2的包的一部分可以检查和修改路由表,网络设备状态以及IP隧道设置用来查看路由表,增加/删除静态路由,配置网络接口,以及调试路由问题很有用.ifup

/ ifdown:用来激活和关闭特定的网络接口。经常用于重启整个网络服务.autossh

:一个能建立SSH连接并在断线后自动重新连接的程序。用来创建长时间保持的穿越严格企业网络的SSH隧道很有用.iperf

:一个网络测试工具,通过在发送自定义TCP / UDP数据流来衡量主机间双向最大吞吐量

.elinks / lynx:为基于命令行的服务器环境下使用的基于文字的网页浏览器。

安全工具

iptables的:一个用户空间下的命令行工具,用于配置Linux的内核防火墙可以创建和修改的Linux内核空间的网络包接收,转发和发送规则。

NMAP:一个常用的为了安全审查目的的端口扫描和网络发现

TCP包装:一个主机端的网络访问控制列表工具,可以过滤进入/出去的网络请求/ 工具。用来在本地网络回复经常配合iptables的一起使用,作为额外一层安全保护。

getfacl的说明书/ setfacl的:查看和定制文件和目录的访问控制列表,作为传统文件权限的扩展。

cryptsetup:用于创建和管理LUKS加密磁盘分区

lynis :一个命令行的漏洞扫描工具。可以扫描整个Linux系统,并汇报潜在的漏洞以及相关可能解决方案

.maldet:一个恶意软件扫描命令行工具,可以检测和隔离潜在的感染文件。可以在后台运行长期监 。

rkhunter / chkrootkit的:一个命令行工具,可以扫描本地系统里的潜在木马,隐藏后门和可疑利用,并禁用它们。

存储工具

的fdisk:一个磁盘分区编辑工具用于查看,创建和修改本地磁盘或可移动磁盘的分区

.sfdisk:fdisk的一个变种,能用一种非交互的方式访问或更新磁盘分区表。用来自动化备份和恢复过程中的磁盘分区很有用

.parted:另一个磁盘分区编辑器,支持超过2TB的磁盘的GPT(GUID分区表)格式.gparted是parted的一个前端GTK +图形界面.df

:用来查看不同分区或文件路径的已用/可用存储空间和挂载点。还有一个更易用的变种DFC。

du:用来查看不同文件和目录的当前磁盘占用情况(例如,du -sh *)。

mkfs:一个磁盘格式化命令,用来在独立磁盘分区上建立文件系统。有多个文件系统相关的版本:ext2,ext3,ext4,bfs,ntfs,vfat /

fat.fsck:一个命令行工具,用来检查文件系统错误并尝试可能的修复。通常在启动时自动运行,但是在卸载一个分区后也可以根据需要手动运行

.mount:用来映射一个物理磁盘分区,网络共享或远程存储到一个本地挂载点。任何对挂载点里的读/写操作都是对应实际存储的实际数据读/写

.mdadm :一个命令行工具,用来管理物理块设备上的软件RAID设备。可以创建,构造,增长或监视RAID阵列.lvm

:一套命令行工具集,用来管理卷分组和物理/逻辑卷,可以。用最小的停机时间在多个物理磁盘上创建,调整大小,状语从句:拆分合并卷

日志访问工具

尾:用来查看一个(长中的)日志文件的尾部有几个变种,包括multitail(多窗口查看)和ztail(支持的inotify和正则表达式过滤以及颜色)。

logrotate的:一个命令行工具,可以在根据设定的时间段拆分,压缩并通过邮件发送旧的/大的日志文件。用来管理可能产生大量日志文件的繁忙主机很有用.grep

/ egrep:可以通过特定的模式或正则表达式过滤日志内容。变种包括用户更友好的ack和速度更快的ag.awk

:一个多功能的文本扫描和处理工具。常用于从文本/日志文件中找出特定的列或内容,并输出给其他工具.sed

:一个文本流编辑工具,可以过滤和改变(例如,删除行/空格,替换/转换单词,增加计数)文本流并通过管道连接到标准输出/标准错误或者其他工具。

备份工具

rsync:一个快速的单向增量备份和镜像工具(常规于复制一个数据仓库到线下存储,可以选择通过SSH或stunnel的加密连接

.rdiff-backup :另一个有效利用带宽的增量备份工具.diplicity

:一个加密的增量备份工具。使用GnuPG加密备份,并通过SSH上传到远程服务器。

性能监视工具

top:一个命令行的进程查看程序。可以监视系统负载,进程状态,CPU和内存占用。有一个更易用的变种htop。ps

:显示系统所有运行中进程的一个快照。输出可以定制成显示PID,PPID,用户,负载,内存,积累的用户/系统时间,启动时间,以及更多。有一个变种pstree可以用树结构显示进程

.nethogs:一个带宽监视工具,按进程来分组显示活动网络连接,实时汇报 -个进程占用的(上传/下载)带宽

.ngxtop:一个网页 服务器访问日志解析和监视工具,界面受到了top命令启发。它可以实时汇报整理过的页面请求列表,包括频率,大小,HTTP返回值,IP地址,等等.vmstat

:一个简单的命令行工具,可以显示多个实时系统特征,例如进程数,剩余内存,分页状态,CPU占用,块设备I / O活动,中断/上下文切换统计,

等等.iotop:一个基于ncurses的I / O监视工具,可以实时排序显示所有运行中进程的磁盘I / O活动

.iostat:一个命令行工具,可以汇报当前CPU使用情况,以及设备I / O使用情况,这里的I / O使用情况(例如,块传输速度,字节读/写速度)是按设备或分区来汇报的。

效率工具

screen:用来把一个单一的终端拆分成多个持久的虚拟终端,也支持远程用户访问,类似teamviewer的屏幕分享功能

.tmux:另一个终端复用工具,可以支持多个长期会话,还可以横向/纵向拆分终端。

作弊:一个简单的命令行工具,可以让你查看多个常用Linux命令的备记录,就在手边非常方便。内建的备忘录也可以完全定制.apropos

:用来在帮助手册里查找描述或关键字很有用。

包管理工具

apt:基于Debian系统的事实上的包管理工具,例如Debian,Ubuntu或Backtrack。一个救生圈.apt

-fast:apt-get的一个支撑应用,可以通过多个并行连接明显提高apt-get的下载速度

.apt-file:用来查看某个特定文件属于哪个.deb包,或者显示一个特定.deb包里的所有文件。已安装和未安装的包都能支持

.dpkg:一个用来手动安装.deb包的命令行工具。强烈建议尽可能的使用apt.yum

:用于基 于红帽的系统的自动包管理工具,比如RHEL,CentOS或Fedora。这是另一个救生圈!

rpm:通常我都是使用rpm来配合yum使用。有很多有用的参数,比如-q,-f, -l可以分别用来查询,指定文件和路径。

硬件工具

lspci的:一个命令行工具,可以显示已安装的PCI设备的各种信息,比如型号名称,设备驱动,设备功能,内存地址,PCI总线地址。

lshw:一个命令行工具,可以查询和显示不同分类下的硬件配置的详细信息(例如,处理器,内存,主板,网络,存储)支持多重输出格式:HTML,XML,JSON文本。

inxi:一个综合硬件查看工具,可以提供不同硬件模块的总览,例如CPU,显卡,声卡,网卡,温度/风扇传感器,等等。

socat 端口转发工具,脚本一键安装配置

一、概述

目前常用的端口转发工具有rinetd、Haproxy、iptables、Socat前面2种只能转发TCP,后面TCP/UDP都可以转发。如果是需要udp转发的话,只能选择iptables、Socat。iptables方面的转口转发配置这里就不多讲了,网上资料一大堆。下面分享一下Socat使用和配置。

二、安装配置

Socat可以通过rpm包的方式安装,然后配置,下面分享一个更简单的方法,一键部署安装部署脚本。

2.1 系统要求及说明

系统要求:支持CentOS 6+ 、Debian 7+、Ubuntu 14+。

脚本说明:脚本默认开启UDP、TCP转发,带开机自启功能,且一次只能转发单个端口,如果想转发多个端口请重复运行本脚本。

2.2 安装配置

1、脚本安装

注:以root用户执行上面的命令

2、输入的参数说明:

输入本地端口:指定本机未被占用的端口,用户可自定义。 输入远程端口:远程主机的真实的端口。 远程主机:远程主机的真实的IP地址。

3、配置保存位置

配置保存在/etc/rc.local文件中。

2.3 软件卸载

2.4 使用展示

1、环境说明

192.168.42.128:配置socat的机器,监听本地端口:13022 192.168.42.130:跳板远程连接的机器。.sh的监听端口为:22

2、配置

3、通过跳板连接到远程机器

三、小结

1、socat是继rinetd、Haproxy、iptables之后,端口转发和跳板的又一神器,同时支持tcp和udp。通过此一键配置脚本配置,非常简单便捷。

socat.sh

socat 初窥门径

如果您的工具箱需要高级一款高级系统管理工具,那 socat 就是其中一个。 socat 允许从一个位置到另一位置的双向数据传输, socat 实用程序是用于在两个独立数据通道之间进行双向数据传输的中继。

socat可以连接许多不同类型的通道,包括:

socat 具被视为 netcat 的高级版本。 它们执行类似的操作,但是 socat 具有更多其他功能,例如允许多个客户端在端口上侦听或重用连接。

有许多有效使用 socat 的方法。 这里有一些例子:

socat 的语法非常简单:

必须提供源地址和目标地址才能正常工作。 地址的语法为:

使用 socat 进行各种连接的一些基本示例:

在这种情况下, socat 在 STDIO(-)和名为 主机 8080 端口建立的 TCP4 连接之间进行数据传输。

侦听端口 8081,接受连接并将连接转发到远程主机. 192.168.1.10 上的 8080 端口。

侦听 3307 端口,接受连接并将连接转发到远程主机上的 Unix 套接字。

通过代理服务器访问目标主机,并在本机进行端口监听。把发到本机监听端口的数据转发到目标主机:

同时,也可以将本地端口监听改为标准输入输出,以这种方式协助 ssh 通过代理访问目标主机。

如:以通过 HTTP 代理访问

在此示例中,当客户端连接到 3334 端口时,将生成一个新的子进程。 客户端发送的所有数据都将附加到文件 /tmp/test.log 。 如果文件不存在,则 socat 会创建它。 选项 reuseaddr 允许立即重启服务器进程。

再看文件传递的例子。nc 也经常用来传递文件,但是 nc 有一个缺点,就是不知道文件什么时候传完了,一般要用Ctrl-C 来终止,或者估计一个时间,用 -w 参数来让他自动终止。用 socat 就不用这么麻烦了:

正向 Shell 就是 Server 提供网络监听以及启动 Shell,供 Client 控制

反向 Shell 就是 Server 提供网络监听,Client 启动 Shell,在 Client 连接后对 Client 进行控制

以上时相对比较常用的场景,其余更复杂的应用可以翻阅相关资料,有些特定场景有更方便的实现,如:NAT 映射,更推荐使用 frp,可参考 《推荐一款很好用的内网穿透工具–frp》 。

(完)

测试特定协议下指定端口是否开启

我们在检测远程服务是否正常时,经常会用一些工具(命令)来检测端口是否开启,来确定服务是否正常。通常可用于检测的工具有nc、socat、nmap等,基本思想是向远端指定端口发送数据,看其状态。

远端:192.168.0.15

本端:192.168.0.10

单向检测(适用于无法登录远端服务查看的情况)

如果返回succeeded,则说明相应的UDP端口访问正常。

如果无任何返回信息,则说明相应的UDP端口访问失败。

nc -uvz $IP $Port.   //UDP

nc -vz $IP $Port   //TCP

远端不监听1777端口情况

# nc -uvz 192.168.0.15 1777

#

远端监听1777端口

# nc -ul 1777

XXXXX

# nc -uvz 192.168.0.15 1777

Connection to 192.168.0.15 1777 port [udp/powerguardian] succeeded!

如果succeeded,则无任何返回,如果failed则返回Connection refused。

echo "This socat udp test." | socat - udp-connect:$IP:$Port

远端不监听1777端口,本端发送udp数据至远端指定端口。

# echo "This socat udp test." | socat - udp-connect:192.168.0.15:1777

2017/06/18 14:26:39 socat[22195] E read(3, 0xb48a20, 8192): Connection refused

远端开启监听,本端再次发送。

# nc -ul 1777

This socat udp test.

# echo "This socat udp test." | socat - udp-connect:192.168.0.15:1777

#

用指定协议扫描远端指定端口

nmap -sU -p $Port $IP

# nmap -sU -p 1777 192.168.0.15

Starting Nmap 5.51 ( ) at 2017-06-18 14:35 CST

Nmap scan report for host-192-168-0-15 (192.168.0.15)

Host is up (0.00098s latency).

PORT     STATE  SERVICE

1777/udp closed unknown

MAC Address: FA:16:3E:1A:54:30 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds

可以通过传输文本及文件来测试UDP端口是否正常(先开监听,再发送)

远端:nc -ul $Port

本端: nc -u $IP $Port

在本端键入任意字符,看远端是否可以收到。

远端:nc -l $Port $Filename

本端:nc $IP $Port $Filename

可以执行md5sum看两端的文件md5是否相同

注:如果是检测tcp协议端口,上述nc命令中,去掉参数-u即可。另外,也可以使用telnet $IP $Port来完成

$ nc -vzw 2 180.76.148.122 22-81 //显示详细信息,包含失败的

$ nc -zw 2 180.76.148.122 22-81 //不显示详细信息,只包含成功的,如果检测udp端口,可用"vzw"参数,"z"参数表示连接成功后立即关闭连接

Connection to 180.76.148.122 port 22 [tcp/ssh] succeeded!

Connection to 180.76.148.122 port 80 [tcp/http] succeeded!

附全面的ncat使用方法:

0条大神的评论

发表评论