不论是传统金融行业还是互联网金融行业,公司在安全与运维的目标都是一致的,维稳、业务优先、搞钱…….
但不论作为安全人员还是运维人员,首先要做的是全面了解自己所处的网络架构、资产详情、资产脆弱性、映射等信息,传统的做法是将所有信息一一记录,存放于表单中,自从无纸化推行以来,传统表单逐渐演变成电子表单,但都省却不了人工录入的环节,自动化逐渐成为重点。
Github中的opsmanager风靡一时,靠的就是半自动化与无纸化,但是随着我们统计的信息越来越多,并且云环境的推行使得我们不在重点关注机房信息时,opsmanager也在逐渐向云管理平台靠拢,比较出名的有codo,蓝鲸等。
以上平台在Github中都可以搜索得到,在这里不做具体阐述,有兴趣的可以直接在Github浏览。
不管是什么平台,成熟与否,基础就在于资产收集,传统人工录入的方式已经濒临淘汰,而通过nmap等扫描器制作的资产收集平台又会有很多问题,比如nmap在特定环境中搜索的结果并不准确(阿里云centos6扫描不规则网段时扫描不全面,例如172.31.240.0/20,扫描结果仅有240.1-253,253.1-253无法扫描出来),结果乱码(阿里云centos6扫描时存在结果乱码)附上图,并且扫描的执行速度比较慢。
扫描结果乱码这个是什么原因导致的暂时不清楚,也不知道有没有哪位兄弟遇到过我这个问题,总归一句话:Centos6的bug还是多……
而masscan虽然扫描速度比较快,但是会过度扫描,即结果不准确,偶尔存在漏扫或者多扫的情况。
基于此类问题,为各位安全或运维从业者推荐一款新出的工具TXPortMap
Github: https://github.com/4dogs-cn/TXPortMap
工具采用golang编写,在nmap和masscan中寻找到了一个平衡点,继承了masscan的速度与nmap的准确度,同时摒弃了nmap中的bug(通过实测)
在这里提一下,此工具是成熟的安全团队4dogs(四维创智)开发,后续将持续更新,并推出更多开源产品,有兴趣的可以关注。
在安装的时候淌了不少坑,在这里一一为大家解说,由于官方并没有发出搭建文档,所以为了让各位使用的方便,在这里给出一份三方的搭建避坑文档。
一、搭建
由于工具在Github上,这个时段伟大的长城往往不太稳定,能FQ的FQ在这里不多说,不能FQ的可以通过更换域名的方法进行clone:
git clone https://github.com.cnpmjs.org/4dogs-cn/TXPortMap.git
其实就是镜像站,原理不多做阐述。
二、构建
1、由于整体采用golang语言,在这里首先安装golang环境
centos:yum install -y golang
ubuntu:apt-get install golang
关于centos6 yum源的问题,去年年底官方删除了centos6的yum源强推centos7,这个做法也是比较迷,yum不成功的手动更换yum源为腾讯源即可,本文撰写时阿里源已经不好用了。更换方法自行百度,本文不做阐述。
2、切换到下载目录中,查看build文件
在这里有几个点需要注意:
1.golang在初始化的时候会调用github的mod包,所以如果你运气不太好并且没有FQ,很大概率会卡死在build环节
2.底部用了upx命令,记得yum安装一下
本人就在第一点坑了半个小时,等的很是辛苦,忘记了Github被墙的问题……
意识到这个问题的时候,其实有很多个解决方法,比如FQ。但考虑到适用性,在这里跟大家分享一个golang在构建阶段的小窍门,启用构建代理即可解决这个问题
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
三、使用
整体构建完毕后,使用的说明其实在Github官方已经有了,在这里简单阐述一下:
1.所有选参
英文解释比较到位,这里不一一阐述了,后面会给出使用案例
2.使用
简单分享一个小案例,使用此工具扫描开始分享的bug段:172.31.240.0/20
#扫描网段
/home/logbak/TXPortMap/release/TxPortMap_linux_x64 -i 172.31.240.0/20 -p 22 -o /home/logbak/TXPortMap/release/rst.txt
#数据分类
awk -F ” ” ‘{print $3}’ /home/logbak/TXPortMap/release/rst.txt |awk -F: ‘{print $1}’ |awk -F[ ‘{print $2}’> /home/logbak/ip.txt
此段代码先执行扫描任务,将如下结果存储与rst.txt中
之后做数据分类,仅存储IP到ip.txt中
在这里简单介绍一下linux 的 awk用途,awk是将文件中的内容按照过滤条件拆分内容,并将想要取得的内容展示出来,比如此案例,首先按照空格切分,然后取第三类值,即[ip:port],然后按照冒号切分,取[ip,最后把括号舍弃,保留ip存储到ip.txt中。
此间就完成了工具的使用,从速率上来说,使用nmap执行刨除准确率不说,单执行时间大概在5分钟左右(仅探测240.0/24+253.0/24两者累加的时间),TXPortMap的执行时间为20秒左右(240.0/20全段时间),准确率来说,我的详细资产列表为187台,执行结果为188台(多出来一台,后查证是阿里云的bug,一台服务器没有绑定两块网卡,但是两个私网IP都能跳过去,nmap和masscan都没有扫出来,TXPortMap扫出来了,这个也是为什么我肯推荐的原因之一)。
来源:freebuf.com 2021-04-12 14:42:38 by: 煜阳yuyang
请登录后发表评论
注册