<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[帮助别人等于帮助自己             ——MXi4oyu]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/MyPC2010</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; MyPC2010]]></copyright><item><title><![CDATA[关于安全能力建设的一些思考]]></title><link>https://blog.youkuaiyun.com/MyPC2010/article/details/110869685</link><guid>https://blog.youkuaiyun.com/MyPC2010/article/details/110869685</guid><author>MyPC2010</author><pubDate>Fri, 26 Jul 2024 15:13:37 +0800</pubDate><description><![CDATA[一、安全需求



脱离需求谈规划一切都是空谈，所以我还是先简单总结下目前的收集到的安全需求。我把这些需求分为两大类，一类是客户反馈的外部需求，一类是我们自己产生的内部需求。先说外部需求，主要有以下几点：



镜像漏洞扫描
	镜像精简与安全加固
	容器合规审计
	木马病毒、webshell检测
	入侵行为检测
	文件防篡改
	容器和集群日志审计
	容器防火墙


内部需求主要有：



不断有高质量容器安全技术输出，打响公司品牌
	围绕容器安全相关领域做安全攻防研究，以攻触防
	测试自己产品安全性...]]></description><category></category></item><item><title><![CDATA[隐秘通信-使用PingTunnel搭建ICMP隧道实验]]></title><link>https://blog.youkuaiyun.com/MyPC2010/article/details/131636424</link><guid>https://blog.youkuaiyun.com/MyPC2010/article/details/131636424</guid><author>MyPC2010</author><pubDate>Wed, 09 Aug 2023 15:17:03 +0800</pubDate><description><![CDATA[Internet Control Message Protocol Internet控制报文协议，简称ICMP协议。它是TCP/IP协议簇的一个子协议，用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用于网络本身的消息。这些控制消息虽然并不传输用户数据，但是对于用户数据的传递起着重要的作用。CMP协议主要提供两种功能，一种是差错报文，一种是信息类报文。信息类报文包括回显请求和回显应答，以及路由器通告和路由器请求。]]></description><category></category></item><item><title><![CDATA[容器内反弹shell的51种姿势]]></title><link>https://blog.youkuaiyun.com/MyPC2010/article/details/109808578</link><guid>https://blog.youkuaiyun.com/MyPC2010/article/details/109808578</guid><author>MyPC2010</author><pubDate>Thu, 19 Nov 2020 13:15:31 +0800</pubDate><description><![CDATA[什么是反弹shell？
反弹shell（reverse shell），就是控制端监听在某TCP/UDP端口，被控端发起请求到该端口，并将其命令行的输入输出转到控制端。reverse shell与telnet，ssh等标准shell对应，本质上是网络概念的客户端与服务端的角色反转。
为什么要反弹shell？
通常用于被控端因防火墙受限、权限不足、端口被占用等情形。
举例：假设我们攻击了一台机器，打开了该机器的一个端口，攻击者在自己的机器去连接目标机器（目标ip：目标机器端口），这是比较常规的形式，我们叫做正向]]></description><category></category></item><item><title><![CDATA[编写内核模块，读取所有进程的task_struct结构信息]]></title><link>https://blog.youkuaiyun.com/MyPC2010/article/details/104684029</link><guid>https://blog.youkuaiyun.com/MyPC2010/article/details/104684029</guid><author>MyPC2010</author><pubDate>Thu, 05 Mar 2020 21:08:09 +0800</pubDate><description><![CDATA[内核模块代码如下，hello.c


