Evil-404

专注于 APT 攻防研究,致力于高质量实用干货分享


  • 首页

  • 导航

  • 分类

  • 归档

  • 标签

  • 关于

  • 搜索

如何将你的 apache 把控的'密不透风'

发表于 2017-11-27 | 更新于: 2017-12-23 | 分类于 apachesec
字数统计: 3,623 | 阅读时长 ≈ 16

0x01 为防止配置或端口冲突,在装之前,你需要先仔细检查当前系统有没有装apache,如果有先把apache服务停掉,然后卸载apache,等会儿用源码重新编译安装

1
2
# rpm -qa httpd
# rpm -e --nodeps * 强制卸载apache

演示环境

1
2
CentOS6.8 x86_64    最小化,带基础库安装 eth0 : 192.168.3.45 eth1 : 192.168.4.16 eth2 : 192.168.5.16
httpd-2.2.34.tar.gz apache官方提供的源码包

0x02 下载apache源码包,这里暂时选择2.2.x系列的最新版,不建议再用比这个还老的版本了,漏洞比较多

1
2
# wget http://apache.website-solution.net/httpd/httpd-2.2.34.tar.gz
# tar xf httpd-2.2.34.tar.gz && cd httpd-2.2.34

0x03 直接到源码中去改掉apache的详细版本信息,跟部署nginx一样,尽可能地扰乱入侵者的判断,这里就把它模拟成IIS 7.5,实际系统应为win server 2008r2

1
# vi include/ap_release.h

阅读全文 »

php-fpm.conf & php.ini 安全优化实践

发表于 2017-11-24 | 更新于: 2017-12-24 | 分类于 phpsec
字数统计: 3,880 | 阅读时长 ≈ 16

0x01 关于 php

1
2
3
4
5
其历史相对已经比较久远了,这里也就不废话了,属弱类型中一种解释型语言
除了web开发以及写些简单的exp,暂未发现其它牛逼用途,暂以中小型web站点开发为主
另外,低版本的php自身漏洞就比较多,建议,从现在开始就在新项目中使用php 5.6.x 往后的版本
好在官方维护的一直比较勤奋,主次版本都迭代的比较快,最新版已经到7.2.0
哼哼……是,'最好的语言'... :)

0x02 此次演示环境

1
2
CentOS6.8 x86_64   最小化,带基础库安装 	eth0: 192.168.3.42 eth1: 192.168.4.14  eth2: 192.168.5.14
php-5.6.32.tar.gz 官方提供的源码包

0x03 下载 php-5.6.32.tar.gz,并安装好php所需的各种依赖库

1
2
3
4
5
6
7
8
9
# yum install epel-release -y
# yum install -y zlib-devel libxml2-devel freetype-devel
# yum install -y libjpeg-devel libpng-devel gd-devel curl-devel libxslt-devel
# yum install openssl openssl-devel libmcrypt libmcrypt-devel mcrypt mhash mhash-devel -y
# tar xf libiconv-1.15.tar.gz
# cd libiconv-1.15
# ./configure --prefix=/usr/local/libiconv-1.15 && make && make install
# ln -s /usr/local/libiconv-1.15/ /usr/local/libiconv
# ll /usr/local/libiconv/

阅读全文 »

给自己一个更安全的 mysql

发表于 2017-11-23 | 更新于: 2017-12-05 | 分类于 mysqlsec
字数统计: 4,060 | 阅读时长 ≈ 16

0x01 在进行真正的 mysql 部署之前,我们不妨先来大致了解下,在实际入侵过程中,仅仅利用mysql,我们到底能干些什么,了解了这些最基本的点之后,我们再进行针对性防御:

1
2
3
4
普通用户权限下的 '增删改查',即 常规sql注入,俗称'脱裤'
普通用户file权限下的 '文件读写',可尝试读取各类敏感配置,如各类账号或者尝试直接往站点目录中写webshell
root用户权限下的 '读写文件' , '系统命令执行'... 可读写是因为root本身就有file权限,另外,如果直接以root身份运行mysql服务,亦可实现'提权'的效果
针对 '数据库连接' 的'DDOS',单用户大批量数据库连接可能会导致mysql无法再提供服务

0x02 演示环境:

1
2
CentOS6.8 x86_64 最小化,只带基础库安装  eth0: 192.168.3.42 eth1: 192.168.4.14  eth2: 192.168.5.14
mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz 此次mysql就不再手工编译了,时间比较长,直接用mysql官方提供好的二进制包来做演示

0x03 下载,解压 mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz

1
2
3
4
# tar xf mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz
# mv mysql-5.6.27-linux-glibc2.5-x86_64 /usr/local/
# ln -s /usr/local/mysql-5.6.27-linux-glibc2.5-x86_64/ /usr/local/mysql
# ls -l /usr/local/mysql/

0x04 开始初始化mysql

务必以一个伪用户身份来运行mysql服务,防止别人利用mysql进行提权,后面还会再细说,另外,web服务和数据库服务严禁用同一个系统用户,这样做主要是为了防止入侵者直接通过sql语句往网站目录中写webshell

