一、背景:

在很多时候,应急会发现。卧槽,异常连接,只有一个域名或者IP。

怎么办?上防火墙看记录,查域名对应的记录累成狗,自己把之前的代码改了改,写了个小工具,一条命令查询DNS相关记录,也可以指定内网服务器查询。

二、分析思路:

1、首先排查一下流量通信情况,采集远端IP、域名、及其对应的解析记录。

2、国内推荐使用我们360,以及threatbook、还有老东家tianjipartner的的威胁情报源分析是否有关联威胁,如果有采取第一波止损措施,马上下策略隔绝断网。重要的机器可以直接先断了网或者会话。(大陆之外推荐使用passivetotal和virustotal)

3、如果没有,上主机查进程,可以写脚本监控。查看通信端口对应进程:

 #sudo netstat -anop | grep a.b.c.d  查到pid
#sudo ps -ef | grep pid确定进程

4、疑似进程取样kill,正常进程先不要kill ,进一步可以做深层次的源代码分析等等。

三、使用的dnspythonlib库:

昨晚临时写的,把之前的代码改了改,其实可以好好重写一番,里面有部分实现逻辑其实挺垃圾的,求轻喷。

 # -*- coding:utf-8 -*-

 #import  lib files
import sys
import dns.resolver #global varites defines
checker = dns.resolver.Resolver()
nameserverlist = ["202.106.0.20","114.114.114.114","8.8.8.8","8.8.4.4"]
resultdict = {} #global functions defines
def set_nameserver(nameserver):
global nameserverlist
if isinstance(nameserver,list):
nameserverlist = nameserver
return 0
else:
return 0 def check_a_record(domain):
global checker
global nameseverlist
global resultdict
alist = []
for server in nameserverlist:
try:
checker.nameservers = [server]
record = checker.query(domain,"A")
except Exception,ex:
continue
for iprecord in record:
alist.append({"nameserver":server,"arecord":iprecord})
resultdict["A-RECORD"] = alist def check_cname_record(domain):
global checker
global nameserverlist
global resultdict
clist = []
for server in nameserverlist:
try:
record = checker.query(domain,"A")
except Exception,ex:
continue
for value in record.response.answer:
for item in value.items:
try:
if isinstance(item,dns.rdtypes.ANY.CNAME.CNAME):
clist.append({"nameserver":server,"cname":str(item)})
except Exception,ex:
continue
resultdict["CNAME"] = clist if __name__ == "__main__":
testdomain = sys.argv[1]
check_a_record(testdomain)
check_cname_record(testdomain)
print resultdict
 # -*- coding:utf-8 -*-

 #import lib files
from optparse import OptionParser
from apilib import resultdict,set_nameserver,check_a_record,check_cname_record if __name__ == "__main__":
parser = OptionParser()
parser.add_option("-d", "--domain", dest="domain",help="domian to check")
parser.add_option("-s", "--server", dest="server",help="nameserver to check")
(options, args) = parser.parse_args()
try:
checkdomain = options.domain.lower()
except Exception,ex:
checkdomain = options.domain
if checkdomain in [""," ",None,"null"]:
exit(0)
dnsserver = options.server
if dnsserver not in [""," ",None,"null"]:
dnsserver = [dnsserver] if dnsserver.find(",") < 0 else dnsserver.split(",")
set_nameserver(dnsserver)
check_a_record(checkdomain)
check_cname_record(checkdomain)
print resultdict

要是在windows下使用觉得麻烦,直接打包

 #pyinstaller -F dnscheck.py
使用简介:
#dnscheck.exe -d www.baidu.com
#dnscheck.exe -d www..com -s 202.106.0.20,114.114.114.114

百度网盘下载地址:https://pan.baidu.com/s/1jJr2mPo

下载口令:k4f8

