Evil-404

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


  • 首页

  • 导航

  • 分类

  • 归档

  • 标签

  • 关于

  • 搜索

实时精准侦测站点目录中的各类 webshell

发表于 2017-12-26 | 更新于: 2017-12-30 | 分类于 webhack
字数统计: 278 | 阅读时长 ≈ 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash
# author by klion
# 2017.12.25
# Delete webshell auto

webshell_log="/var/log/webshell.log"
upload_shell="/var/log/modify.tmp"

# 只要一检测到有新事件发生就立马打包上传检测
[ -s $webshell_log ] &&{
awk -F " " '{print $3}' $webshell_log |grep -E ".php$"| sort -u > $upload_shell
cat $upload_shell |xargs zip ./maybeshell.zip
echo `curl https://scanner.baidu.com/enqueue -F archive=@maybeshell.zip` | mail -s "webshell detect url api" klion@protonmail.com
sleep 5
> $webshell_log && > $upload_shell && rm -fr ./maybeshell.zip
}
阅读全文 »

用shell对指定站点进行简单的实时入侵预警

发表于 2017-12-26 | 更新于: 2017-12-27 | 分类于 webhack
字数统计: 375 | 阅读时长 ≈ 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/bash
# author by klion
# 2017.12.25
# Real-time monitoring of Web Directory script

web_dir="/usr/local/nginx/html/bwapp/bWAPP/"
oldnum=`wc -l web_history_db.log | awk -F " " '{print $1}'`
newnum=`find $web_dir -type f | wc -l`
md5num=`md5sum -c web_history_db.log | grep -i FAILED | wc -l`

# 先对指定的站点目录创建指纹库
[ ! -f web_history_db.log ] && {
find $web_dir -type f | xargs md5sum > ./web_history_db.log
}

# 和新文件对比指纹,如果发现不对,就马上发信通知,并带上被改动的文件路径一起
[ $md5num -ne 0 ] && {
md5sum -c web_history_db.log | grep -i "FAILED" | awk -F ":" '{print $1}' > web_mod_`date +%Y-%m-%d-%H-%M-%S`.web.log
log_file=`ls -l *.web.log | head -n 1 | awk -F " " '{print $9}'`
mail -s "Your website may be hacked, Please check it as soon as possible" klion@protonmail.com < $log_file;sleep 5
rm -fr $log_file
}

# 对比文件个数,发现不对,同样是立马发信,因为有可能要同时监控很多个站点目录,所以就顺便把具体的站点路径也带上了
[ $oldnum -ne $newnum ] && {
echo "website directory is $web_dir" | mail -s "web directory have new file created " klion@protonmail.com ;sleep 5
}
阅读全文 »

keepalived + nginx 初步实现高可用

发表于 2017-12-24 | 更新于: 2017-12-30 | 分类于 keepalived 高可用
字数统计: 2,205 | 阅读时长 ≈ 10

0x01 关于 keepalived

1
2
早期是专为 `LVS` 设计的,主要用来监控LVS集群中各个节点状态
内部基于 `VRRP协议` 实现,即`虚拟路由冗余协议`,从名字不难看出,协议本身是用于保证实现路由节点高可用的

0x02 所谓的 VRRP 协议

1
2
3
4
5
6
7
简单来讲,即将N台提供相同功能的路由器组成一个路由器组,在这个组里有一个master和多个backup
一般情况下,master是由选举算法产生的,另外需要注意的是,只有在 master 上才有一个用于对外提供服务的虚拟ip
其它的backup都是没有的,当master在对外提供服务时,其它的backup又在干什么呢
很简单,当master在对外提供服务时,它同时也在不停的向所有的backup发送VRRP状态信息 `说白点儿就是心跳包`
告诉所有backup们,说,'我还没累死,你们先歇着,等我挂了,你们再上',然后,所有的backup就会一直在那儿闲着不停地接收这样的状态信息
当某一时刻,backup突然没再接到这样的状态回应时,就说明master已经光荣牺牲了
所有的backup会再重新用选举算法,把优先级最高的backup升级为master继续对外提供服务,以此保证了服务的持续可用性,即所谓的高可用

