- 博客(25)
- 资源 (155)
- 问答 (1)
- 收藏
- 关注
原创 关于安全能力建设的一些思考
一、安全需求脱离需求谈规划一切都是空谈,所以我还是先简单总结下目前的收集到的安全需求。我把这些需求分为两大类,一类是客户反馈的外部需求,一类是我们自己产生的内部需求。先说外部需求,主要有以下几点:镜像漏洞扫描 镜像精简与安全加固 容器合规审计 木马病毒、webshell检测 入侵行为检测 文件防篡改 容器和集群日志审计 容器防火墙内部需求主要有:不断有高质量容器安全技术输出,打响公司品牌 围绕容器安全相关领域做安全攻防研究,以攻触防 测试自己产品安全性...
2024-07-26 15:13:37
974
1
原创 隐秘通信-使用PingTunnel搭建ICMP隧道实验
Internet Control Message Protocol Internet控制报文协议,简称ICMP协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用于网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。CMP协议主要提供两种功能,一种是差错报文,一种是信息类报文。信息类报文包括回显请求和回显应答,以及路由器通告和路由器请求。
2023-08-09 15:17:03
628
原创 容器内反弹shell的51种姿势
什么是反弹shell?反弹shell(reverse shell),就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。reverse shell与telnet,ssh等标准shell对应,本质上是网络概念的客户端与服务端的角色反转。为什么要反弹shell?通常用于被控端因防火墙受限、权限不足、端口被占用等情形。举例:假设我们攻击了一台机器,打开了该机器的一个端口,攻击者在自己的机器去连接目标机器(目标ip:目标机器端口),这是比较常规的形式,我们叫做正向
2020-11-19 13:15:31
1375
原创 编写内核模块,读取所有进程的task_struct结构信息
内核模块代码如下,hello.c#include <linux/kernel.h>#include <linux/module.h>#include <linux/proc_fs.h>#include<linux/sched/signal.h>#include <linux/init.h>static int __init...
2020-03-05 21:08:09
1081
原创 《Clair二次开发指南2——analyze-local-images源码剖析》
我们先分析下analyze-local-images这个客户端,然后在下一篇文章中在分析Clair。这样我们可以很清楚的了解到,analyze-local-images向Clair发送了什么数据。首先analyze-local-images定义了几个全局变量。代码如下。const ( postLayerURI = "/v1/layers" getLayerFeatures
2017-11-27 18:16:32
1102
1
原创 《Clair二次开发指南1——Clair编译与使用》
Clair是容器静态漏洞分析器,可以用以评估Docker镜像的安全性。Clair目前共发布了21个release,这里我们使用其第20个release版本,即V2.0.0进行源码剖析。下载地址为:https://github.com/coreos/clair/archive/v2.0.0.zip
2017-11-26 20:28:00
1913
1
原创 从零开始写Go网络通信框架(5)——断线重连
在上面的4篇文章中,我们已经搭建了一个简易的socket通讯框架,但是有一个问题。如果服务端主动关闭了连接,这时候client端就接收不到服务端发送的消息。这时候我们就需要做一个断线重连的处理。在这里,我们采用判断共享内存的方式,既当接收不到服务器端发送的消息时,向channel中写入数据。//接收服务端发来的消息func ReadMsg(conn net.Conn,ch chan in
2017-10-18 19:33:24
3941
原创 riskdetect——恶意软件以及webshell检测
##检测方法文件 hash 比较以及 fuzzy hash ([已知文件|未知文件]) (ssdeep)代码特征值,危险函数检测 (yara)最开始的思路就是调用yara和ssdeep这两个程序进行检测,但是后来发现直接用编译好的ssdeep进行检测的时候会有一些问题。于是就用go实现了ssdeep的绑定。gossdeep——ssdeep的go绑定
2017-10-11 16:06:45
1145
原创 gossdeep——ssdeep的go绑定
静静的写一段代码,然后不说说话。import ctypesfrom 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
2017-09-22 16:46:53
610
原创 检测文件mime类型和模糊哈希
gomagic 项目地址:https://github.com/MXi4oyu/gomagic 基于libmagic和ssdeep检测文件类型和模糊哈希依赖:libmagicDebian或Ubuntu: apt-get install libmagic-devRHEL,CentOS或者 Fedora:yum install file-devel
2017-09-07 18:48:59
566
原创 分布式任务队列与任务调度系统Celery进阶——分布式爬虫
新建文件crawlertask.py,用于执行数据抓取任务,代码如下。#coding:utf-8from celery import Celery,platformsimport requestsfrom bs4 import BeautifulSoupapp=Celery('tasks',broker='redis://localhost:6379/0')app.conf.
2017-09-05 20:42:05
4147
原创 分布式任务队列与任务调度系统Celery入门
Celery是基于Python的开源分布式任务队列与任务调度系统。 1.什么是任务队列呢? 任务队列是一个将任务分布到多线程或多台机器上的一种机制。一个任务队列的输入(一个任务)是一个工作单元。专用的工作者进程将会持续监控任务队列并执行其中的任务。 2.Celery快速入门 Celery的模块架构 任务代
2017-09-05 15:50:49
1411
原创 最新webshell大合集
收集与整理了各种webshell,以便在日后的项目中做Webshell检测训练。https://github.com/tennc/webshell 各种webshell集合https://github.com/ysrc/webshell-samplewebshell样本https://github.com/xl7dev/WebShellWebshe
2017-09-01 20:10:28
39508
3
原创 DockerXScan——Docker镜像漏洞扫描器
最近刚学Go语言,参考clair写了一个Docker镜像漏洞扫描器。算是熟读了clair的源码,仿造轮子吧。自己的Go语言编程练习之作。链接地址:https://github.com/MXi4oyu/DockerXScan 感谢golang交流群里的众兄弟,没有你们的帮助,我很难在短时间内完这个项目。
2017-07-12 16:22:07
1727
6
原创 从零开始写Go网络通信框架(4)——全双工收发消息
经过上面三篇文章,我们已经写了一个简单的C/S框架,可以实现客户端与服务端进行发送消息。但这是一个单向通讯的。我们要想让客户端接收服务端发来的命令,并执行响应的动作,就需要写成全双工收发消息。即客户端也能接收服务端发来的指令。下面我在客户端定义一个方法,用来接收服务端的消息。//接收服务端发来的消息func ReadMsg(conn net.Conn) { //存储被截断的数据
2017-06-23 17:08:30
2138
原创 从零开始写Go网络通信框架(3)——对长连接的处理
我要写的这个通讯框架,主要用于监控。那么就会有多个客户端建立不关闭的长连接,这对服务端的开销是很大的。我这里对长连接的处理方式是:Server端收到Client端发来的信息之后,开始心跳计时,在设定时间内如果收到Client发来的消息,则重置计时器,否则计时结束断开连接。在Client端,我的处理方式是:用time.NewTicker创建一个定时器,每间隔一秒发送下当前时间到服务器。为简便
2017-06-22 11:54:29
2151
原创 从零开始写Go网络通信框架(2)——自定义通讯协议
在Server和Client通讯过程中,难免有网络波动,Client有可能无法将信息一次性完整发送而采用分片传送,最终到Server端可能就是多个数据段,我们要拼接这些数据端才能最终还原成原始数据。那么问题来了,怎样才能知道分段数据中的开头和结尾呢?这时候我们就需要自定义通讯协议来解决这个问题。参考:http://blog.csdn.net/ahlxt123/article/details/4
2017-06-19 18:57:31
2458
原创 从零开始写Go网络通信框架(1)——基本的Socket Client/Server的编写
用其他语言写Socket程序通常的步骤是:服务端:Socket——>bind——>listen——>accept——>read/recv和write/send——>close客户端:Socket——>connect——>read/recv和write/send——>close而在Go语言中,写Socket程序被简化为:服务端:Listen——>Accept——>Read/Write
2017-06-18 16:17:58
2273
原创 《scope源码解析4——main.go》
其实前三篇根本算不上源码分析,只是对项目的简单了解和环境的搭建。而从这一篇开始,我们才真正能接触到scope项目的源码。
2017-06-01 10:26:14
665
2
原创 《scope源码解析3——Makefile make啥?》
该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
2017-05-23 18:18:21
664
原创 《scope源码解析2——scope.sh》
bash脚本中set -e,设置该选项后,当前脚本任何一个命令执行返回的状态码不为0就退出整个脚本。set -u,设置该选项后,当前脚本在执行过程中尝试使用未定义过的变量时,报错并退出整个脚本。scope.sh在一开头就做了set -eu的设置。
2017-05-23 16:10:18
637
原创 《scope源码解析1——scope是个什么鬼》
项目地址为:https://github.com/weaveworks/scope它是个什么鬼呢?官方简介为:Monitoring, visualisation & management for Docker & Kubernetes(Docker和Kubernetes的可视化监控管理软件)Weave Scope能为你的应用自动生成一个map,使你可以直观的了解、监控、管理你的
2017-05-22 15:32:56
1345
原创 道3----编程真经
如果你立志成为顶级黑客,那么就要不断提升自己的编程内功和招式。以下的方法至少在电子计算机时代是适用的(量子计算机时代还未真正到来)。我们首先看下编程语言产生的年代,从中我们会得到一些启示。在此,我选出9个最具代表性的语言供大家参考。他们产生的具体时间请自行搜索查询,并思考其编程语言产生的原因。编程进化论:汇编——C——C++——Python——Lua——PHP——Java——J
2017-05-05 17:43:07
864
原创 道2——未知攻,焉知防
无论是在甲方公司还是乙方公司,对于安全工程师,渗透测试能力和应急响应能力都是必不可少的。而在应急响应过程中,以解决实际为导向的编程语言——Python,更是信息安全从业者必备四大编程语言之一。因为Python能够快速验证你的想法,应急其实就是在跟黑客争分夺秒。所以,天下武功,唯快不破。为什么会有人说“未知攻,焉知防”呢?因为黑客的攻击思路都比较“猥琐”,都是以点进行突破的。如果你刚好有一种攻击手法不了解,那么就没办法防御以这种手法对你进行攻击的黑客。
2017-04-24 05:41:01
1459
原创 道1——凡是称之为技术的东西,都可以通过大量练习来提升其能力。
C++程序员姚东在知乎上关于“编程新手如何提高编程能力“的回答如下:'''其实很多人学编程都会遇到困难,我觉得其中一个根本原因是他们没搞明白学编程到底是学什么。编程不是一种知识,而是一门手艺。我们从小到大的学习都是学习知识,流程一般是课前看书预习,上课听讲,下课做作业,然后复习考试。但是学手艺可不是这么学的。我们先拿游泳举例,游泳不是知识,而是技能,也可以算门手艺吧。
2017-03-17 17:51:22
1038
批量搜索利器V1.6
2013-07-04
利用社会工程学骗取VIP教程的Key的冷思考
2013-01-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人