linux下模拟一个木马程序运行过程
预备知识:
将一个程序放入到后台,悄悄的执行
./xxx.sh &
进程:
用户进程:由用户来管理
系统进程:由系统内核自行管理
系统中的每个进程,都有一个位置的ID,这就是pid,而且每次启动进程以后,PID都不相同
进程相关的命令
jobs
作用:查看当前运行在后台的进程有哪些
信息
第一列:进程编号
第二列:进程状态
第三列:进程是如何发起的
fg 进程编号 把进程从后台调到前台执行
kill %进程编号 杀死进程
ps aux 打印系统所有进程

num=`ps aux | grep myser |wc -l` #执行grep myser本身就会创建一个进程,如果有myser这个进程则num为2,如果没有myser这个进程,则num为1,

kill作用杀死进程
格式:kill 信号级别 进程PID
信号级别
-9:斩立决。立刻杀死进程
-15:死缓。等待现有的客户端处理完毕之后,立刻杀死进程
【等待期间新的用户请求无法被接入】
木马最终效果
让程序自动运行,而且是开机自动运行起来
程序还可以自我保护
防止程序文件被删除
实现步骤
1. 开发一个伪木马myser,位置:可以随便放,这里为了方便放在/下,实际使用时是放在非常隐蔽的目录下
#!/bin/bash
while true
do
touch /home/`date +%T`.txt #在/home/下每隔一秒就创建一个文件,文件名为 创建时间.txt
sleep 1
done

创建完后赋权限 chmod +x myser

试运行 ./myser ctrl+c停止 cd到/home/目录下查看

2. 将这个木马设置为开机自动启动
在/etc/rc.local中写入
/bin/bash /myser &

3. 开发一个检查木马进程是否正在运行的程序,check.sh ,位置:可以随便放,这里为了方便放在/下,实际使用时是放在非常隐蔽的目录下
#!/bin/bash
num=`ps aux | grep myser |wc -l` #执行grep myser本身就会创建一个进程,如果有myser这个进程则num为2,如果没有myser这个进程,则num为1(),
if [ $num -eq 1 ];then #num为1则表示木马进程已被杀死,需重新启动木马
/bin/bash /myser & # &表示后台启动,不再屏幕上出现信息
fi
创建完后赋权限 chmod +x check.sh

4.将check.sh写进或放进计划任务中
思路1:
写进计划任务中 但这样很容易用crontab -l 查看发现
crontab -e #创建计划任务

每分钟执行一次
* * * * * # 分 时 日 月 周
crontab -l #查看当前创建了哪些计划任务

思路2:
将check.sh放在/etc/cron.d/cron.hourly
这个目录下的程序会每隔1h自动执行一次
思路3:
执行check.sh的计划任务写在/etc/crontab #这个目录下的crontab中的任务计划不会出现在crontab -l中
*/5 * * * * /bin/bash /etc/check.sh
思路4:
在/etc/init.d下随便找个程序,将执行check的命令写进去
5.重启验证效果---------------reboot关机
开机后在/home/下发现一堆文件

脚本正在运行

杀死进程

过一分钟后再次查看,发现进程已重启,注意看PID是不一样的,表示进程是重新启动过的

