kali、nmap扫描

手工扫描

[root@node1 ~]# yum install -y telnet

查看目标主机80端口是否开放

[root@node1 ~]# telnet 192.168.4.11 80

Trying 192.168.4.11…

telnet: connect to address 192.168.4.11: Connection refused

[root@node1 ~]# telnet 192.168.4.11 21

Trying 192.168.4.11…

Connected to 192.168.4.11.

Escape character is ‘^]’.

220 (vsFTPd 3.0.2) # 按ctrl+]退出

^]

telnet> quit

Connection closed.

使用john破解密码


  • 在线破解哈值的网站:https://cmd5.com/

  • kali系统提供了一个名为john的工具,可用于密码破解

[root@node1 ~]# echo 123456 | passwd --stdin root

[root@node1 ~]# useradd tom

[root@node1 ~]# echo abc123 | passwd --stdin tom

[root@node1 ~]# useradd jerry

[root@node1 ~]# echo 123123 | passwd --stdin jerry

[root@node1 ~]# scp /etc/shadow kali@192.168.4.40:/home/kali/

破解傻瓜式密码

======================================================================

┌──(kali?kali)-[~]

└─$ sudo john --single shadow

字典暴力破解,密码本是/usr/share/john/password.lst

======================================================================================================

┌──(kali?kali)-[~]

└─$ sudo john shadow

直接显示破解的密码,不显示其他额外信息

==================================================================================

┌──(kali?kali)-[~]

└─$ sudo john --show shadow

root:123456:18912:0:99999:7:::

tom:abc123:18912:0:99999:7:::

jerry:123123:18912:0:99999:7:::

linux系统自带的密码本

[root@node1 ~]# yum install -y words

[root@node1 ~]# ls /usr/share/dict/

linux.words words

[root@node1 ~]# wc -l /usr/share/dict/words

479828 /usr/share/dict/words

字典暴力破解,指定密码本文件

[root@node1 ~]# scp /usr/share/dict/linux.words kali@192.168.4.40:/home/kali/

┌──(kali?kali)-[~]

└─$ sudo john --wordlist=linux.words shadow

抓包


  • 传输的各种数据,在网络中都是一个个的数据包

┌──(kali?kali)-[~]

└─$ sudo tcpdump

-i:指定抓取哪块网卡进入的数据包

=================================================================================

-A:转换为ASCII码,使得可读

=================================================================================

-w:抓包写入文件

=========================================================================

-r:从文件中读取抓包信息

=============================================================================

抓包时可以过滤要抓哪些包

===========================================================================

使用host过滤主机,使用net过滤网段,使用port过滤端口… …

=================================================================================================

1. 抓包:抓取eth0上进出的、与192.168.4.11有关的、涉及TCP21端口的软件包。以下命令执行后,打开新终端。

==============================================================================================================================

┌──(kali?kali)-[~]

└─$ sudo tcpdump -i eth0 -A host 192.168.4.11 and tcp port 21

2. 在新终端登陆ftp

============================================================================

┌──(kali?kali)-[~]

└─$ ftp 192.168.4.11

Connected to 192.168.4.11.

220 (vsFTPd 3.0.2)

Name (192.168.4.11:kali): tom # 用户名

331 Please specify the password.

Password:abc123 # 此处是tom的密码

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> exit # 退出

221 Goodbye.

3.在tcpdump终端可以看到明文的用户名和密码

========================================================================================

1. 将抓到的包存入文件ftp.cap

┌──(kali?kali)-[~]

└─$ sudo tcpdump -i eth0 -A -w ftp.cap host 192.168.4.11 and tcp port 21

2. 在另一个终端访问ftp

在新终端登陆ftp

┌──(kali?kali)-[~]

└─$ ftp 192.168.4.11

Connected to 192.168.4.11.

220 (vsFTPd 3.0.2)

Name (192.168.4.11:kali): tom # 用户名

331 Please specify the password.

Password:abc123 # 此处是tom的密码

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> exit # 退出

221 Goodbye.

3. 在抓包终端ctrl+c停止

4. 读取抓到的包,并过滤

┌──(kali?kali)-[~]

