一、背景:

在很多时候,应急会发现。卧槽,异常连接,只有一个域名或者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. 摘:C#压缩文件

    [[[[C#压缩文件]]]] 方法1: //[filepath想要压缩文件的地址] //[zippath输出压缩文件的地址] private void GetFileToZip(string file ...

  2. cordova添加Splash

    最新版本的cordova添加Splash只需要改写config.xml 官方文档地址为:http://cordova.apache.org/docs/en/4.0.0/config_ref_image ...

  3. mysql-5.7.9 shutdown 语法详解

    mysql-5.7.9 终于提供shutdown 语法啦: 之前如果想关闭一个mysql数据库可以通过kill 命令.mysqladmin shutdown .service mysqld stop ...

  4. 动态时间规整-DTW算法

    作者:桂. 时间:2017-05-31  16:17:29 链接:http://www.cnblogs.com/xingshansi/p/6924911.html 前言 动态时间规整(Dynamic ...

  5. 连接到 Linux 服务器时首先要运行的 5 个命令

    作为一个系统管理员/SRE 工作 5 年后,我知道当我连接到一台 Linux 服务器时我首先应该做什么.这里有一系列关于服务器你必须了解的信息,以便你可以(在大部分时间里)更好的调试该服务器. 连上 ...

  6. atitit.spring hibernate的事务机制 spring不能保存对象的解决

    atitit.spring hibernate的事务机制 spring不能保存对象的解决 sessionFactory.openSession() 不能..log黑头马sql语言.. sessionF ...

  7. tornado长轮询

    1.什么是长轮询顾名思义,长轮询就是不停循环请求服务器,获取最新信息.长轮询分为两类:1)浏览器以固定时间间隔向服务器发送请求缺点是轮询频率要足够快,但又不能太频繁,否则当成百上千个客户端不断请求,会 ...

  8. 01、Windows Phone 套接字(Socket)实战之交互设计

    这个 Demo 主要使用 WP 中提供的 Socket 对象,来与 PC 端进行文字.文件的互相传输.因为在 WP 中系统 对存储的操作限制的比较多,例如,你把 .doc..txt..zip 等常见的 ...

  9. Qt学习过程中遇到的问题

    由于工作需要,开始使用Qt,由于在网上找的教程文档时针对qt3的,所以在学习的过程遇到了许多由于版本不一致造成的问题,因此记录下来. 参考的文档是:Qt入门教程 详细讲解版 本机Qt版本为:Qt5.3 ...

  10. FreeRTOS 任务计数信号量,任务二值信号量,任务事件标志组,任务消息邮箱

    以下基础内容转载自安富莱电子: http://forum.armfly.com/forum.php 本章节为大家讲解 FreeRTOS 计数信号量的另一种实现方式----基于任务通知(Task Not ...