1
# useradd -s /sbin/nologin -M mysql

阅读全文 »

从 0 开始构建一个 "固若金汤" 的nginx

发表于 2017-11-21 | 更新于: 2017-12-03 | 分类于 nginxsec
字数统计: 7,206 | 阅读时长 ≈ 29

0x01 关于 nginx

1
2
3
4
5
配置灵活,简单,运行时占用系统资源较少,功能模块繁多,可扩展性极强,基于 C ,整个工具大小1M左右
支持高并发,仅限于全部为纯静态文件的情况下,因为最终还要取决于后端 [ 脚本和数据库 ] 的实际处理速度
默认 nginx 会自动选择最佳的网络I/O模型,和nginx不同的是,apache默认就会使用select模型,效率较低
上面这些话的意思也就是说,你的C要牛逼到一定的程度,不然,想做深度二次开发基本是扯淡,真心挺佩服毛子的
更多说明,请直接参考官方文档...

0x02 正确理解 linux 对文件,目录,[ 读 写 执行 ] 权限的真正含义,这东西不能靠干说,因为根本理解不扎实,大家可以自己在系统中创建两个普通用户,不停地切换目录文件权限,以深入仔细体会,后面网站目录权限设置要用到这些基础,如果连这些都搞不清,想灵活应用就难了,耐心点,等透彻理解之后,你就会发现真TM简单

目录 读[r / 4] 写[w / 2] 执行[x / 1]

1
2
3
读:   ls , dir ... 			表示可查看该目录下的文件列表
写: rm , mv, cp, mkdir ,touch ... 表示可在该目录下创建,删除,修改文件或者子目录,不过在这之前,一定要先有执行权限,不然进都进不去,又怎么写呢
执行: cd ... 表示可进入该目录

文件 读[r / 4] 写[w / 2] 执行[x / 1]

1
2
3
读:	cat , tac , more , less ,head , tail ... 表示可查看该文件中的内容
写: vi , nano , echo ... 只表示可对文件中的 内容 进行增删改,删除文件还要取决于当前用户对该文件所在目录是否有写权限
执行: 可执行文件,shell脚本... 在linux中任何文件都可以有执行权限,但只有可执行文件和脚本才能真正执行

阅读全文 »

lsyncd + rsync 实时同步海量小文件

发表于 2017-11-19 | 更新于: 2017-12-06 | 分类于 lsyncd
字数统计: 1,016 | 阅读时长 ≈ 4



0x01 关于lsyncd

1
2
3
inotify的优秀替代品,基于lua,不过,它也依然使用 linux 2.6.13以后内核的inotify触发机制
配置简单灵活,在同步海量小文件时,性能表现优异,废话不多讲,咱们直奔主题
...

环境准备:

1
2
RsyncServer	ip: 192.168.5.4
RsyncClient26 ip: 192.168.5.7

0x02 在需要进行实时同步的 rsync 客户端机器上[ 这里是RsyncClient26 ]编译安装lsyncd,如下

1
2
3
4
5
6
7
8
# yum install lua lua-devel asciidoc cmake -y
# wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/lsyncd/lsyncd-2.1.5.tar.gz
# tar xf lsyncd-2.1.5.tar.gz
# cd lsyncd-2.1.5/
# ./configure --prefix=/usr/local/lsyncd-2.1.5 && make && make install
# echo $? && cd
# ln -s /usr/local/lsyncd-2.1.5/ /usr/local/lsyncd/
# cd /usr/local/lsyncd/bin/ && ./lsyncd

阅读全文 »

纯图形化实时流量分析 [ etherape ]

发表于 2017-11-18 | 更新于: 2017-12-05 | 分类于 etherape
字数统计: 855 | 阅读时长 ≈ 3

0x01 关于 etherape:

1
2
3
4
5
一款纯图形化的网络流量分析工具,既是图形界面,所以系统中务必要有各类图形库支持才行
很多数时候,我们可能只是想简单的看看数据流向,了解总体数据流向或某单个网络节点状况,并不想关心数据包里面到底是什么东西
此时,etherape 则无疑是个比较不错的选择,另外,它对各个协议的支持相对还算比较到位
当然,缺点也是有的,毕竟是实时分析,如果流量瞬间激增,很容易把程序卡崩掉[不知道是有点儿溢出,还是io跟不上],也正常,毕竟只是个小工具肯定没商业工具那么完善
...

0x02 环境:

1
2
3
4
kali 			ip: 192.168.3.30
centos6.9_x64 ip: 192.168.3.16 [eth1] 192.168.3.19 [eth0]
win2008R2cn ip: 192.178.3.23
win7cn ip: 192.168.3.2

阅读全文 »

老旧但不乏经典的高级组包工具 [ hping3 ]

发表于 2017-11-15 | 更新于: 2017-12-05 | 分类于 hping3
字数统计: 1,418 | 阅读时长 ≈ 7

前言:
    一款经典的高级组包工具,虽然老旧,但不乏经典,你完全可以利用它任意组装专属的 tcp,udp,icmp 数据报文格式,废话不多说,咱们直奔主题…

