关于替换SSHD的banner的方法[反编译版][应付漏扫]
摆在前面的(废)话:
目前市面上除了说通过源代码编译的方式去修改版本的方法可行外,其它通过改配置的方法,统统都只是修改了建立好连接之后返回给用户的欢迎或者提示信息。
对于漏洞扫描平台(软件)来说,都不是通过识别欢迎信息来判断的。
一般情况下,大家可以通过telnet 服务器 ssh的端口号来确认ssh的实际banner是什么,如果telnet过去显示的banner号没有改变,则证明该修改方式无效。
事情起因:
由于RHEL7上的openssh版本已经停止维护,导致漏扫通过banner识别方式识别出一堆漏洞。
然而由于我太懒,懒得去搭编译环境,而且用户是生产环境不适合部署编译相关的包,所以通过源代码编译的方案一律不考虑。
既然正向的路走不通,那就逆向(工程)呗。
-----------------------------------------------以下为懒人方案-------------------------------------------------
最懒最懒的方案:
找个notepad2一类的文本编辑工具或者hexedit一类的二进制编辑软件(千万别用WIN自带的)
打开/usr/sbin/sshd文件(记得停服务),直接搜索版本号字符串,
如:SSH-2.0-OpenSSH_7.4
则直接搜索7.4
搜到之后,把7和4分别改成你想改的数字即可(注意,只能改一位,千万别多改)
保存,替换回去
-------------------------------以下为正常人方案(还不如直接用懒人方案呢)----------------------------------
准备工具:
IDA反汇编工具
先确认版本
telnet IP 端口
一般会返回如下:
SSH-2.0-OpenSSH_7.4
开IDA,打开SSHD
shift+F12打开字符串窗口
CTRL+F搜索7.4
找到对应字符串后,双击进入hexedit编辑模式
F2进入编辑
找到37以及34两位,修改为39和39
F2保存
EDIT->patch program->apply patch to input file
这样就改好了
后续替换操作见下面。
注意:
以下操作务必保证同时开着两个ssh连接窗口,避免因为停服务导致的后续操作无法进行
如无特别说明,以下操作均为root权限
前置工作:
输入并上传刚才改好的sshd文件到服务器的文件夹下。
1.备份/usr/sbin/sshd
cp /usr/sbin/sshd /usr/sbin/sshd.old
2.停止sshd服务
systemctl stop sshd
3.检查服务状态是否为停止
systemctl status sshd
4.删除/usr/sbin/sshd
rm -f /usr/sbin/sshd
5.将sshd上传并拷贝至/usr/sbin/下
注:如果该步骤执行失败,则需要本地登录服务器操作(参见5.1步骤)
cp /服务器端路径/sshd /usr/sbin/
5.1.杀进程
(务必注意,该操作会中断所有现在的ssh连接,请务必保证在服务器本地通过显示器键盘接入或通过IPMI接入后操作)
ps -ef|grep sshd
返回内容类似下面:
root 32819 1 0 17:56 ? 00:00:00 sshd: wsadm [priv]
wsadm 32822 32819 0 17:56 ? 00:00:00 sshd: wsadm@notty
root 40515 1 0 18:04 ? 00:00:00 sshd: wsadm [priv]
wsadm 40615 40515 0 18:04 ? 00:00:00 sshd: wsadm@pts/0
挨个杀掉对应所有的PID:
kill PID
例如:
kill 32819
如果进入5.1操作,则在sshd服务启动前的后续操作均在服务器本地执行
6.修改执行权限
chmod a+x /usr/sbin/sshd
7.启动sshd服务
systemctl start sshd
8.检查服务状态是否为active
systemctl status sshd
9.检查版本号
telnet 10.0.63.1 2222
显示如下:
SSH-2.0-OpenSSH_9.9
关于替换SSHD的banner的方法[反编译版][应付漏扫]相关推荐
- c 正则表达式替换html,正则表达式替换html元素属性的方法
正则表达式替换任意html元素任意属性,或增加任意属性. /** * 替换html中任意tag内任意attr值 * @param src_str * @param tag * @param attr ...
- 正则表达式给html添加属性,正则表达式替换html元素属性的方法
正则表达式替换任意html元素任意属性,或增加任意属性. /** * 替换html中任意tag内任意attr值 * @param src_str * @param tag * @param attr ...
- php正则替换模板变量,php正则替换变量指定字符的方法
本文实例讲述了php正则替换变量指定字符的方法.分享给大家供大家参考.具体如下: 这里介绍三种常用方法. 方法一: $str = preg_quote('(银子)'); $txt = '我的呢称(银子 ...
- python 字符串去空格_Python去除、替换字符串空格的处理方法
个人想到的解决方法有两种,一种是 .replace(' old ',' new ') 第一个参数是需要换掉的内容比如空格,第二个是替换成的内容,可以把字符串中的空格全部替换掉. 第二种方法是像这样 s ...
- linux切换软件版本,使用Linux的alternatives命令替换选择软件的版本方法
上周在安装搜索引擎Elasticsearch时,要求安装比较新的java 版本,我选择了java 1.8.0,安装java 成功后使用java -version 发现使用的版本仍旧是1.6.0, 查询 ...
- python字符串变量替换_python字符串替换第一个字符串的方法
Python 截取字符串使用 变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾. # 例1:字符串截取 str = '1234567 ...
- python 字符串替换_python字符串替换第一个字符串的方法
Python 截取字符串使用 变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾. # 例1:字符串截取 str = '1234567 ...
- 正则替换html 元素,正则表达式替换html元素属性的方法
正则表达式替换html元素属性的方法 发布于 2017-06-06 13:04:32 | 87 次阅读 | 评论: 0 | 来源: 网友投递 JavaScript客户端脚本语言Javascript 是 ...
- java中文逗号替换成英文逗号_织梦中文逗号自动替换成英文逗号的方法
织梦中文逗号自动替换成英文逗号的方法 发布时间:2020-08-18 15:00:18 来源:亿速云 阅读:102 作者:小新 小编给大家分享一下织梦中文逗号自动替换成英文逗号的方法,相信大部分人都还 ...
最新文章
- php关系运算符语句,PHP基础__运算符和逻辑语句(三)
- ADO.NET 2.0 Dataset和Datatable 新功能新特性
- c实现多语言编程,C/C++编程中多国语言处理
- 高级数据结构与算法 | 深度遍历搜索(DFS)与广度遍历搜索(BFS)
- C# 8 新特性 - 异步流 Asynchronous Streams
- MacBook 如何通过命令终端进入 U 盘内的目录
- Qt学习笔记-OpenGL做正方体并旋转
- netty 水位线与oom
- 深入理解CPU cache:组织、一致性(同步)、编程
- 洛谷 P2286 [HNOI2004]宠物收养场
- Android手机中第三方签名应用程序无法获得的permission
- Ruby 学习笔记6
- Linux 100个常用指令
- 必不可少需要掌握的嵌入式知识(2) -- 经典数据结构总结之 (链表,队列)
- Atitit blend mode COLOR_DODGE 混合模式 “颜色减淡”模式
- 在Excel中输入超过10的带圈数字
- java代码行数_Java统计代码行数
- 五类推荐系统算法,非常好使,非常全面
- 什么是数据库管理系统?
- dev-c++文件名取名问题(踩坑)