自此完成
linux下模拟一个木马程序运行过程的更多相关文章
- linux下第一个C程序
首先,用vi编辑器新建一个文件 $vi hi.c 输入以下的程序(怎么用vi不说了) #include <stdio.h> int main() { printf("hello. ...
- linux下,一个运行中的程序,究竟占用了多少内存
linux下,一个运行中的程序,究竟占用了多少内存 1. 在linux下,查看一个运行中的程序, 占用了多少内存, 一般的命令有 (1). ps aux: 其中 VSZ(或VSS)列 表示,程序占用 ...
- (转)在.NET程序运行过程中,什么是堆,什么是栈?什么情况下会在堆(栈)上分配数据?它们有性能上的区别吗?“结构”对象可能分配在堆上吗?什么情况下会发生,有什么需要注意的吗?
转自:http://www.cnblogs.com/xiaoyao2011/archive/2011/09/09/2172427.html 在.NET程序运行过程中,什么是堆,什么是栈? 堆也就是托管 ...
- 作业六:分析Linux内核创建一个新进程的过程
分析Linux内核创建一个新进程的过程 进程描述符PCB----task_struct数据结构 操作系统:1.进程管理 2.内存管理 3 文件系统 一.新进程如何创建和修改task_struct数据结 ...
- DirectShow程序运行过程简析
这段时间一直在学习陆其明老师的<DirectShow开发指南>一书,书中对DirectShow的很多细节讲解清晰,但是却容易让人缺少对全局的把握.在学习过程中,整理了关于DirectSho ...
- 不错的linux下通用的java程序启动脚本
不错的linux下通用的java程序启动脚本(转载) 虽然写起动shell的频率非常不高...但是每次要写都要对付一大堆的jar文件路径,新加jar包也必须要修改起动shell. 在网上找到一个挺好的 ...
- Linux 下的一个全新的性能测量和调式诊断工具 Systemtap, 第 2 部分: DTrace
DTrace的原理本系列文章详细地介绍了一个 Linux 下的全新的调式.诊断和性能测量工具 Systemtap 和它所依赖的基础 kprobe 以及促使开发该工具的先驱 DTrace 并给出实际使用 ...
- Linux 下的一个全新的性能测量和调式诊断工具 Systemtap,第 1 部分: kprobe
kprobe 的原理.编程接口.局限性和使用注意事项 本系列文章详细地介绍了一个Linux下的全新的调式.诊断和性能测量工具Systemtap和它所依赖的基础kprobe以及促使开发该工具的先驱DTr ...
- java 程序运行过程 简介
这里的Java程序运行过程,是指我们编译好代码之后,在命令行开始执行java xxx命令,到java程序开始执行起来的这一过程,我们称其为运行时. 第一步,操作系统解析我们输入的java xxx命令, ...
随机推荐
- ViewModel处理View相关事件的多种方式(非技术贴,仅学习总结)
众所周知,在UWP中,微软为我们提供了一种新的绑定方式:x:bind,它是基于编译时的绑定.在性能方面,运行时绑定Binding与它相比还是有些逊色的.因此针对一些确定的.不需要变更的数据,我们完全有 ...
- java多线程关键字volatile、lock、synchronized
--------------------- 本文来自 旭日Follow_24 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/xuri24/article/detail ...
- APP接口调用流程
- 集合类--最详细的面试宝典--看这篇就够用了(java 1.8)
看了一个星期源码,搜索上百篇博文,终于总结出了集合类的所有基础知识点,学集合,看这篇就够用了!!! 篇幅有点长, 如果你能全部理解,java最重要的集合就不怕了,秒过面试!!!(本篇素材来自网络,如有 ...
- Jquery插件开发之图片放大镜效果(仿淘宝)
原网转载地址:http://www.cnblogs.com/hnvvv/archive/2011/11/19/2255197.html 需求:公司某个网站,需要实现图片预览效果,并能像淘宝一样实现局部 ...
- 转: Laravel 自定义公共函数的引入
来源:Laravel 自定义公共函数的引入 背景习惯了 使用 ThinkPHP 框架,有一个公共方法类在代码编写上会快捷很多,所以有必要在此进行配置一番.测试框架:Laravel 5.5步骤指导1. ...
- spring 开发 Tars
和不使用 Spring 的 tars HelloWord 项目相比,客户端完全一样,服务端两个地方不一样 创建不使用 Spring 的 tars HelloWord 步骤: https://www.c ...
- Linux 操作系统下的环境变量设置
Linux下的环境变量设置 by:授客 QQ:1033553122 1. 问题描述 linux输入命令时经常会出现提示:xxx:Command not found 2. 原因分析 Command ...
- android开发笔记:Handler、Looper、MessageQueen、Message的关系
一.什么是handler? 注:线程分为主线程(主线程又叫UI线程,只能有一个主线程)和子线程(可以有多个)Handler只能在主线程里运行 handler是Android给我们提供用来更新UI的一套 ...
- 用Python实现数据结构之二叉搜索树
二叉搜索树 二叉搜索树是一种特殊的二叉树,它的特点是: 对于任意一个节点p,存储在p的左子树的中的所有节点中的值都小于p中的值 对于任意一个节点p,存储在p的右子树的中的所有节点中的值都大于p中的值 ...