0x01 实验环境:

1
2
kali 			ip:192.168.3.38
CentOS6.9 [MidLAMP] ip:192.168.3.16[eth1] 192.168.3.19[eth0] 在此机器上编译安装hping3

0x02 编译安装 hping3:

1
2
3
4
5
6
7
8
# yum install libpcap-devel tcl-devel -y
# wget http://www.hping.org/hping3-20051105.tar.gz
# tar xf hping3-20051105.tar.gz
# cd hping3-20051105
# vi bytesex.h
|| defined(__x86_64__) \ 为了防止后续编译出错,需要在第一个判断下添加此句,如下图所示,添加64位系统平台
# ln -s /usr/include/pcap-bpf.h /usr/include/net/bpf.h
# ./configure && make && make strip && make install

阅读全文 »

文件隐藏 之 NTFS 交换数据流

发表于 2017-11-14 | 更新于: 2017-12-05 | 分类于 ntfs stream
字数统计: 1,107 | 阅读时长 ≈ 4

0x01 关于 NTFS 交换数据流

1
2
3
NTFS 交换数据流属于NTFS文件系统独有的特性,在NTFS文件系统下,每个文件都可以存在多个数据流
也就是说,除了主文件流之外,还可以有很多非主文件流寄宿在主文件流中,内部使用资源派生来维持与文件相关的信息
虽然,我们无法看到数据流文件,但是它却真实存在于系统中,更多更细致的解释,大家可自行参考百科或ntfs官方文档...

0x02 如何实际创建一个数据交换流文件,其实方法很简单,如下

1
命令格式 "宿主文件:准备与宿主文件相关联的数据流文件"

0x03 演示环境

1
2
win2008r2cn	ip: 192.168.3.23	
kali ip: 192.168.3.38 等会儿弹meterpreter用

阅读全文 »

DNS隧道 之 端口转发 [ 一 ]

发表于 2017-11-11 | 更新于: 2017-12-23 | 分类于 dnstunnel
字数统计: 1,278 | 阅读时长 ≈ 5

0x01 本次实验环境大致如下:

1
2
3
4
centos7_x64[heightlamp]  公网ip: 192.168.3.42        		        假设为入侵者自己的公网机器,即dns2tcp客户端
centos7_x64[heightlnmp] 公网ip: 192.168.3.41 内网ip: 192.168.32.123 假设为目标DMZ中的机器,有防火墙,即dns2tcp服务端
win2012r2en 公网ip: 192.168.3.123 假设为入侵者自己公网的dns服务器
centos6.8_x64[Midlnmp] 内网ip: 192.168.32.212 假设为目标内网中的一台linux机器

0x02 我们要实现的最终目的

1
2
3
4
正常情况下,我们本想通过heightlnmp机器来访问目标内网中Midlnmp的ssh,但苦于heightlamp和heightlamp之间的防火墙
且防火墙只允许真正的dns流量通过,所以,我们现在想通过在自己公网的dns服务器上做转发来绕过它们之间的防火墙
即在heightlamp和heightlnmp之间建立一层dns隧道,把要转发的端口数据都封装在dns流量里面进行穿透
最后实现的效果就是,当我访问heightlamp的某个指定端口,就可以直接访问到目标内网中的Midlnmp的ssh

阅读全文 »

轻量高效的 MITMF [ bettercap ]

发表于 2017-11-07 | 更新于: 2017-12-23 | 分类于 bettercap
字数统计: 1,553 | 阅读时长 ≈ 6

0x01 关于bettercap:

1
2
3
一款相对还不错的中间人工具,出来也有些年头了,不过貌似维护的并不是特别勤快
从名字就不难看出,作者似乎是有意在向我们说明,这是一款比ettercap更好的中间人工具,'b' is better ^_^
此外,工具本身基于ruby,官方要求的 ruby版本为 >= 1.9

0x02 基本介绍:

1
2
3
4
ubuntu 16.04.3 LTS 	ip: 192.168.3.12    入侵者机器
win2008r2cn ip: 192.168.3.23 模拟正常服务器,事先已准备好各种服务
win2008cn ip: 192.168.3.131 模拟正常服务器,事先已准备好各种服务
win2012r2cn ip: 192.168.3.122 模拟正常服务器,事先已准备好各种服务

0x03 首先,安装好bettercap,如果你系统的ruby版本小于1.9记得务必先升级一下,更多详情请参考其官方说明,如下

1
2
3
# apt-add-repository ppa:brightbox/ruby-ng
# apt-get update
# apt-get install ruby2.3 ruby2.3-dev

阅读全文 »
1234…17
VK

VK

别惹我,我疯起来连自己都黑!

163 日志
115 分类
110 标签
RSS
GitHub E-Mail Twitter
安全资讯
  • FreeBuf
  • 指尖安全
  • SecWiki
  • 先知社区
  • 嘶吼
  • 安全客
  • 安全牛
  • E安全
© 2019 VK
博客全站共312.4k字
由 Evil-404 维护
| 本站总访问量次
0%