0x03 借助 keepalived 在web上的高可用实现

1
2
3
首先,在所有需要进行高可用的web节点机器上部署好keepalived,并在节点中设置一个master,其它的则全部设为backup
一旦backup接收不到来自master的心跳数据,即认为master已挂掉,backup随即就会接管master的所有资源数据
当master状态恢复时,backup会把所有的资源数据再移交给master处理,此,即为最简单的web高可用实现

阅读全文 »

利用 `nginx反向代理` 实现的动静分离

发表于 2017-12-22 | 更新于: 2017-12-30 | 分类于 动静分离
字数统计: 1,340 | 阅读时长 ≈ 6

0x01 关于 动静分离

1
2
主要用于一些较大型的站点架构,这样做一定程度上可以有效减轻后端节点压力,也就是说,有时候你在前端url中看到的一个目录,其后端对应的很可能就是一个集群
另外,这样会使网站更加静态化,利于缓存,可显著提高网站访问速度,有效实现前后端解耦,但这样无疑会加大开发的繁琐程度,前后端只能通过各种接口进行通信

0x02 此次演示环境

1
2
3
NginxHttp	ip: 192.168.3.49	对应域名: reverse.org		nginx反向代理服务器
OldLamp ip: 192.168.3.45 对应域名: www.bwapp.cc 假设为动态服务器
OldLnmp ip: 192.168.3.42 对应域名: test.bwapp.org 假设为静态服务器

0x03 务必先统一所有机器的host解析,因为等会儿要直接用域名的方式往后抛,如下

1
2
3
4
5
# vi /etc/hosts
192.168.3.42 test.bwapp.org bwapp.org
192.168.3.45 bwapp.cc www.bwapp.cc
192.168.3.75 lvs.org
192.168.3.49 reverse.org

阅读全文 »

初探 LDAP 安全 [ 一 ]

发表于 2017-12-21 | 更新于: 2017-12-30 | 分类于 LDAP安全
字数统计: 3,572 | 阅读时长 ≈ 16

0x01 关于 ldap 的一些简单科普

1
2
3
4
5
6
7
`ldap` 基于tcp/ip的轻量级目录访问协议,属于X.500目录协议族的一个简化版本
你可以暂时把它粗暴的理解成 `一种特殊类型的数据库` ,通常,这种数据库文件后缀都为`.ldif`,并使用特殊的节点查询语句来获取相应数据
实际生产环境中,主要还是用它来做各种查询比较多,既是查询,也就意味着肯定会有大量的读操作
虽然,ldap也支持一些简单的更新功能,即写,但一般都不会用,因为它在写方面的效率并不高
如果真的是写比较多,直接用各种关系型数据库代替就好了,实在没必要用ldap,毕竟,术业有专攻
另外,ldap 跨平台,功能简洁,易管理,配置,读性能也不错,亦可分布式部署`不知道是不是可以把它的分布式理解成windows域的目录树,目录林概念`
用的最多的可能就是进行`集中身份验证`,最后,我们还需要知道的是,默认情况下,ldap的所有数据都是直接以明文传输的,容易被截获,不过好在它支持ssl

0x02 其它的一些常用目录服务工具

1
2
3
4
X.500 		过于庞大臃肿
ldap 轻量且配置简单
windows活动目录 有平台限制
NIS 个人暂时还没接触过

0x03 了解ldap内部数据的大致存储方式

1
2
3
4
5
6
和常规关系型数据库不同的是,ldap并非按照常规的库,表,字段方式来存储数据
而是按照一种特殊的倒树状结构层级来组织管理数据,此处的树指的就是目录信息树,即`DIT`
所谓的目录信息树其实相当于专门用来进行读操作的数据库
在DIT内部则由N个条目`entry`所组成,就相当于我们常规数据库表中每条具体的记录
而条目的内容则是由具有唯一标识名`DN`的属性[Attribute]及属性对应的值[value]所组成的这么一个集合
条目为ldap中最基础的操作单位,通常对ldap的增删改查都是以条目为基本单元进行的

阅读全文 »

Tomcat 安全部署实战指南

