抓包

vm1 创建账户 netadm,softadm,uesradm,procadm;为所有的账户设置初始密码 123456

Useradd netadm

Passwd 123456

vm1 创建账户 devel1,devel2,devel3,test1,test2,test3;为所有账户设置初始密码 passwd

vm1 设置 test3 的账户过期时间为 2019-12-12.

chage -E 2019-12-12 test3

vm1 使用 passwd 命令临时锁定 devel3 账户

chage -l test3

passwd -S devel3

devel3 LK 2018-06-09 0 99999 7 -1 (密码已被锁定。)

 

vm1 为/etc/resolv.conf 文件添加 i 锁定属性,为/etc/hosts 添加 a 仅可追加属性

[root@vm1 ~]# chattr +i /etc/resolv.conf

[root@vm1 ~]# lsattr /etc/resolv.conf

----i----------- /etc/resolv.conf

[root@vm1 ~]# chattr +a /etc/hosts

[root@vm1 ~]# lsattr /etc/resolv.conf

----i----------- /etc/resolv.conf

 

vm1 用 test1 用户登陆系统,使用 su 命令切换为 test2 账户在 tmp 下创建一个文件(非

交互模式)

[root@vm1 ~]# su - test1

[test1@vm1 ~]$ su - test2 -c "mkdir /tmp/test"

[test2@vm1 ~]$ ls /tmp/

systemd-private-c20f480e7d4645c388b2a5ac93a5ca84-chronyd.service-t8zJps test

 

vm1 使用 root 登陆系统,设置 sudo 权限,要求如下:

vm1 让 netadm 能以 root 的身份执行网络管理的任务(参考 sudo 命令别名)

[root@vm1 ~]# vim /etc/sudoers

netadm ALL=(ALL) NETWORKING

[root@vm1 ~]# su - netadm

上一次登录:六 6月 9 15:10:36 CST 2018pts/0 上

[netadm@vm1 ~]$ sudo -l

vm1 让 softadm 能以 root 的身份执行软件管理的任务

visudo

softadm ALL=(ALL) /usr/bin/systemctl

[root@vm1 ~]# su - softadm

[softadm@vm1 ~]$ sudo -l

[softadm@vm1 ~]$ sudo systemctl start httpd

 

 

vm1 让 useradm 能以 root 的身份执行账户管理的任务(不能修改 root 密码)

[root@vm1 ~]# visudo

useradm ALL=(ALL) /usr/bin/passwd,!/usr/bin/passwd root,/usr/sbin/user*,!/usr

/sbin/user* *root

[root@vm1 ~]# su - uesradm

[uesradm@vm1 ~]$ sudo -l

[uesradm@vm1 ~]$ sudo useradd newuser01

[uesradm@vm1 ~]$ sudo passwd newuser01

更改用户 newuser01 的密码 。

新的 密码:

无效的密码: 密码少于 8 个字符

重新输入新的 密码:

passwd:所有的身份验证令牌已经成功更新。

[uesradm@vm1 ~]$ sudo passwd root

对不起,用户 uesradm 无权以 root 的身份在 vm1 上执行 /bin/passwd root。

vm1 让 procadm 能以 root 的身份执行进程管理任务(如杀死进程)

[root@vm1 ~]# visudo

procadm ALL=(ALL) PROCESSES

 

 

 

 

vm1 设置虚拟机 ssh 配置,进入 root 远程本机,设置 sshd 黑名单,禁止 test3 从任何

主机远程本机

[root@vm1 ~]# vim /etc/ssh/sshd_config

DenyUsers test3

[root@rootroom9pc01 ~]# ssh -X test1@192.168.2.20

[root@vm1 ~]# systemctl restart sshd

Test3@192.168.2.20's password:

Permission denied, please try again.

Test3@192.168.2.20's password:

 

 

vm1 真实主机创建一对 ssh 密钥,让真实机可以无密码远程虚拟机,观察密钥在虚拟机

中的位置

ssh-keygen -t rsa

ls -lh ~/.ssh/id_rsa*

[root@rootroom9pc01 ~]# ssh-copy-id root@192.168.2.20

[root@rootroom9pc01 ~]# ssh -X root@192.168.2.20