#include &lt;linux/kernel.h&gt;
#include &lt;linux/module.h&gt;
#include &lt;linux/proc_fs.h&gt;
#include&lt;linux/sched/signal.h&gt;
#include &lt;linux/init.h&gt;
static int __init...]]></description><category></category></item><item><title><![CDATA[《Clair二次开发指南2——analyze-local-images源码剖析》]]></title><link>https://blog.youkuaiyun.com/MyPC2010/article/details/78647181</link><guid>https://blog.youkuaiyun.com/MyPC2010/article/details/78647181</guid><author>MyPC2010</author><pubDate>Mon, 27 Nov 2017 18:16:32 +0800</pubDate><description><![CDATA[我们先分析下analyze-local-images这个客户端，然后在下一篇文章中在分析Clair。这样我们可以很清楚的了解到，analyze-local-images向Clair发送了什么数据。
首先analyze-local-images定义了几个全局变量。代码如下。
const (
	postLayerURI        = "/v1/layers"
	getLayerFeatures]]></description><category></category></item><item><title><![CDATA[《Clair二次开发指南1——Clair编译与使用》]]></title><link>https://blog.youkuaiyun.com/MyPC2010/article/details/78639472</link><guid>https://blog.youkuaiyun.com/MyPC2010/article/details/78639472</guid><author>MyPC2010</author><pubDate>Sun, 26 Nov 2017 20:28:00 +0800</pubDate><description><![CDATA[Clair是容器静态漏洞分析器，可以用以评估Docker镜像的安全性。Clair目前共发布了21个release，这里我们使用其第20个release版本，即V2.0.0进行源码剖析。下载地址为：https://github.com/coreos/clair/archive/v2.0.0.zip]]></description><category></category></item><item><title><![CDATA[从零开始写Go网络通信框架（5）——断线重连]]></title><link>https://blog.youkuaiyun.com/MyPC2010/article/details/78276702</link><guid>https://blog.youkuaiyun.com/MyPC2010/article/details/78276702</guid><author>MyPC2010</author><pubDate>Wed, 18 Oct 2017 19:33:24 +0800</pubDate><description><![CDATA[在上面的4篇文章中，我们已经搭建了一个简易的socket通讯框架，但是有一个问题。如果服务端主动关闭了连接，这时候client端就接收不到服务端发送的消息。这时候我们就需要做一个断线重连的处理。
在这里，我们采用判断共享内存的方式，既当接收不到服务器端发送的消息时，向channel中写入数据。
//接收服务端发来的消息
func ReadMsg(conn net.Conn,ch chan in]]></description><category></category></item><item><title><![CDATA[riskdetect——恶意软件以及webshell检测]]></title><link>https://blog.youkuaiyun.com/MyPC2010/article/details/78204854</link><guid>https://blog.youkuaiyun.com/MyPC2010/article/details/78204854</guid><author>MyPC2010</author><pubDate>Wed, 11 Oct 2017 16:06:45 +0800</pubDate><description><![CDATA[##检测方法

文件 hash 比较以及 fuzzy hash ([已知文件|未知文件]) (ssdeep)


代码特征值，危险函数检测 (yara)




最开始的思路就是调用yara和ssdeep这两个程序进行检测，但是后来发现直接用编译好的ssdeep进行检测的时候会有一些问题。于是就用go实现了ssdeep的绑定。gossdeep——ssdeep的go绑定]]></description><category></category></item><item><title><![CDATA[gossdeep——ssdeep的go绑定]]></title><link>https://blog.youkuaiyun.com/MyPC2010/article/details/78064614</link><guid>https://blog.youkuaiyun.com/MyPC2010/article/details/78064614</guid><author>MyPC2010</author><pubDate>Fri, 22 Sep 2017 16:46:53 +0800</pubDate><description><![CDATA[静静的写一段代码，然后不说说话。
import ctypes
from ctypes import *

dll=cdll.LoadLibrary("./libfuzzy.so")
ret1=dll.fuzzy_compare(c_char_p("3:YD6xL4fYvn:Y2xMwvn"),c_char_p("3:YD6xL4fYvn:Y2xMwvp"))

ret2=dll.fuzzy_co]]></description><category></category></item><item><title><![CDATA[检测文件mime类型和模糊哈希]]></title><link>https://blog.youkuaiyun.com/MyPC2010/article/details/77885291</link><guid>https://blog.youkuaiyun.com/MyPC2010/article/details/77885291</guid><author>MyPC2010</author><pubDate>Thu, 07 Sep 2017 18:48:59 +0800</pubDate><description><![CDATA[gomagic 

 项目地址：https://github.com/MXi4oyu/gomagic

 基于libmagic和ssdeep检测文件类型和模糊哈希