应急分析异常通信的小思路和自己写的小工具(查询CNAME和A记录)的更多相关文章

  1. [No00006C]文件名复制,归档小助手【自己写的小工具,希望能帮助大家】

    特别补充一句:软件可以一次性复制多个文件的文件名. Windows 中的复制文件名实在是有些不方便 ,需要点右键 "重命名"之后再点右键选择"复制"才可复制文件 ...

  2. 6.【应急响应】Linux入侵排查思路

    0x01 入侵排查思路 一.账号安全 基本使用: 1.用户信息文件/etc/passwd root:x:0:0:root:/root:/bin/bash account:password:UID:GI ...

  3. Debug Diagnostics Tool创建.Net异常转储并用Windbg分析异常

    当我们要在IIS PRD环境下分析异常,并且对问题毫无头绪,又没有权限直接上打Log的代码.这个时候就是Debug Diagnostics Tool & Windbg大显神威的时候了. Deb ...

  4. 过WAF的小思路

    过WAF的小思路 前言 最近在学习了一波CMS漏洞,尝试看了几个菠菜站,有宝塔WAF...向WHOAMI大佬取经回来后,绕过了一个WAF.觉得是时候要认真总结一下了:) 前期的过程 菠菜采用的是Thi ...

  5. 鸿蒙内核源码分析(异常接管篇) | 社会很单纯 , 复杂的是人 | 百篇博客分析OpenHarmony源码 | v39.03

    百篇博客系列篇.本篇为: v39.xx 鸿蒙内核源码分析(异常接管篇) | 社会很单纯,复杂的是人 | 51.c.h .o 硬件架构相关篇为: v22.xx 鸿蒙内核源码分析(汇编基础篇) | CPU ...

  6. 像VUE一样写微信小程序-深入研究wepy框架

    像VUE一样写微信小程序-深入研究wepy框架 微信小程序自发布到如今已经有半年多的时间了,凭借微信平台的强大影响力,越来越多企业加入小程序开发. 小程序于M页比相比,有以下优势: 1.小程序拥有更多 ...

  7. 微信小程序全选,微信小程序checkbox,微信小程序购物车

    微信小程序,这里实现微信小程序checkbox,有需要此功能的朋友可以参考下. 摘要: 加减商品数量,汇总价格,全选与全不选 设计思路: 一.从网络上传入以下Json数据格式的数组  1.标题titl ...

  8. 小程序大智慧,sqlserver 注释提取工具

    原文:小程序大智慧,sqlserver 注释提取工具 开篇背景 我习惯在写表的创建脚本时将注释直接写在脚本里,比如 /*账套*/ CREATE TABLE [dbo].[AccountingBook] ...

  9. 小程序开发过程中常见问题[微信小程序、支付宝小程序]

    目录 一.样式中如何使用background-image呢? 二.使用自适应单位rpx类似于rem,布局尽量使用flex布局 三.万能的{{双大括号,用于在模版中输出变量 四.你想要的基础组件和API ...

随机推荐

  1. 浅谈LZSS与游戏图片破解

      业余游戏制作者最头疼的就是没有美工的支持了.很多业余游戏制作所使用的图片都是来自于网上的很有限的一些图片资源,然而这些图片并不能完整配套,所以业余游戏的画面往往显得单调或者搭配不协调(使用多个不属 ...

  2. JS 对象的属性如果没有就初始化

    function fuck (inObj, path, parms) { // 一个长得像对象的字符串 var Things = path.split("."); // 即将返回的 ...

  3. store.js 跨浏览器的localStorage

    store.js 跨浏览器的localStorage 我们总是想要储存一些数据在浏览器端,却对复杂的兼容性头疼,store.js很好的解决了这些问题. store.js ☍ 使用它相当简单: // 储 ...

  4. Javascript中的对象和原型(二)(转载)

    上一篇中提到了JavaScript中对象的创建的一些基本操作,接下来讨论下继续讨论. 一 工厂模式 我们知道,要创建一个对象我们可以用如下代码: var user = new Object(); // ...

  5. Windows下phpStudy中的Apache无法启动的排查方法

    尝试一:检查端口占用问题 刚开始以为是端口占用,使用 phpStudy 自带的端口检测,查看并没有占用.在 cmd 控制台中输入:services.msc 去系统服务里面看,单独配置的 Apache ...

  6. Atitit.故障排除系列---php 程序网站数据库错误排除流程

    Atitit.故障排除系列---php 程序网站数据库错误排除流程 Php页面报告的错误不能定位到myusql的db配置上...字说是db conn err Mysql 接入错误...大概查看哈能不能 ...

  7. HBase源代码分析之HRegionServer上MemStore的flush处理流程(二)

    继上篇文章<HBase源代码分析之HRegionServer上MemStore的flush处理流程(一)>遗留的问题之后,本文我们接着研究HRegionServer上MemStore的fl ...

  8. stl遍历map

    MapInfo* CGameConfig::getMapInfoById( int nId ) { for (map<int, MapInfo>::iterator it = m_mapM ...

  9. 每日英语:Air Pollution From Coal Use Cuts Lifespans in China, Study Shows

    Air pollution from coal combustion likely cut life expectancy in parts of China by more than five ye ...

  10. vue 的调试工具

    转载自:http://www.cnblogs.com/lolDragon/p/6268345.html 安装 1.github下载地址:https://github.com/vuejs/vue-dev ...