权限维持-Netcat程序监控

简介: 权限维持-Netcat程序监控

最近在学习中发现 netcat 连接被动后门比如( crontab 写定时反弹shell / alias替换命令反弹shell)时的局限性很大,当shell反弹回来,你却不能及时去操作shell这种情况,然后我就花了点时间写了个小脚本监控 (权当练习,毕竟过年无聊)。

功能点:  

   1、监控netcat的交互情况  

   2、正则匹配IP

   3、当接收到shell的时候发送邮件推送

监控主要思路:

   1、创建一个跑 netcat 的子进程

   2、当接收到'connect'就执行下一步

   3、before属性是直到异常为止接收的所有数据

   4、在before中正则匹配IP

   5、执行邮件方法,并将 肉鸡ip 通过邮件方式邮件到目标邮箱

   6、将子进程控制权还给用户

用法:

./moniter.py
    [!]Usage: ./moniter.py [PORT]

实现工具所需的库:pexpect , smtplib , re  

监控主要代码:

python
def run(Port):
        process = pexpect.spawn("nc",['-lvp',Port])     
#        pdb.set_trace()
        process.expect_exact("connect", timeout = None)                 
        string =  str(process.before)                   
        ip = re.search(r'((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))',string,re.M|re.I)
        print(ip.group())                               
        em4il(ip)                                       
        process.interact()                         

温馨提醒:发送邮件的邮箱需要在邮箱设置中开启smtp服务

实验截图:

640.png

完美运行👍

邮件发送截图

640.jpg

项目地址:

http://www.khan.org.cn/index.php/2020/02/01/netcat程序监控/

拓展:

   脚本也可充当简陋的蜜罐用

   脚本暂时不是太完善,如果被扫描则会断开链接。



相关文章
|
5月前
|
域名解析 网络协议 Linux
【Shell 命令集合 网络通讯 】Linux 设置和管理网络接口配置信息 netconfig命令 使用指南
【Shell 命令集合 网络通讯 】Linux 设置和管理网络接口配置信息 netconfig命令 使用指南
227 1
|
5月前
|
Shell 开发工具
【shell脚本】Graylog服务状态异常监测与告警
【shell脚本】Graylog服务状态异常监测与告警
91 0
|
5月前
|
监控 Linux Shell
【Shell 命令集合 网络通讯 】Linux管理终端设备的登录过程 getty命令 使用指南
【Shell 命令集合 网络通讯 】Linux管理终端设备的登录过程 getty命令 使用指南
82 0
|
5月前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 实时监控日志文件 swatch命令 使用指南
【Shell 命令集合 系统管理 】Linux 实时监控日志文件 swatch命令 使用指南
90 1
|
Linux
Linux 系统发送告警脚本
Linux 系统发送告警脚本
81 0
|
监控 Shell
使用 Shell 脚本监控主机,实现主机性能监控
使用 Shell 脚本监控主机,实现主机性能监控
494 0
使用 Shell 脚本监控主机,实现主机性能监控
|
监控 网络协议 Shell
shell脚本实现zabbix监控信息收集
zabbix信息收集 一般zabbix信息收集都是写成脚本 思路:将监控的信息写成函数,使用位置参数$1来调用函数即可,一般都是zabbix来传参
538 0
|
监控 NoSQL Shell
Centos下利用shell脚本监控和重启进程.并邮件通知
Centos下利用shell脚本监控和重启进程.并邮件通知
733 0
Centos下利用shell脚本监控和重启进程.并邮件通知
|
Shell
如何在shell脚本中控制任务投递
如果只有一个样本,或者样本量不大的情况下,我会选择一次性投递所有的任务。但是如果有100个以上的样本,那我就得谨慎考虑。 用 snakemake 很好解决这个问题,它会按照你给定的任务数和CPU数,确定每次投递多少任务。
1125 0