Bro Script:硬编码的 IP 地址
Bro Script: Hardcoded IP addresses
我有一项作业,需要一点帮助。我有 infected.pcap 和以下任务:
硬编码 IP 地址 有时,恶意软件包含硬编码 IP 地址以下载其有效负载或与其命令和控制 (C&C) 服务器通信。找到所有这样的交流。提示:此类 IP 没有先前的 DNS 请求。
我需要用Bro脚本来解决。这是我的想法,但不幸的是我所有的连接都没有 DNS 请求:
@load base/protocols/dns/main.bro
event file_timeout(f: fa_file)
{
for ( cid in f$conns )
{
if(f$conns[cid]?$dns){
print f$conns[cid]$dns;
print "DNS";
}else {
print "No DNS";
}
}
}
你知道我的代码有什么问题吗?
我建议您为此使用了错误的事件。 file_timeout
仅在文件传输发生然后未完成就停止时才会发生。一个更有趣的事件关联是:
- 跟踪 DNS 地址查找响应(我可能会使用
event
dns_A_reply(c: connection, msg: dns_msg, ans: dns_answer, a:
addr)
)。
- 将地址return记录在一个集合中;这将提供
您是一组通过 DNS 查询发现的所有地址。
- 检查出站请求(其中 SYN 上的
orig_h
是内部请求
地址)
- 检查
id$resp_h
中的地址是否在集合中
地址第 2 步。如果是,return,如果不是,
生成通知,因为您有一个出站连接尝试
没有相应的 DNS 查找。
我有一项作业,需要一点帮助。我有 infected.pcap 和以下任务:
硬编码 IP 地址 有时,恶意软件包含硬编码 IP 地址以下载其有效负载或与其命令和控制 (C&C) 服务器通信。找到所有这样的交流。提示:此类 IP 没有先前的 DNS 请求。
我需要用Bro脚本来解决。这是我的想法,但不幸的是我所有的连接都没有 DNS 请求:
@load base/protocols/dns/main.bro
event file_timeout(f: fa_file)
{
for ( cid in f$conns )
{
if(f$conns[cid]?$dns){
print f$conns[cid]$dns;
print "DNS";
}else {
print "No DNS";
}
}
}
你知道我的代码有什么问题吗?
我建议您为此使用了错误的事件。 file_timeout
仅在文件传输发生然后未完成就停止时才会发生。一个更有趣的事件关联是:
- 跟踪 DNS 地址查找响应(我可能会使用
event dns_A_reply(c: connection, msg: dns_msg, ans: dns_answer, a: addr)
)。 - 将地址return记录在一个集合中;这将提供 您是一组通过 DNS 查询发现的所有地址。
- 检查出站请求(其中 SYN 上的
orig_h
是内部请求 地址) - 检查
id$resp_h
中的地址是否在集合中 地址第 2 步。如果是,return,如果不是, 生成通知,因为您有一个出站连接尝试 没有相应的 DNS 查找。