发表于 2017-12-17 | 更新于: 2017-12-30 | 分类于 Tomcat 安全部署实战指南
字数统计: 3,257 | 阅读时长 ≈ 14

0x01 关于Tomcat,更多详情大家可直接参考百科说明

1
https://zh.wikipedia.org/wiki/Apache_Tomcat

此次演示环境

1
2
CentOS7 x86_64 	ip: 192.168.3.64
Apache Tomcat/8.5.24 建议大家使用较新版的稳定版本

0x02 首先,在正式部署Tomcat之前,需要先来准备好jdk环境,因为毕竟底层还是在靠java来处理,所以必须要先得有java的运行环境才行,其实,在实际生产环境中,也可以单独使用jre,不过个人觉得这和安全的关系并不大,试想,如果你手里都已经拿到了一个可以运行java的环境了,我在本地用对应版本的jdk编译好了再丢上运行也是一样,防不住啥,太泛泛

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# tar xf jdk-8u151-linux-x64.tar.gz
# mv jdk1.8.0_151/ /usr/local/
# ln -s /usr/local/jdk1.8.0_151/ /usr/local/jdk
# tar xf apache-tomcat-8.5.24.tar.gz
# mv apache-tomcat-8.5.24 /usr/local/
# ln -s /usr/local/apache-tomcat-8.5.24/ /usr/local/tomcat
# ll /usr/local/
# vi /etc/profile
export JAVA_HOME=/usr/local/jdk/
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
export TOMCAT_HOME=/usr/local/tomcat
# source /etc/profile
# java -version
# javac

阅读全文 »

跨平台快速文件共享 Samba

发表于 2017-12-13 | 更新于: 2017-12-30 | 分类于 Samba
字数统计: 1,427 | 阅读时长 ≈ 6

0x01 关于smaba

1
2
主要用于实现不同系统平台间的文件共享,配置非常简单,轻量,适合用于常规办公内网环境中
linux <==> windows <==> unix

此次演示环境

1
2
CentOS6.9 x86_64	ip:192.168.3.55 samba服务器
CentOS6.9 x86_64 ip:192.168.3.57 用来模拟smb客户端进行访问测试

0x02 samba服务默认所监听的端口

1
2
137/udp,138/udp nmb 进程提供netbios解析,以满足基于 CIFS 协议的共享访问环境
138/tcp,445/tcp smb 进程主要为客户端提供文件共享,打印机服务以及用户权限验证

0x03 使用samba客户端工具 smbclient,其实有些类似于ftp的客户端工具,也是一种交互式的访问

在linux下使用smbclient访问windows中的共享目录

1
2
3
# smbclient -L 192.168.3.23 -U administrator
# smbclient //192.168.3.23/linux_dir -U dcadmin
# mount -t cifs //192.168.3.23/linux_dir /mnt/windows/ -o username=dcadmin 注意,此处要使用cifs协议进行挂载

阅读全文 »

DNS 深度理解 [ 一 ]

发表于 2017-12-12 | 更新于: 2017-12-30 | 分类于 DNS 深度理解
字数统计: 4,897 | 阅读时长 ≈ 22

0x01 首先,我们先来简单回顾下DNS的基本解析流程, 比较简单,如下

1
2
3
4
5
6
7
8
9
10
-> 以客户端浏览器访问 www.rootkit.org 域名为例,首先,它会去检查当前浏览器缓存,如果有,就直接响应,如果没有,就继续往下找
-> 接着,操作系统会去检查自己的host文件,如果从中没找到对应关系,会再到系统dns缓存中查,如果缓存中有,就直接返回该域名所对应的ip
-> 如果缓存中没有,则会向我们事先设置好的dns服务器 [ 一般有两个, 主 & 备 ] 去请求,即所谓的`递归查询`,dns服务器首先会到自身解析数据库中去查
-> 如果dns服务器在自己的解析库中也没找到,它就会自动帮我们向根发送询问请求
-> 此时,根看到要请求的是org的后缀,就会把org所在的ns服务器告诉我们的dns
-> 然后,我们的dns服务器就会去请求org所在的ns服务器
-> 当请求到达org ns服务器时,org一看域名是在rootkit这个域下的,就会把rootkit所在的ns服务器再告诉我们的dns服务器
-> 再然后,我们的dns服务器就会去请求rootkit这个域的ns服务器
-> rootkit这个域的ns服务器一看是要访问www就直接找到了www对应的A记录的ip,并把它丢给我们的dns,上面逐个询问的过程,即 `迭代查询`
-> 最后,我们的dns再把最终解析到的这个ip丢给我们的客户端,然后客户端就直接拿着去访问了,如下,访问google.com时的简易流程图