依赖：

libmagic

Debian或Ubuntu: apt-get install libmagic-dev

RHEL,CentOS或者 Fedora：yum install file-devel
]]></description><category></category></item><item><title><![CDATA[分布式任务队列与任务调度系统Celery进阶——分布式爬虫]]></title><link>https://blog.youkuaiyun.com/MyPC2010/article/details/77855999</link><guid>https://blog.youkuaiyun.com/MyPC2010/article/details/77855999</guid><author>MyPC2010</author><pubDate>Tue, 05 Sep 2017 20:42:05 +0800</pubDate><description><![CDATA[新建文件crawlertask.py，用于执行数据抓取任务，代码如下。

#coding:utf-8
from celery import Celery,platforms
import  requests
from bs4 import BeautifulSoup

app=Celery('tasks',broker='redis://localhost:6379/0')
app.conf.]]></description><category></category></item><item><title><![CDATA[分布式任务队列与任务调度系统Celery入门]]></title><link>https://blog.youkuaiyun.com/MyPC2010/article/details/77852413</link><guid>https://blog.youkuaiyun.com/MyPC2010/article/details/77852413</guid><author>MyPC2010</author><pubDate>Tue, 05 Sep 2017 15:50:49 +0800</pubDate><description><![CDATA[Celery是基于Python的开源分布式任务队列与任务调度系统。

    1.什么是任务队列呢？


    任务队列是一个将任务分布到多线程或多台机器上的一种机制。一个任务队列的输入（一个任务）是一个工作单元。专用的工作者进程将会持续监控任务队列并执行其中的任务。


    2.Celery快速入门


    Celery的模块架构




    任务代]]></description><category></category></item><item><title><![CDATA[最新webshell大合集]]></title><link>https://blog.youkuaiyun.com/MyPC2010/article/details/77776870</link><guid>https://blog.youkuaiyun.com/MyPC2010/article/details/77776870</guid><author>MyPC2010</author><pubDate>Fri, 01 Sep 2017 20:10:28 +0800</pubDate><description><![CDATA[收集与整理了各种webshell，以便在日后的项目中做Webshell检测训练。


https://github.com/tennc/webshell  
各种webshell集合


https://github.com/ysrc/webshell-sample
webshell样本


https://github.com/xl7dev/WebShell
Webshe]]></description><category></category></item><item><title><![CDATA[DockerXScan——Docker镜像漏洞扫描器]]></title><link>https://blog.youkuaiyun.com/MyPC2010/article/details/75023283</link><guid>https://blog.youkuaiyun.com/MyPC2010/article/details/75023283</guid><author>MyPC2010</author><pubDate>Wed, 12 Jul 2017 16:22:07 +0800</pubDate><description><![CDATA[最近刚学Go语言，参考clair写了一个Docker镜像漏洞扫描器。
算是熟读了clair的源码，仿造轮子吧。自己的Go语言编程练习之作。
链接地址：https://github.com/MXi4oyu/DockerXScan
  感谢golang交流群里的众兄弟，没有你们的帮助，我很难在短时间内完这个项目。]]></description><category></category></item><item><title><![CDATA[从零开始写Go网络通信框架（4）——全双工收发消息]]></title><link>https://blog.youkuaiyun.com/MyPC2010/article/details/73650049</link><guid>https://blog.youkuaiyun.com/MyPC2010/article/details/73650049</guid><author>MyPC2010</author><pubDate>Fri, 23 Jun 2017 17:08:30 +0800</pubDate><description><![CDATA[经过上面三篇文章，我们已经写了一个简单的C/S框架，可以实现客户端与服务端进行发送消息。但这是一个单向通讯的。我们要想让客户端接收服务端发来的命令，并执行响应的动作，就需要写成全双工收发消息。即客户端也能接收服务端发来的指令。