└─$ tcpdump -A -r ftp.cap | egrep ‘USER|PASS’

图形工具:wireshark

[root@zzgrhel8 ~]# yum install wireshark ftp

选择抓哪块网卡进出的数据,然后点左上角的开始

抓到包后,点击左上角同样位置停止,查看数据

安全加固


nginx安全

安装启服务

[root@node1 lnmp_soft]# yum install -y gcc pcre-devel zlib-devel

[root@node1 lnmp_soft]# tar xf nginx-1.12.2.tar.gz

[root@node1 lnmp_soft]# cd nginx-1.12.2/

[root@node1 nginx-1.12.2]# ./configure && make && make install

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

访问不存在的路径

命令行访问:

[root@node1 ~]# curl -I http://192.168.4.11/ # -I 只显示头部

HTTP/1.1 200 OK

Server: nginx/1.12.2

Date: Fri, 10 Dec 2021 07:51:08 GMT

Content-Type: text/html

Content-Length: 612

Last-Modified: Fri, 10 Dec 2021 07:46:16 GMT

Connection: keep-alive

ETag: “61b305c8-264”

Accept-Ranges: bytes

隐藏版本信息

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

… …

17 http {

18 server_tokens off;

… …

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

  • 防止DOS、DDOS攻击

  • DDOS:分布式拒绝服务

压力测试,每批次发送100个请求给web服务器,一共发200个

==============================================================================================

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

[root@zzgrhel8 ~]# ab -c 100 -n 200 http://192.168.4.11/

… …

Benchmarking 192.168.4.11 (be patient)

Completed 100 requests

Completed 200 requests

Finished 200 requests # 发送200个请求完成

… …

Complete requests: 200 # 完成了200个请求

Failed requests: 0 # 0个失败

… …

配置nginx连接共享内存为10M,每秒钟只接收一个请求,最多有5个请求排队,多余的拒绝

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

17 http {

18 limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; # 添加

… …

37 server {

38 listen 80;

39 server_name localhost;

40 limit_req zone=one burst=5; # 添加

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

再次测试

[root@zzgrhel8 ~]# ab -c 100 -n 200 http://192.168.4.11/

… …

Benchmarking 192.168.4.11 (be patient)

Completed 100 requests

Completed 200 requests

Finished 200 requests

… …

Complete requests: 200

Failed requests: 194 # 失败了194个

… …

拒绝某些类型的请求

  • 用户使用HTTP协议访问服务器,一定是通过某种方法访问的。

  • 最常用的HTTP方法

  • GET:在浏览器中输入网址、在页面中点击超链接、搜索表单。

  • POST:常用于登陆、提交数据的表单

  • 其他HTTP方法不常用,如:

  • HEAD:获得报文首部。HEAD 方法和 GET 方法一样,只是不返回报文主体部分。

  • PUT:传输文件。要求在请求报文的主体中包含文件内容,然后保存到请求 URI 指定的位置。

  • DELETE:删除文件。DELETE 方法按请求 URI 删除指定的资源。

使用GET和HEAD方法访问nginx。两种方法都可以访问

============================================================================================

[root@zzgrhel8 ~]# curl -i -X GET http://192.168.4.11/

[root@zzgrhel8 ~]# curl -i -X HEAD http://192.168.4.11/

配置nginx只接受GET和POST方法

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

… …

37 server {

38 listen 80;

39 if ( r e q u e s t m e t h o d !   ( G E T ∣ P O S T ) request_method !~ ^(GET|POST) requestmethod! (GETPOST) ) {

40 return 444;

41 }

… …

r e q u e s t m e t h o d 是内置变量,表示请求方法。 表示正则匹配, ! 表示取反 。 表 示开头, request_method是内置变量,表示请求方法。~表示正则匹配,!表示取反。^表示开头, requestmethod是内置变量,表示请求方法。 表示正则匹配,!表示取反示开头,表示结尾,|表示或

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

使用GET和HEAD方法访问nginx。只有GET可以工作

[root@zzgrhel8 ~]# curl -i -X GET http://192.168.4.11/

[root@zzgrhel8 ~]# curl -i -X HEAD http://192.168.4.11/

附:取出nginx.conf中注释和空行以外的行

# -v是取反。^ *#表示开头有0到多个空格,然后是#。^KaTeX parse error: Undefined control sequence: \[ at position 6: 表示空行 \̲[̲root@node1 ~\]#…’ /usr/local/nginx/conf/nginx.conf

Linux加固


  • 设置tom账号,有效期为2022-1-1

命令配置文件帮助

man 5 passwd

man 5 shadow

命令帮助

man 1 passwd

查看tom的账号信息

[root@node1 ~]# chage -l tom

最近一次密码修改时间 :10月 12, 2021

密码过期时间 :从不

密码失效时间 :从不

帐户过期时间 :从不

两次改变密码之间相距的最小天数 :0

两次改变密码之间相距的最大天数 :99999

在密码过期之前警告的天数 :7

[root@node1 ~]# chage -E 2022-1-1 tom

[root@node1 ~]# chage -l tom

最近一次密码修改时间 :10月 12, 2021

密码过期时间 :从不

密码失效时间 :从不

帐户过期时间 :1月 01, 2022

两次改变密码之间相距的最小天数 :0

两次改变密码之间相距的最大天数 :99999

在密码过期之前警告的天数 :7

设置账号永不过期,注意-E后面是数字-1,不是字母l

[root@node1 ~]# chage -E -1 tom

[root@node1 ~]# chage -l tom

最近一次密码修改时间 :10月 12, 2021

密码过期时间 :从不

密码失效时间 :从不

帐户过期时间 :从不

两次改变密码之间相距的最小天数 :0

两次改变密码之间相距的最大天数 :99999

在密码过期之前警告的天数 :7

设置新建用户的密码策略

[root@node1 ~]# vim /etc/login.defs

25 PASS_MAX_DAYS 99999 # 密码永不过期,设置最长有效期

26 PASS_MIN_DAYS 0 # 密码最短使用时间,0表示随时可改密码

27 PASS_MIN_LEN 5 # 密码最短长度

28 PASS_WARN_AGE 7 # 密码过期前7天发警告

33 UID_MIN 1000 # 新建用户最小的UID

34 UID_MAX 60000 # 新建用户最大的UID

!!!此文件对现有用户不会生效,只对新建用户生效


用户安全设置

锁定tom账号

[root@node1 ~]# passwd -l tom

锁定用户 tom 的密码 。

passwd: 操作成功

[root@node1 ~]# passwd -S tom # 查看状态

tom LK 2021-10-12 0 99999 7 -1 (密码已被锁定。)

解锁tom账号

[root@node1 ~]# passwd -u tom

解锁用户 tom 的密码。

passwd: 操作成功

[root@node1 ~]# passwd -S tom

tom PS 2021-10-12 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

保护文件

查看文件的特殊属性

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

总结

对于面试还是要好好准备的,尤其是有些问题还是很容易挖坑的,例如你为什么离开现在的公司(你当然不应该抱怨现在的公司有哪些不好的地方,更多的应该表明自己想要寻找更好的发展机会,自己的一些现实因素,比如对于我而言是现在应聘的公司离自己的家更近,又或者是自己工作到达了迷茫期,想跳出迷茫期等等)

image

Java面试精选题、架构实战文档

整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

你的支持,我的动力;祝各位前程似锦,offer不断!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
起的朋友,同时减轻大家的负担。**[外链图片转存中…(img-xPxSLhJi-1712643602206)]

[外链图片转存中…(img-MNfZ4pYa-1712643602206)]

[外链图片转存中…(img-cxN7SfFy-1712643602207)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

总结

对于面试还是要好好准备的,尤其是有些问题还是很容易挖坑的,例如你为什么离开现在的公司(你当然不应该抱怨现在的公司有哪些不好的地方,更多的应该表明自己想要寻找更好的发展机会,自己的一些现实因素,比如对于我而言是现在应聘的公司离自己的家更近,又或者是自己工作到达了迷茫期,想跳出迷茫期等等)

[外链图片转存中…(img-D5EhfiRf-1712643602207)]

Java面试精选题、架构实战文档

整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

你的支持,我的动力;祝各位前程似锦,offer不断!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值