阅读全文 »

不再让 `泄露` 拖你的后腿 [ subversion篇 ]

发表于 2017-12-11 | 更新于: 2017-12-23 | 分类于 svn
字数统计: 2,237 | 阅读时长 ≈ 9

0x01 关于 svn

1
2
3
同属C/S架构,对于svn服务端来讲,任何一个文件,在任何时刻的变化,都会被svn详细记录,并自动备份修改之前的结果,方便后续回滚
其实,底层也是靠一个独立的`文件系统 FSFS`在维护,更多内部工作细节,大家可以直接去参考百科说明,此处废话不多讲,我们真奔主题...
...

演示环境,注,此处为独立部署svn服务器,并非配合web服务一起使用

1
2
CentOS6.9_x86_64 ip: 192.168.3.59
win7cn ip: 192.168.3.70

0x02 作为一名入侵者,从svn中你都能发掘到什么宝藏

1
2
3
4
5
6
可能最容易拿到的就是数据库的各种连接账号密码,前提是,目标数据库允许外连,这样你才能更优雅的脱裤或者想办法构造上传webshell
一些邮箱账号密码,如果目标有自己的vpn或者owa之类的入口还是很值得尝试的
直接的后端代码,除了能局部审下代码之外,在注释里面也许还能看到一些关于开发人员的敏感信息
其它的各种敏感配置信息,非常多,这里就不一一细说了
注意,有些信息,确实不能让我们一刀毙敌,但高效的渗透往往是对各类敏感信息的相互配合及深度利用,这非常重要
...

阅读全文 »

简述 FTP 入侵与防御 [ vsftpd ]

发表于 2017-12-10 | 更新于: 2017-12-23 | 分类于 vsftp
字数统计: 3,570 | 阅读时长 ≈ 14

0x01 首先,我们先来简单思考下,当你面对一台 ftp 时,到底能做些什么

1
2
3
4
5
6
7
挖0day,抱歉,并不在今天的讨论范畴 ^_^
允许匿名可写,直接上传webshell,一般极小的个人站才有可能,ftp目录即网站目录
允许匿名下载,造成的敏感文件信息泄露
爆破,亦可造成敏感配置泄露
嗅探,搜集各种明文账号密码,然后再拿着这些账号密码,去撞目标的其它入口,或以此进行进一步的内网渗透
提权,linux平台下基本不可能
...

0x02 相对主流的一些ftp工具

1
vsftpd proftpd filezilla ...

0x03 深入理解ftp的主动与被动工作模式

命令连接

1
2
3
在客户端向ftp服务端发起连接请求时,客户端会随机选择本地的某个tcp端口与ftp服务端的21端口进行连接
这中间会进行一系列的身份验证过程,待验证通过后,客户端与ftp服务端即会成功建立 `命令连接`
所谓的 `命令传输连接` 也就是说,仅仅只会用这个连接来传输命令本身

主动模式

1
2
3
4
在 `命令连接` 建立成功后,客户端可能还需要进行一系列的数据传输动作,如,上传,下载文件...
此时,客户端会先在本地另启一个端口监听等待连接,并利用先前与ftp客户端建立好的`命令连接`通道,告诉ftp服务端客户端所监听的端口
而后,ftp服务端会利用自身的20端口和刚才ftp客户端所告知的端口进行数据连接,随后就开始利用此连接来进行各类数据传输
注意,此时`数据连接`在建立的过程中,是ftp服务端的20端口主动连接FTP客户端的随机端口的,也就是我们所说的`主动模式`

阅读全文 »
123…17
VK

VK

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

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