[root@vm1 ~]# tail -2 ~/.ssh/authorized_keys

 

在 vm1 主机使用 gpg 软件对/etc/rc.d/rc.local 文件进行对称加密,并将加密文件传给

vm2

[root@vm1 ~]# scp /etc/rc.d/rc.local.gpg root@192.168.2.30:/root

root@192.168.2.30's password:

 

在 vm2 对主机 vm1 传来的加密文件进行解密

[root@vm2 ~]# gpg -d rc.local.gpg > rc.local

 

 

在 vm1 上使用 gpg 创建非对称密钥对,并将公钥到处传给 vm2

在 vm2 主机将 vm1 传过来的公钥导入,并使用公钥对/etc/sysctl.conf 文件加密,并将

加密文件传给 vm1,在 vm1 主机使用自己的私钥解密该文件

 

[root@vm1 ~]# gpg --gen-key

[root@vm1 ~]# gpg --list-keys

[root@vm1 ~]# gpg -a --export UserA > /tmp/UserA.pub

[root@vm1 ~]# scp /tmp/UserA.pub 192.168.2.30:/tmp/

[root@vm1 ~]# ls

[root@vm1 ~]# gpg -d sysctl.conf.gpg > sysctl.conf

[root@vm1 ~]# ls

[root@vm1 ~]# cat sysctl.conf

 

[root@vm2 ~]# gpg --import /tmp/UserA.pub

[root@vm2 ~]# ls

[root@vm2 ~]# gpg -e -r /etc/sysctl.conf

[root@vm2 ~]# scp /etc/sysctl.conf.gpg 192.168.2.20:/root

 

在 vm1 主机使用私钥给文件/etc/sysctl.conf 文件签名,在 vm2 主机验证签名

[root@vm1 ~]# gpg -b /etc/sysctl.conf

[root@vm1 ~]# ls -lh /etc/sysctl.conf*

-rw-r--r--. 1 root root 449 5月 3 2017 /etc/sysctl.conf

-rw-r--r--. 1 root root 287 6月 9 16:54 /etc/sysctl.conf.sig

[root@vm1 ~]# scp /etc/sysctl.conf* 192.168.2.30:/root

[root@vm2 ~]# gpg --verify sysctl.conf.sig sysctl.conf

gpg: 于 2018年06月09日 星期六 16时54分52秒 CST 创建的签名,使用 RSA,钥匙号 5A6EAA70

gpg: 完好的签名,来自于“UserA (UserA) <UserA@163.com>”

 

使用 aide 软件对/bin/和/sbin/目录进行入侵检测

在 vm2 上安装 nginx,vsftpd,mariadb,mariadb-server,并启动所有对应的服务

[root@rootroom9pc01 ~]# scp '/root/桌面/mysourse/lnmp_soft.tar.gz' '/root/桌面/mysourse/nginx-1.12.2.tar.gz' root@192.168.2.30:/root

 

 

[root@vm2 ~]# yum -y install gcc pcre-devel openssl-devel

[root@vm2 ~]# useradd -s /sbin/nologin nginx

[root@vm2 ~]# tar -xvf nginx-1.12.2.tar.gz

[root@vm2 ~]# cd nginx-1.12.2/

[root@vm2 ~]# ./configure --user=nginx --group=nginx --with-http_ssl_module

[root@vm2 ~]# make && make install

 

[root@vm2 ~]# yum -y install vsftpd

[root@vm2 ~]# yum -y install mariadb mariadb-server mariadb-devel

[root@vm2 ~]# /usr/local/nginx/sbin/nginx

[root@vm2 ~]# systemctl start mariadb

[root@vm2 ~]# systemctl start vsftpd

 

在 vm1 上使用 nmap 扫描 vm2 主机的所有 TCP 服务

[root@vm1 ~]# yum -y install nmap

[root@vm1 ~]# nmap -sT 192.168.2.30

 