下面我在客户端定义一个方法，用来接收服务端的消息。
//接收服务端发来的消息
func ReadMsg(conn net.Conn)  {

	//存储被截断的数据]]></description><category></category></item><item><title><![CDATA[从零开始写Go网络通信框架（3）——对长连接的处理]]></title><link>https://blog.youkuaiyun.com/MyPC2010/article/details/73571746</link><guid>https://blog.youkuaiyun.com/MyPC2010/article/details/73571746</guid><author>MyPC2010</author><pubDate>Thu, 22 Jun 2017 11:54:29 +0800</pubDate><description><![CDATA[我要写的这个通讯框架，主要用于监控。那么就会有多个客户端建立不关闭的长连接，这对服务端的开销是很大的。
我这里对长连接的处理方式是：Server端收到Client端发来的信息之后，开始心跳计时，在设定时间内如果收到Client发来的消息，则重置计时器，否则计时结束断开连接。
在Client端，我的处理方式是：用time.NewTicker创建一个定时器，每间隔一秒发送下当前时间到服务器。为简便]]></description><category></category></item><item><title><![CDATA[从零开始写Go网络通信框架（2）——自定义通讯协议]]></title><link>https://blog.youkuaiyun.com/MyPC2010/article/details/73471274</link><guid>https://blog.youkuaiyun.com/MyPC2010/article/details/73471274</guid><author>MyPC2010</author><pubDate>Mon, 19 Jun 2017 18:57:31 +0800</pubDate><description><![CDATA[在Server和Client通讯过程中，难免有网络波动，Client有可能无法将信息一次性完整发送而采用分片传送，最终到Server端可能就是多个数据段，我们要拼接这些数据端才能最终还原成原始数据。那么问题来了，怎样才能知道分段数据中的开头和结尾呢？这时候我们就需要自定义通讯协议来解决这个问题。
参考：http://blog.youkuaiyun.com/ahlxt123/article/details/4]]></description><category></category></item><item><title><![CDATA[从零开始写Go网络通信框架（1）——基本的Socket Client/Server的编写]]></title><link>https://blog.youkuaiyun.com/MyPC2010/article/details/73432246</link><guid>https://blog.youkuaiyun.com/MyPC2010/article/details/73432246</guid><author>MyPC2010</author><pubDate>Sun, 18 Jun 2017 16:17:58 +0800</pubDate><description><![CDATA[用其他语言写Socket程序通常的步骤是：
服务端：Socket——>bind——>listen——>accept——>read/recv和write/send——>close
客户端：Socket——>connect——>read/recv和write/send——>close
而在Go语言中，写Socket程序被简化为：
服务端：Listen——>Accept——>Read/Write]]></description><category></category></item><item><title><![CDATA[《scope源码解析4——main.go》]]></title><link>https://blog.youkuaiyun.com/MyPC2010/article/details/72828841</link><guid>https://blog.youkuaiyun.com/MyPC2010/article/details/72828841</guid><author>MyPC2010</author><pubDate>Thu, 01 Jun 2017 10:26:14 +0800</pubDate><description><![CDATA[其实前三篇根本算不上源码分析，只是对项目的简单了解和环境的搭建。而从这一篇开始，我们才真正能接触到scope项目的源码。]]></description><category></category></item><item><title><![CDATA[《scope源码解析3——Makefile make啥？》]]></title><link>https://blog.youkuaiyun.com/MyPC2010/article/details/72654535</link><guid>https://blog.youkuaiyun.com/MyPC2010/article/details/72654535</guid><author>MyPC2010</author><pubDate>Tue, 23 May 2017 18:18:21 +0800</pubDate><description><![CDATA[该Makefile一开头定义了12个“伪目标文件”

.PHONY: all deps static clean client-lint client-test client-sync backend frontend shell lint ui-upload
然后定义一大堆变量，接下来先执行

sudo -E docker build -t weaveworks/scope-backe]]></description><category></category></item></channel></rss>