Starting Nmap 6.40 ( http://nmap.org ) at 2018-06-09 17:25 CST

mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-servers

Nmap scan report for 192.168.2.30

Host is up (0.00097s latency).

Not shown: 995 closed ports

PORT STATE SERVICE

21/tcp open ftp

22/tcp open ssh

80/tcp open http

111/tcp open rpcbind

3306/tcp open mysql

MAC Address: 52:54:00:40:9E:7F (QEMU Virtual NIC)

 

Nmap done: 1 IP address (1 host up) scanned in 0.16 seconds

 

 

 

 

在 vm2 上配置 nginx 用户认证,并使用 tcpdump 抓取 80 端口相关的数据包,注意默

认抓取的是第一个网卡的数据,抓取其他网卡可以使用-i 选项

[root@vm2 ~]# vim /usr/local/nginx/conf/nginx.conf

server {

listen 80;

server_name localhost;

auth_basic "Input Password" ;#认证提示符

auth_basic_user_file "/usr/local/nginx/pass" ;#认证密码文件

[root@vm2 ~]# yum -y install httpd-tools

[root@vm2 ~]# htpasswd -c /usr/local/nginx/pass tom

New password:

Re-type new password:

Adding password for user tom

[root@vm2 ~]# cat /usr/local/nginx/pass

tom:$apr1$9BkN1IZT$M6ugWM8Ok3h0anYhMt2E/.

[root@vm2 ~]# /usr/local/nginx/sbin/nginx -s reload

[root@vm1 ~]# firefox http://192.168.2.30

[root@vm2 ~]# ss -untlp | grep 80

tcp LISTEN 0 128 *:80 *:* users:(("nginx",pid=8071,fd=6),("nginx",pid=7340,fd=6))

[root@vm2 ~]#

在 vm1 上使用 firefox 访问 vm2 的页面,输入账户与密码,到 vm2 观察数据包

[root@vm1 ~]# firefox http://192.168.2.30

[root@vm2 ~]# tcpdump -A -i eth1 host 192.168.2.30 and tcp port 80

Host: 192.168.2.30

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3

Accept-Encoding: gzip, deflate

Authorization: Basic dG9tOjEyMzQ1Ng==

Connection: keep-alive

[root@vm2 ~]# echo dG9tOjEyMzQ1Ng== | base64 -d

tom:123456[roo

 

在 vm2 主机,使用 limit 模块对 nginx 限制并发,限制并发数量为 10,burst 为 10

 

 

 

在 vm2 主机,设置 nginx 拒绝所有非 POST 或 GET 的请求

在 vm2 主机,设置 nginx 防止 buffer 数据溢出

在 vm2 主机登陆 mariadb 服务器,创建一个可以从远程登陆的数据库账户

在 vm2 主机使用 tcpdump 对 3306 进行抓包,在 vm1 连接 vm2 的数据库,进行查询操

作,回到 vm2 观察抓取的数据包信息

在 vm2 安装 tomcat,并以 tomcat 身份降级启动 tomcat 服务

在 vm2 主机执行如下命令:

mkdir -p /root/{source1.0,surce2.0}/test/

echo “hehe” > /root/source1.0/test.conf

echo “haha” > /root/source2.0/test.conf

echo “hello” > /root/source1.0/test/hello.shecho “hello world” > /root/source2.0/test/hello.sh

cp /bin/find /root/source1.0/

cp /bin/find /root/source2.0/

echo “xyz” >> /root/source2.0/find

在 vm2 主机对/root/source1.0 和/root/source2.0 生成补丁文件,并使用 patch 工具对

source1 目录下的所有代码打补丁

准备 2 台虚拟机,配置如下:

vm1(eth1:192.168.2.20,设置网关为 192.168.2.30)

vm2(eth1:192.168.2.30,eth2:201.1.1.30),开启路由转发

vm3(eth2: 201.1.1.40,设置网关为 201.1.1.30)

在 vm2 主机设置防火墙规则:

禁止任何其他主机 ping 本机,但本机可以 ping 其他主机

禁止 192.168.2.20 通过 ssh 远程本机

通过 mac 地址禁止 vm3 访问本机的 ftp 服务

通过一条规则设置允许访问本机的 80,3306,25 端口

禁止任何主机通过本机的 eth2 网卡访问本机的 53 端口

禁止 vm2 转发任何与 ftp 有关的数据包

设置 SNAT 规则,来源于 192.168.2.0 网络的数据包,修改源地址为 201.1.1.30

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值